This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: building gcc 4.4.5 from source on Fedora 13


On 30 November 2010 14:45, Mr Dash Four wrote:
>
>>> There is no mismatch - just common sense. The same common sense which
>>> tells
>>> me that whoever created gcc.spec need to have a good hard look at
>>> themselves
>>> as the amount of flexibility which it gives to developers like myself is
>>> grand total of zero, let alone that it does NOT do the job it is designed
>>> to
>>> do - build GCC.
>>>
>>
>> The job it's designed to do is build GCC RPMs *for Fedora* in order to
>> distribute RPMs for Fedora. It's not necessarily meant for end users
>> to rebuild packages that they can just install from a repo (because
>> we've already established you didn't really need to build from source
>> anyway, you just needed to install some additional packages - and in
>> fact building from source *still* doesn't do what you want - even more
>> reason to just install those additional packages and be done with it.)
>>
>
> Yes, it is true that I originally wanted to use GCC as a cross compiler and
> because it did not work I set myself to build it from source to correct that
> mistake. Later on it was established that GCC, supposedly, should already
> function as a cross compiler which later on transpired NOT to be the case as

It patently *is* the case that GCC can function in that way, and it's
the default if you build from source.

> when I was installing the *Fedora-distributed* GCC RPM all the i686
> dependencies which enable GCC to function as a cross compiler were not
> picked up and subsequently not installed. If they were I won't be starting
> this thread in this mailing list.

And Andrew and I have both said why the 32-bit "dependencies" are not
hard dependencies: because that way it's not possible to get a
64-bit-only compiler.  If those "dependencies" are optional extras
then you can choose whether or not to install them.  In your case, you
want them, so install them.  So they weren't installed automatically
and you needed to be told which additional packages to install, get
over it, or at the very least take it up with Fedora not here.

>> Andrew said "But that's not what it's supposed to do. ?The 32-bit
>> libraries are built as part of the 32-bit distro."
>> IIUC to get the i686 packages you need to build on i686. Rightly or
>> wrongly, building on x86_64 gets you the 64bit packages, and the 32bit
>> ones come from a separate repo that was built for i686, on i686. ?(I
>> think the glibc rpm spec file might behave the same way.)
>>
>
> My point all along is that if I want to get GCC to function as a cross
> compiler (its 'default' behaviour, as I've been told!) then I should be able
> to run the spec file and end up with all the necessary GCC packages allowing
> GCC to function as such. That is not the case!

If you build GCC from source, you get a multilib compiler.  That's the
default behaviour when building from source.  Building from Fedora's
spec file is a different use case, with different behaviour.

Your rant is now turning into "it's possible to build GCC in a certain
way, the spec file is broken if it doesn't do it that way!"

Whereas in fact the spec file is designed for a different situation,
for good reasons.

>> You want the spec file to be useful for a different use case, which
>> while reasonable, may not be the use case the spec file was actually
>> written for. ?That doesn't mean the spec file is broken, it just means
>> your expectations don't match what the spec file was written to do.
>>
>
> The spec file IS broken as it does not build the necessary GCC packages
> allowing GCC to function as a cross compiler - simple as that really.

It does what it's designed to do, which is not the same as the the GCC
build system.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]