search for: __cxa_thread_atexit

Displaying 5 results from an estimated 5 matches for "__cxa_thread_atexit".

2018 Dec 08
2
using emulated-tls on Darwin 8, 9, 10
On 2018-12-08 19:10, Ken Cunningham via llvm-dev wrote: > 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. Can ibc++abi link with libclang_rt to resolve the symbol? -- /Jacob Carlborg
2018 Dec 10
2
using emulated-tls on Darwin 8, 9, 10
...uld be in business, and all systems will have thread_local . All that being sorted out, we now have libc++ 7.0.0 and libc++abi built and being used with emulated-tls support on darwin < 11 now. Thanks! The last bit of this I plan to sort out would be how to tweak the following patch so that __cxa_thread_atexit would be called based on the -femulated-tls flag rather than based on the MacOSXVersion. That way emulated-tls could be used/tested on any OS version. -- Ken ========================== --- a/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp.orig 2018-10-02 18:31:17.000000000 -0700 +++ b/tools/clang/lib/...
2020 Jan 09
2
Is there some sort of "@llvm.thread_ctors."?
...ign it to @llvm.global_ctors. We also know that in C++, the constructor of a static thread_local member will *not* get called when the program starts, but the first time this member is used, I also checked the IR code, this is implemented by calling it's constructor at the usage, and then call __cxa_thread_atexit to register it's destructor. Now I want to add thread_local feature to my own language, and I want my thread_local member acts simlar like a static member, that is, when a new thread is created, the constructors of thread_local members will automatically get called, instead get called when us...
2018 Mar 11
1
Using Xray compilation with C programs
...lib/linux/libclang_rt.xray-x86_64.a(xray_inmemory_log.cc.o): In function `__xray_InMemoryRawLog<__xray_InMemoryEmulateTSC(int32_t, XRayEntryType)::<lambda(uint8_t&)> >': /home/jonasbu/llvm-clang/llvm/projects/compiler-rt/lib/xray/xray_inmemory_log.cc:136: undefined reference to `__cxa_thread_atexit' /home/jonasbu/local/lib/clang/6.0.0/lib/linux/libclang_rt.xray-x86_64.a(xray_inmemory_log.cc.o): In function `__xray_OpenLogFile': /home/jonasbu/llvm-clang/llvm/projects/compiler-rt/lib/xray/xray_inmemory_log.cc:85: undefined reference to `__cxa_guard_acquire' /home/jonasbu/llvm-clang/...
2018 Dec 07
2
using emulated-tls on Darwin 8, 9, 10
...0000000 -0700 +++ b/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp 2018-10-02 18:32:35.000000000 -0700 @@ -2255,7 +2255,7 @@ const char *Name = "__cxa_atexit"; if (TLS) { const llvm::Triple &T = CGF.getTarget().getTriple(); - Name = T.isOSDarwin() ? "_tlv_atexit" : "__cxa_thread_atexit"; + Name = (T.isOSDarwin() && !T.isMacOSXVersionLT(10, 7)) ? "_tlv_atexit" : "__cxa_thread_atexit"; } // We're assuming that the destructor function is something we can --- a/tools/clang/lib/Basic/Targets/OSTargets.h.orig 2018-10-02 17:14:10.000000000 -07...