summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2008-04-25 14:30:41 +0000
committerChong Yidong <cyd@stupidchicken.com>2008-04-25 14:30:41 +0000
commit1bdbfed76bf9f3bb265cfdc21f624fb342944890 (patch)
treef536a9038d7b44b4c19c39b2f57addca88573dcd /src
parent5cc830c61ae301b4aaee79d170a7474ef5044bf3 (diff)
downloademacs-1bdbfed76bf9f3bb265cfdc21f624fb342944890.tar.gz
Additional redefinitions for GNU/Linux.
Diffstat (limited to 'src')
-rw-r--r--src/m/sparc.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/m/sparc.h b/src/m/sparc.h
index f4847676c3b..333d78863ad 100644
--- a/src/m/sparc.h
+++ b/src/m/sparc.h
@@ -93,6 +93,18 @@ NOTE-END */
#ifdef __arch64__ /* GCC, 64-bit ABI. */
#define BITS_PER_LONG 64
+#ifdef __linux__
+#undef START_FILES
+#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
+
+/* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
+ The reason is that some functions in libgcc.a call functions from libc.a,
+ and some libc.a functions need functions from libgcc.a. Since most
+ versions of ld are one-pass linkers, we need to mention -lgcc twice,
+ or else we risk getting unresolved externals. */
+#undef LIB_STANDARD
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
+#endif
#ifndef _LP64
#define _LP64 /* Done on Alpha -- not sure if it
should be here. -- fx */