building gcc 4.4.5 from source on Fedora 13

Mr Dash Four mr.dash.four@googlemail.com
Mon Nov 29 17:22:00 GMT 2010


> I'm surprised that is a dependency: you're building a cross-compiler
> from x86-64 to i686.  The gcc build will build libgcc for all its
> multilibs.
>   
When I build a cross-compiler I expect everything needed for this cross 
compiler to work and is also a part of the gcc package, regardless of 
the architecture to be compiled and the relevant rpms built. I do not 
expect to spend a whole day wondering around like headless bl**dy 
chicken solving GCC dependencies - the last time I checked this is the 
job of rpm, not me!

> I don't think that would help.  We haven't yet established that
> there is a bug.
>   
If you think that it is quite normal for me to build GCC to cross 
compile from/to i686 without compiling all other dependencies/packages 
(which are part of GCC!) on which GCC depends to function then fine - I 
disagree, however!

When I build GCC and specifically request/enable cross compiling I 
expect all GCC-related packages (and that includes packages for BOTH 
x86_64 and i686 architectures) to be compiled and built as well.

>> No, they are not! The last 3 DEAD symlinks come from libstdc++.i686,
>> which is (or should be as its x86_64 counterpart is compiled in) part of
>> the GCC packages (at least that is the case with Fedora).
>>     
>
> It is a gcc package; you haven't installed it.
>
> /usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so -->
> /usr/lib/libstdc++.so.6.0.13
>  $ rpm -qf /usr/lib/libstdc++.so.6.0.13
> libstdc++-4.4.4-10.fc12.i686
>   
Why is that package not compiled then if it forms part of GCC?

The only set of packages which are compiled are all x86_64 rpms - 
nothing else! If I then proceed to install my 'cross compiler' then I am 
destined to fail because none of the i686 GCC packages on which this 
'cross compiler' is dependent are either built or installed.

In other words, when I request GCC to be compiled/built as a 
cross-compiler it is not - how on earth is that not a bug? I would 
understand and agree with your argument if I was building GCC as a 
simple compiler to function in a single-architecture system, but that is 
not the case here.

>> libmudflap* is also built as part
>> of the GCC package on Fedora, but again, the i686 counterpart is NOT
>> built nor is it provided. Same goes for the libgomp.i686 package -
>> x86_64 is built, libgomp.i686 is not built, nor provided. Madness -
>> multilib my ar**!
>>     
>
> You surely don't expect all the legacy 32-bit stuff to be installed
> by default.
>   
They should be if GCC is dependent on it - I do not expect to see dead 
symlinks (if that is not the case why are they created then?!) after 
flawless, error-free installation of GCC on my system, so no - I at 
least expect to be informed that I need those packages and not spend a 
whole day resolving dependencies to make the bl**dy thing work, wouldn't 
you agree?



More information about the Gcc-help mailing list