03-May-2006 12:37 PM Peter O'Gorman: g++ -force_flat_namespace dies with multiple definition of symbols in libSystem and crt3.o on Mac OS X 10.4. peter$ /opt/gcc_mainline/bin/g++ -force_flat_namespace -o foo foo.cpp /opt/odcctools/bin/ld: multiple definitions of symbol _atexit /opt/gcc_mainline/lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/crt3.o private external definition of _atexit in section (__TEXT,__text) /usr/lib/libSystem.dylib(atexit.So) definition of _atexit /opt/odcctools/bin/ld: multiple definitions of symbol ___cxa_atexit /opt/gcc_mainline/lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/crt3.o private external definition of ___cxa_atexit in section (__TEXT,__text) /usr/lib/libSystem.dylib(atexit.So) definition of ___cxa_atexit collect2: ld returned 1 exit status I expected the link to succeed. This bug is also an Apple radar - rdar://problem/4535166 Peter
If fixed, this will be fixed in the Darwin linker. In the meantime, don't use -force_flat_namespace. In fact, it's probably better if you don't use it at all; the system libraries aren't expecting it and this is just one of many possible problems.
Can we then have a new cctools which includes a newer ld64 also since right now powerpc-darwin is broken on a G5 without using --disable-multilib.
(In reply to comment #2) > Can we then have a new cctools which includes a newer ld64 also since right now > powerpc-darwin is broken on a G5 without using --disable-multilib. This specific problem should be resolved with Xcode 2.3, just released. However -force_flat_namespace still doesn't work.