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