The normal process of building a cross compilation toolchain is: 1. build GCC without the standard C lib 2. build the standard C lib 3. rebuild GCC 4. rebuild the standard C lib with the new GCC But for AVR, GCC can be build successfully without (a provisionally version of) the standard C headers available - due to the lack of libstdc++ support for AVR. But we still need to remove the check to allow for this. diff --color -rupN a/gcc/Makefile.in b/gcc/Makefile.in --- a/gcc/Makefile.in 2024-05-07 08:51:37.000000000 +0200 +++ b/gcc/Makefile.in 2024-05-09 11:55:59.115578602 +0200 @@ -3415,18 +3415,6 @@ stmp-fixinc: gsyslimits.h macro_list fix sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \ multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \ fix_dir=include-fixed$${multi_dir}; \ - if ! $(inhibit_libc) && test ! -d ${BUILD_SYSTEM_HEADER_DIR}; then \ - echo "The directory (BUILD_SYSTEM_HEADER_DIR) that should contain system headers does not exist:" >&2 ; \ - echo " ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \ - case ${build_os} in \ - darwin*) \ - echo "(on Darwin this usually means you need to pass the --with-sysroot= flag to point to a valid MacOS SDK)" >&2; \ - ;; \ - esac; \ - tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \ - if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \ - then sleep 1; else exit 1; fi; \ - fi; \ $(mkinstalldirs) $${fix_dir}; \ chmod a+rx $${fix_dir} || true; \ (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \