glibc configure: error: Need linker with .init_array/.fini_array support

Kai Ruottu kai.ruottu@wippies.com
Tue Oct 13 06:31:00 GMT 2009


Ian Lance Taylor wrote:

> jeffiedward <j.jeffi@yahoo.co.in> writes:
> 
>> when i try to compile glibc, the following configuration error occurs:
> 
> It looks like this is using the wrong assembler.
> 
> ./configure CFLAGS=" -march=i686 -O2" --host=i686-pc-linux-gnu
> --target=powerpc-linux-gnu --prefix=/home/tellabs/GNU/PPC
> --with-headers=/home/tellabs/GNU/include
> --with-binutils=/home/tellabs/GNU/PPC/powerpc-linux-gnu/bin
> 
> I'm not sure, but I think this should be --build=i686-pc-linux-gnu
> --host=powerpc-linux-gnu.  glibc is not a compilation tool and it does
> not have a target.  It only has a host.

Maybe the whole glibc issue is a misunderstanding... No need
to replace the glibc or build one from scratch although the
"friendly advices" in the net quite often try to claim that :(

In a typical existing-target case like the Sparc/Solaris2.10
or some Linux distro (here Linux/PPC), one only needs to build
the stuff for the cross host, ie binutils and GCC, the stuff
for the target host is already there, excluding what will be
built during the GCC build like 'libstdc++.so.6' or something
required during runtime on the target host. But the '/lib/libc.so.6',
'/lib/ld.so.1' etc base things would already be there...

In any case it is weird that the expected '--prefix=/usr' wasn't
used in the glibc configure... Neither any '--with-sysroot=' in
the binutils and GCC configures. The toolchain built this way
would be quite unusual, without any visible idea...

For what purpose this crosstoolchain would be built?  Looks like
"Just for a fun", no serious use for the glibc like installing it
as the base runtime libraries on the target host...

Ok, the usual idea is to copy/install the target C library onto
a suitable $sysroot so that it would be quite in the same 'lib',
'usr/include', 'usr/lib' etc. scheme as natively in $root, '/'...
Copying from existing or copying to originally unexisting target
platform, would be much easier when using the '--with-sysroot='
idea...  One uses the command:

   make install_root=$sysroot install

when installing that "for native"-built glibc, configured with
the expected '--prefix=/usr'...



More information about the Gcc-help mailing list