• Masahiro Yamada's avatar
    kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib · 7e7962dd
    Masahiro Yamada authored
    If CONFIG_OF_ALL_DTBS is enabled, "make ARCH=arm64 dtbs" compiles each
    DTB twice; one from arch/arm64/boot/dts/*/Makefile and the other from
    the dtb-$(CONFIG_OF_ALL_DTBS) line in arch/arm64/boot/dts/Makefile.
    It could be a race problem when building DTBS in parallel.
    
    Another minor issue is CONFIG_OF_ALL_DTBS covers only *.dts in vendor
    sub-directories, so this broke when Broadcom added one more hierarchy
    in arch/arm64/boot/dts/broadcom/<soc>/.
    
    One idea to fix the issues in a clean way is to move DTB handling
    to Kbuild core scripts.  Makefile.dtbinst already recognizes dtb-y
    natively, so it should not hurt to do so.
    
    Add $(dtb-y) to extra-y, and $(dtb-) as well if CONFIG_OF_ALL_DTBS is
    enabled.  All clutter things in Makefiles go away.
    
    As a bonus clean-up, I also removed dts-dirs.  Just use subdir-y
    directly to traverse sub-directories.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    [robh: corrected BUILTIN_DTB to CONFIG_BUILTIN_DTB]
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    7e7962dd
Makefile 319 Bytes