thread_local storage on 10.6.8 (and earlier) with clang-7.0

Ken Cunningham ken.cunningham.webuse at gmail.com
Sat Dec 8 22:29:17 UTC 2018


On 2018-12-08, at 10:24 AM, Ken Cunningham wrote:

> 
>> At present I don't seem to know enough about the underpinnings to see how to change the visibility settings on the emutls objects from libclang_rt when placed into the executable.

> So perhaps having emutls.c in libclang_rt can never actually work...maybe the emutls.o code needs to exist in a separate dylib (like it does in libgcc).
> 
> So putting it into libc++abi.dylib might indeed be the only workable method, assuming each executable would get it's own copy in memory and they wouldn't all collide together.
> 


And I sorted it out.

We are building libc++abi with nodefaultlibs . The emutls.o symbols indeed belong right in libc++abi, and I will either compile them in with emutls.c or link them in manually by adding that library.

And then we should be in business, and all systems will have thread_local .

Ken




More information about the macports-dev mailing list