summaryrefslogtreecommitdiff
path: root/rts/linker/elf_plt_arm.h
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2017-06-08 14:58:38 -0400
committerBen Gamari <ben@smart-cactus.org>2017-06-08 15:35:58 -0400
commit1c83fd814b12754be8af211a387cec906ca198b3 (patch)
tree1c93c8791e62885462da53100f0ccd4aafd9dd2c /rts/linker/elf_plt_arm.h
parent7bb2aa00bd93e0f3f00def586094e349e39035dd (diff)
downloadhaskell-1c83fd814b12754be8af211a387cec906ca198b3.tar.gz
[linker] fix armv7 & add aarch64
This adds Global Offset Table logic, as well as PLT like logic for armv7 and aarch64; which replaces the preexisting symbolExtras logic, by placing the PLT tables next to the separtely loaded sections. This is needed to ensure that the symbol stubs are in range. Reviewers: bgamari, austin, erikd, simonmar Reviewed By: bgamari Subscribers: Ericson2314, ryantrinkle, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3448
Diffstat (limited to 'rts/linker/elf_plt_arm.h')
-rw-r--r--rts/linker/elf_plt_arm.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/rts/linker/elf_plt_arm.h b/rts/linker/elf_plt_arm.h
new file mode 100644
index 0000000000..a495cef91f
--- /dev/null
+++ b/rts/linker/elf_plt_arm.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "LinkerInternals.h"
+
+#if defined(OBJFORMAT_ELF)
+
+extern const size_t stubSizeArm;
+bool needStubForRelArm(Elf_Rel * rel);
+bool needStubForRelaArm(Elf_Rela * rel);
+bool makeStubArm(Stub * s);
+
+#endif