PR78968 add configure check for __cxa_thread_atexit in libc
authorJonathan Wakely <jwakely@redhat.com>
Wed, 4 Jan 2017 15:41:19 +0000 (15:41 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 4 Jan 2017 15:41:19 +0000 (15:41 +0000)
PR libstdc++/78968
* config.h.in: Regenerate.
* configure: Likewise.
* configure.ac: Check for __cxa_thread_atexit.
* libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
Don't define __cxa_thread_atexit if libc provides it.

From-SVN: r244057

libstdc++-v3/ChangeLog
libstdc++-v3/config.h.in
libstdc++-v3/configure
libstdc++-v3/configure.ac
libstdc++-v3/libsupc++/atexit_thread.cc

index d0bd7e63fbd6697348ff98af5b0e1210de332ba5..10f362bdd69f79e4b817dc72a9900536b56e3656 100644 (file)
@@ -1,3 +1,12 @@
+2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/78968
+       * config.h.in: Regenerate.
+       * configure: Likewise.
+       * configure.ac: Check for __cxa_thread_atexit.
+       * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
+       Don't define __cxa_thread_atexit if libc provides it.
+
 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
        Implement 2801, Default-constructibility of unique_ptr.
index 41ad510fbc2fb2d33130e15c42519e72f1456f7b..cdd313bef6afd8cc99d71f5a82e8cc05fde948b6 100644 (file)
 /* Define to 1 if you have the `_tanl' function. */
 #undef HAVE__TANL
 
+/* Define to 1 if you have the `__cxa_thread_atexit' function. */
+#undef HAVE___CXA_THREAD_ATEXIT
+
 /* Define to 1 if you have the `__cxa_thread_atexit_impl' function. */
 #undef HAVE___CXA_THREAD_ATEXIT_IMPL
 
index be6763a0e425f795b1327c93025962e13e3a7fd2..8f9264637f70b5c503f3b1bcb5c15dd4beee33fb 100755 (executable)
@@ -28031,12 +28031,14 @@ $as_echo "#define HAVE_TLS 1" >>confdefs.h
 
   fi
 
-  for ac_func in __cxa_thread_atexit_impl
+  for ac_func in __cxa_thread_atexit_impl __cxa_thread_atexit
 do :
-  ac_fn_c_check_func "$LINENO" "__cxa_thread_atexit_impl" "ac_cv_func___cxa_thread_atexit_impl"
-if test "x$ac_cv_func___cxa_thread_atexit_impl" = x""yes; then :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE___CXA_THREAD_ATEXIT_IMPL 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
index 3d6177116c2d6e5ffd72387b1c8ad787fee15f84..f2f6e0a10c2ad1c1b7bcb54816b99daab692efdf 100644 (file)
@@ -255,7 +255,7 @@ if $GLIBCXX_IS_NATIVE; then
   # For TLS support.
   GCC_CHECK_TLS
 
-  AC_CHECK_FUNCS(__cxa_thread_atexit_impl)
+  AC_CHECK_FUNCS(__cxa_thread_atexit_impl __cxa_thread_atexit)
   AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
 
   # For iconv support.
index da633682acfebbcc97e144ec292b7fb63ecbbf23..923a07075562c7e99af541736406ca0950adff74 100644 (file)
 #include <windows.h>
 #endif
 
-#if _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
+#if _GLIBCXX_HAVE___CXA_THREAD_ATEXIT
+
+// Libc provides __cxa_thread_atexit definition.
+
+#elif _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
 
 extern "C" int __cxa_thread_atexit_impl (void (*func) (void *),
                                         void *arg, void *d);