Alpha Source Code?
Mike A. Harris
mharris at redhat.com
Mon Dec 6 18:30:07 UTC 2004
On Sat, 4 Dec 2004, Dialup Jon Norstog wrote:
>To the list, and particularly the Alpha Core guys:
>
>Did you use the AMD64-bit source code, or the i86 sources? I was thinkin about
>taking a crack at compiling open office if I don't have to mess around with
>the sources too much.
>
>Or is it the same source code?
This may or may not be relevant to your question, but I think it
may shed some light on how Fedora Core is developed anyway...
Fedora Core is developed internally at Red Hat on 7 different
architectures simultaneously. Every single RPM package that gets
built in our internal "rawhide" collection instance, is
automatically built on all 7 architectures. The architectures
include:
x86
AMD64
ia64
ppc
ppc64
s390
s390x
If the build fails on any one of these architectures, the
buildsystem terminates the build on all of the others
automatically. The developer must investigate the cause of the
build failure on whatever system it failed on, and then fix the
src.rpm appropriately if it is a packaging/software bug/glitch,
or fix the buildsystem if it is a glitch in the build system,
such as out of disk space or some other problem.
The general idea behind this, is to have a single-source cross
architecture build environment, where one single src.rpm is used
to produce binaries on all architectures that we develop for.
This is adhered to strictly and enforced by the build system.
There are a few exceptions to the rule, such as the Linux kernel,
and software packages which are architecture specific
(ExclusiveArch'd) or specifically not for given architecture(s)
(ExcludeArch'd).
As such, we have a single SRPMS directory, which contains all of
the src.rpms used to build the entire OS on all architectures.
Of course, each package may have conditionalized patches, or
other tidbits, but they all come from a single pool.
Additionally, since we automatically build on all 7 architectures
always, the OS as a result, is constantly ported to all 7 of
these architectures. Bugs that get fixed, get fixed on all
arches at the same time, and endian specific bugs, or 32/64 bit
specific bugs, etc. fixed for one architecture, generally will
also fix the same problem for other architectures (depending on
the specifics of the problem).
Since we currently build and ship our OS for 32bit little and
big endian, and 64bit little and big endian hardware, the OS is
very highly portable as a whole, and porting it to other
architectures which we do not currently support or build for, is
fairly simple for the most part. The biggest amount of work
involved in a new OS port is actually not building the rpms at
all, but rather toolchain development, kernel, glibc, xorg-x11,
and a number of other core system components. Once these are in
place, the rest of the OS more or less just recompiles untouched,
with some noteable exceptions such as openoffice, and some other
large packages that may need some architectural loving care.
My assumption is Alpha Core used the Fedora Core provided
src.rpms as a basis for the port to Alpha, and just fixed bugs,
etc. from that codebase, which as mentioned above isn't specific
to AMD64, or any other arch, but rather is shared among all
arches.
Hope this helps.
TTYL
--
Mike A. Harris ftp://people.redhat.com/mharris
OS Systems Engineer - X11 Developer - Red Hat
More information about the axp-list
mailing list