[Toybox] mac CI breakage

enh enh at google.com
Thu Jun 2 10:23:19 PDT 2022


On Thu, Jun 2, 2022 at 7:58 AM Rob Landley <rob at landley.net> wrote:

>
>
> On 6/2/22 00:47, enh via Toybox wrote:
> > the mac build on github has been broken for a few days:
> >
> > Run make
> > scripts/make.sh
> > readlink: illegal option -- f
> > usage: readlink [-n] [file ...]
> > readlink: illegal option -- f
> > usage: readlink [-n] [file ...]
> > $GENDIR=generated cannot include $***
> > make: *** [toybox] Error 1
> > Error: Process completed with exit code 2.
> >
> > (from
> https://github.com/landley/toybox/runs/6682393952?check_suite_focus=true
> > <
> https://github.com/landley/toybox/runs/6682393952?check_suite_focus=true>)
> >
> > funnily enough, it works fine for me locally because i'm on macOS 12,
> and one of
> > the few improvements i've actually noticed in it is that readlink now
> has a -f
> > option. i've attached a patch that switches the CI over to just testing
> the
> > current macOS release, but 10.15 is actually still getting security
> updates
> > (until the end of this year, if history is any guide).
>
> Applied.
>
> > note that it's possible to tell the compiler you're _targeting_ an older
> macOS
> > version, so we could do that if you don't care about _building_ on old
> versions
> > of macOS [without installing a custom readlink] but still want to support
> > _running_ on them...
>
> If we build an older target binary will it run on newer OS vesions? If so
> that's
> probably a good thing to do.
>

yeah, it's basically like Android... more of a "minimum" than a "target".
(effectively "don't let me link against functions that don't exist yet".)

in the short term, though, it looks like we can't say "12.4" (i was
confused by the previous "10.15" --- Apple changed their numbering scheme,
so "12.4" is actually more like "10.15.4" than "10.15", despite how it
looks), so here's a patch that should work (with a link to the github docs
for the "citation needed" :-) )...




> Longer-term, I'm trying to come up with a build.sh that compiles just the
> toybox
> commands it needs to build itself, without running any configure plumbing,
> needing to probe anything about the host (assume "no" for all checks), or
> pulling in any optional libraries. Just a cc command line building a list
> of *.c
> files with a snapshot .config and generated/*.h so the only binary you run
> for
> that build is the compiler. Then you can run the config and such with the
> resulting binaries. (Basically a "make airlock" variant, except it's a
> canned
> bootstrap airlock.)
>
> Alas, I need to get toysh to the point it runs make.sh and install.sh
> first. And
> before _that_ I'm trying to get toysh to run test.sh. Working on it...
>
> Rob
>
> (It would be easier if I had one generated/generated.h I could #include
> instead
> of needing 5 of them, but config.h needs to go before portability.h, and
> then
> the other 4 happen after #including everything else so the full range of
> types
> is available. I suppose I could keep config.h separate and have a
> generated/toys.h that #includes the other 4, and then when providing a
> canned
> generated directory as cc -I it would only need two headers in it. They're
> separate so they can be rebuilt as needed, but a hand-crafted canned file
> can
> collate...)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20220602/dca20c42/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Apparently-macOS-12.4-isn-t-an-option.patch
Type: application/octet-stream
Size: 1167 bytes
Desc: not available
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20220602/dca20c42/attachment-0003.obj>


More information about the Toybox mailing list