+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>
* libsupc++/compare (common_comparison_category): Define without using
[#include <features.h>],
[
#if ! __GLIBC_PREREQ(2, 17)
- #error
+ #error
#endif
],
[glibcxx_glibc217=yes], [glibcxx_glibc217=no])
AC_CACHE_VAL(glibcxx_cv_gets, [
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[#include <stdio.h>
- namespace test
+ namespace test
{
using ::gets;
}
esac
VTV_PCH_CXXFLAGS="-fvtable-verify=std"
else
- VTV_CXXFLAGS=
+ VTV_CXXFLAGS=
VTV_PCH_CXXFLAGS=
- VTV_CXXLINKFLAGS=
+ VTV_CXXLINKFLAGS=
fi
AC_SUBST(VTV_CXXFLAGS)
AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
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
AC_LANG_SAVE
[Define if gthreads library is available.])
# Also check for pthread_rwlock_t for std::shared_timed_mutex in C++14
- 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"])
+ # 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.
+ 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
CXXFLAGS="$ac_save_CXXFLAGS"
# 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 :
fi
+ fi
fi
CXXFLAGS="$ac_save_CXXFLAGS"