On Sun, Oct 9, 2016 at 5:57 PM, Jack Howarth
<howarth.at.macpo...@gmail.com> wrote:
> On Sun, Oct 9, 2016 at 4:46 PM, Jack Howarth
> <howarth.at.macpo...@gmail.com> wrote:
>> On Sun, Oct 9, 2016 at 3:20 PM, Jeremy Huddleston Sequoia
>> <jerem...@apple.com> wrote:
>>>
>>>> On Oct 9, 2016, at 09:47, Jack Howarth <howarth.at.macpo...@gmail.com> 
>>>> wrote:
>>>>
>>>> On Sun, Oct 9, 2016 at 3:53 AM, Jeremy Huddleston Sequoia
>>>> <jerem...@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...
>>>>
>>>> https://trac.macports.org/ticket/52556
>>>>
>>>> to determine if Apple's thread-local-storage implementation is buggy
>>>> as upstream guile claims.
>>>
>>> Radar?
>>
>> 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
>    represent.  */
>
> /* Cache the current thread in TLS for faster lookup.  */
>

One other comment in libguile/async.c

/* These are function variants of the same-named macros (uppercase) for use
   outside of libguile.  This is so that `SCM_I_CURRENT_THREAD', which may
   reside in TLS, is not accessed from outside of libguile.  It thus allows
   libguile to be built with the "local-dynamic" TLS model.  */

>>
>> Note that currently the guile Portfile in MacPorts lacks the support
>> for 'sudo port -d test guile' to work.
>>
>>>
_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to