diff options
author | luxufan <932494295@qq.com> | 2021-09-11 11:11:48 +0800 |
---|---|---|
committer | luxufan <932494295@qq.com> | 2021-09-13 14:35:49 +0800 |
commit | ff6069b89114325b1904e55d3987701567d522d4 (patch) | |
tree | 2df2cc4458133b2fff1eb7641edaac4f7a2a852e /llvm/lib/Object/XCOFFObjectFile.cpp | |
parent | 802bf02a738e091d5bf22c03e83204a38d2c7950 (diff) | |
download | llvm-ff6069b89114325b1904e55d3987701567d522d4.zip llvm-ff6069b89114325b1904e55d3987701567d522d4.tar.gz llvm-ff6069b89114325b1904e55d3987701567d522d4.tar.bz2 |
[JITLink] Add initial native TLS support to ELFNix platform
This patch use the same way as the https://reviews.llvm.org/rGfe1fa43f16beac1506a2e73a9f7b3c81179744eb to handle the thread local variable.
It allocates 2 * pointerSize space in GOT to represent the thread key and data address. Instead of using the _tls_get_addr function, I customed a function __orc_rt_elfnix_tls_get_addr to get the address of thread local varible. Currently, this is a wip patch, only one TLS relocation R_X86_64_TLSGD is supported and I need to add the corresponding test cases.
To allocate the TLS descriptor in GOT, I need to get the edge kind information in PerGraphGOTAndPLTStubBuilder, So I add a `Edge::Kind K` argument in some functions in PerGraphGOTAndPLTStubBuilder.h. If it is not suitable, I can think further to solve this problem.
Differential Revision: https://reviews.llvm.org/D109293
Diffstat (limited to 'llvm/lib/Object/XCOFFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions