This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]