Fedora and Cross Compiling

Andy Green andy at warmcat.com
Wed Jun 13 07:25:57 UTC 2007


Hans de Goede wrote:
> Andy Green wrote:
>> Ralf Corsepius wrote:
>>> On Wed, 2007-06-13 at 00:25 -0600, Brendan Conoboy wrote:
>>>> David Woodhouse wrote:
>>>>> Do we _actually_ need to build parts of glibc? Could we not get away
>>>>> with a fake DSO which just provides the few symbols libgcc uses?
>>>> [snip]
>>>>
>>>> Will follow up on this part tomorrow.  I disfavor faking it, as it
>>>> were.
>>>>
>>>>> Binutils at least should be relatively easy. Here's a patch against
>>>>> binutils/F-7 which lets me:
>>>>>   make DIST_DEFINES='--define "binutils_target i686-linux-gnu"' ppc
>>>>>
>>>>> Even for this we have build system questions... how best to build
>>>>> it for
>>>>> each target architecture we want?
>>>> Generally, I think Hans and the rest at
>>>> http://fedoraproject.org/wiki/SIGs/Embedded have the right idea
>>>> here. Prefixing the target name to the package is a good plan for
>>>> most crosses.  More fully, I see 3 options:
>>>>
>>>> 1.  One srpm to rule them all.  This seems like a bad idea as it
>>>> doesn't scale.
>>> Right, it doesn't. You'd end up with a monsterous spec cluttered with
>>> cases and many (unused) patches, because different vendors apply
>>> different patch sets.
>>
>> Yet if you can put the clutter issue aside, this is definitely the Holy
>> Grail.  The spec file is the single point at which the uncontrolled
>> variance of the raw tarballs are smoothed into a normalized Fedora
>> package.
>>
>> Having multiple specs is going to lead to duplication of information and
>> loss of coherence when changes are made.
>>
>> How about... a single Holy Spec, exactly what Fedora has right now, but
>> which gets dynamically pre-patched if there is stuff needed for cross on
>> a particular package that can't be hidden in the rpmmacros?  The set of
>> arch spec patches lives in the SRPM like the other patches.  This:
>>
>>  - keeps a single Fedora basic spec
>>  - allows non-cross folks to totally ignore the existence of cross if
>> they like
>>  - allows maintainability
>>  - visibility of what is done for per-arch cross
>>
> 
> One single spec might be an idea for Fedora-Fedora cross packages, but
> it is not the answer for Fedora-Other (Embedded) OS target.
> 
> For example the gp2x sdk uses binutils 2.16.1 and glibc 2.3.5, so I
> don't think stuffing this into the main Fedora binutils and glibc specs
> is a good idea.

Maybe I didn't make my actual point clear in that (or maybe I don't get
your objection)... the idea is you maintain a patch against the existing
Fedora spec file for any package and arch that needs meddling with.  So
there is one spec file same as right now - unchanged - but you have
additional per-arch pre-patches in the SRPM as well for cross cases that
need them.  Non-cross people who don't go look at the patches aren't
even aware anything has changed let alone see things "stuffed" or
"cluttered".

-Andy




More information about the fedora-devel-list mailing list