From: "Pali Rohár" <pali@kernel.org>
To: u-boot@lists.denx.de
Subject: [PATCH] Makefile: Correctly propagate failure when removing target
Date: Wed, 28 Oct 2020 03:25:17 +0100 [thread overview]
Message-ID: <20201028022517.rhue2riebpg2y7wv@pali> (raw)
In-Reply-To: <CAPnjgZ3_JStLy1ovRyvHmaXXnegaAOu7Vuqry9p-jaVn6g1j2g@mail.gmail.com>
On Tuesday 27 October 2020 20:10:37 Simon Glass wrote:
> Hi Paul,
>
> On Mon, 26 Oct 2020 at 07:11, Pali Roh?r <pali@kernel.org> wrote:
> >
> > On more places is used pattern 'command > $@ || rm -f $@'. But it does not
> > propagate failure from 'command' as 'rm -f' returns success.
> >
> > Fix it by calling 'false' to correctly propagate failure after 'rm -f'.
> >
> > Signed-off-by: Pali Roh?r <pali@kernel.org>
> > ---
> > Makefile | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> But I'm not sure about the use of {}. I would normally use ()
( ... ) spawns new shell and run commands in that new shell
{ ... ; } groups command together and runs them in the current shell
So { ... ; } should be more efficient as it spawns less processes. But
result should be same, return value from 'false', which returns 1.
I'm using { ... ; } when it is not needed to spawns new processes and
running commands in current shell is fine. I think that writing ( ... )
should be equivalent to sh -c '...' (with correctly exported variables).
>
> >
> > diff --git a/Makefile b/Makefile
> > index 5a0ef18668..94feb7d9a5 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1005,7 +1005,7 @@ cmd_cat = cat $(filter-out $(PHONY), $^) > $@
> > append = cat $(filter-out $< $(PHONY), $^) >> $@
> >
> > quiet_cmd_pad_cat = CAT $@
> > -cmd_pad_cat = $(cmd_objcopy) && $(append) || rm -f $@
> > +cmd_pad_cat = $(cmd_objcopy) && $(append) || { rm -f $@; false; }
> >
> > quiet_cmd_lzma = LZMA $@
> > cmd_lzma = lzma -c -z -k -9 $< > $@
> > @@ -1312,7 +1312,7 @@ endif
> > shell_cmd = { $(echo-cmd) $(cmd_$(1)); }
> >
> > quiet_cmd_objcopy_uboot = OBJCOPY $@
> > -cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE)) || rm -f $@
> > +cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE)) || { rm -f $@; false; }
> >
> > u-boot-nodtb.bin: u-boot FORCE
> > $(call if_changed,objcopy_uboot)
> > @@ -1584,12 +1584,12 @@ u-boot.spr: spl/u-boot-spl.img u-boot.img FORCE
> > ifneq ($(CONFIG_ARCH_SOCFPGA),)
> > quiet_cmd_gensplx4 = GENSPLX4 $@
> > cmd_gensplx4 = cat spl/u-boot-spl.sfp spl/u-boot-spl.sfp \
> > - spl/u-boot-spl.sfp spl/u-boot-spl.sfp > $@ || rm -f $@
> > + spl/u-boot-spl.sfp spl/u-boot-spl.sfp > $@ || { rm -f $@; false; }
> > spl/u-boot-splx4.sfp: spl/u-boot-spl.sfp FORCE
> > $(call if_changed,gensplx4)
> >
> > quiet_cmd_socboot = SOCBOOT $@
> > -cmd_socboot = cat spl/u-boot-splx4.sfp u-boot.img > $@ || rm -f $@
> > +cmd_socboot = cat spl/u-boot-splx4.sfp u-boot.img > $@ || { rm -f $@; false; }
> > u-boot-with-spl.sfp: spl/u-boot-splx4.sfp u-boot.img FORCE
> > $(call if_changed,socboot)
> >
> > @@ -1599,12 +1599,12 @@ cmd_gensplpadx4 = dd if=/dev/zero of=spl/u-boot-spl.pad bs=64 count=1024 ; \
> > spl/u-boot-spl.sfp spl/u-boot-spl.pad \
> > spl/u-boot-spl.sfp spl/u-boot-spl.pad \
> > spl/u-boot-spl.sfp spl/u-boot-spl.pad > $@ || \
> > - rm -f $@ spl/u-boot-spl.pad
> > + { rm -f $@ spl/u-boot-spl.pad; false; }
> > u-boot-spl-padx4.sfp: spl/u-boot-spl.sfp FORCE
> > $(call if_changed,gensplpadx4)
> >
> > quiet_cmd_socnandboot = SOCNANDBOOT $@
> > -cmd_socnandboot = cat u-boot-spl-padx4.sfp u-boot.img > $@ || rm -f $@
> > +cmd_socnandboot = cat u-boot-spl-padx4.sfp u-boot.img > $@ || { rm -f $@; false; }
> > u-boot-with-nand-spl.sfp: u-boot-spl-padx4.sfp u-boot.img FORCE
> > $(call if_changed,socnandboot)
> >
> > --
> > 2.20.1
> >
next prev parent reply other threads:[~2020-10-28 2:25 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-26 13:10 [PATCH] Makefile: Correctly propagate failure when removing target Pali Rohár
2020-10-28 2:10 ` Simon Glass
2020-10-28 2:25 ` Pali Rohár [this message]
2020-10-30 18:15 ` Simon Glass
2020-11-17 21:44 ` Pali Rohár
2020-11-18 4:00 ` Tom Rini
2020-12-02 21:21 ` 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=20201028022517.rhue2riebpg2y7wv@pali \
--to=pali@kernel.org \
--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 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.