[U-Boot] checkarmreloc error for AArch64 (using vexpress_aemv8a_defconfig)

Chou, David J david.j.chou at intel.com
Mon Jul 20 06:15:35 CEST 2015


Hello Albert,

Thanks for your quick response.  The error message disappeared after I switched to use gcc-linaro-aarch64-linux-gnu-4.8-2014.04_linux tool chain from Linaro in either u-boot-2015.07-rc2 branch or latest u-boot-2015.07 branch.  

I have one question: why the following  build generated a statically linked u-boot  as showed by "$ file u-boot" followed, and also it doesn't show "ARM" after " u-boot: ELF 64-bit LSB shared object," : 
$ make distclean
$ make vexpress_aemv8a_juno_defconfig ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- 
$ make all ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
$ file u-boot
u-boot: ELF 64-bit LSB shared object, version 1 (SYSV), statically linked, not stripped

But when I built a 32-bit arm u-boot using following command, it generated a  dynamically linked u-boot, and  "file  u-boot" shows "ARM" after " u-boot: ELF 32-bit LSB shared object,":
$ make distclean
$ make vexpress_ca15_tc2_defconfig ARCH=arm CROSS_COMPILE=arm-eabi-  
$ make all ARCH=arm CROSS_COMPILE=arm-eabi-
$ file u-boot
u-boot: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

Is there anything wrong in my  commands (shown in following" again  to make a 64 bit aarch64 u-boot, what commands you use to generated 64 bits u-boot ?
$ make distclean
$ make vexpress_aemv8a_juno_defconfig ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- 
$ make all ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-

Is the 64bits u-boot you generated statically linked or dynamically linked when you use "file u-boot" to check it? Does "file u-boot" show "ARM" after " u-boot: ELF 64-bit LSB shared object,"?  Can you show the "file u-boot" result for your 64 bit u-boot?  

Thanks.

Best Regards,
David Chou


-----Original Message-----
From: Albert ARIBAUD [mailto:albert.u.boot at aribaud.net] 
Sent: Saturday, July 18, 2015 1:44 AM
To: Chou, David J
Cc: u-boot at lists.denx.de
Subject: Re: [U-Boot] checkarmreloc error for AArch64 (using vexpress_aemv8a_defconfig)

Hello David,

On Fri, 17 Jul 2015 22:13:32 +0000, Chou, David J <david.j.chou at intel.com> wrote:
> Hi,
> 
> I am using u-boot-2015.07-rc2, using  vexpress_aemv8a_defconfig as following:
> $ make vexpress_aemv8a_juno_defconfig ARCH=arm 
> CROSS_COMPILE=aarch64-linux-android-
> $ make all ARCH=arm CROSS_COMPILE=aarch64-linux-android-
> 
> And I  got  "make: *** [checkarmreloc] Error 1" at the end of the build as following:
> 
>   OBJCOPY examples/standalone/hello_world.srec
>   OBJCOPY examples/standalone/smc911x_eeprom.srec
>   OBJCOPY examples/standalone/hello_world.bin
>   OBJCOPY examples/standalone/smc911x_eeprom.bin
>   LDS     u-boot.lds
>   LD      u-boot
> u-boot contains unexpected relocations: R_AARCH64_ABS64 
> R_AARCH64_RELATIVE
> make: *** [checkarmreloc] Error 1
> 
> But it generated an ELF 64-bit LSB executable, version 1 (SYSV), statically linked u-boot.  Does this u-boot still useful or how to fix the issue?
> 
> This  build error has been mentioned in http://lists.denx.de/pipermail/u-boot/2015-February/206440.html , has it been fixe?

This error does not appear with the aarmch64 toolchain used by buildman or with the aarmch64 toolchain from Ubuntu repositories, either for
v2015.07-rc2 or for current top of branch u-boot[-arm]/master.

Is the code you are building pure v2015.07-rc3 or does it contain any local changes?

> Thanks  a lot for your help.
> 
> Best Regards,
> David Chou

Amicalement,
--
Albert.


More information about the U-Boot mailing list