diff --git libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp.old libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp index 49d15d6..e0e3d1a 100644 --- libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp.old +++ libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp @@ -17,14 +17,6 @@ namespace __cxxabiv1 { using Dtor = void(*)(void*); extern "C" -#ifndef HAVE___CXA_THREAD_ATEXIT_IMPL - // A weak symbol is used to detect this function's presence in the C library - // at runtime, even if libc++ is built against an older libc - _LIBCXXABI_WEAK -#endif - int __cxa_thread_atexit_impl(Dtor, void*, void*); - -#ifndef HAVE___CXA_THREAD_ATEXIT_IMPL namespace { // This implementation is used if the C library does not provide @@ -99,17 +91,11 @@ namespace { }; } // namespace -#endif // HAVE___CXA_THREAD_ATEXIT_IMPL - extern "C" { _LIBCXXABI_FUNC_VIS int __cxa_thread_atexit(Dtor dtor, void* obj, void* dso_symbol) throw() { -#ifdef HAVE___CXA_THREAD_ATEXIT_IMPL - return __cxa_thread_atexit_impl(dtor, obj, dso_symbol); -#else - if (__cxa_thread_atexit_impl) { - return __cxa_thread_atexit_impl(dtor, obj, dso_symbol); - } else { + + { // Initialize the dtors std::__libcpp_tls_key (uses __cxa_guard_*() for // one-time initialization and __cxa_atexit() for destruction) static DtorsManager manager; @@ -133,7 +119,6 @@ extern "C" { return 0; } -#endif // HAVE___CXA_THREAD_ATEXIT_IMPL } } // extern "C"