The bootstrap breaks in stage1 when trying to build libgcc for multilib (this is sparc-unknown-linux with "--enable-targets=all"):
make[3]: Leaving directory `/home/davem/src/GIT/GCC/build-sparc-linux/gcc' mkdir -p -- sparc-unknown-linux-gnu/libgcc Checking multilib configuration for libgcc... Configuring stage 1 in sparc-unknown-linux-gnu/libgcc configure: creating cache ./config.cache ... checking for __attribute__((visibility("hidden")))... yes checking whether the target assembler supports thread-local storage... yes checking whether the thread-local storage support is from emutls... no configure: updating cache ./config.cache configure: creating ./config.status config.status: creating Makefile config.status: linking ../../../gcc/libgcc/config/sparc/linux.h to md-unwind-support.h config.status: error: ../../../gcc/libgcc/config/sparc/linux.h: file not found make[2]: *** [configure-stage1-target-libgcc] Error 1 make[2]: Leaving directory `/home/davem/src/GIT/GCC/build-sparc-linux' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/home/davem/src/GIT/GCC/build-sparc-linux' make: *** [all] Error 2 It's using "linux.h" instead of "linux-unwind.h" for whatever reason. So we need something like this? diff --git a/libgcc/config.host b/libgcc/config.host index 24282e1..713b2a9 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -600,7 +600,7 @@ sparc-*-elf*) sparc-*-linux*) # SPARC's running GNU/Linux, libc6 extra_parts="$extra_parts crtfastmath.o" tmake_file="${tmake_file} t-crtfm" - md_unwind_header=sparc/linux.h + md_unwind_header=sparc/linux-unwind.h ;; sparc-*-rtems* | sparc64-*-rtems* ) tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems"