Fedora and Cross Compiling

Hans de Goede j.w.r.degoede at hhs.nl
Wed Jun 13 07:38:03 UTC 2007


Andy Green wrote:
> 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".
> 

You don't get my objectino, I'm crossing from Fedora but not too Fedora, 
therefore what is in Fedora's specfile is completely irrelevant. Extreme 
example, the sdcc cross-compiler already in Fedora. This crosses from Fedora to 
8051 (and other) microcontrollers. It uses its own assembler and is its own 
C-compiler, binutils and gcc are not used at all (except for building the asm / 
compiler themselves, duh). Should the sdcc specfile be a pathc on top of gcc's 
specfile, a patch effectively replacing 100% of it, just because its a 
c-compiler too?

Also see my reaction to David Woodhouse last mail.

Regards,

Hans






> -Andy
> 





More information about the fedora-devel-list mailing list