[linker] fix armv7 & add aarch64
authorMoritz Angermann <moritz.angermann@gmail.com>
Thu, 8 Jun 2017 18:58:38 +0000 (14:58 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 8 Jun 2017 19:35:58 +0000 (15:35 -0400)
commit1c83fd814b12754be8af211a387cec906ca198b3
tree1c93c8791e62885462da53100f0ccd4aafd9dd2c
parent7bb2aa00bd93e0f3f00def586094e349e39035dd
[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
22 files changed:
rts/LinkerInternals.h
rts/linker/CacheFlush.c
rts/linker/Elf.c
rts/linker/Elf.h
rts/linker/ElfTypes.h
rts/linker/MachO.c
rts/linker/SymbolExtras.c
rts/linker/elf_got.c [new file with mode: 0644]
rts/linker/elf_got.h [new file with mode: 0644]
rts/linker/elf_plt.c [new file with mode: 0644]
rts/linker/elf_plt.h [new file with mode: 0644]
rts/linker/elf_plt_aarch64.c [new file with mode: 0644]
rts/linker/elf_plt_aarch64.h [new file with mode: 0644]
rts/linker/elf_plt_arm.c [new file with mode: 0644]
rts/linker/elf_plt_arm.h [new file with mode: 0644]
rts/linker/elf_reloc.c [new file with mode: 0644]
rts/linker/elf_reloc.h [new file with mode: 0644]
rts/linker/elf_reloc_aarch64.c [new file with mode: 0644]
rts/linker/elf_reloc_aarch64.h [new file with mode: 0644]
rts/linker/elf_util.c
rts/linker/elf_util.h
rts/linker/util.h