arm-elf-gcc 4.6.0 build failure

Kai Ruottu kai.ruottu@wippies.com
Tue Mar 29 08:25:00 GMT 2011


29.3.2011 9:45, Massimiliano Cialdi kirjoitti:
> Il giorno lun, 28/03/2011 alle 09.55 -0700, Ian Lance Taylor ha scritto:
>> Unless you specifically need arm-elf, I recommend that you use
>> --target=arm-eabi.  Yes, this is not documented.  However, this is not
>> your problem.
>>
>> What OS are you running on?
> No OS. We use cross compiler to build binary for arm based
> microcontrollers (and also avr).

Ian most probably asked the $host system where the crosscompiler
was built and tried...

But when I tried the 'arm-elf' target, the gcc-4.6.0 build went
through nicely without any problems... The components being used
were:

  - binutils-2.20.51.0.8.20100412 (these were built on Apr 27 2010)
  - pristine newlib-1.19.0 sources
  - pristine gcc-4.6.0 sources
  - CentOS 5.5 i686 with gcc-4.1.2 as the $build system

The build method was the quite usual single-pass one :

  - mpc-0.8.1 and ppl-0.10.2 sources were symlinked into the gcc-4.6.0
    sources as 'mpc' and 'ppl'. The 'gmp' and 'mpfr' libraries for the
    $host were prebuilt and preinstalled.

  - The 'newlib' and 'libgloss' from the newlib-1.19.0 sources were
    symlinked into the gcc-4.6.0 sources.

  - The generic headers in 'newlib-1.19.0/newlib/libc/include' were
    preinstalled into the '$prefix/arm-elf/include'.

  - The '$prefix/arm-elf/include' was symlinked to be seen also as
    '$prefix/arm-elf/sys-include'.

So newlib-1.19.0 was built and installed with other gcc-4.6.0 libs
for the 'arm-elf' $target. And 'mpc' & 'ppl' were built for the $host
with gcc-4.6.0. The resulted GCC shows the configure switches :

[root@localhost arm-elf]# gcc-arm-elf-4.6 -v
Using built-in specs.
COLLECT_GCC=gcc-arm-elf-4.6
COLLECT_LTO_WRAPPER=/usr/local/lib/gcc/arm-elf/4.6.0/lto-wrapper
Target: arm-elf
Configured with: ../configure --build=i686-linux-gnu 
--host=i686-linux-gnu --target=arm-elf --enable-languages=c,c++ 
--with-newlib --libexecdir=/usr/local/lib --disable-shared 
--enable-newlib --enable-multilib --enable-interwork --disable-threads 
--disable-nls --enable-libstdcxx-allocator=malloc 
--with-gxx-include-dir=/usr/local/include/c++/4.6.0 
--enable-version-specific-runtime-libs --with-pkgversion='by Kai Ruottu 
2011q1' --program-suffix=-arm-elf-4.6
Thread model: single
gcc version 4.6.0 (by Kai Ruottu 2011q1)

I really don't know for what purpose the '--enable-newlib' (???) and
'--enable-multilib' (the default) were used in your configure, but in
any case I added them too...

> I will try arm-eabi

>> I don't know why this is happening, but if you have zlib installed you
>> can probably avoid the problem by adding --with-system-zlib to your
>> configure line.

So... What on earth happened? Your original message surprisingly was
never received via the 'gcc-help' maillist but a search in net told
that the real error was :

configure:5778: checking for version 0.11 (revision 0 or later) of PPL
configure:5795: gcc -c -g -O2    conftest.c >&5
conftest.c:10: fatal error: ppl_c.h: No such file or directory
compilation terminated.

Which would say that you simply didn't have a prebuilt 'ppl' library
for your $host or hadn't put the 'ppl' sources into your gcc-4.6.0
sources... Having 'ppl' may be obligatory with gcc-4.6.0 !



More information about the Gcc-help mailing list