On 04/01/17 15:42 +0000, Jonathan Wakely wrote:
FreeBSD 11 adds __cxa_thread_atexit to libc, so we should use that instead of defining our own inferior version. This also avoids multiple definitions of the symbol.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. Tested powerpc64le-linux, committed to trunk.
This adds the check for freebsd cross-compilers. Tested by building x86_64-unknown-freebsd11.0 on x86_64-uknown-linux-gnu. Committed to trunk.
commit 5d92bb5541b2d21a8c4e76d9f64f4c1a865e2e92 Author: Jonathan Wakely <[email protected]> Date: Fri Jan 6 17:05:32 2017 +0000 Check for __cxa_thread_atexit for freebsd crosses PR libstdc++/78968 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*. * configure: Regenerate. diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 index 8cc788c..a765a18 100644 --- a/libstdc++-v3/crossconfig.m4 +++ b/libstdc++-v3/crossconfig.m4 @@ -132,6 +132,7 @@ case "${host}" in AC_DEFINE(HAVE_ISINFL) AC_DEFINE(HAVE_ISNANL) fi + AC_CHECK_FUNCS(__cxa_thread_atexit) ;; *-hpux*) SECTION_FLAGS='-ffunction-sections -fdata-sections'
