https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289

--- Comment #10 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
}

Reply via email to