[PATCH] [RuntimeDyldELF] Improve GOT support

Lang Hames lhames at gmail.com
Mon Apr 6 12:34:31 PDT 2015


Hi Keno,

This sounds great. Sorry for the delay in review - I'm hoping to get to
them very soon (i.e. in a day or two).

Cheers,
Lang.

On Thu, Apr 2, 2015 at 6:44 PM, Keno Fischer <kfischer at college.harvard.edu>
wrote:

> Hi lhames,
>
> This is the first in a series of patches to eventually add support for TLS
> relocations to RuntimeDyld. This patch resolves an issue in the current GOT
> handling, where GOT entries would be reused between object files, which
> leads to the same situation that necessitates the GOT in the first place,
> i.e. that the 32-bit offset can not cover all of the address space. Thus
> this patch makes the GOT object-file-local.
> Unfortunately, this still isn't quite enough, because the MemoryManager
> does not yet guarantee that sections are allocated sufficiently close to
> each other, even if they belong to the same object file. To address this
> concern, this patch also adds a small API abstraction on top of the GOT
> allocation mechanism that will allow (temporarily, until the MemoryManager
> is improved) using the stub mechanism instead of allocating a different
> section. The actual switch from separate section to stub mechanism will be
> part of a follow-on commit, so that it can be easily reverted independently
> at the appropriate time.
>
> REPOSITORY
>   rL LLVM
>
> http://reviews.llvm.org/D8813
>
> Files:
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
>   test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll
>   test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PIC_relocations.s
>   test/ExecutionEngine/RuntimeDyld/X86/ExternalGlobal.ll
>
> EMAIL PREFERENCES
>   http://reviews.llvm.org/settings/panel/emailpreferences/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150406/8c9afc5b/attachment.html>


More information about the llvm-commits mailing list