All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Behun <marek.behun@nic.cz>
To: Patrick Delaunay <patrick.delaunay@foss.st.com>
Cc: <u-boot@lists.denx.de>, Simon Glass <sjg@chromium.org>,
	Andre Przywara <andre.przywara@arm.com>,
	Bin Meng <bmeng.cn@gmail.com>,
	U-Boot STM32 <uboot-stm32@st-md-mailman.stormreply.com>
Subject: Re: [RESEND PATCH] build: remove the variable NM in gen_ll_addressable_symbols.sh
Date: Thu, 22 Jul 2021 22:00:33 +0200	[thread overview]
Message-ID: <20210722220033.585757c9@thinkpad> (raw)
In-Reply-To: <20210721095553.RESEND.1.I550b95f6d12d59aeef5b744d837dbb360037d39e@changeid>

On Wed, 21 Jul 2021 09:56:07 +0200
Patrick Delaunay <patrick.delaunay@foss.st.com> wrote:

> With LTO activated, the buildman tools failed with an error on my
> configuration (Ubuntu 20.04, stm32mp15_trusted_defconfig) with the error:
> 
> ../arm-linux-gnueabi/bin/nm:
> 	scripts/gen_ll_addressable_symbols.sh: file format not recognized
> 
> It seems the shell variable initialization NM=$(NM) is not correctly
> interpreted when shell is started in the Makefile, but I have not this
> issue when I compile the same target without buildman.
> 
> I don't found the root reason of the problem but I solve it by
> providing $(NM) as script parameter instead using a shell variable.
> 
> The command executed is identical:
> 
> cmd_keep-syms-lto.c := NM=arm-none-linux-gnueabihf-gcc-nm \
> u-boot/scripts/gen_ll_addressable_symbols.sh arch/arm/cpu/built-in.o \
> .... net/built-in.o >keep-syms-lto.c
> 
> cmd_keep-syms-lto.c := u-boot/scripts/gen_ll_addressable_symbols.sh \
> arm-none-linux-gnueabihf-gcc-nm arch/arm/cpu/built-in.o \
> ... net/built-in.o > keep-syms-lto.c
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
> Resend with correct commit message for patman
>   s/Serie-cc/Series-cc/
> 
> 
>  Makefile                              | 2 +-
>  scripts/Makefile.spl                  | 2 +-
>  scripts/gen_ll_addressable_symbols.sh | 5 ++++-
>  3 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index ca2432c8ce..140dea09f4 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1736,7 +1736,7 @@ u-boot-keep-syms-lto_c := $(patsubst %.o,%.c,$(u-boot-keep-syms-lto))
>  
>  quiet_cmd_keep_syms_lto = KSL     $@
>        cmd_keep_syms_lto = \
> -	NM=$(NM) $(srctree)/scripts/gen_ll_addressable_symbols.sh $^ >$@
> +	$(srctree)/scripts/gen_ll_addressable_symbols.sh $(NM) $^ > $@
>  
>  quiet_cmd_keep_syms_lto_cc = KSLCC   $@
>        cmd_keep_syms_lto_cc = \
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 5be1a9ba1b..25a3e7fa52 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -459,7 +459,7 @@ u-boot-spl-keep-syms-lto_c := \
>  
>  quiet_cmd_keep_syms_lto = KSL     $@
>        cmd_keep_syms_lto = \
> -	NM=$(NM) $(srctree)/scripts/gen_ll_addressable_symbols.sh $^ >$@
> +	$(srctree)/scripts/gen_ll_addressable_symbols.sh $(NM) $^ > $@
>  
>  quiet_cmd_keep_syms_lto_cc = KSLCC   $@
>        cmd_keep_syms_lto_cc = \
> diff --git a/scripts/gen_ll_addressable_symbols.sh b/scripts/gen_ll_addressable_symbols.sh
> index 3978a39d97..b8840dd011 100755
> --- a/scripts/gen_ll_addressable_symbols.sh
> +++ b/scripts/gen_ll_addressable_symbols.sh
> @@ -5,8 +5,11 @@
>  # Generate __ADDRESSABLE(symbol) for every linker list entry symbol, so that LTO
>  # does not optimize these symbols away
>  
> +# The expected parameter of this script is the command requested to have
> +# the U-Boot symbols to parse, for example: $(NM) $(u-boot-main)
> +
>  set -e
>  
>  echo '#include <common.h>'
> -$NM "$@" 2>/dev/null | grep -oe '_u_boot_list_2_[a-zA-Z0-9_]*_2_[a-zA-Z0-9_]*' | \
> +$@ 2>/dev/null | grep -oe '_u_boot_list_2_[a-zA-Z0-9_]*_2_[a-zA-Z0-9_]*' | \
>  	sort -u | sed -e 's/^\(.*\)/extern char \1[];\n__ADDRESSABLE(\1);/'

Shouldn't we use "$@" ? In case the arguments contain spaces?

Marek

  reply	other threads:[~2021-07-22 20:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-21  7:56 [RESEND PATCH] build: remove the variable NM in gen_ll_addressable_symbols.sh Patrick Delaunay
2021-07-22 20:00 ` Marek Behun [this message]
2021-07-29 16:49 ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210722220033.585757c9@thinkpad \
    --to=marek.behun@nic.cz \
    --cc=andre.przywara@arm.com \
    --cc=bmeng.cn@gmail.com \
    --cc=patrick.delaunay@foss.st.com \
    --cc=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-stm32@st-md-mailman.stormreply.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.