Project

General

Profile

Actions

Bug #1010

closed

[clang] Thread-local variables are not supported

Added by Dmitry M. over 9 years ago. Updated almost 9 years ago.

Status:
Completed
Priority:
Normal
Assignee:
Category:
toolchain
Target version:
Start date:
07/21/2015
Due date:
% Done:

100%

Estimated time:
CPU Architecture:
Host OS:
Toolchain:
clang-3.6
Android version:
CrystaX NDK Version:

Description

clang require @__tls_get_addr@ to be implemented on low level (libc) to support @__thread@ variables. Bionic doesn't provide it. GCC workaround it by using emulated TLS feature in libgcc. Clang don't support it yet, but "here":https://llvm.org/bugs/show_bug.cgi?id=23566 is corresponding ticket, with patches suggested.

Actions #1

Updated by Dmitry M. about 9 years ago

  • Target version changed from 10.3.0 to 11.0.0
Actions #2

Updated by Dmitry M. almost 9 years ago

  • Status changed from Open to In Progress
  • CrystaX NDK Version set to 10.3.1
Actions #3

Updated by Dmitry M. almost 9 years ago

  • Category set to toolchain
  • Status changed from In Progress to Completed
  • % Done changed from 0 to 100

Fixed by backporting support of emulated TLS from clang-3.8 (not yet released) to clang-3.7. It's much more difficult to backport it to clang-3.6 due to significant difference in code base between versions, so clang-3.6 will not receive this fix.

"llvm":https://github.com/crystax/android-toolchain-llvm-3-7/commit/97c48680b2dca8685294d64a71aa72a3077bc1bd
"clang":https://github.com/crystax/android-toolchain-clang-3-7/commit/7837d53d7f13aefd3d384bde9d2fe5aa616222dd

Actions

Also available in: Atom PDF