[Toybox] Fwd: Re: Inquiry
Rob Landley
rob at landley.net
Fri May 30 18:57:48 PDT 2014
And permission to forward the reply to the list...
Rob
-------- Original Message --------
Subject: Re: Inquiry
Date: Wed, 28 May 2014 14:16:44 -0500
From: Rob Landley <rob at landley.net>
To: stacy.kenworthy at gmail.com
On 05/28/14 06:01, Stacy Kenworthy wrote:
> Hi Rob,
>
> What would be the most helpful to the project at this point? More
> development resources?
Short answer, "more scripts/test/*.test entries written from the online
POSIX docs".
Long answer: helpful to which project, Aboriginal Linux, Toybox, or
self-hosting Android?
Aboriginal Linux is semi-mothballed because it hit its 1.0 release goals
and now "does what it says on the tin". It rebuilds itself under itself,
and builds Linux From Scratch, without any gnu packages except the
toolchain. (Making that happen involved me becoming busybox maintainer
for a couple years because I was doing more development than Erik was.)
I'm using it as a toybox test harness (replace one busybox command with
a toybox implementation, build it and build LFS under it, rinse repeat)
until I run out of busybox commands to replace. I also need to replace
uClibc with musl, which is more time consuming than hard.
(Long-term, I want to do http://landley.net/qcc and one thing that needs
to do is accept the gcc command line options. I made my toolchain
relocatable with a wrapper binary that parses the gcc command line and
rewrites it to start with --nostdinc --nostdlib and then explicitly say
where to find all the headers and libraries and .o files the build uses.
This wrapper was originally part of uClibc, abandoning said wrapper is
how bulidroot got started. I think I explained that in
http://landley.net/aboriginal/history.html if you're _really- bored.
Anyway, writing a new version of that wrapper that's A) not a giant mass
of scar tissue from too much patching by too many different people, B)
not uClibc-centric, C) public domain instead of GPL, is useful for qcc
so I'm letting the rewrite block aboriginal->musl migration to force me
to _do_ said rewrite. The old one's in aboriginal/sources/toys/ccwrap.c
if you're curious.)
Toybox needs more users and testers, and it needs more cleanup work.
Just trying to actually use the commands that are there in something
real, and telling me if they work for you is quite helpful. (Well, the
ones enabled by "make defconfig", anyway. The commands in "pending"
should all default no because they've got various known problems and
limitations.)
I've put up a http://landley.net/toybox/cleanup.html page describing
some of my "turn a 1500 line ifconfig into a 500 line ifconfig" work.
The "pending" directory is full of stuff I haven't managed to clean up yet.
I _desperately_ need more test suite entries, scripts/test doesn't have
nearly full coverage. (You can run one test with "scripts/test.sh
commandname" or run them all with "make test". In theory going through
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
finding commands we've already implemented and making test entries about
everything the spec says (not just "what we should accept" but "what we
should _fail_ on") would be great. It's also really nit-picky and time
consuming. (I usually copy "cat.test" as a template, but if some tests
should only run when certain config entries are enabled sort.test shows
that, and chgrp has a "should only run as root" test. I've been meaning
to do an aboriginal linux build control image that runs the toybox test
suite as root in a known environment, that way tests for things like
"mount" count be done without screwing up somebody's host if something
goes wrong...)
(Yes, automated regression testing with respect to standards documents
is a thing I care about, even before the 1.0 release. :)
For the android self-hosting thing, all of the above advances it
(aboriginal with musl, toybox, llvm, and the android kernel is 3/4 of
the way to self-hosting android). I need to bang on http://ellcc.org but
the last time I tried it the results weren't pretty:
http://ellcc.org/blog/?p=231
http://landley.net/notes-2014.html#08-03-2014
http://landley.net/notes-2014.html#20-01-2014
The last real discussion of that on the list was november:
http://lists.landley.net/pipermail/aboriginal-landley.net/2013-November/date.html
I note that ellcc was still using binutils, because http://lld.llvm.org
"wasn't ready yet" (whatever that means). (There's a reason I still want
to do qcc even if llvm starts working for this. If
http://pcc.ludd.ltu.se/ revives that would be good too. Either needs a
'cfront' update to bootstrap llvm though...)
Plus trying to build AOSP under Aboriginal, but that's "the distro
bootstrapping problem". Which I'm sure I covered in my blog, and was
probably also in
https://speakerdeck.com/mirell/developing-for-non-x86-targets-using-qemu
too. ("Firmware Linux" was the old name for Aboriginal Linux.)
P.S. Do you mind if I cc: this response to the mailing list?
Rob
More information about the Toybox
mailing list