Cross-compilers.

Ralf Corsepius rc040203 at freenet.de
Mon Sep 18 08:23:04 UTC 2006


On Mon, 2006-09-18 at 08:57 +0100, David Woodhouse wrote:
> On Mon, 2006-09-18 at 09:47 +0200, Ralf Corsepius wrote:
> > On Mon, 2006-09-18 at 07:58 +0100, David Woodhouse wrote:
> > 
> > > 
> > > > It would be great if Fedora could be cross compiled using any host 
> > > > system to produce binaries for any target system, be it a supported and 
> > > > rare host (s390, ia64) or an entirely new target (arm, mips*).
> > > 
> > > You'll never do that until we ban autoconf in packaging.
> > 
> > Sigh - Will you ever stop reiterating this FUD?
> 
> > All properly packaged "single-targeted" autoconf/automake based packages
> > do support cross-compilation, OTB.
> 
> Then there are few of what you call 'properly packaged single-targeted'
> packages out there, because seamless support for cross-compilation has
> _not_ been my experience.
Well, I'd estimate 90% of all lib* packages do work OTB.

It's the packages' authors who ship broken configurations, because they
hard-code stupid things like run-time checks or hard-coding
compiler/system features (byte-order, type-sizes etc.).

> > Few packages do support mixed native/cross compilation and even less do
> > support multi-target configurations.
> > 
> > > Packages in _general_ won't cross-compile.
> > Yes, because many packagers don't test it and because rpm doesn't
> > support it.
> 
> I've spent a lot of time attempting to cross-build the distribution.
> RPM actually handles it just fine -- the problems were mostly caused by
> the (possibly incorrect) use of autotools in the package itself.

Well, this is NOT my experience.

RPM doesn't even get the target/host/build-tuple right for native noarch
building.

Building cross-compilers (Note: These are native apps!) is PITA, because
RPM doesn't handle foreign binaries correctly (stripping, debug info
etc. all are treated as <native>-elf).

Cross building (rpmbuild --target= ...) isn't even close to be be
functional, because rpm screws up various target/host/build platforms
setting (e.g. %rpmopt), and doesn't properly distinguish between
target/host/build and contain many hard-coded redhat specifics (We are
cross building cross-toolchain rpms to mingw, cygwin and solaris).

> I agree, however, that there is nothing _fundamentally_ evil about
> autotools. Autotools don't kill cross-compilation; people do. Autotools
> just seem to make it easy.
Right, that's a statement I can live with.

Ralf





More information about the fedora-extras-list mailing list