------- Comment #47 from rob1weld at aol dot com 2009-02-05 04:06 ------- (In reply to comment #46) > As I understand it, the complaint here is that GCC_EXEC_PREFIX being set > affects HOSTCC, when HOSTCC is itself some other GCC. ...
It is true (for most of us in this thread) that "GCC_EXEC_PREFIX" is being set to a value and we agree that it is likely that the value set would NOT work in all circumstances. One example is inherently derived from where we see it being set (wrongly), during "make -i check" _PRIOR_ to running "make install". We (some of us) can see that the Testsuite Results vary WILDLY (sometimes) depending on the "Installed Gcc" versus the "Tested Gcc". Here is an EXTREME example: On OpenSolaris 2008.11 install "gcc version 4.4.0 20090131 trunk revision 143817" ./configured with these options: ../gcc_trunk/configure --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-multilib --enable-decimal-float --with-long-double-128 --with-included-gettext --enable-stage1-checking --enable-checking=release --with-tune=k8 --with-cpu=k8 --with-arch=k8 --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld Now with "gcc version 4.4.0 20090131 trunk revision 143817" installed ./configure "gcc version 4.4.0 20090204 trunk revision 143918" using these options: ../gcc_trunk/configure --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-multilib --enable-decimal-float --with-long-double-128 --with-included-gettext --enable-stage1-checking --enable-checking=release --with-tune=k8 --with-cpu=k8 --with-arch=k8 --with-gnu-as --with-as=/usr/local/bin/as --without-gnu-ld --with-ld=/usr/ccs/bin/ld Now run "gmake" and do the Three-Stage Build. DO NOT INSTALL GCC. Run "gmake -i check" and save the logs (that you want to compare). # cd ../gcc_build # cp gcc/testsuite/gcc/gcc.log gcc/testsuite/gcc/gcc.log.PRE-INSTALL # cp gcc/testsuite/gnat/gnat.log gcc/testsuite/gnat/gnat.log.PRE-INSTALL # cp gcc/testsuite/obj-c++/obj-c++.log gcc/testsuite/obj-c++/obj-c++.log.PRE-INSTALL # cp gcc/testsuite/g++/g++.log gcc/testsuite/g++/g++.log.PRE-INSTALL # cp gcc/testsuite/gfortran/gfortran.log gcc/testsuite/gfortran/gfortran.log.PRE-INSTALL # cp gcc/testsuite/objc/objc.log gcc/testsuite/objc/objc.log.PRE-INSTALL # cp gcc/testsuite/ada/acats/acats.log gcc/testsuite/ada/acats/acats.log.PRE-INSTALL # cp i386-pc-solaris2.11/libstdc++-v3/testsuite/libstdc++.log i386-pc-solaris2.11/libstdc++-v3/testsuite/libstdc++.log.PRE-INSTALL # cp i386-pc-solaris2.11/libgomp/testsuite/libgomp.log i386-pc-solaris2.11/libgomp/testsuite/libgomp.log.PRE-INSTALL # cp i386-pc-solaris2.11/libffi/testsuite/libffi.log i386-pc-solaris2.11/libffi/testsuite/libffi.log.PRE-INSTALL # cp i386-pc-solaris2.11/libjava/testsuite/libjava.log i386-pc-solaris2.11/libjava/testsuite/libjava.log.PRE-INSTALL # cp i386-pc-solaris2.11/libmudflap/testsuite/libmudflap.log i386-pc-solaris2.11/libmudflap/testsuite/libmudflap.log.PRE-INSTALL Now Install gcc and then re-run "gmake -i check" and _sometimes_ you will get _some_ results that are different (and sometimes you will not). So let us see what happens when "gcc version 4.4.0 20090131 trunk revision 143817" (./configured to use GNU's linker) is used to build ""gcc version 4.4.0 20090204 trunk revision 143918" (configured to use Sun's linker): # ../gcc_trunk/contrib/compare_tests ../gcc_build/gcc/testsuite/gcc/gcc.log.PRE-INSTALL ../gcc_build/gcc/testsuite/gcc/gcc.log | wc -l 0 It look like the "C" compiler is OK (it _might_ not be). Lets try "C++": # ../gcc_trunk/contrib/compare_tests ../gcc_build/gcc/testsuite/g++/g++.log.PRE-INSTALL ../gcc_build/gcc/testsuite/g++/g++.log | wc -l 4140 Woah! Broken. Thanks, Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36443