This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Mainline bootstrap failure in toplev.c
- From: Wolfgang Bangerth <bangerth at ices dot utexas dot edu>
- To: gcc at gcc dot gnu dot org
- Cc: rth at gcc dot gnu dot org
- Date: Wed, 1 Dec 2004 09:32:02 -0600
- Subject: Mainline bootstrap failure in toplev.c
Hi all,
for several weeks now (I believe since my box has been upgraded to
Mandrake), mainline doesn't bootstrap any more for me. In stage1
I get this:
stage1/xgcc -Bstage1/ -B/ices/bangerth/tmp/build-gcc/gcc-install/i686-pc-linux-gnu/bin/ -O2 -g -fomit-frame-pointer -DIN_GCC -fno-common -DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include -DTARGET_NAME=\"i686-pc-linux-gnu\" -c ../../gcc/gcc/toplev.c -o toplev.o -save-temps
../../gcc/gcc/toplev.c: In function 'toplev_main':
../../gcc/gcc/toplev.c:544: sorry, unimplemented: inlining failed in call to 'floor_log2': redefined extern inline functions are not considered for inlining
../../gcc/gcc/toplev.c:1675: sorry, unimplemented: called from here
../../gcc/gcc/toplev.c:544: sorry, unimplemented: inlining failed in call to 'floor_log2': redefined extern inline functions are not considered for inlining
../../gcc/gcc/toplev.c:1679: sorry, unimplemented: called from here
../../gcc/gcc/toplev.c:544: sorry, unimplemented: inlining failed in call to 'floor_log2': redefined extern inline functions are not considered for inlining
../../gcc/gcc/toplev.c:1681: sorry, unimplemented: called from here
../../gcc/gcc/toplev.c:544: sorry, unimplemented: inlining failed in call to 'floor_log2': redefined extern inline functions are not considered for inlining
../../gcc/gcc/toplev.c:1685: sorry, unimplemented: called from here
make then stops. Frankly, I don't know what these messages mean, but when
trying to find out what that could be, I realized that floor_log2 is
implemented multiple times: first, in toplev.h we have
extern int floor_log2 (unsigned HOST_WIDE_INT);
[...]
extern inline int
floor_log2 (unsigned HOST_WIDE_INT x)
{
return x ? HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x) : -1;
}
Then, in toplev.c, the same function is reimplemented:
int
floor_log2 (unsigned HOST_WIDE_INT x)
{
[...]
}
That in itself strikes me as odd and wrong. In addition, the inline keyword
in the first definition is expanded to
__inline__ __attribute__((always_inline)) __attribute__((always_inline))
which presumably is the cause of the problem.
Is this a problem that others have seen before me?
Thanks
Wolfgang
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ices.utexas.edu
www: http://www.ices.utexas.edu/~bangerth/