From: Mark Harmstone Date: Wed, 14 Dec 2022 00:51:57 +0000 (+0000) Subject: Fix size of external_reloc for pe-aarch64 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5093b5a5e7e3e51116207eb2dec81846140fc604;p=binutils-gdb.git 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 --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. */