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

From: Masahiro Yamada
Date: Wed Apr 17 2024 - 10:32:37 EST


On Wed, Apr 17, 2024 at 2:22 AM Florian Fainelli
<florian.fainelli@xxxxxxxxxxxx> wrote:
>
> 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.



How to reproduce this in buildroot?



--
Best Regards
Masahiro Yamada