Fedora and Cross Compiling

Brendan Conoboy blc at redhat.com
Thu Jun 7 20:41:41 UTC 2007


For the last few days, I've been writing posts that advocate cross 
compiling packages for Fedora.  Some appear skeptical of this approach, 
so I want to share a bit more of where I am coming from.

Inside Red Hat, my group (GES) creates custom compilers and embedded 
Linux systems for our customers.  We have done this for many years, 
using various upstream sources, building natively and with cross tools. 
  For the last few years, we have used either RHEL or Fedora as our 
upstream source base.

Along the way, we stopped compiling our packages on the target hardware. 
  It was just too slow, or didn't have enough RAM, or there weren't 
enough of them, or real hardware didn't even exist yet.  Regardless, 
there were always less expensive commodity PC CPU cycles to be had.

We have gone through several generations of build methods, trying new 
systems, modifying them, trying to get an optimal environment for 
relatively fast, cyclic builds.  Much of this time has been consumed by 
making packages build with rpm and using a cross compiler to do the 
work.  We've had some success here, though not without considerable 
effort.  We spend quite a bit of time chasing Fedora development.

We cross-compile every package that we build(a subset of packages from 
the aforementioned distributions).  There is no simulator or native 
hardware employed.  Judging by messages on the list, other people and 
businesses are working toward a similar goal, though each with their own 
infrastructure and method.  All the messages about adding arm to Fedora 
are very exciting!  Everybody who has their own private way of getting 
Fedora built for arm could instead contribute toward the common goal.

I would like to see cross compilation become a standard method in 
Fedora.  It scales where native builds don't.  There might be faster arm 
chips these days, but lets not forget all the underpowered embedded CPUs 
and costly systems like s390.  Bootstrapping is simplified.  People 
without access to hardware can work on build problems (Simulators are 
good for this too).

What are the hurdles to adoption?  Broadly, they break down into 
technical and social:

Technical:  There must be cross compilers before we can cross compile. 
The build system must be enhanced to support cross compilation. Finally, 
packages must be modified to support cross compilation.

Social: As a volunteer effort, it is unreasonable to expect existing 
package maintainers to do the work necessary to support cross 
compilation.  There must be people to take on that responsibility and 
work with upstream and package maintainers to integrate the necessary 
changes.

I don't have fast and easy answers to all of the above, but I would like 
to have a discussion about them.  My group may be able to offer 
expertise, patches and some man power toward this goal.  What do you think?

-- 
Brendan Conoboy / Red Hat, Inc. / blc at redhat.com




More information about the fedora-devel-list mailing list