[Toybox] CI for toybox

Rob Landley rob at landley.net
Mon Feb 13 20:55:12 PST 2012


On 02/10/2012 04:52 AM, Roger Meier wrote:
> Hello
> 
> I've added toybox to my build environment:
> http://www.bufferoverflow.ch/jenkins/job/toybox/
> 
> Might be of interest for you.

Um, yay?  What does your build environment do?

I'm feeding toybox into my aboriginal linux build, which creates the
smallest/simplest native development environment capable of rebuilding
itself under itself:

  http://landley.net/aboriginal/FAQ.html

It actually builds the same system for a dozen different targets (arm,
mips, powerpc, sparc, sh4, etc) and then boots most of them under qemu
so you have a native build environment without having to buy special
hardware.

The current version uses busybox to provide all the command line tools
(the whole thing is 7 packages: linux, gcc, binutils, make, bash,
busybox, and uClibc).  What I'm doing is installing toybox right after I
install busybox, overwriting the busybox tools with defconfig toybox and
seeing if the result can A) rebuild itself, B) build Linux From Scratch 6.8.

This is how I became busybox maintainer in the first place, way back
when: by extending busybox to replace everything but libc and the
toolchain from the Linux From Scratch build, I was more active than any
other developer, including Erik, so he handed it over when he got busy
with other things. (His 1.0 release still didn't remotely do what I
needed it to for my use case.)

It took a _lot_ of work to make that happen, but I eventually did.  Now
I'm doing the same thing with toybox, adding one command at a time until
aboriginal no longer needs busybox installed to build itself or LFS.
(And if you can build LFS, you can build anything natively by
building/installing your prerequisite packages first.)

I documented this in the roadmap wiki page:

http://elinux.org/Busybox_replacement#Use_case:_provide_a_self-hosting_development_environment

The delay in the recent 0.2.0 release was me making sure that at least
the i686 target built the basic aboriginal linux system image using
toybox defconfig in place of the appropriate busybox commands.
Aboriginal also builds arm, mips, powerpc, sparc, sh4, and so on, so I
have to test endianness and alignment issues, but my netbook is kinda
slow and I think my upstairs server has something wrong with it. (I run
a test three times and get two different answers.  I'd say "bad memory"
but it's been like that ever since I installed Gentoo on it...)

Rob

P.S.  I still vaguely want to get the package list down to four
packages: "compiler, libc, kernel, toybox". I had a tinycc fork for the
first (http://landley.net/code/tinycc and
http://landley.net/code/tinycc/qcc), and yes this means I'd need to add
"make" to toybox, but it _is_ in the SUSv4 utility list.  No point until
I get a non-gcc/binutils compiler, though...)

 1329195312.0


More information about the Toybox mailing list