summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2017-10-03 09:58:35 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2017-10-03 13:01:18 +0800
commita4ee28978acbcf68da9dfb6f198cb6e1ff38ccca (patch)
treeaf6ce280ea798c89cba0c9dcdbd9b5bb0a1181e8
parentd0c5d8dec85b2d389ada5167be9c805f83349f8f (diff)
downloadhaskell-a4ee28978acbcf68da9dfb6f198cb6e1ff38ccca.tar.gz
Adds x86 NONE relocation type
Summary: As reported by Alex Lang, R_X86_64_NONE relocations appear in per-package object files, not per-module object files. This diff adds _NONE relocations for x86. Reviewers: bgamari, geekosaur, austin, erikd, simonmar Reviewed By: geekosaur Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4062
-rw-r--r--rts/linker/Elf.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/linker/Elf.c b/rts/linker/Elf.c
index 58fa593341..f2fd88f750 100644
--- a/rts/linker/Elf.c
+++ b/rts/linker/Elf.c
@@ -1097,6 +1097,7 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC,
switch (reloc_type) {
# ifdef i386_HOST_ARCH
+ case COMPAT_R_386_NONE: break;
case COMPAT_R_386_32: *pP = value; break;
case COMPAT_R_386_PC32: *pP = value - P; break;
# endif
@@ -1571,6 +1572,9 @@ do_Elf_Rela_relocations ( ObjectCode* oc, char* ehdrC,
# endif
#if defined(x86_64_HOST_ARCH)
+ case COMPAT_R_X86_64_NONE:
+ break;
+
case COMPAT_R_X86_64_64:
*(Elf64_Xword *)P = value;
break;