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]

Re: Mainline bootstrap failure in toplev.c


> Can you please find out? ?Whatever it is, *that's* the place we
> probably need to fixinclude.

This happens only when compiled with stage1/xgcc. And the reason is a little 
more complicated than I had thought: in /usr/include/linux/compiler.h, we 
have
  #if __GNUC__ > 3
  # include <linux/compiler-gcc+.h>	/* catch-all for GCC 4, 5, etc. */
  #elif __GNUC__ == 3
  # include <linux/compiler-gcc3.h>

For mainline, we have __GNUC__==4, so we include the second include file in 
the first stage, and the first include file when compiling with stage1/xgcc. 
Now, in /usr/include/compiler-gcc+.h we find the evil:

  #ifndef __KERNEL__
  #define inline		__inline__ __attribute__((always_inline))
  #define __inline__		__inline__ __attribute__((always_inline))
  #define __inline		__inline__ __attribute__((always_inline))
  #endif

Note *ifndef*, whereas in /usr/include/compiler-gcc3.h we had the exact 
opposite condition of whether __KERNEL__ is defined. I would claim that this 
is a genuine typo/bug in the kernel headers.

W.

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