[Toybox] 0.7.8 is out.

enh enh at google.com
Tue Nov 6 12:21:21 PST 2018


On Thu, Nov 1, 2018 at 4:00 PM Rob Landley <rob at landley.net> wrote:
>
> On 11/1/18 2:28 PM, enh wrote:
> > [gmail seems to have taken away my "edit subject: line" option?]
>
> It disabled my subscription because the release announcement bounced coming back
> to me, and one of your emails last week wasn't even in the spam filter (just
> gone, fished it out of the web archive and applied the patch that way).
>
> > this:
> >
> >   Not configured (run 'make defconfig' or 'make menuconfig')
> >   Makefile:29: recipe for target '.config' failed
> >
> > has made my life more annoying. the errors about *which* toys were missing were
> > more helpful than "your .config is out of date with respect to the kconfig input
> > [which you don't use]".
> >
> > i can work around it with `touch .config` though, so doesn't matter.
>
> I thought you were doing:
>
>   NO_BUILD=1 scripts/make.sh
>
> To regenerated the generated/ directory?

not sure i knew about that. i'll update the docs. (whether i'll
remember or whether i'll just keep running `make` from muscle memory
is another matter entirely...)

> The "make toybox" target is basically a wrapper around scripts/make.sh.
>
> I should really split the header generation out into its own script, but there's
> shared infrastructure (the do_loudly function and environment variables and
> such)... I'd have to source one from the other, or split all that out into a
> third file sourced by both... So I added the NO_BUILD variable to stop after
> updating generated/ instead.

seems like it doesn't actually work? seems to build regardless. ah,
looks like it's NOBUILD, not NO_BUILD.

> > note also that i see this with a clean host build (debian testing, `make
> > defconfig && make`):
> >
> >   ...
> >   scripts/make.sh
> >   Generate headers from toys/*/*.c...
> >   generated/newtoys.h scripts/make.sh: line 98: echo: write error: Broken pipe
> >   scripts/make.sh: line 99: echo: write error: Broken pipe
> >   scripts/make.sh: line 100: echo: write error: Broken pipe
> >   scripts/make.sh: line 101: echo: write error: Broken pipe
> >   Library probe...........
> >   ...
> >
> > seems to build fine though.
>
> Huh. I'm not seeing that. Yes, it's harmless, it's because genbuildsh() is a
> series of "echo" statements and we're doing "genbuildsh | head -n 7" so the last
> few lines are being discarded.
>
> In _theory_ they go into the pipe buffer (which could always absorb at least a
> page and these days can absorb a lot more), in practice it looks like they're
> not. Race condition with the consumer closing the pipe before the producer has
> produced all the output, probably why I didn't see it.
>
> Ah! You're using toybox echo, and I was paranoid about announcing and erroring
> about output not being fully consumed. (The exit path has a fflush(0) and checks
> the error result on every command.) I need to get mkroot building under itself
> so I have that test environment back...
>
> Is echo one of the funny ones like "false" that's breaks the rules? No, posix
> says "stderr is only to be used for diagnostic messages" which means it _is_ to
> be used for diagnostic messages, and "could not write to stdout" is technically
> an error...
>
> > i've updated AOSP on the assumption that nothing much will happen between now
> > and tomorrow afternoon :-)
>
> Ah. A challenge.
>
> I cleared off 120 gigs to download AOSP yesterday while I'm at home with a cable
> modem instead of phone tethering, but the web page says 250 gigs. I'll see what
> else I can free up. (This is a terabyte drive, but 250 gigs is 1/4 of it and
> then another 100+ to build so the AOSP build wants 1/3 of a terabyte just to
> build one instance.)
>
> Rob



More information about the Toybox mailing list