Hi,
I’m attempting to cross compile Linux Kernel using Nix for ARMv7 architecture (armv7l-unknown-linux-musleabi). However, I ran into issue during the build of vmlinux
:
cc1: fatal error: types.h: No such file or directory
Therefore I installed a breakpointHook
and looked into the container:
armv7l-unknown-linux-musleabi-gcc -Wp,-MD,lib/lzma/.LzFind.o.d -nostdinc -isystem /nix/store/dkjganxz6hv9hp0km172x2g79jjshy8l-armv7l-unknown-linux-musleabi-stage-final-gcc-debug-9.3.0/lib/gcc/armv7l-unknown-linux-musleabi/9.3.0/include -I/nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/arch/arm/include -I./arch/arm/include/generated -I/nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/include -I./include -I/nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I/nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/include/uapi -I./include/generated/uapi -include /nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/include/linux/kconfig.h -include /nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wimplicit-fallthrough -Wno-unused-const-variable -fomit-frame-pointer -fno-var-tracking-assignments -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=/nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/= -Wno-packed-not-aligned -Iinclude/linux -Iinclude/linux/lzma -include types.h -I /nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/lib/lzma -I ./lib/lzma -ffunction-sections -fdata-sections -DKBUILD_BASENAME='"LzFind"' -DKBUILD_MODNAME='"lzma_compress"' -c -o lib/lzma/LzFind.o /nix/store/7dc2icfzrqjnii9mz2q7jx5rms1wcl9p-kernel-source-tree-armv7l-unknown-linux-musleabi/lib/lzma/LzFind.c
cc1: fatal error: types.h: No such file or directory
I went and looked around for the file:
find -iname types.h
./arch/alpha/include/asm/types.h
./arch/alpha/include/uapi/asm/types.h
./arch/arm/include/uapi/asm/types.h
./arch/ia64/include/asm/types.h
./arch/ia64/include/uapi/asm/types.h
./arch/mips/include/asm/fw/arc/types.h
./arch/mips/include/asm/sn/types.h
./arch/mips/include/asm/types.h
./arch/mips/include/uapi/asm/types.h
./arch/parisc/include/uapi/asm/types.h
./arch/powerpc/boot/types.h
./arch/powerpc/include/asm/types.h
./arch/powerpc/include/uapi/asm/types.h
./arch/s390/include/asm/fpu/types.h
./arch/s390/include/uapi/asm/types.h
./arch/sh/include/asm/types.h
./arch/sh/include/uapi/asm/types.h
./arch/x86/include/asm/e820/types.h
./arch/x86/include/asm/fpu/types.h
./arch/xtensa/include/uapi/asm/types.h
./drivers/net/fddi/skfp/h/types.h
./drivers/net/wireless/broadcom/brcm80211/brcmsmac/types.h
./drivers/net/wireless/marvell/libertas/types.h
./fs/ntfs/types.h
./include/linux/ceph/types.h
./include/linux/firmware/imx/types.h
./include/linux/iio/types.h
./include/linux/sched/types.h
./include/linux/sunrpc/types.h
./include/linux/types.h
./include/linux/lzma/Types.h
./include/uapi/asm-generic/types.h
./include/uapi/linux/iio/types.h
./include/uapi/linux/sched/types.h
./include/uapi/linux/types.h
./net/batman-adv/types.h
./tools/include/linux/types.h
./tools/testing/selftests/bpf/include/uapi/linux/types.h
./tools/testing/selftests/rcutorture/formal/srcu-cbmc/empty_includes/uapi/linux/types.h
./tools/testing/selftests/rcutorture/formal/srcu-cbmc/include/linux/types.h
Unfortunately inside the container there is no such file:
bash-4.4$ find -iname types.h
bash-4.4$
Could you please suggest what to check or modify in order to build the kernel?