kbuild: unify cmd_dt_S_dtb and cmd_dt_S_dtbo

Message ID 20221229184650.1107463-1-masahiroy@kernel.org
State New
Headers
Series kbuild: unify cmd_dt_S_dtb and cmd_dt_S_dtbo |

Commit Message

Masahiro Yamada Dec. 29, 2022, 6:46 p.m. UTC
  cmd_dt_S_dtb and cmd_dt_S_dtbo are almost the same; the only differnce
is the prefix of the bein/end symbols. (__dtb vs __dtbo)

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 scripts/Makefile.lib | 45 +++++++++++++++-----------------------------
 1 file changed, 15 insertions(+), 30 deletions(-)
  

Comments

Nicolas Schier Dec. 29, 2022, 7:47 p.m. UTC | #1
On Fri, Dec 30, 2022 at 03:46:50AM +0900 Masahiro Yamada wrote:
> cmd_dt_S_dtb and cmd_dt_S_dtbo are almost the same; the only differnce
> is the prefix of the bein/end symbols. (__dtb vs __dtbo)

Two letters got lost: differ_e_nce, be_g_in.

> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  scripts/Makefile.lib | 45 +++++++++++++++-----------------------------
>  1 file changed, 15 insertions(+), 30 deletions(-)
> 
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 4a4a5f67c1a6..100a386fcd71 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -368,40 +368,25 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
>  DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
>  
>  # Generate an assembly file to wrap the output of the device tree compiler
> -quiet_cmd_dt_S_dtb= DTBS    $@
> -cmd_dt_S_dtb=						\
> -{							\
> -	echo '\#include <asm-generic/vmlinux.lds.h>'; 	\
> -	echo '.section .dtb.init.rodata,"a"';		\
> -	echo '.balign STRUCT_ALIGNMENT';		\
> -	echo '.global __dtb_$(subst -,_,$(*F))_begin';	\
> -	echo '__dtb_$(subst -,_,$(*F))_begin:';		\
> -	echo '.incbin "$<" ';				\
> -	echo '__dtb_$(subst -,_,$(*F))_end:';		\
> -	echo '.global __dtb_$(subst -,_,$(*F))_end';	\
> -	echo '.balign STRUCT_ALIGNMENT'; 		\
> -} > $@
> +quiet_cmd_wrap_S_dtb = WRAP    $@
> +      cmd_wrap_S_dtb = {								\
> +		symbase=__$(patsubst .%,%,$(suffix $<))_$(subst -,_,$(notdir $*));	\

As long as I know, '$(notdir $*)' should be equivalent to '$(*F)'.  Is it just
personal preference or is there some other reason for choosing one or the
other?

Nevertheless, with the typos fixed, it looks good to me:
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
  
Masahiro Yamada Dec. 30, 2022, 3:08 a.m. UTC | #2
On Fri, Dec 30, 2022 at 4:47 AM Nicolas Schier <nicolas@fjasle.eu> wrote:
>
> On Fri, Dec 30, 2022 at 03:46:50AM +0900 Masahiro Yamada wrote:
> > cmd_dt_S_dtb and cmd_dt_S_dtbo are almost the same; the only differnce
> > is the prefix of the bein/end symbols. (__dtb vs __dtbo)
>
> Two letters got lost: differ_e_nce, be_g_in.

Ah, thanks. I will fix it.


>
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
> >
> >  scripts/Makefile.lib | 45 +++++++++++++++-----------------------------
> >  1 file changed, 15 insertions(+), 30 deletions(-)
> >
> > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> > index 4a4a5f67c1a6..100a386fcd71 100644
> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -368,40 +368,25 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
> >  DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
> >
> >  # Generate an assembly file to wrap the output of the device tree compiler
> > -quiet_cmd_dt_S_dtb= DTBS    $@
> > -cmd_dt_S_dtb=                                                \
> > -{                                                    \
> > -     echo '\#include <asm-generic/vmlinux.lds.h>';   \
> > -     echo '.section .dtb.init.rodata,"a"';           \
> > -     echo '.balign STRUCT_ALIGNMENT';                \
> > -     echo '.global __dtb_$(subst -,_,$(*F))_begin';  \
> > -     echo '__dtb_$(subst -,_,$(*F))_begin:';         \
> > -     echo '.incbin "$<" ';                           \
> > -     echo '__dtb_$(subst -,_,$(*F))_end:';           \
> > -     echo '.global __dtb_$(subst -,_,$(*F))_end';    \
> > -     echo '.balign STRUCT_ALIGNMENT';                \
> > -} > $@
> > +quiet_cmd_wrap_S_dtb = WRAP    $@
> > +      cmd_wrap_S_dtb = {                                                             \
> > +             symbase=__$(patsubst .%,%,$(suffix $<))_$(subst -,_,$(notdir $*));      \
>
> As long as I know, '$(notdir $*)' should be equivalent to '$(*F)'.  Is it just
> personal preference or is there some other reason for choosing one or the
> other?

Your understanding is correct.
Automatic variables can have 'D' / 'F', as explained in the manual.
https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html


Yes, it is just my personal preference.
Perhaps, I did not need to change it, though.






> Nevertheless, with the typos fixed, it looks good to me:
> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
>
  

Patch

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 4a4a5f67c1a6..100a386fcd71 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -368,40 +368,25 @@  DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
 DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
 
 # Generate an assembly file to wrap the output of the device tree compiler
-quiet_cmd_dt_S_dtb= DTBS    $@
-cmd_dt_S_dtb=						\
-{							\
-	echo '\#include <asm-generic/vmlinux.lds.h>'; 	\
-	echo '.section .dtb.init.rodata,"a"';		\
-	echo '.balign STRUCT_ALIGNMENT';		\
-	echo '.global __dtb_$(subst -,_,$(*F))_begin';	\
-	echo '__dtb_$(subst -,_,$(*F))_begin:';		\
-	echo '.incbin "$<" ';				\
-	echo '__dtb_$(subst -,_,$(*F))_end:';		\
-	echo '.global __dtb_$(subst -,_,$(*F))_end';	\
-	echo '.balign STRUCT_ALIGNMENT'; 		\
-} > $@
+quiet_cmd_wrap_S_dtb = WRAP    $@
+      cmd_wrap_S_dtb = {								\
+		symbase=__$(patsubst .%,%,$(suffix $<))_$(subst -,_,$(notdir $*));	\
+		echo '\#include <asm-generic/vmlinux.lds.h>';				\
+		echo '.section .dtb.init.rodata,"a"';					\
+		echo '.balign STRUCT_ALIGNMENT';					\
+		echo ".global $${symbase}_begin";					\
+		echo "$${symbase}_begin:";						\
+		echo '.incbin "$<" ';							\
+		echo ".global $${symbase}_end";						\
+		echo "$${symbase}_end:";						\
+		echo '.balign STRUCT_ALIGNMENT';					\
+	} > $@
 
 $(obj)/%.dtb.S: $(obj)/%.dtb FORCE
-	$(call if_changed,dt_S_dtb)
-
-# Generate an assembly file to wrap the output of the device tree compiler
-quiet_cmd_dt_S_dtbo= DTBOS   $@
-cmd_dt_S_dtbo=						\
-{							\
-	echo '\#include <asm-generic/vmlinux.lds.h>';	\
-	echo '.section .dtb.init.rodata,"a"';		\
-	echo '.balign STRUCT_ALIGNMENT';		\
-	echo '.global __dtbo_$(subst -,_,$(*F))_begin';	\
-	echo '__dtbo_$(subst -,_,$(*F))_begin:';	\
-	echo '.incbin "$<" ';				\
-	echo '__dtbo_$(subst -,_,$(*F))_end:';		\
-	echo '.global __dtbo_$(subst -,_,$(*F))_end';	\
-	echo '.balign STRUCT_ALIGNMENT';		\
-} > $@
+	$(call if_changed,wrap_S_dtb)
 
 $(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE
-	$(call if_changed,dt_S_dtbo)
+	$(call if_changed,wrap_S_dtb)
 
 quiet_cmd_dtc = DTC     $@
 cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \