[binutils-gdb] Fix size of external_reloc for pe-aarch64

Mark Harmstone maharmstone@sourceware.org
Tue Jan 10 23:32:36 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5093b5a5e7e3e51116207eb2dec81846140fc604

commit 5093b5a5e7e3e51116207eb2dec81846140fc604
Author: Mark Harmstone <mark@harmstone.com>
Date:   Wed Dec 14 00:51:57 2022 +0000

    Fix size of external_reloc for pe-aarch64
    
    This patch series finishes off the work by Jedidiah Thompson, and adds
    support for creating aarch64 PE images.
    
    This should be essentially complete: I've used this to create a "hello
    world" Windows program in asm, and (with GCC patches) a UEFI program in
    C. I think the only things missing are the .secidx relocation, which is
    needed for PDBs, and the SEH pseudos used for C++ exceptions.
    
    This first patch fixes the size of RELSZ; I'm not sure why it was 14 in
    the first place. This is the size of the "Base Relocation Block" in
    https://learn.microsoft.com/en-us/windows/win32/debug/pe-format, and
    AFAIK should be 10 for everything.

Diff:
---
 bfd/coff-aarch64.c     | 4 ----
 include/coff/aarch64.h | 3 +--
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c
index 8a514b278ee..236cbb79ffb 100644
--- a/bfd/coff-aarch64.c
+++ b/bfd/coff-aarch64.c
@@ -188,10 +188,6 @@ coff_aarch64_rtype_lookup (unsigned int code)
 #define bfd_pe_print_pdata      NULL
 #endif
 
-/* Handle include/coff/aarch64.h external_reloc.  */
-#define SWAP_IN_RELOC_OFFSET	H_GET_32
-#define SWAP_OUT_RELOC_OFFSET	H_PUT_32
-
 /* Return TRUE if this relocation should
    appear in the output .reloc section.  */
 
diff --git a/include/coff/aarch64.h b/include/coff/aarch64.h
index 7592661553f..4616cfef2b8 100644
--- a/include/coff/aarch64.h
+++ b/include/coff/aarch64.h
@@ -54,11 +54,10 @@ struct external_reloc
   char r_vaddr[4];
   char r_symndx[4];
   char r_type[2];
-  char r_offset[4];
 };
 
 #define RELOC struct external_reloc
-#define RELSZ 14
+#define RELSZ 10
 
 /* ARM64 relocations types. */


More information about the Binutils-cvs mailing list