https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
--- Comment #9 from rudi at heitbaum dot com ---
After a full make clean:
The bootstrap build fails:
In file included from
/storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/gcc-11.1.0/libgcc/libgcov-merge.c:26:
/storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/gcc-11.1.0/libgcc/libgcov.h:49:10:
fatal error: sys/mman.h: No such file or directory
49 | #include <sys/mman.h>
| ^~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:921: _gcov_merge_add.o] Error 1
These headers are added to sysroot by linux:host
grep mman.h 58.log
HDRINST usr/include/asm-generic/mman.h
HDRINST usr/include/linux/mman.h
HDRINST usr/include/asm/mman.h
Here are the headers of the clean environment.
./usr/include/x86_64-linux-gnu/asm/mman.h
./usr/include/x86_64-linux-gnu/bits/mman.h
./usr/include/x86_64-linux-gnu/sys/mman.h
./usr/include/linux/mman.h
./usr/include/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/gcc-11.1.0/fixincludes/tests/base/sys/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/dest/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/dest/include/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/dest/include/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/usr/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/usr/include/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/usr/include/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/arm/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/ia64/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/ia64/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/sparc/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/sparc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/mips/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/x86/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/powerpc/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/powerpc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/arm64/include/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/arm64/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/parisc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/alpha/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/arch/xtensa/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/arm/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/ia64/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/sparc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/mips/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/x86/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/sh/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/powerpc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/s390/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/arm64/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/arc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/parisc/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/microblaze/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/alpha/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/xtensa/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/h8300/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/arch/hexagon/include/uapi/asm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/include/uapi/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/tools/include/uapi/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/include/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/include/uapi/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/linux-5.10.32/include/uapi/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-arm/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-s390/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/linux/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-x86/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-generic/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-mips/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-powerpc/mman.h
./storage/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/qemu-5.2.0/linux-headers/asm-arm64/mman.h
Here is the make code that copies the kernel header files into sysroot.
make_host() {
make \
ARCH=${HEADERS_ARCH:-${TARGET_KERNEL_ARCH}} \
HOSTCC="${TOOLCHAIN}/bin/host-gcc" \
HOSTCXX="${TOOLCHAIN}/bin/host-g++" \
HOSTCFLAGS="${HOST_CFLAGS}" \
HOSTCXXFLAGS="${HOST_CXXFLAGS}" \
HOSTLDFLAGS="${HOST_LDFLAGS}" \
headers_check
}
makeinstall_host() {
make \
ARCH=${HEADERS_ARCH:-${TARGET_KERNEL_ARCH}} \
HOSTCC="${TOOLCHAIN}/bin/host-gcc" \
HOSTCXX="${TOOLCHAIN}/bin/host-g++" \
HOSTCFLAGS="${HOST_CFLAGS}" \
HOSTCXXFLAGS="${HOST_CXXFLAGS}" \
HOSTLDFLAGS="${HOST_LDFLAGS}" \
INSTALL_HDR_PATH=dest \
headers_install
mkdir -p ${SYSROOT_PREFIX}/usr/include
cp -R dest/include/* ${SYSROOT_PREFIX}/usr/include
}