BOOL_BITFIELD isn't defined when building libgcc. I checked in this patch to restore GCC 4.7 bootstrap on x86. GCC 4.6 is OK.
H.J. --- Index: ChangeLog =================================================================== --- ChangeLog (revision 196998) +++ ChangeLog (working copy) @@ -1,5 +1,10 @@ 2013-03-22 H.J. Lu <hongjiu...@intel.com> + * config/i386/i386.h (ix86_args): Define only if USED_FOR_TARGET + isn't defined. + +2013-03-22 H.J. Lu <hongjiu...@intel.com> + PR target/56560 * config/i386/i386.c (init_cumulative_args): Also set cum->callee_return_avx256_p. Index: config/i386/i386.h =================================================================== --- config/i386/i386.h (revision 196998) +++ config/i386/i386.h (working copy) @@ -1474,6 +1474,7 @@ enum reg_class /* 1 if N is a possible register number for function argument passing. */ #define FUNCTION_ARG_REGNO_P(N) ix86_function_arg_regno_p (N) +#ifndef USED_FOR_TARGET /* Define a data type for recording info about an argument list during the scan of that argument list. This data type should hold all necessary information about the function itself @@ -1507,6 +1508,7 @@ typedef struct ix86_args { /* Nonzero if it returns 256bit AVX modes. */ BOOL_BITFIELD callee_return_avx256_p : 1; } CUMULATIVE_ARGS; +#endif /* Initialize a variable CUM of type CUMULATIVE_ARGS for a call to a function whose data type is FNTYPE.