diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-05-20 20:09:35 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-05-20 20:09:35 +0000 |
commit | 74f3dbe438d322a15657e56c99f33ee67c38d68c (patch) | |
tree | 22a7394dd0765d20057d1aa8905c1c49faf048be /lld/ELF/InputSection.cpp | |
parent | 3eded68bef73953267956d9688a42d52c482214c (diff) | |
download | bcm5719-llvm-74f3dbe438d322a15657e56c99f33ee67c38d68c.tar.gz bcm5719-llvm-74f3dbe438d322a15657e56c99f33ee67c38d68c.zip |
Directly compute the right value for R_RELAX_TLS_GD_TO_IE.
This avoid doing math in Target.cpp to compensate.
llvm-svn: 270266
Diffstat (limited to 'lld/ELF/InputSection.cpp')
-rw-r--r-- | lld/ELF/InputSection.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp index 4dc3252e8da..5552b90d319 100644 --- a/lld/ELF/InputSection.cpp +++ b/lld/ELF/InputSection.cpp @@ -168,10 +168,10 @@ getSymVA(uint32_t Type, typename ELFT::uint A, typename ELFT::uint P, case R_GOTREL: return Body.getVA<ELFT>(A) - Out<ELFT>::Got->getVA(); case R_GOT_FROM_END: + case R_RELAX_TLS_GD_TO_IE: return Body.getGotOffset<ELFT>() + A - Out<ELFT>::Got->getNumEntries() * sizeof(uintX_t); case R_GOT: - case R_RELAX_TLS_GD_TO_IE: return Body.getGotVA<ELFT>() + A; case R_GOT_PAGE_PC: return getAArch64Page(Body.getGotVA<ELFT>() + A) - getAArch64Page(P); |