Fedora and Cross Compiling

Ralf Corsepius rc040203 at freenet.de
Wed Jun 13 08:55:54 UTC 2007


On Wed, 2007-06-13 at 08:55 +0100, David Woodhouse wrote:
> On Wed, 2007-06-13 at 09:38 +0200, Hans de Goede wrote:
> > I think you on the one side and I and Ralf on the other side are talking about 
> > different things, let me try to clarify. I believe you are talking about cross 
> > building the Fedora distro to run as a replacement distro on embedded devices, 
> > in which case I agree with what you say above.
> 
> Yes. To start with, I have been thinking about Fedora->Fedora (or at
> least Fedora->Linux) cross-compilation.
Let me try to clarify. 

I am referring to general Fedora-><any target/any-OS> cross toolchains,
not necessarily restricted to Fedora targets.

My primary focus is on <Fedora|RHEL>->*rtems* cross toolchains (rtems: A
free rt-OS for embedded targets) for which I am
co-maintaining/co-leading OS- and toolchain-development and also am
providing toolchain rpms.

Peculiar about such targets is them often addressing "2nd class
architectures", which have little attention in upstream binutils/GCC/gdb
and therefore often require custom patches, or particular hand-selected
"known to work" source versions.


My secondary focus is on sys-rooted Fedora-><BigOS> toolchains, reusing
target binaries, in first place aiming at Canadian cross building
<BigOS>->*rtems* toolchains on Fedora, in second place serving as "test
beds" for portability issues in packages.

> > However I (and Ralf to some extend to AFAIK) am talking about building 
> > executables to run on an embedded platform using the manufacturer provided 
> > distro for that platform. For example with the gp2x (a handheld game device / 
> > video player) there is a distro in onboard FLASH and you can insert an sd-card 
> > with your own applications.
> >
> > In this case completely different rules apply.
> 
> Yes, this is true. Where there are ABI differences, it makes sense to
> have a toolchain version which matches your target environment.

ABI is one thing. But there are other things, not necessarily in
binutils, but more in GCC and gdb. E.g. consider Fedora->FreeBSD,
Fedora->SuSE, Fedora->MinGW toolchains.

Though they share the same basis, they are substantially different in
many details. One lesson I've learned through all these years, I am
building cross-toolchains: Use upstream binaries whenever possible, only
they are 100% compatible to native toolchains/run-time, use upstream
source whenever possible to minimize the risk of producing incompatible
toolchains.

Ralf





More information about the fedora-devel-list mailing list