Some notes on the 'bootstrap with or without libc headers' debate: http://linuxfromscratch.org/pipermail/lfs-dev/2005-July/052409.html http://gcc.gnu.org/ml/gcc/2005-07/msg01195.html --- gcc/config/sh/linux.h +++ gcc/config/sh/linux.h @@ -145,6 +145,7 @@ /* Do code reading to identify a signal frame, and set the frame state data appropriately. See unwind-dw2.c for the structs. */ +#ifndef inhibit_libc #ifdef IN_LIBGCC2 #include #include @@ -295,6 +296,7 @@ #endif /* defined (__SH5__) */ #endif /* IN_LIBGCC2 */ +#endif /* inhibit_libc */ /* For SH3 and SH4, we use a slot of the unwind frame which correspond to a fake register number 16 as a placeholder for the return address --- gcc/config/i386/linux.h +++ gcc/config/i386/linux.h @@ -208,6 +208,7 @@ /* Do code reading to identify a signal frame, and set the frame state data appropriately. See unwind-dw2.c for the structs. */ +#ifndef inhibit_libc #ifdef IN_LIBGCC2 /* There's no sys/ucontext.h for some (all?) libc1, so no signal-turned-exceptions for them. There's also no configure-run for @@ -272,3 +273,4 @@ } while (0) #endif /* not USE_GNULIBC_1 */ #endif /* IN_LIBGCC2 */ +#endif /* inhibit_libc */ --- gcc/config/alpha/linux.h +++ gcc/config/alpha/linux.h @@ -73,6 +73,7 @@ /* Do code reading to identify a signal frame, and set the frame state data appropriately. See unwind-dw2.c for the structs. */ +#ifndef inhibit_libc #ifdef IN_LIBGCC2 #include #include @@ -122,3 +123,4 @@ (FS)->retaddr_column = 64; \ goto SUCCESS; \ } while (0) +#endif /* inhibit_libc */ --- gcc/config.gcc +++ gcc/config.gcc @@ -321,7 +321,7 @@ need_64bit_hwint=yes ;; # Note the 'l'; we need to be able to match e.g. "shle" or "shl". -sh[123456789l]*-*-*) +sh[123456789lbe]*-*-*) cpu_type=sh need_64bit_hwint=yes ;;