OK, I got the latest (actually a snapshot) of binutils compiled on Solaris 10, then used it, with the dependent libraries sucked into the gcc source using that contrib script, and was able to get gcc built for Solaris 10. I'm now trying the same thing for Solaris 11 SPARC, and running into something different: g++ -g -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -DHAVE_CONFIG_H -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-s pec.o tree-mudflap.o sparc-c.o sol2-c.o default-c.o \ cc1-checksum.o libbackend.a main.o tree-browser.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a /usr/local/lib/libintl.so -L/usr/local/lib -L/usr/openwin/lib -L/usr/local/BerkeleyDB.4.2/lib /usr/local/lib/libiconv.so -lsec -lc -R/usr/local/lib -R/usr/lib -R/usr/openwin/lib -R/usr/local/ssl/lib -R/usr/local/BerkeleyDB.4.2/lib /usr/local/lib/libiconv.so -R/usr/local/lib ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/usr/soft/that/gcc-4.8.1/src/default/sparc_sun_solaris2.11/./gmp/.libs -L/usr/soft/that/gcc-4.8.1/src/default/sparc_sun_solaris2.11/./mpfr/.libs -L/usr/soft /that/gcc-4.8.1/src/default/sparc_sun_solaris2.11/./mpc/src/.libs -lmpc -lmpfr -lgmp -L../zlib -lz libbackend.a(double-int.o): In function `mpz_set_double_int(__mpz_struct*, double_int, bool)': /usr/soft/that/gcc-4.8.1/src/orig/gcc/double-int.c:1431: undefined reference to `__gmpz_import' libbackend.a(double-int.o): In function `mpz_get_double_int(tree_node const*, __mpz_struct*, bool)': /usr/soft/that/gcc-4.8.1/src/orig/gcc/double-int.c:1477: undefined reference to `__gmpz_export' /usr/soft/that/gcc-4.8.1/src/default/sparc_sun_solaris2.11/./mpc/src/.libs/libmpc.a(pow.o): In function `mpc_perfect_square_p': /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:72: undefined reference to `__gmpz_divisible_2exp_p' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:75: undefined reference to `__gmpz_addmul' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:80: undefined reference to `__gmpz_divisible_2exp_p' /usr/soft/that/gcc-4.8.1/src/default/sparc_sun_solaris2.11/./mpc/src/.libs/libmpc.a(pow.o): In function `mpc_pow_exact': /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:234: undefined reference to `__gmpz_addmul' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:262: undefined reference to `__gmpz_submul' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:268: undefined reference to `__gmpz_submul' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:270: undefined reference to `__gmpz_addmul' /usr/soft/that/gcc-4.8.1/src/orig/mpc/src/pow.c:309: undefined reference to `__gmpz_submul' This seems odd because it *looks* like the libraries are being called in the correct order.