public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Patrick DELAUNAY <patrick.delaunay@st.com>
To: u-boot@lists.denx.de
Subject: [PATCH] Makefile: Fix u-boot-nodtb.bin target
Date: Wed, 4 Nov 2020 08:53:07 +0000	[thread overview]
Message-ID: <1604479987440.27440@st.com> (raw)
In-Reply-To: <20201102141533.fegm33d4i2aumxcw@pali>

Hi Pali,


> From: Pali Roh?r <pali@kernel.org>
> Sent: lundi 2 novembre 2020 15:16
> 
> On Monday 02 November 2020 13:25:56 Patrick DELAUNAY wrote:
> > Hi Tom and Pali,
> >
> > > From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Tom Rini
> > > Sent: samedi 24 octobre 2020 16:52
> > >
> > > On Wed, Oct 07, 2020 at 03:39:40PM +0200, Pali Roh?r wrote:
> > >
> > > > This change fixes two issues when building u-boot-nodtb.bin target:
> > > >
> > > > * Remove intermediate binary u-boot-nodtb.bin from disk when static_rela
> > > >   call (which modifies u-boot-nodtb.bin binary) failed. It is required
> > > >   because previous objcopy call creates binary and static_rela finish it.
> > > >
> > > > * Do not call static_rela cmd when u-boot-nodtb.bin binary was not
> > > >   created/updated by previous objcopy call.
> > > >
> > > > Second fix would ensure that u-boot-nodtb.bin binary is not
> > > > updated when all prerequisites were up-to-date. And therefore
> > > > final binary u-boot.bin is not updated in case all prerequisites
> > > > were not modified and were up-to-date.
> > > >
> > > > Now running 'make SOURCE_DATE_EPOCH=0 u-boot.bin' second time
> now
> > > does
> > > > not touch u-boot.bin binary in case nothing was modified, so GNU
> > > > make can correctly detect that everything is up-to-date.
> > > >
> > > > Signed-off-by: Pali Roh?r <pali@kernel.org>
> > > > Reviewed-by: Simon Glass <sjg@chromium.org>
> > >
> > > Applied to u-boot/master, thanks!
> >
> > Since this patch is applyied on master branch, I have error when I compile with
> the verbose option V=1.
> >
> > I don't found a correction for this issue until now... except revert this commit.
> >
> > For information: I use stm32mp1 platform = ARMv7 32bits I have the
> > error:
> >
> > scripts/Kbuild.include:220: *** Recursive variable 'echo-cmd' references itself
> (eventually).  Stop.
> > make[1]: *** Waiting for unfinished jobs....
> > make -f /local/home/frq07632/views/u-boot/scripts/Makefile.build
> > obj=arch/arm/dts dtbs
> 
> Hello Patrick!
> 
> Now I was able to trigger this issue, but it seems to be present only sometimes.
> Calling make more times hides that issue, so it looks like something broken in
> Kconfig dependency generator for Makefiles... Or maybe something dependent on
> GNU make...
> 
> I played a bit with it and after changing following line in that patch
> 
> shell_cmd = { $(echo-cmd) $(cmd_$(1)); }
> 
> by
> 
> shell_cmd = { $(call echo-cmd,$(1)) $(cmd_$(1)); }
> 
> that issue disappeared. But because it triggered on my machine only sometimes, I
> do not know if it finally fixes it.

on my machine (Ubuntu 18.04 / fast laptop with Core i7) it is 100% reproduce with:
1/ gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))

2/ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu

3/ the request
export CROSS_COMPILE="arm-none-linux-gnueabihf-"
make stm32mp15_basic_defconfig
make V=1 all

 > Could you please try this change? And do you have reproducer how to _always_
> trigger it and not only sometimes?

I test it with the change:

-shell_cmd = { $(echo-cmd) $(cmd_$(1)); }
+shell_cmd = { $(call echo-cmd, $(1)) $(cmd_$(1)); }

And I never reproduced the error again and command is correctly displayed with V=1:

arm-none-linux-gnueabihf-objcopy --gap-fill=0xff  -j .text -j .secure_text -j .secure_data -j .rodata -j .hash -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn -j .binman_sym_table -j .text_rest -j .dtb.init.rodata -j .efi_runtime -j .efi_runtime_rel -O binary   u-boot u-boot-nodtb.bin && {  true; } || rm -f u-boot-nodtb.bin

or without option 

OBJCOPY u-boot-nodtb.bin

So I think that the issue is fixed.

Regards
Patrick

  reply	other threads:[~2020-11-04  8:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-07 13:39 [PATCH] Makefile: Fix u-boot-nodtb.bin target Pali Rohár
2020-10-12  3:34 ` Simon Glass
2020-10-24 14:51 ` Tom Rini
2020-11-02 13:25   ` Patrick DELAUNAY
2020-11-02 14:15     ` Pali Rohár
2020-11-04  8:53       ` Patrick DELAUNAY [this message]
2020-11-04  9:32         ` Pali Rohár

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=1604479987440.27440@st.com \
    --to=patrick.delaunay@st.com \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox