[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