Commit 7607ff49 by Jerome Lambourg Committed by Jerome Lambourg

libstdc++: Strengthen the check for availability of pthread_rwlock_t

        * acinclude.m4 (_GLIBCXX_USE_PTHREAD_RWLOCK_T): Checks that
        _PTHREADS is defined after including gthr.h.
        * configure: Regenerate.

From-SVN: r279635
parent 211c667f
2019-12-20 Jerome Lambourg <lambourg@adacore.com>
* acinclude.m4 (_GLIBCXX_USE_PTHREAD_RWLOCK_T): Checks that _PTHREADS
is defined after including gthr.h.
* configure: Regenerate.
2019-12-12 Jonathan Wakely <jwakely@redhat.com> 2019-12-12 Jonathan Wakely <jwakely@redhat.com>
* libsupc++/compare (common_comparison_category): Define without using * libsupc++/compare (common_comparison_category): Define without using
......
...@@ -1410,7 +1410,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [ ...@@ -1410,7 +1410,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [
[#include <features.h>], [#include <features.h>],
[ [
#if ! __GLIBC_PREREQ(2, 17) #if ! __GLIBC_PREREQ(2, 17)
#error #error
#endif #endif
], ],
[glibcxx_glibc217=yes], [glibcxx_glibc217=no]) [glibcxx_glibc217=yes], [glibcxx_glibc217=no])
...@@ -2163,7 +2163,7 @@ AC_DEFUN([GLIBCXX_CHECK_STDIO_PROTO], [ ...@@ -2163,7 +2163,7 @@ AC_DEFUN([GLIBCXX_CHECK_STDIO_PROTO], [
AC_CACHE_VAL(glibcxx_cv_gets, [ AC_CACHE_VAL(glibcxx_cv_gets, [
AC_COMPILE_IFELSE([AC_LANG_SOURCE( AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[#include <stdio.h> [#include <stdio.h>
namespace test namespace test
{ {
using ::gets; using ::gets;
} }
...@@ -2780,9 +2780,9 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [ ...@@ -2780,9 +2780,9 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [
esac esac
VTV_PCH_CXXFLAGS="-fvtable-verify=std" VTV_PCH_CXXFLAGS="-fvtable-verify=std"
else else
VTV_CXXFLAGS= VTV_CXXFLAGS=
VTV_PCH_CXXFLAGS= VTV_PCH_CXXFLAGS=
VTV_CXXLINKFLAGS= VTV_CXXLINKFLAGS=
fi fi
AC_SUBST(VTV_CXXFLAGS) AC_SUBST(VTV_CXXFLAGS)
...@@ -3964,7 +3964,7 @@ dnl ...@@ -3964,7 +3964,7 @@ dnl
AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
GLIBCXX_ENABLE(libstdcxx-threads,auto,,[enable C++11 threads support]) GLIBCXX_ENABLE(libstdcxx-threads,auto,,[enable C++11 threads support])
if test x$enable_libstdcxx_threads = xauto || if test x$enable_libstdcxx_threads = xauto ||
test x$enable_libstdcxx_threads = xyes; then test x$enable_libstdcxx_threads = xyes; then
AC_LANG_SAVE AC_LANG_SAVE
...@@ -4017,11 +4017,23 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ ...@@ -4017,11 +4017,23 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
[Define if gthreads library is available.]) [Define if gthreads library is available.])
# Also check for pthread_rwlock_t for std::shared_timed_mutex in C++14 # Also check for pthread_rwlock_t for std::shared_timed_mutex in C++14
AC_CHECK_TYPE([pthread_rwlock_t], # but only do so if we're using pthread in the gthread library.
[AC_DEFINE([_GLIBCXX_USE_PTHREAD_RWLOCK_T], 1, # On VxWorks for example, pthread_rwlock_t is defined in sys/types.h
[Define if POSIX read/write locks are available in <gthr.h>.])], # but the pthread library is not there by default and the gthread library
[], # does not use it.
[#include "gthr.h"]) AC_TRY_COMPILE([#include "gthr.h"],
[
#if (!defined(_PTHREADS))
#error
#endif
], [ac_gthread_use_pthreads=yes], [ac_gthread_use_pthreads=no])
if test x"$ac_gthread_use_pthreads" = x"yes"; then
AC_CHECK_TYPE([pthread_rwlock_t],
[AC_DEFINE([_GLIBCXX_USE_PTHREAD_RWLOCK_T], 1,
[Define if POSIX read/write locks are available in <gthr.h>.])],
[],
[#include "gthr.h"])
fi
fi fi
CXXFLAGS="$ac_save_CXXFLAGS" CXXFLAGS="$ac_save_CXXFLAGS"
......
...@@ -74654,7 +74654,33 @@ $as_echo "#define _GLIBCXX_HAS_GTHREADS 1" >>confdefs.h ...@@ -74654,7 +74654,33 @@ $as_echo "#define _GLIBCXX_HAS_GTHREADS 1" >>confdefs.h
# Also check for pthread_rwlock_t for std::shared_timed_mutex in C++14 # Also check for pthread_rwlock_t for std::shared_timed_mutex in C++14
ac_fn_cxx_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include \"gthr.h\" # but only do so if we're using pthread in the gthread library.
# On VxWorks for example, pthread_rwlock_t is defined in sys/types.h
# but the pthread library is not there by default and the gthread library
# does not use it.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "gthr.h"
int
main ()
{
#if (!defined(_PTHREADS))
#error
#endif
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
ac_gthread_use_pthreads=yes
else
ac_gthread_use_pthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test x"$ac_gthread_use_pthreads" = x"yes"; then
ac_fn_cxx_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include \"gthr.h\"
" "
if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then :
...@@ -74662,6 +74688,7 @@ $as_echo "#define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1" >>confdefs.h ...@@ -74662,6 +74688,7 @@ $as_echo "#define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1" >>confdefs.h
fi fi
fi
fi fi
CXXFLAGS="$ac_save_CXXFLAGS" CXXFLAGS="$ac_save_CXXFLAGS"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment