git: 9f44638ef2c4 - main - stand/efi: Fix for binutils when targeting arm64

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Wed, 22 May 2024 08:31:56 UTC
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=9f44638ef2c46861565b89bb01bbeeab17755649

commit 9f44638ef2c46861565b89bb01bbeeab17755649
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2024-05-22 08:17:26 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2024-05-22 08:17:26 +0000

    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) }