[JITLink] Start laying the groundwork for ELF x86-64 large code model support.
authorLang Hames <lhames@gmail.com>
Sun, 21 Mar 2021 03:22:40 +0000 (20:22 -0700)
committerLang Hames <lhames@gmail.com>
Mon, 22 Mar 2021 03:56:47 +0000 (20:56 -0700)
commit0a74ec3299de83fe220c246ff5aa8f90d3364071
treeccf085f7e94b4f0817dcbde74ece4b3da207d92d
parent209ceed745253cfcf3d05c72b9bdc76b439bc1fb
[JITLink] Start laying the groundwork for ELF x86-64 large code model support.

Introduces DefineExternalSectionStartAndEndSymbols.h, which defines a template
for a JITLink pass that transforms external symbols meeting a user-supplied
predicate into defined symbols pointing at the start and end of a Section
identified by the predicate. JITLink.h is updated with a new makeAbsolute
function to support this pass.

Also renames BasicGOTAndStubsBuilder to PerGraphGOTAndPLTStubsBuilder -- the new
name better describes the intent of this GOT and PLT stubs builder, and will
help to distinguish it from future GOT and PLT stub builders that build entries
that may be shared between multiple graphs.
llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
llvm/lib/ExecutionEngine/JITLink/BasicGOTAndStubsBuilder.h [deleted file]
llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
llvm/lib/ExecutionEngine/JITLink/DefineExternalSectionStartAndEndSymbols.h [new file with mode: 0644]
llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h [new file with mode: 0644]