
Hi Jeroen,
On Thu, May 11, 2017 at 3:39 PM, Jeroen Roovers jer@airfi.aero wrote:
On 11 May 2017 at 06:31, Bin Meng bmeng.cn@gmail.com wrote:
+Simon
On Wed, May 10, 2017 at 6:15 PM, Jeroen Roovers jer@airfi.aero wrote:
Trying to compile an x86_64 u-boot with EFI support:
arch/x86/cpu/x86_64/built-in.o: In function `checkcpu': (.text.checkcpu+0x0): multiple definition of `checkcpu' arch/x86/cpu/efi/built-in.o:(.text.checkcpu+0x0): first defined here arch/x86/cpu/x86_64/built-in.o: In function `arch_setup_gd': /home/jer/airfi/airfi-base/buildroot-2016.02-apollo/output/build/uboot-2017.05/arch/x86/cpu/x86_64/cpu.c:18: multiple definition of `misc_init_r' arch/x86/cpu/efi/built-in.o:(.text.misc_init_r+0x0): first defined here arch/x86/cpu/x86_64/built-in.o: In function `arch_setup_gd': /home/jer/airfi/airfi-base/buildroot-2016.02-apollo/output/build/uboot-2017.05/arch/x86/cpu/x86_64/cpu.c:18: multiple definition of `print_cpuinfo' arch/x86/cpu/efi/built-in.o:(.text.print_cpuinfo+0x0): first defined here make[2]: *** [scripts/Makefile.build:359: arch/x86/cpu/built-in.o] Error 1 make[1]: *** [Makefile:1234: arch/x86/cpu] Error 2 make[1]: *** Waiting for unfinished jobs....
with the attached configuration. Am I doing it wrong?
I don't have the environment to test but did you use efi-x86_defconfig?
No, the config I attached has been edited because when I use efi-x86_defconfig I get a mix of 32-bit and 64-bit objects:
/home/jer/airfi/airfi-base/apollo/output/host/usr/bin/x86_64-buildroot-linux-gnu-ld.bfd: Relocatable linking with relocations from format elf32-i386 (board/efi/efi-x86/efi.o) to format elf64-x86-64 (board/efi/efi-x86/built-in.o) is not supported make[2]: *** [scripts/Makefile.build:359: board/efi/efi-x86/built-in.o] Error 1 make[1]: *** [Makefile:1234: board/efi/efi-x86] Error 2 make[1]: *** Waiting for unfinished jobs....
So I needed to adapt it for a 64-bit target by enabling CONFIG_X86_RUN_64BIT
CONFIG_X86_RUN_64BIT is supposed to be turned on a 64-bit U-Boot build, not for EFI application.
Regards, Bin