summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Clayton <chris2553@googlemail.com>2018-08-20 12:00:31 +0100
committerSimon Horman <horms@verge.net.au>2018-08-24 09:54:06 +0200
commitb9de21ef51a7ceab7122a707c188602eae22c4ee (patch)
tree1b798d6dab0e4a9cdf3abc59274cc0389180b155
parentca4823aa2fc28e00400e65473caeede5cadd0da0 (diff)
downloadkexec-tools-b9de21ef51a7ceab7122a707c188602eae22c4ee.tar.gz
kexec: fix for "Unhandled rela relocation: R_X86_64_PLT32" error
In response to a change in binutils, commit b21ebf2fb4c (x86: Treat R_X86_64_PLT32 as R_X86_64_PC32) was applied to the linux kernel during the 4.16 development cycle and has since been backported to earlier stable kernel series. The change results in the failure message in $SUBJECT when rebooting via kexec. Fix this by replicating the change in kexec. Signed-off-by: Chris Clayton <chris2553@googlemail.com> Acked-by: Baoquan He <bhe@redhat.com> Tested-by: Bhupesh Sharma <bhsharma@redhat.com> Acked-by: Bhupesh Sharma <bhsharma@redhat.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/x86_64/kexec-elf-rel-x86_64.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
index 7fdde73a..db85b443 100644
--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
@@ -79,6 +79,7 @@ void machine_apply_elf_rel(struct mem_ehdr *UNUSED(ehdr),
goto overflow;
break;
case R_X86_64_PC32:
+ case R_X86_64_PLT32:
*(uint32_t *)location = value - address;
break;
default: