[Python-checkins] [3.12] gh-89886: Rely on HAVE_SYS_TIME_H (GH-105058) (#105192)

erlend-aasland webhook-mailer at python.org
Thu Jun 1 08:08:44 EDT 2023


https://github.com/python/cpython/commit/6375287b37c226eb95d032b4714c43f8c04b7edb
commit: 6375287b37c226eb95d032b4714c43f8c04b7edb
branch: 3.12
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: erlend-aasland <erlend.aasland at protonmail.com>
date: 2023-06-01T12:08:37Z
summary:

[3.12] gh-89886: Rely on HAVE_SYS_TIME_H (GH-105058) (#105192)

Quoting autoconf (v2.71):

    All current systems provide time.h; it need not be checked for.
    Not all systems provide sys/time.h, but those that do, all allow
    you to include it and time.h simultaneously.

(cherry picked from commit 9ab587b7146618866cee52c220aecf7bd5b44b02)

Co-authored-by: Erlend E. Aasland <erlend.aasland at protonmail.com>

files:
M Modules/readline.c
M Modules/resource.c
M configure
M configure.ac
M pyconfig.h.in

diff --git a/Modules/readline.c b/Modules/readline.c
index fdb6356e1c84..2824105a1875 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -11,7 +11,10 @@
 #include <signal.h>
 #include <stddef.h>
 #include <stdlib.h>               // free()
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
+#endif
+#include <time.h>
 
 #if defined(HAVE_SETLOCALE)
 /* GNU readline() mistakenly sets the LC_CTYPE locale.
diff --git a/Modules/resource.c b/Modules/resource.c
index 2a8158c9be53..3c89468c48c5 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -1,7 +1,10 @@
 
 #include "Python.h"
 #include <sys/resource.h>
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
+#endif
+#include <time.h>
 #include <string.h>
 #include <errno.h>
 #include <unistd.h>
diff --git a/configure b/configure
index ed80d95ecba0..012dac94fedd 100755
--- a/configure
+++ b/configure
@@ -19866,14 +19866,6 @@ fi
 done
 
 
-if test "x$ac_cv_header_sys_time_h" = xyes; then :
-
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-
-fi
-
 # checks for structures
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
@@ -26736,7 +26728,7 @@ $as_echo_n "checking for stdlib extension module pyexpat... " >&6; }
         if test "$py_cv_module_pyexpat" != "n/a"; then :
 
     if true; then :
-  if true; then :
+  if test "$ac_cv_header_sys_time_h" = "yes"; then :
   py_cv_module_pyexpat=yes
 else
   py_cv_module_pyexpat=missing
diff --git a/configure.ac b/configure.ac
index 2d3f5191fbf3..c30fb2a08d10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5375,12 +5375,6 @@ fi
 
 AC_CHECK_FUNCS([getnameinfo])
 
-dnl autoconf 2.71 deprecates AC_HEADER_TIME, keep for backwards compatibility
-dnl TIME_WITH_SYS_TIME works on all supported systems that have sys/time.h
-AS_VAR_IF([ac_cv_header_sys_time_h], [yes], [
-  AC_DEFINE([TIME_WITH_SYS_TIME], 1, [Define to 1 if you can safely include both <sys/time.h> and <time.h>.])
-])
-
 # checks for structures
 AC_STRUCT_TM
 AC_STRUCT_TIMEZONE
@@ -7375,7 +7369,9 @@ PY_STDLIB_MOD([syslog], [], [test "$ac_cv_header_syslog_h" = yes])
 PY_STDLIB_MOD([termios], [], [test "$ac_cv_header_termios_h" = yes])
 
 dnl _elementtree loads libexpat via CAPI hook in pyexpat
-PY_STDLIB_MOD([pyexpat], [], [], [$LIBEXPAT_CFLAGS], [$LIBEXPAT_LDFLAGS])
+PY_STDLIB_MOD([pyexpat],
+  [], [test "$ac_cv_header_sys_time_h" = "yes"],
+  [$LIBEXPAT_CFLAGS], [$LIBEXPAT_LDFLAGS])
 PY_STDLIB_MOD([_elementtree], [], [], [$LIBEXPAT_CFLAGS], [])
 PY_STDLIB_MOD_SIMPLE([_codecs_cn])
 PY_STDLIB_MOD_SIMPLE([_codecs_hk])
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 2c22b27af65e..b33e82c3609c 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -1691,9 +1691,6 @@
 /* Library needed by timemodule.c: librt may be needed for clock_gettime() */
 #undef TIMEMODULE_LIB
 
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
 #undef TM_IN_SYS_TIME
 



More information about the Python-checkins mailing list