[PATCH] D62106: [X86] Support -fno-plt __tls_get_addr calls

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 7 20:18:22 PDT 2019


MaskRay added a comment.

In D62106#1572702 <https://reviews.llvm.org/D62106#1572702>, @dalias wrote:

> Have you checked what gcc does? It should be safe to do the same, no? Or is the issue that gcc leaves it to gas, and it's reasonably assumed that gas and ld.bfd versions will match, whereas clang uses an internal assembler that might not match?


gcc does something like:

  (define_insn "*tls_global_dynamic_64_<mode>"
  ...
  if (flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
    return "call\t%P2";
  return "call\t{*%p2 at GOT(%1)|[DWORD PTR %p2 at GOT[%1]]}";

I haven't built it but it apparently it guards the issue with the configure-time check. I'll have to work around the bug with a source change.. D64304 <https://reviews.llvm.org/D64304>


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62106/new/

https://reviews.llvm.org/D62106





More information about the llvm-commits mailing list