When I run "make check" on a three-stage bootstrapped tree, I get errors from
libiberty's testsuite:

cc -DHAVE_CONFIG_H -g -I..
-I../../../egcc-SVN20061008/libiberty/testsuite/../../include  -DHAVE_CONFIG_H
-I.. -o test-pexecute
../../../egcc-SVN20061008/libiberty/testsuite/test-pexecute.c ../libiberty.a
Undefined                       first referenced
 symbol                             in file
__umoddi3                           ../libiberty.a(mkstemps.o)
__udivdi3                           ../libiberty.a(mkstemps.o)
ld: fatal: Symbol referencing errors. No output written to test-pexecute
make[3]: *** [test-pexecute] Error 1


The problem appears to be that the libiberty library was three-staged using the
new top-level bootstrap mechanism and therefore was compiled more recently by
stage3 gcc, but the testcase driver is compiled and linked against this library
with the stage1 compiler (cc).  Therefore symbols from libgcc (if any are
needed) won't be resolved.  

We need to use the same compiler for the tests as was used to compile the
library we're testing.  That changes depending on whether we use
--disable-bootstrap or not.

This will become much more serious if we include other libraries in the GCC
tree such as GMP/MPFR where testsuite results are more important.


-- 
           Summary: "make check" fails to compile library testcases
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ghazi at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29404

Reply via email to