我试图使用我的buildroot工具链(2020.08.2)编译linux内核v5.9.12,但我一直收到一个与libfdt相关的错误。我想不出该怎么解决这个问题,我已经用头撞墙好几个小时了。
username@local:~/linux-stable$ make ARCH=arm CROSS_COMPILE=arm-linux- -j64
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/piggy.o
CC arch/arm/boot/compressed/fdt_ro.o
In file included from arch/arm/boot/compressed/../../../../lib/fdt_ro.c:2,
from arch/arm/boot/compressed/fdt_ro.c:2:
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c: In function ‘fdt_generate_phandle’:
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c:149:13: error: ‘FDT_MAX_PHANDLE’ undeclared (first use in this function)
149 | if (max == FDT_MAX_PHANDLE)
| ^~~~~~~~~~~~~~~
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c:149:13: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c: In function ‘fdt_get_mem_rsv’:
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c:182:13: error: implicit declaration of function ‘fdt64_ld’ [-Werror=implicit-function-declaration]
182 | *address = fdt64_ld(&re->address);
| ^~~~~~~~
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c: In function ‘fdt_get_property_by_offset_’:
arch/arm/boot/compressed/../../../../lib/../scripts/dtc/libfdt/fdt_ro.c:371:11: error: implicit declaration of function ‘fdt32_ld’ [-Werror=implicit-function-declaration]
371 | *lenp = fdt32_ld(&prop->len);
| ^~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: arch/arm/boot/compressed/fdt_ro.o] Error 1
make[1]: *** [arch/arm/boot/Makefile:64: arch/arm/boot/compressed/vmlinux] Error 2
make: *** [arch/arm/Makefile:330: zImage] Error 2
make: *** Waiting for unfinished jobs....我已经将output/host/usr/bin添加到我的PATH环境变量中,这样make就可以找到工具链。有什么想法吗?
发布于 2020-12-08 23:48:29
事实证明,在arch/arm/boot/压缩文件中,有一堆旧的libfdt相关的头文件仍然存在,因此通过删除这些文件,我能够构建内核。我用git status找到了这些文件。
https://stackoverflow.com/questions/65193291
复制相似问题