Project

General

Profile

Bug #1010

[clang] Thread-local variables are not supported

Added by Dmitry Moskalchuk about 4 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
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 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.

History

#1

Updated by Dmitry Moskalchuk almost 4 years ago

  • Target version changed from 10.3.0 to 11.0.0
#2

Updated by Dmitry Moskalchuk over 3 years ago

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

Updated by Dmitry Moskalchuk over 3 years ago

  • Category set to toolchain
  • Status changed from In Progress to Closed
  • % 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

Also available in: Atom PDF