THE ARM OABI BUILD ENVIRONMENT
==============================
A complete Debian etch ARM OABI system, 828 MB. This is the hard part to
recreate, which is why it ships whole.
WHY IT EXISTS
The netBook Pro is ARM OABI -- ELF e_flags 0x2, the old ABI. Modern
toolchains produce EABI and nothing current produces OABI at all.
Debian's "arm" architecture (as distinct from "armel") was OABI, which
is why Debian sarge and etch binaries still run on this machine
unmodified.
There is a second constraint that decides everything: the card carries
libstdc++.so.6.0.3, which is GCC 3.4's C++ runtime. Anything C++ must
therefore be built with GCC 3.4. Debian's own build of AbiWord, for
instance, wants __gnu_cxx::__pool symbols from libstdc++ 4.1 and simply
will not run here.
So rather than cross-compiling, this whole system is booted as a real
ARM machine under QEMU and the compiler runs natively inside it. Slow,
but it removes every cross-compilation problem at once.
HOW IT IS USED
scripts/qbuild.sh packs this directory into a disk image, boots it with
the kernel and initramfs in ../qemu/, runs a job script, and recovers
/build/out.
IT PACKS A FRESH COPY EVERY RUN. Nothing a job does survives into the
next one except what it leaves in /build/out.
WHAT IS ALREADY STAGED HERE
build/ source trees, unpacked and patched, ready to
build -- abiword-2.0.11, aspell, mozilla and the
rest
usr/bin/gcc-3.4, g++-3.4
usr/bin/pspell-config, usr/include/pspell/, usr/lib/libpspell.so
usr/include/fribidi/ matched to the 0.10.4 library the card has, not
a newer one -- staging newer headers over an
older library produced a build that linked and
would have crashed on the device
TO MAKE SOMETHING PERSIST BETWEEN JOBS, PUT IT HERE. This directory is the
template, and it is the only thing that carries over.