------- 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

Reply via email to