We recently upgraded to 4.2.1 and noticed an immediate issue. After compiling gcc for sparcv9 and specifically setting --with-ld=/usr/local/gnu/bin/ld, whenever gcc actually runs it internally calls the Sun linker and therefore dies with unknown options. A simple "hello world" refuses to build because of bad LD options. Setting LD= seems to have little effect. I'm pasting a -v output of it below. Note I was using g++ here because that was handy, but it is the same for eitehr gcc or g++:
/usr/local/bin/sparcv9/g++ -v hello.cpp Using built-in specs. Target: sparc-sun-solaris2.9 Configured with: ../configure --enable-shared --enable-threads --with-ld=/usr/local/gnu/bin/ld --with-as=/usr/local/gnu/bin/as --disable-multilib --disable-libgcj --disable-libffi --disable-libjava --disable-nls --bindir=/usr/local/bin/sparcv9 --libdir=/usr/local/lib/sparcv9 Thread model: posix gcc version 4.2.1 /usr/local/libexec/gcc/sparc-sun-solaris2.9/4.2.1/cc1plus -quiet -v -D__sparcv8 hello.cpp -quiet -dumpbase hello.cpp -mcpu=v9 -auxbase hello -version -o /var/tmp//ccM6WkGY.s ignoring nonexistent directory "NONE/include" ignoring nonexistent directory "/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.1/../../../../sparc-sun-solaris2.9/include" #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.1/../../../../include/c++/4.2.1 /usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.1/../../../../include/c++/4.2.1/sparc-sun-solaris2.9 /usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.1/../../../../include/c++/4.2.1/backward /usr/local/include /usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.1/include /usr/include End of search list. GNU C++ version 4.2.1 (sparc-sun-solaris2.9) compiled by GNU C version 4.2.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 7f9cd0c7cc891b25f4cbce210dc67670 /usr/local/gnu/bin/as -V -Qy -s -xarch=v8plus -o /var/tmp//ccZD9lJS.o /var/tmp//ccM6WkGY.s GNU assembler version 2.17 (sparc-sun-solaris2.9) using BFD version 2.17 /usr/local/libexec/gcc/sparc-sun-solaris2.9/4.2.1/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -rpath-link /usr/lib -Qy /usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/crt1.o /usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/crti.o /usr/ccs/lib/values-Xa.o /usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/crtbegin.o -L/usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1 -L/usr/ccs/lib -L/usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/../../.. /var/tmp//ccZD9lJS.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc -lc /usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/crtend.o /usr/local/lib/sparcv9/gcc/sparc-sun-solaris2.9/4.2.1/crtn.o ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.390 ld: fatal: option -dn and -P are incompatible ld: fatal: Flags processing errors collect2: ld returned 1 exit status -- Summary: gcc 4.2.1 ignores GNU LD in Solaris 9 Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dhaliK at jla dot rutgers dot edu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33598