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@xxxxxxxxxx
--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list