Add std::timespec and std::timespec_get for C++17
authorJonathan Wakely <jwakely@redhat.com>
Thu, 14 Feb 2019 14:10:25 +0000 (14:10 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 14 Feb 2019 14:10:25 +0000 (14:10 +0000)
* configure.ac: Check for C11 timespec_get function.
* crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
(openbsd): Likewise
* config.h.in: Regenerate.
* configure: Regenerate.
* include/c_global/ctime (timespec, timespec_get): Add to namespace
std for C++17 and up.

From-SVN: r268879

libstdc++-v3/ChangeLog
libstdc++-v3/config.h.in
libstdc++-v3/configure
libstdc++-v3/configure.ac
libstdc++-v3/crossconfig.m4
libstdc++-v3/include/c_global/ctime

index 8186974196ef8ade83aea4f76a489bbfb077fe72..932b80716ba4d9cdba8568f95aa56b23d5f3f5b5 100644 (file)
@@ -1,5 +1,13 @@
 2019-02-14  Jonathan Wakely  <jwakely@redhat.com>
 
+       * configure.ac: Check for C11 timespec_get function.
+       * crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
+       (openbsd): Likewise
+       * config.h.in: Regenerate.
+       * configure: Regenerate.
+       * include/c_global/ctime (timespec, timespec_get): Add to namespace
+       std for C++17 and up.
+
        * doc/xml/manual/intro.xml: Document LWG 2537 status.
        * include/bits/stl_queue.h
        (priority_queue(const Compare&, const Container&, const Alloc&))
index 225ef1bff9f3d8c3b7712f5d491353e50f6301db..034d91b3a5f931ed7ebf5b92ee87eb3e9e45c04c 100644 (file)
 /* Define to 1 if you have the <tgmath.h> header file. */
 #undef HAVE_TGMATH_H
 
+/* Define to 1 if you have the `timespec_get' function. */
+#undef HAVE_TIMESPEC_GET
+
 /* Define to 1 if the target supports thread-local storage. */
 #undef HAVE_TLS
 
index 15848e364ab26aa874b18d76b5aaf6705ddae5dc..857f886571ec5b7fd46d7a542113cbcb0a9c9db4 100755 (executable)
@@ -28428,6 +28428,19 @@ if test "x$ac_cv_func__wfopen" = xyes; then :
 #define HAVE__WFOPEN 1
 _ACEOF
 
+fi
+done
+
+
+  # C11 functions for C++17 library
+  for ac_func in timespec_get
+do :
+  ac_fn_c_check_func "$LINENO" "timespec_get" "ac_cv_func_timespec_get"
+if test "x$ac_cv_func_timespec_get" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TIMESPEC_GET 1
+_ACEOF
+
 fi
 done
 
@@ -53613,6 +53626,17 @@ if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
+fi
+done
+
+    for ac_func in timespec_get
+do :
+  ac_fn_c_check_func "$LINENO" "timespec_get" "ac_cv_func_timespec_get"
+if test "x$ac_cv_func_timespec_get" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TIMESPEC_GET 1
+_ACEOF
+
 fi
 done
 
@@ -60232,6 +60256,17 @@ _ACEOF
 fi
 done
 
+    for ac_func in timespec_get
+do :
+  ac_fn_c_check_func "$LINENO" "timespec_get" "ac_cv_func_timespec_get"
+if test "x$ac_cv_func_timespec_get" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TIMESPEC_GET 1
+_ACEOF
+
+fi
+done
+
 
 
 
@@ -66542,6 +66577,17 @@ if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
+fi
+done
+
+    for ac_func in timespec_get
+do :
+  ac_fn_c_check_func "$LINENO" "timespec_get" "ac_cv_func_timespec_get"
+if test "x$ac_cv_func_timespec_get" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TIMESPEC_GET 1
+_ACEOF
+
 fi
 done
 
index ad5b4117cfda8a989cce4503f34d9fcf6c570037..6c98f27044170bb08507c07b69b01fbc899d0ece 100644 (file)
@@ -265,6 +265,9 @@ if $GLIBCXX_IS_NATIVE; then
   AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
   AC_CHECK_FUNCS(_wfopen)
 
+  # C11 functions for C++17 library
+  AC_CHECK_FUNCS(timespec_get)
+
   # For iconv support.
   AM_ICONV
 
index 3de40dc138b5c0e9d4f36afcab57796c6a0e24d3..4a3030080534b5fa99752485ac654cb0726efa06 100644 (file)
@@ -135,6 +135,7 @@ case "${host}" in
     fi
     AC_CHECK_FUNCS(__cxa_thread_atexit)
     AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    AC_CHECK_FUNCS(timespec_get)
     ;;
 
   *-fuchsia*)
@@ -194,6 +195,7 @@ case "${host}" in
     GCC_CHECK_TLS
     AC_CHECK_FUNCS(__cxa_thread_atexit_impl)
     AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    AC_CHECK_FUNCS(timespec_get)
     AM_ICONV
     ;;
   *-mingw32*)
@@ -221,6 +223,7 @@ case "${host}" in
       AC_DEFINE(HAVE_ISNANL)
     fi
     AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    AC_CHECK_FUNCS(timespec_get)
     ;;
   *-qnx6.1* | *-qnx6.2*)
     SECTION_FLAGS='-ffunction-sections -fdata-sections'
index cdd3d8d71711536bff3512284e6335b9455f34d8..685c821b5778c4cde2f740d3e4e91cd4c3c2a9e6 100644 (file)
@@ -72,4 +72,13 @@ namespace std
   using ::strftime;
 } // namespace
 
+#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_TIMESPEC_GET)
+#undef timespec_get
+namespace std
+{
+  using ::timespec;
+  using ::timespec_get;
+} // namespace std
+#endif
+
 #endif