[Toybox] [PATCH 1/2] Add MacOS 11.0 to CI Builds

enh enh at google.com
Thu Jan 7 12:49:48 PST 2021


On Thu, Jan 7, 2021 at 12:19 PM Rob Landley <rob at landley.net> wrote:

> On 1/6/21 2:02 PM, enh via Toybox wrote:
> > +Josh Gao <mailto:jmgao at google.com> tried to build toybox on
> darwin/arm64, but
> > the last i heard he was at the "you need to install GNU sed to
> bootstrap" step...
>
> I need to teach toybox to build toybox sed standalone and then do the rest
> of
> the build with it. That's been on my todo list for a while. (Possibly as a
> separate target.) And the question is what ELSE the build needs?
>

note that sed is the only thing we *need* in the sense of "the default one
is insufficient". so although "all the dependencies" would be nice, just
sed would be enough to get past the point where anyone would notice
the extra hermeticity.

(i did wonder if that sed usage could be rewritten in a way that would work
for the BSD sed too, but since my sed skills start and end at s///, i made
no progress.)

making `make defconfig` just do the right thing for darwin would be more
useful, but iirc i didn't get that working either, though i don't remember
why.

feel free to prod me now and then to update macos_defconfig btw. so far
i've only really worried about stuff that AOSP uses, but that seems silly
and we should probably include "everything in the regular defconfig that
passes the tests on macOS".


> $ scripts/record-commands make distclean defconfig toybox
> ...
> $ awk '{print $1}' log.txt | sort -u | tr '\n' ' '
> as basename cat cc chmod cmp dirname echo egrep find git grep head ld ln
> ls make
> mkdir nproc rm sed sort strip tail tee tr uname wc xargs
>
> Plus #!/bin/bash is called via absolute path and should probably be called
> out
> of the $PATH so toysh can pretend to be bash. (No, the #!/usr/bin/env trick
> doesn't eliminate an absolute path dependency, it just substitutes another
> one.)
>
> $ awk '{print $1}' log.txt | sort -u | while read i; do toybox | grep -qw
> $i ||
> echo $i; done
> as
> cc
> git
> ld
> make
> strip
> tr
>
> I see why you're poking me about tr, the rest are all toolchain commands.
> (And
> the "git --describe" silently falls back to the tarball version #define.)
>
> Ok, so a "make build_airlock" would need to fill generated/build_airlock
> with:
>
> basename cat chmod cmp dirname echo egrep find grep head ln ls mkdir nproc
> rm
> sed sort tail tee tr uname wc xargs
>
> > (fwiw, i *did* test on Raspberry Pi 400 just before the break, but that's
> > linux/arm32 which is sufficiently close to "Android" that there really
> shouldn't
> > be any surprises that the only issues i found were test
> suite assumptions about
> > what users/groups a Unix install always has. [those fixes were merged in
> December.])
>
> I need a test container, but I've been aiming for qemu/mkroot because that
> can
> run without root access...
>
> Rob
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20210107/5b60af64/attachment-0001.htm>


More information about the Toybox mailing list