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)
commitae7ac3974c1afae2f8c94a12095d47128d272eb5
treef2eb34e282e7a21d6f23d871f3ccbfbd923b2ae0
parentb187b69170ec50fa8cf9d434ae204b86b8eb4339
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>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188499 91177308-0d34-0410-b5e6-96231b3b80d8
lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp