+++ Michael Hope [2011-10-12 09:17 +1300]:
On Wed, Oct 12, 2011 at 1:23 AM, Wookey wookey@wookware.org wrote:
One output from the 11.09 release was a reasonably painless way of cross-building whole images against an archive, which also forms the basis for an auto-crossbuilder.
<snip>
Ongoing work
The current focus is on getting the remaining packages cross-building so that the whole process works to completeion without cheating by bringing in pre-built packages from the existing archive (That's a useful way to proceed if you want to use this tech today - just adjust the multistrap config to include the base natty armel/armhf archive too)
Once this is completed I'll be setting up a continuously-running autobuilder so that the cross-buildability or otherwise of packages can be more easily discovered and more people can get involved in fixing up packages so that cross-building of larger images becomes realistic.
Nice. So with the proper setup I could inject a different GCC and use this as a compiler testsuite? Perhaps with NEON and -O3 on by default?
By 'this' do you mean the forthcoming autobuilder set-up or the existing 'build me a package-set' tool?
The 'build me a package set' stuff is essentially a local instantiation of the autobuilder. The public autobuilder will be using the standard distro-supplied toolchain, but of course you can set up whatever you like in your local instance.
It's certainly pretty straighforward to build the build-env chroot with a new toolchain by just changing the multistrap config: [UbuntuToolchains] packages=g++-arm-linux-gnueabi libc-dev-armel-cross linux-libc-dev-armel-cross source=http://archive.ubuntu.com/ubuntu suite=natty components=main universe keyring=ubuntu-keyring
to point at your repo of packaged toolchains.
If your toolchains aren't packaged then it's a bit fiddlier, but you drop that stanza and specify a setupscript to untar a toolchain into place and do any other jiggery-pokery required. setupscript=/path/to/setup.sh
You can only get NEON and O3 on by default by one of: a) building your toolchain to default that way b) nobbling the specs file after instalation c) putting in a wrapper to ensure those are set
Nothing about this really makes that any harder/easier than it already was, except that adding it to the setupscript might ensure it didn't get forgotten.
I know we don't support it, but could it build an ARMv5 subset of Ubuntu?
Well, 'yes', and 'no', depending on where you start from.
If you already have an armv5 archive to build against then 'yes, it's trivial', but otherwise: 'no, not really' - there is a piece missing for that: You need to be able to build everything from scratch using only stuff just built, which requires bootstrapping to break build-dependency loops. You can do it for subsets that have no build-dep loops, but this package-builder/autobuilder tech is explicitly designed to build packages against an archive. So that means existing armel/armhf debian or ubuntu repos.
If you want to do a recursive build from scratch then xdeb alone is your best tool, but if there are build-dep loops in what you've asked for it'll bail. Adding bootstrapabilty to the archive is next once we have usefully functional cross-building without bootstrapping.
I hope these sorts of questions are answered on the 'Crossbuilding quickstart' wiki page. Please poke me if not to add your case: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/CrossbuildingQuick...
Wookey