File 2004-ipxe-fix-build.patch of Package qemu.26284

From: Bruce Rogers <brogers@suse.com>
Date: Fri, 25 Jan 2019 09:37:44 -0700
Subject: ipxe: fix build

Newer binutils (>= 2.31) will emit PLT32 relocs for call/jmp
instructions on x86_64 in some cases, instead of PC32 relocs
as before.  This can only be done because on x86-64 the PLT
doesn't need any special setup, and in turn this means that
for post-processing/after-link purposes PLT32 and PC32 relocs
can be handled the same.  elf2efi simply ignores all PC-relative
relocs (as the code is already fully final for them) and PLT32
is one of them, so add it to the list.

(Otherwise an "Unrecognized relocation type 4" error occurs
when building some of the EFI images for IPXE).

Signed-off-by: Bruce Rogers <brogers@suse.com>
---
 src/util/elf2efi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/roms/ipxe/src/util/elf2efi.c b/roms/ipxe/src/util/elf2efi.c
index f932728f74143c2a9a451922f9cb..cccc113f36b974deae941aaf508a 100644
--- a/roms/ipxe/src/util/elf2efi.c
+++ b/roms/ipxe/src/util/elf2efi.c
@@ -637,6 +637,7 @@ static void process_reloc ( struct elf_file *elf, const Elf_Shdr *shdr,
 		case ELF_MREL ( EM_ARM, R_ARM_THM_PC22 ) :
 		case ELF_MREL ( EM_ARM, R_ARM_THM_JUMP24 ) :
 		case ELF_MREL ( EM_X86_64, R_X86_64_PC32 ) :
+		case ELF_MREL ( EM_X86_64, R_X86_64_PLT32 ) :
 		case ELF_MREL ( EM_AARCH64, R_AARCH64_CALL26 ) :
 		case ELF_MREL ( EM_AARCH64, R_AARCH64_JUMP26 ) :
 		case ELF_MREL ( EM_AARCH64, R_AARCH64_ADR_PREL_LO21 ) :
openSUSE Build Service is sponsored by