ld in current (4.6-2011.07-0-8-2011-07-25_12-42-06) toolchain fails to link uboot
Michael Hope
michael.hope at linaro.org
Tue Aug 9 22:07:29 UTC 2011
On Wed, Aug 3, 2011 at 4:57 AM, Bernhard Rosenkranzer
<bernhard.rosenkranzer at linaro.org> wrote:
> Hi,
> ld in the current (4.6-2011.07-0-8-2011-07-25_12-42-06) Android
> toolchain fails to link uboot:
>
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/libgeneric.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/crc16.o
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/libgeneric.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/crc32.o
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/ctype.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/ctype.o
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/div64.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/div64.o
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/errno.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/errno.o
> arm-eabi-ld: /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/ldiv.o:
> Unknown mandatory EABI object attribute 44
> arm-eabi-ld: failed to merge target specific data of file
> /mnt/user/bero/android-iMX53-20110716151649/out/target/product/iMX53/obj/u-boot/lib/ldiv.o
>
> I believe this is already fixed in upstream binutils (or at least in
> hjl's 2.21.52.0.2 release from kernel.org /pub/linux/devel/binutils).
Hi Bernhard. The list of EABI attributes is in
bintuils/include/elf/arm.h. Attribute 44 is 'DIV use', which is set
if the idiv/sdiv instructions are used. These exist in the Cortex-M,
Cortex-R, and the Cortex-A15 but not in the A8 or A9. This attribute
is set by the assembler automatically based on the architecture being
compiled for.
You can check the attributes set on a function using
arm-linux-gnueabi-readelf -A object-file-name.o.
I don't know which version of binutils you are using. Support was
added to the assembler in May 2010 and updated for ARM mode in
September 2010.
-- Michael
More information about the linaro-toolchain
mailing list