2023-12-03 08:06:13

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] kbuild: determine base DTB by suffix

When using the -dtbs syntax, you need to ensure to list the base first,
as follows:

foo-dtbs := foo_base.dtb foo_overlay1.dtbo foo_overlay2.dtbo
dtb-y := foo.dtb

You cannot do this arrangement:

foo-dtbs := foo_overlay1.dtbo foo_overlay2.dtbo foo_base.dtb

This restriction comes from $(firstword ...), but it is unneeded to
rely on the order in the -dtbs syntax.

Instead, you can simply determine the base by suffix because the
base (*.dtb) and overlays (*.dtbo) use different suffixes.

Signed-off-by: Masahiro Yamada <[email protected]>
---

scripts/Makefile.lib | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 1a965fe68e01..cd5b181060f1 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -83,8 +83,8 @@ dtb-$(CONFIG_OF_ALL_DTBS) += $(dtb-)
multi-dtb-y := $(call multi-search, $(dtb-y), .dtb, -dtbs)
# Primitive DTB compiled from *.dts
real-dtb-y := $(call real-search, $(dtb-y), .dtb, -dtbs)
-# Base DTB that overlay is applied onto (each first word of $(*-dtbs) expansion)
-base-dtb-y := $(foreach m, $(multi-dtb-y), $(firstword $(call suffix-search, $m, .dtb, -dtbs)))
+# Base DTB that overlay is applied onto
+base-dtb-y := $(filter %.dtb, $(call real-search, $(multi-dtb-y), .dtb, -dtbs))

always-y += $(dtb-y)

--
2.40.1


2023-12-04 11:18:15

by Nicolas Schier

[permalink] [raw]
Subject: Re: [PATCH] kbuild: determine base DTB by suffix

On Sun, Dec 03, 2023 at 05:05:48PM +0900, Masahiro Yamada wrote:
> When using the -dtbs syntax, you need to ensure to list the base first,
> as follows:
>
> foo-dtbs := foo_base.dtb foo_overlay1.dtbo foo_overlay2.dtbo
> dtb-y := foo.dtb
>
> You cannot do this arrangement:
>
> foo-dtbs := foo_overlay1.dtbo foo_overlay2.dtbo foo_base.dtb
>
> This restriction comes from $(firstword ...), but it is unneeded to
> rely on the order in the -dtbs syntax.
>
> Instead, you can simply determine the base by suffix because the
> base (*.dtb) and overlays (*.dtbo) use different suffixes.
>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---

Thanks, looks good to me.

Reviewed-by: Nicolas Schier <[email protected]>