[Toybox] 0.7.8 is out.

Rob Landley rob at landley.net
Thu Nov 1 16:00:18 PDT 2018


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?

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.

> 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