build gcc 4.1.1 on a PowerMac G5 running Yellow Dog Linux 4.0 fails

Kai Ruottu karuottu@mbnet.fi
Thu Apr 19 10:22:00 GMT 2007


Richardson, Joshua A. wrote:
> Any ideas on this?  I've really gotten nowhere since I originally asked.  Thanks.
>
> I'm having an issue trying to build gcc 4.1.1 on a PowerMac G5 running Yellow Dog Linux 4.0.
Is this a 64-bit system as default?  What does the 'uname -a' tell?
>   Since I'm pretty new to building gcc, let me just lay out the steps I've taken and the errors I've gotten.
>
> 1. Running the following configure line: 
>
> a. ../gcc-4.1.1/configure --prefix=/usr/bin --enable-languages="c,c++' --disable-multilib

The configury "guesses" the $build, $host and $target via 'uname' I think...

 > configure:3652: checking for powerpc64-unknown-linux-gnu-ar

This tells which system was guessed, a Linux/PPC64...

 > /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching 
for -lc
 > /usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
 > /usr/bin/ld: cannot find -lc

What does the 'file /usr/lib/libc.so' say?  Is it a 64-bit shared 
library?  Is it a shared library at all?
My "original" YDL4.0 glibc-2.3.3 in my YDL4.0 targeted crosstoolchain has :

Dell:/opt/host-YellowDog4.0/usr/lib # cat libc.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf32-powerpc)
GROUP ( libc.so.6 libc_nonshared.a )

and this tells that at least here the '*lib' has 32-bit stuff, not 
64-bit stuff !  My guess is that your
'/lib64' and '/usr/lib64' should have those 64-bit default libraries for 
'powerpc64-linux-gnu' !

So please try the given simple sanity checks for finding out your situation

 > Any idea on what I could be doing wrong?

Maybe your YDL4.0 system is 32-bit but the 'uname' tells the CPU being a 
64-bit one.  I don't know
what that 'G5' is neither remembering for what type the YDL4.0 was 
made... I would guess it being
purely 32-bit.  We ignorant people may know the difference between a 
32-bit CPU and a 64-bit
CPU, so when asking it is always better to make the CPU type being 
clear...  And also tell it right for
the 'configure' if there is any possibility that it  too could guess it 
wrong!  Using something like :

   --host=powerpc-yellowdog-linux --target=powerpc-yellowdog-linux

in configure could be recommended to tell what you would like the compiler to be if it
should be a pure 32-bit one... For the right $host and $target name you should consult
your existing GCC, with 'gcc -v' or something. If wanting to use the same name as was
used with it. My one was guessed....

The :

   --prefix=/usr/bin

then is a little odd... The default for native GCC in Linux is the 
'--prefix=/usr'.  With your choice the
GCC driver binaries would be installed into '/usr/bin/bin',  the 
target/GCC-version specific stuff into
'/usr/bin/lib/gcc/$target/4.1.1' and '/usr/bin/libexec/gcc/$target/4.1.1'



More information about the Gcc-help mailing list