From: Trent Piepho <tpiepho@impinj.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] Fix issue with printvars executing giant shell command
Date: Mon, 10 Sep 2018 17:45:47 +0000 [thread overview]
Message-ID: <1536601546.22056.12.camel@impinj.com> (raw)
In-Reply-To: <20180829204929.GA2617@scaer>
On Wed, 2018-08-29 at 22:49 +0200, Yann E. MORIN wrote:
> On 2018-08-17 16:15 -0700, Trent Piepho spake thusly:
> >
> > The solution here is to use $(strip $(foreach ...)), so the command
> > expands to "@:", which make is smart enough to not even execute and
> > wouldn't exceed any limits if it did.
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -988,13 +988,13 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
> > # displayed.
> > .PHONY: printvars
> > printvars:
> > - @:$(foreach V, \
> > + @:$(strip $(foreach V, \
>
> Why do we even need an actual command here? It works exactly the same
> without a rule, and this indeed also gets rid of a call to a shell (and
> consequently won't exceed the command line length limit).
Not quite exactly the same. There's no longer a recipe at all, only
the definition of a dependency for printvars, so the output will
include:
make[1]: Nothing to be done for 'printvars'.
Which isn't expected output for something that was parsing printvars.
I'll also mention that we saw this error running buildroot in certain
docker containers, but not everywhere. Whether or not make will pass a
giant sequence of whitespace to a shell ends up not being so simple,
and I couldn't find any precise rules that govern it. So just because
it works as desired in one test doesn't mean is must work that way
everywhere.
However, it is clearly defined that strip will convert a sequence of
whitespace to an empty string, so I figured better to relay on that.
next prev parent reply other threads:[~2018-09-10 17:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-17 23:15 [Buildroot] [PATCH] Fix issue with printvars executing giant shell command Trent Piepho
2018-08-29 20:49 ` Yann E. MORIN
2018-09-10 17:45 ` Trent Piepho [this message]
2018-09-10 18:18 ` Yann E. MORIN
2018-09-17 18:02 ` Trent Piepho
2018-09-17 19:54 ` Yann E. MORIN
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=1536601546.22056.12.camel@impinj.com \
--to=tpiepho@impinj.com \
--cc=buildroot@busybox.net \
/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