Fedora, like many other distros does not ever build its packages with cross-compilation. Sure, it "works" but it's more than just compilation we care about in building on target. Runtime tests, etc. can all be made to work using various projects that are out there to glue a cross-compiler into running tests on target - all of this can be done. But we don't. It's just a bigger-than-ARM specific policy of Fedora that everything is build on target.
So. Given that we needed to build the world, on the target, this is what we did and how we did it. And even bootstrapping Debian I happen to know is a great PITA too. Wookey and others have done some good work there, and I'm genuinely impressed with the multi-arch work that feeds into some of this (and which we don't currently have plans to implement, but that could change if there's more than ARM specific interest in doing it within Fedora).
All of this stuff is hard. Bootstrapping happens relatively infrequently but we decided it was better to know how to do this. The next trick will be to have it nicely documented for the next time someone needs to do this.
Creating a Fedora ARM distribution part 2: Bootstrapping
Posted Nov 8, 2011 22:15 UTC (Tue) by oak (subscriber, #2786)
[Link]
There are also tools intended for bootstrapping & cross compiling distros.
Scratchbox1 (SB1) & Scratchbox2 (SB2) are such beasts. First one requires maintaining your own built tools "distro" which can easily bitrot & get out of sync with your distro, the latter can map tools to wherever you want to, typically this would be a directory containing x86 versions of your target packages (e.g. x86 debootstrap when cross-building Debian).
If your x86 host distro is the same one that you're trying to build for some other architecture, using SB2 so that it maps missing things to your host and letting everything else be run with Qemu, makes it much easier to build bootstrap stuff.
MeeGo has also some support from cross-compiling RPMs, but that's mainly to accelerate building, not AFAIK for bootstrapping purposes.