Issue with "kbuild: create a list of all built DTB files"

From: Florian Fainelli
Date: Tue Apr 16 2024 - 13:22:35 EST


Hi Masahiro,

Sorry about the late report, commit 24507871c3c6ae4f6b460b016da7ff434cd34149 ("kbuild: create a list of all built DTB files") is breaking the build when we are doing a rsync of the Linux sources into a build directory, which is how buildroot works when doing a source directory override.

This does not happen when doing a build from the git directory containing the sources, and I cannot find a missing $(obj) reference, so I am left wondering what I am missing here. The build error looks like this:

cat: arch/arm64/boot/dts/actions/dtbs-list: No such file or directory
host-make[3]: *** [scripts/Makefile.build:423: arch/arm64/boot/dts/dtbs-list] Error 1
host-make[3]: *** Deleting file 'arch/arm64/boot/dts/dtbs-list'
host-make[2]: *** [Makefile:1394: dtbs] Error 2
host-make[2]: *** Waiting for unfinished jobs....

running with verbose, we can see the rule not generating an empty file at all:

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=scripts/dtc
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=scripts
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts need-dtbslist=1
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=scripts/genksyms \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/actions \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/allwinner \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/altera \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/amazon \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/tools kapi
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/amd \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/amlogic \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/apm \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/apple \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/arm \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/bitmain \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/broadcom \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/cavium \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/exynos \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/freescale \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/hisilicon \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/intel \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/lg \
need-builtin= \
need-modorder= \

# GEN arch/arm64/include/generated/asm/cpucap-defs.h
mkdir -p arch/arm64/include/generated/asm/; awk -f arch/arm64/tools/gen-cpucaps.awk arch/arm64/tools/cpucaps > arch/arm64/include/generated/asm/cpucap-defs.h
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/marvell \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/mediatek \
need-builtin= \
need-modorder= \

# GEN arch/arm64/include/generated/asm/sysreg-defs.h
mkdir -p arch/arm64/include/generated/asm/; awk -f arch/arm64/tools/gen-sysreg.awk arch/arm64/tools/sysreg > arch/arm64/include/generated/asm/sysreg-defs.h
/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/microchip \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/broadcom/bcmbca \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/nuvoton \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/broadcom/northstar2 \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/exynos/google \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/nvidia \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/broadcom/stingray \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/qcom \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/realtek \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/renesas \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/rockchip \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/socionext \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/sprd \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/st \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/synaptics \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/tesla \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/ti \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/toshiba \
need-builtin= \
need-modorder= \

/home/fainelli/work/buildroot/output/arm64/host/bin/host-make -f /scripts/Makefile.build obj=arch/arm64/boot/dts/xilinx \
need-builtin= \
need-modorder= \

# cmd_gen_order arch/arm64/boot/dts/dtbs-list
{ cat arch/arm64/boot/dts/actions/dtbs-list; cat arch/arm64/boot/dts/allwinner/dtbs-list; cat arch/arm64/boot/dts/altera/dtbs-list; cat arch/arm64/boot/dts/amazon/dtbs-list; cat arch/arm64/boot/dts/amd/dtbs-list; cat arch/arm64/boot/dts/amlogic/dtbs-list; cat arch/arm64/boot/dts/apm/dtbs-list; cat arch/arm64/boot/dts/apple/dtbs-list; cat arch/arm64/boot/dts/arm/dtbs-list; cat arch/arm64/boot/dts/bitmain/dtbs-list; cat arch/arm64/boot/dts/broadcom/dtbs-list; cat arch/arm64/boot/dts/cavium/dtbs-list; cat arch/arm64/boot/dts/exynos/dtbs-list; cat arch/arm64/boot/dts/freescale/dtbs-list; cat arch/arm64/boot/dts/hisilicon/dtbs-list; cat arch/arm64/boot/dts/intel/dtbs-list; cat arch/arm64/boot/dts/lg/dtbs-list; cat arch/arm64/boot/dts/marvell/dtbs-list; cat arch/arm64/boot/dts/mediatek/dtbs-list; cat arch/arm64/boot/dts/microchip/dtbs-list; cat arch/arm64/boot/dts/nuvoton/dtbs-list; cat arch/arm64/boot/dts/nvidia/dtbs-list; cat arch/arm64/boot/dts/qcom/dtbs-list; cat arch/arm64/boot/dts/realtek/dtbs-list; cat arch/arm64/boot/dts/renesas/dtbs-list; cat arch/arm64/boot/dts/rockchip/dtbs-list; cat arch/arm64/boot/dts/socionext/dtbs-list; cat arch/arm64/boot/dts/sprd/dtbs-list; cat arch/arm64/boot/dts/st/dtbs-list; cat arch/arm64/boot/dts/synaptics/dtbs-list; cat arch/arm64/boot/dts/tesla/dtbs-list; cat arch/arm64/boot/dts/ti/dtbs-list; cat arch/arm64/boot/dts/toshiba/dtbs-list; cat arch/arm64/boot/dts/xilinx/dtbs-list; :; } > arch/arm64/boot/dts/dtbs-list
cat: arch/arm64/boot/dts/actions/dtbs-list: No such file or directory
host-make[3]: *** [scripts/Makefile.build:423: arch/arm64/boot/dts/dtbs-list] Error 1
host-make[3]: *** Deleting file 'arch/arm64/boot/dts/dtbs-list'
host-make[2]: *** [Makefile:1394: dtbs] Error 2
host-make[2]: *** Waiting for unfinished jobs....
make[1]: *** [package/pkg-generic.mk:293: /home/fainelli/work/buildroot/output/arm64/build/linux-custom/.stamp_built] Error 2
make: *** [Makefile:27: _all] Error 2

Buildroot builds its own GNU Make version 4.4.1.

Any clues what might be going on? My defconfig is such that only CONFIG_ARCH_BRCMSTB is enabled, and there are essentially no .dtbs file that will be generated.

Thanks!
--
Florian

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature