# HG changeset patch # User Chong Yidong # Date 1209133841 0 # Node ID e2b96c8f8d5e5251c853a8c5b025b2c35ff62116 # Parent 2cd2ae2b0528144a4f35a13eb4987a1ac556621f Additional redefinitions for GNU/Linux. diff -r 2cd2ae2b0528 -r e2b96c8f8d5e src/m/sparc.h --- a/src/m/sparc.h Fri Apr 25 14:29:51 2008 +0000 +++ b/src/m/sparc.h Fri Apr 25 14:30:41 2008 +0000 @@ -93,6 +93,18 @@ #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 */