From 9f44638ef2c46861565b89bb01bbeeab17755649 Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Wed, 22 May 2024 08:17:26 +0000 Subject: [PATCH] stand/efi: Fix for binutils when targeting arm64 When linking with ld.bfd it complain with the following: /usr/local/bin/aarch64-unknown-freebsd14.0-ld: start.o: relocation R_AARCH64_ABS32 against `__data_size' can not be used when making a shared object Fix this by marking the __data_size with ABSOLUTE. This returns a non-relocatable value which appears to be the same behaviour of lld. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45257 --- stand/efi/loader/arch/arm64/arm64.ldscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stand/efi/loader/arch/arm64/arm64.ldscript b/stand/efi/loader/arch/arm64/arm64.ldscript index 18aead05cb49..889a1bafb9f7 100644 --- a/stand/efi/loader/arch/arm64/arm64.ldscript +++ b/stand/efi/loader/arch/arm64/arm64.ldscript @@ -68,7 +68,7 @@ SECTIONS . = ALIGN(16); .dynsym : { *(.dynsym) } _edata = .; - __data_size = . - __data_start; + __data_size = ABSOLUTE(. - __data_start); /* Unused sections */ .interp : { *(.interp) }