[PATCH] D27711: ELF/AArch64: Fix dynamic relocation against local symbol in shared objects
Adhemerval Zanella via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 13 06:41:57 PST 2016
zatrazz created this revision.
zatrazz added reviewers: rui314, rafael, rengolin.
zatrazz added a subscriber: llvm-commits.
zatrazz set the repository for this revision to rL LLVM.
zatrazz added a project: lld.
Herald added a subscriber: aemerson.
ELF/AArch64: Fix dynamic relocation against local symbol in
shared objects
-
static __thread int32_t x1;
static __thread int64_t x2;
int32_t foo1 (int32_t x)
{
x1 += x;
return x;
}
int64_t foo2 (int64_t x)
{
x2 += x;
return x;
}
-
The dynamic relocation should be create as:
Relocations [
Section (N) .rela.dyn {
<Address1> R_AARCH64_TLSDESC - 0x0
<Address2> R_AARCH64_TLSDESC - 0x8
}
]
Where 0x0 addend in first dynamic relocation is the address of 'x1'
in TLS block and '0x8' is the address of 'x2'.
Checked against test-suite on aarch64-linux-gnu.
Repository:
rL LLVM
https://reviews.llvm.org/D27711
Files:
ELF/Relocations.cpp
ELF/Target.cpp
ELF/Target.h
test/ELF/aarch64-tlsdesc.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27711.81229.patch
Type: text/x-patch
Size: 4496 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161213/a6341cfb/attachment.bin>
More information about the llvm-commits
mailing list