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...