llvm / clang and thread_local storage problems
howarth.at.macports at gmail.com
Sun Oct 9 14:57:23 PDT 2016
On Sun, Oct 9, 2016 at 4:46 PM, Jack Howarth
<howarth.at.macports at gmail.com> wrote:
> On Sun, Oct 9, 2016 at 3:20 PM, Jeremy Huddleston Sequoia
> <jeremyhu at apple.com> wrote:
>>> On Oct 9, 2016, at 09:47, Jack Howarth <howarth.at.macports at gmail.com> wrote:
>>> On Sun, Oct 9, 2016 at 3:53 AM, Jeremy Huddleston Sequoia
>>> <jeremyhu at apple.com> wrote:
>>>> thread_local support was added in OS X 10.9 (along with __cxa_thread_atexit being added to Libc as part of that support). As long as your minimum deployment target is 10.9, you should be fine. The issue is that you're on 10.6, so you don't have __cxa_thread_atexit.
>>>> There is active conversation right now about adding a fallback implementation of __cxa_thread_atexit directly into libcxxabi. See https://reviews.llvm.org/D21803 as that might be quite useful for your needs. If so, provide a patch to libcxxabi that incorporates it, and I'll get it in.
>>> On the topic of thread local support, the failures in the guile 2.0.x
>>> test suite should be looked at...
>>> to determine if Apple's thread-local-storage implementation is buggy
>>> as upstream guile claims.
> radar://28688091 "guile 2.0.12 exposes potential thread-local-storage
> bug on Mac OS X"
One other piece of information is the following comments placed in
libguile/threads.c that should give you a rough picture of what guile
is doing with thread-local-storage (in case anything there seems
outside the scope of the Apple implementation).
/* When thread-local storage (TLS) is available, a pointer to the
current-thread object is kept in TLS. Note that storing the thread-object
itself in TLS (rather than a pointer to some malloc'd memory) is not
possible since thread objects may live longer than the actual thread they
/* Cache the current thread in TLS for faster lookup. */
> Note that currently the guile Portfile in MacPorts lacks the support
> for 'sudo port -d test guile' to work.
More information about the macports-dev