Scratchbox 2, bringing crosscompiling to Debian
Scratchbox is a mature toolkit which allows fast cross-compilation of unmodified sources - source configuration scripts wont even notice that they were crosscompiled.
However, Scratchbox binary debs take over 200MB combined. This space goes mostly to host tools (make,Perl,Python,flex,texinfo, and so on), compiled specifically for Scratchbox. Using native binaries wherever possible is important, as often most of Debian package building goes elsewhere than actual GCC calls.
Scratchbox 2 will no longer require host tools or crosscompiler toolchains to be compiled specifically for scratchbox. This will make the core of Scratchbox a small package possible to be uploaded to Debian.
With a clever open() / exec*() / etc redirecting LD_PRELOAD library and ld.so magic, Scratchbox 2.0 provides an environment where unmodified host and target binaries co-exist in different directories, and the LD_PRELOAD library selects automatically the correct tool to execute.
Plans include a "pbuilder create" style interface to create crosscompiling environments out of standard Sarge / Etch / Sid Debian packages with crosscompilers built out of Debian's toolchain packages. This makes it possible to use scratchbox in buildd's, at least for unofficial ports.
This talk will present the performance advantages of Scratchbox approach when building for low-end architectures. Scratchbox will be compared against approaches like native compilation, distcc callbacks to a crosscompiler or native compiler running in an emulator.
The separation of host tools and target libs allows easier bootstrapping of a new architecture, how about for example Debian on Cris/uClibc? Using crosscompiling and host tools most circular build dependencies can be beaten, and the rest build dependencies can topologically be sorted
for a correct bootstrapping order.