Support X86_64_GOTLoad relocations in RuntimeDyldMachO by treating them the
authorLang Hames <lhames@gmail.com>
Thu, 15 Aug 2013 22:31:40 +0000 (22:31 +0000)
committerLang Hames <lhames@gmail.com>
Thu, 15 Aug 2013 22:31:40 +0000 (22:31 +0000)
commit8a71d5344856468d82d05132ae9dcf78a936f27d
tree12a1e5719bd61a192c8c7e4b0b4eae0592beaba9
parent6dc689670cb6c83183a37b2ab45af48422028796
Support X86_64_GOTLoad relocations in RuntimeDyldMachO by treating them the
same way as X86_64_GOT relocations. The 'Load' part of GOTLoad is just an
optimization hint for the linker anyway, and can be safely ignored.

This patch also fixes some minor issues with the relocations introduced while
processing an X86_64_GOT[Load]: the addend for the GOT entry should always be
zero, and the addend for the replacement relocation at the original offset
should be the same as the addend of the relocation being replaced.

I haven't come up with a good way of testing this yet, but I'm working on it.

This fixes <rdar://problem/14651564>.

llvm-svn: 188499
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp