[Buildroot] 'ld' gives "unrecognised emulation mode" - ARM toolchain unbuildable ??

MikeW mw_phil at yahoo.co.uk
Thu Nov 2 12:09:41 UTC 2006


MikeW <mw_phil at ...> writes:

> 
> Am using buildroot-20061031 to build arm926t system,
> Toolchain options gcc-3.4.3 (-final), ARM, EABI, binutils-2.16.91.0.7
> and have set the GNU target suffix to linux-uclibcgnueabi.
> [Host system gcc-3.4.6 20060404]
> 
> During building libgcc, I get the message
> ->>
> /home/fred/buildroot/build_arm_nofpu/staging_dir/
>  arm-linux-uclibcgnueabi/b in/ld: unrecognised emulation mode:
 armelf_linux
> Supported emulations: armelf_linux_eabi
> collect2: ld returned 1 exit status
> make[3]: *** [libgcc/./_udivsi3.oS] Error 1
> -<<
> 
> From Google, I note that this type of problem is not infrequent
 (for other
> target types), but the usual reponse is 'get the latest version'
 which seems a bit of
> a cop-out, plus I am currently required to use 3.4.3 so
 this does not apply.
> 
> a) any ideas to defeat this problem (not involving 3.4.x, x>3 !)
> b) if it's frequent, how come it's not been resolved once & for all
> 
> Thanks,
> MikeW
> 

This seems to be due to an incompatibility between:
1) toolchain.../gcc-x.x.x/config/arm/linux-elf.h
2) toolchain.../binutils-x.x.x/ld/earmelf_linux_eabi.c

In 1) there is a setting TARGET_LINKER_EMULATION "armelf_linux"
In 2) there is a string (part of a struct initialiser) "armelf_linux_eabi"

so unless I can find matching strings in a version of gcc and ld,
buildroot will never be able to build a toolchain.

But 2) says the file is generated by a shell script, so maybe it's
that script which is to blame !
Or maybe I could just hack 1) to have the correct string.

But that raises the question - how does anyone build an ARM toolchain,
with this incompatibility in place ?

Regards,
MikeW







More information about the buildroot mailing list