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