I'm building gcc 4.4.0 20090106 on OpenSolaris (32 bit boot mode). The file trunk/libgcc/configure checks if 64 bit code can executed on a 32 bit platform when configuring for the i386-pc-solaris2.11/amd64/libgcc directory (and making profiledbootstrap).
# ../gcc_trunk/configure --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-decimal-float --enable-nls --without-system-libunwind --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld : (reconfigured) ../gcc_trunk/configure --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-decimal-float --enable-fixed-point --with-long-double-128 --enable-nls --with-included-gettext --enable-gather-detailed-mem-stats --with-stabs --enable-debug -enable-largefile --enable-symvers --without-system-zlib --enable-gtk-cairo --enable-qt-peer --enable-xmlj --enable-gconf-peer --enable-gjdoc --enable-java-awt=gtk,xlib,qt,x --enable-gc-debug --enable-libgcj-multifile --enable-libgcj-debug --enable-objc-gc --enable-libstdcxx-debug --enable-__cxa_atexit --enable-stage1-checking --enable-checking=release --without-system-libunwind --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld # gmake profiledbootstrap ... checking for i386-pc-solaris2.11-nm... /usr/share/src/gcc_build/./gcc/nm checking for i386-pc-solaris2.11-ranlib... /usr/local/i386-pc-solaris2.11/bin/ranlib checking for i386-pc-solaris2.11-strip... /usr/local/i386-pc-solaris2.11/bin/strip checking whether ln -s works... yes checking for i386-pc-solaris2.11-gcc... /usr/share/src/gcc_build/./gcc/xgcc -B/usr/share/src/gcc_build/./gcc/ -B/usr/local/i386-pc-solaris2.11/bin/ -B/usr/local/i386-pc-solaris2.11/lib/ -isystem /usr/local/i386-pc-solaris2.11/include -isystem /usr/local/i386-pc-solaris2.11/sys-include -m64 checking for C compiler default output file name... a.out checking whether the C compiler works... configure: error: in `/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libgcc': configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details. gmake[3]: *** [Makefile] Error 1 gmake[3]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libgcc' gmake[2]: *** [all-stage1-target-libgcc] Error 2 gmake[2]: Leaving directory `/usr/share/src/gcc_build' gmake[1]: *** [stage1-bubble] Error 2 gmake[1]: Leaving directory `/usr/share/src/gcc_build' gmake: *** [profiledbootstrap] Error 2 I examined config.log and decided to manually compile a file, then tested it. # /usr/share/src/gcc_build/./gcc/xgcc -B/usr/share/src/gcc_build/./gcc/ -B/usr/local/i386-pc-solaris2.11/bin/ -B/usr/local/i386-pc-solaris2.11/lib/ -isystem /usr/local/i386-pc-solaris2.11/include -isystem /usr/local/i386-pc-solaris2.11/sys-include -m64 -g -O2 /usr/share/src/gcc_build/test_gcc_1.c # ./a.out bash: ./a.out: cannot execute binary file # file ./a.out ./a.out: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, not stripped Ouch, we booted into 32-bit mode and we try to run a 64-bit executable: # isainfo -k i386 To push past this point I simply edited trunk/libgcc/configure and commented out the exit when the test failed (since I do not need execs in that dir): echo "$as_me: error: in \`$ac_pwd':" >&2;} { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} # { (exit 1); exit 1; }; }; } # Line 2535 }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 The build continued past where it was (to hang elsewhere) after the repair. Rob -- Summary: gcc 4.4.0 20090106 - The configure for $BUILD/amd64/libgcc checks if 64 bit code can exec on 32 bit platform Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rob1weld at aol dot com GCC build triplet: i386-pc-solaris2.11 GCC host triplet: i386-pc-solaris2.11 GCC target triplet: i386-pc-solaris2.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38743