Fedora and Cross Compiling

Ralf Corsepius rc040203 at freenet.de
Thu Jun 14 03:05:48 UTC 2007


On Wed, 2007-06-13 at 15:46 -0600, Brendan Conoboy wrote:
> Ralf Corsepius wrote:
> > Nah, wrt. to cross linux toolchains there are other ways.
> 
> Well, if you want to be pedantic, sure.  To be more precise, it is, at 
> present, the only way to get from nothing but sources to having fully 
> functional binaries.  If you already have binaries that's another matter.
> 
> > 1. If a native target distro exists, one can repackage the target's
> > glibc binaries into a <target>-sys-root rpm, and then build gcc against
> > this glibc. It's what I do in my toolchain packages. Some people hate it
> > because "I don't build everything from scratch", but it has tremendous
> > advantages.
> 
> You can, but you end up with binaries for one arch inside an rpm 
> designated for another.
Not quite. You end up with the target's sys-root's files ("target
binaries", blobs of arbitrary binary data) inside of a "noarch" rpm.

>   I'm hoping to take this to the point where you 
> can bring in rpms from one arch to cross build another another.
You can. sys-root packages aiming at cross-compilers are "noarch" rpms
to the host.

> > 3. Build incrementally. All you need to is to once insert a glibc
> > sys-root binary into the buildsystem (by "bootstrap" or 1. or 2.), then
> > subsequently build gcc and glibc from source.
> > Some people also hate this, but it's essentally the same approach as
> > glibc and gcc are being built on Fedora.
> 
> I think of this as The Fedora Way (tm).
Right, this way should be applicable for Fedora->Fedora toolchains.
However, it is more generally applicable.

>   After discussing with dwmw2 
> some more, there are still some drawbacks wrt gcc for my own goals: We 
> actually want to produce gcc support libraries for the target in an rpm 
> for the target arch.
Well, IMO this plan is not useful and doesn't fit into the working
principles of rpm, because it confuses host architecture with target
architecture.

What I could envision to be made functional is a wrapper around rpm,
using another "per-cross-target" rpmdb to add native target rpms into
sys-roots.

Ralf





More information about the fedora-devel-list mailing list