Message ID | 20191110153043.111710-1-dima@golovin.in (mailing list archive) |
---|---|
State | Mainlined |
Commit | 29c623d64f0dcd6aa10e0eabd16233e77114090b |
Headers | show |
Series | ARM: kbuild: use correct nm executable | expand |
On Sun, Nov 10, 2019 at 05:30:39PM +0200, Dmitry Golovin wrote: > Since $(NM) variable can be easily overridden for the whole build, it's > better to use it instead of $(CROSS_COMPILE)nm. The use of $(CROSS_COMPILE) > prefixed variables where their calculated equivalents can be used is > incorrect. This fixes issues with builds where $(NM) is set to llvm-nm. > > Link: https://github.com/ClangBuiltLinux/linux/issues/766 > Signed-off-by: Dmitry Golovin <dima@golovin.in> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Cc: Matthias Maennich <maennich@google.com> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> Tested-by: Nathan Chancellor <natechancellor@gmail.com>
On Mon, Nov 11, 2019 at 12:32 AM Dmitry Golovin <dima@golovin.in> wrote: > > Since $(NM) variable can be easily overridden for the whole build, it's > better to use it instead of $(CROSS_COMPILE)nm. The use of $(CROSS_COMPILE) > prefixed variables where their calculated equivalents can be used is > incorrect. This fixes issues with builds where $(NM) is set to llvm-nm. > > Link: https://github.com/ClangBuiltLinux/linux/issues/766 > Signed-off-by: Dmitry Golovin <dima@golovin.in> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Cc: Matthias Maennich <maennich@google.com> > --- Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> > arch/arm/boot/compressed/Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile > index 9219389bbe61..a1e883c5e5c4 100644 > --- a/arch/arm/boot/compressed/Makefile > +++ b/arch/arm/boot/compressed/Makefile > @@ -121,7 +121,7 @@ ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin -I$(obj) > asflags-y := -DZIMAGE > > # Supply kernel BSS size to the decompressor via a linker symbol. > -KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \ > +KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \ > sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \ > -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) ) > LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) > @@ -165,7 +165,7 @@ $(obj)/bswapsdi2.S: $(srctree)/arch/$(SRCARCH)/lib/bswapsdi2.S > # The .data section is already discarded by the linker script so no need > # to bother about it here. > check_for_bad_syms = \ > -bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ > +bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ > [ -z "$$bad_syms" ] || \ > ( echo "following symbols must have non local/private scope:" >&2; \ > echo "$$bad_syms" >&2; false ) > -- > 2.23.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sun, Nov 10, 2019 at 7:31 AM Dmitry Golovin <dima@golovin.in> wrote: > > Since $(NM) variable can be easily overridden for the whole build, it's > better to use it instead of $(CROSS_COMPILE)nm. The use of $(CROSS_COMPILE) > prefixed variables where their calculated equivalents can be used is > incorrect. This fixes issues with builds where $(NM) is set to llvm-nm. > > Link: https://github.com/ClangBuiltLinux/linux/issues/766 > Signed-off-by: Dmitry Golovin <dima@golovin.in> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Cc: Matthias Maennich <maennich@google.com> Thanks for the patch Dima. Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> You should wait a week from when you first sent this patch, then submit it to rmk's patch queue: https://www.armlinux.org.uk/developer/patches/section.php?section=0 You should create an account there. On https://www.armlinux.org.uk/developer/patches/add.php, Summary -> first line from commit Kernel version -> base repo you wrote the patch against, see examples https://www.armlinux.org.uk/developer/patches/section.php?section=0 Patch notes -> rest of commit body (with all these reviewed by tags added) More info: https://www.armlinux.org.uk/developer/ > --- > arch/arm/boot/compressed/Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile > index 9219389bbe61..a1e883c5e5c4 100644 > --- a/arch/arm/boot/compressed/Makefile > +++ b/arch/arm/boot/compressed/Makefile > @@ -121,7 +121,7 @@ ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin -I$(obj) > asflags-y := -DZIMAGE > > # Supply kernel BSS size to the decompressor via a linker symbol. > -KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \ > +KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \ > sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \ > -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) ) > LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) > @@ -165,7 +165,7 @@ $(obj)/bswapsdi2.S: $(srctree)/arch/$(SRCARCH)/lib/bswapsdi2.S > # The .data section is already discarded by the linker script so no need > # to bother about it here. > check_for_bad_syms = \ > -bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ > +bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ > [ -z "$$bad_syms" ] || \ > ( echo "following symbols must have non local/private scope:" >&2; \ > echo "$$bad_syms" >&2; false ) > -- > 2.23.0 >
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 9219389bbe61..a1e883c5e5c4 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -121,7 +121,7 @@ ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin -I$(obj) asflags-y := -DZIMAGE # Supply kernel BSS size to the decompressor via a linker symbol. -KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \ +KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \ sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \ -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) ) LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) @@ -165,7 +165,7 @@ $(obj)/bswapsdi2.S: $(srctree)/arch/$(SRCARCH)/lib/bswapsdi2.S # The .data section is already discarded by the linker script so no need # to bother about it here. check_for_bad_syms = \ -bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ +bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ [ -z "$$bad_syms" ] || \ ( echo "following symbols must have non local/private scope:" >&2; \ echo "$$bad_syms" >&2; false )
Since $(NM) variable can be easily overridden for the whole build, it's better to use it instead of $(CROSS_COMPILE)nm. The use of $(CROSS_COMPILE) prefixed variables where their calculated equivalents can be used is incorrect. This fixes issues with builds where $(NM) is set to llvm-nm. Link: https://github.com/ClangBuiltLinux/linux/issues/766 Signed-off-by: Dmitry Golovin <dima@golovin.in> Suggested-by: Nick Desaulniers <ndesaulniers@google.com> Cc: Matthias Maennich <maennich@google.com> --- arch/arm/boot/compressed/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)