2.15 problem building GCC arm-elf cross-compiler on Solaris/HP-UX

Nick Clifton nickc@redhat.com
Wed Sep 29 17:49:00 GMT 2004


Hi Albert,

> I've built a GCC cross-compiler for C with --target=arm-elf
> successfully on RH 7.1, 9.0, and Solaris 9/SPARC. However, when
> building on HP-UX 11i, I get an error running arm-elf-ranlib on
> libgcc.a:
>   ...
>   arm-elf-ar  rc ./libgcc.a libgcc/./_udivsi3.o libgcc/./_divsi3.o ...
>   arm-elf-ranlib ./libgcc.a
>   arm-elf-ranlib: ./libgcc.a: File format not recognized
> 
> binutils-2.12.1 works on HP-UX 11i.
> 

>   $ diff -u /tmp/binut212 /tmp/binut215
>   --- /tmp/binut212    2004-09-29 10:03:55.000000000 -0500
>   +++ /tmp/binut215    2004-09-29 10:04:04.000000000 -0500
>   @@ -1,16221 +1,16221 @@
>   -0000000 213c 6172 6368 3e0a 2f20 2020 2020 2020
>   -0000020 2020 2020 2020 2020 3130 3936 3437 3032

>   +0000000 2f20 2020 2020 2020 2020 2020 2020 2020
>   +0000020 3130 3936 3437 3032 3636 2020 3020 2020

> Any ideas?

It would appear that the 2.15 libgcc.a is missing the magic bytes 
"!<arch>\012" at the start of the file.  These bytes are defined as 
ARMAG in include/aout/ar.h and should be emitted by the function 
_bfd_write_archive_contents() in bfd/archive.c.  For some reason this is 
not happening.  Perhaps you could investigate further ?

Cheers
   Nick




More information about the Binutils mailing list