VxWorks does its own .init/.fini handling, and so it wants the static object constructors to a) be public functions and b) have $ signs in them. diff -c3prN /gcc.orig/gcc/gcc/config/rs6000/vxppc.h /gcc.dev/gcc/gcc/config/rs6000/vxppc.h *** /gcc.orig/gcc/gcc/config/rs6000/vxppc.h Mon May 17 02:30:56 1999 --- /gcc.dev/gcc/gcc/config/rs6000/vxppc.h Mon Jan 29 23:41:20 2001 *************** Boston, MA 02111-1307, USA. */ *** 69,73 **** --- 69,88 ---- #define ENDFILE_SPEC "" /* We use stabs-in-elf for debugging */ + #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG + + /* More backward compatibility patches: we undef these two in + order to force the compiler to output our static constructors + and destructors in the fashion to which it is accustomed.... */ + + #undef ASM_OUTPUT_CONSTRUCTOR + #undef ASM_OUTPUT_DESTRUCTOR + + /* And this puts $ signs into the static object c/d-tors that + need to be found by WRS munch. It also makes libgcc symbols + match WRS symbols */ + + #undef NO_DOLLAR_IN_LABEL +