summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2021-11-26 20:36:48 +0200
committerGitHub <noreply@github.com>2021-11-26 19:36:48 +0100
commit4ebde73b8e416eeb1fd5d2ca3283f7ddb534c5b1 (patch)
tree1749ac9f7a8cd2f6231d08c240f240c82130e884
parentb0b10e146b1cbf9c5dfa44af116a2eeb0f210e8b (diff)
downloadcpython-git-4ebde73b8e416eeb1fd5d2ca3283f7ddb534c5b1.tar.gz
bpo-40280: Move hard-coded feature checks to configure (GH-29789)
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
-rw-r--r--Misc/NEWS.d/next/Build/2021-11-26-09-10-19.bpo-40280.xmiMJl.rst3
-rw-r--r--Modules/posixmodule.c20
-rwxr-xr-xconfigure51
-rw-r--r--configure.ac51
-rw-r--r--pyconfig.h.in33
5 files changed, 88 insertions, 70 deletions
diff --git a/Misc/NEWS.d/next/Build/2021-11-26-09-10-19.bpo-40280.xmiMJl.rst b/Misc/NEWS.d/next/Build/2021-11-26-09-10-19.bpo-40280.xmiMJl.rst
new file mode 100644
index 0000000000..5d1be17c68
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-11-26-09-10-19.bpo-40280.xmiMJl.rst
@@ -0,0 +1,3 @@
+``configure`` now checks for functions ``fork1, getegid,
+geteuid, getgid, getppid, getuid, opendir, pipe, system, wait,
+ttyname``.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index c29d9fc2a7..a89cff7295 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -320,26 +320,6 @@ corresponding Unix manual entries for more information on calls.");
# define HAVE_CWAIT 1
# define HAVE_FSYNC 1
# define fsync _commit
-# else
- /* Unix functions that the configure script doesn't check for */
-# ifndef __VXWORKS__
-# define HAVE_EXECV 1
-# define HAVE_FORK 1
-# if defined(__USLC__) && defined(__SCO_VERSION__) /* SCO UDK Compiler */
-# define HAVE_FORK1 1
-# endif
-# endif
-# define HAVE_GETEGID 1
-# define HAVE_GETEUID 1
-# define HAVE_GETGID 1
-# define HAVE_GETPPID 1
-# define HAVE_GETUID 1
-# define HAVE_KILL 1
-# define HAVE_OPENDIR 1
-# define HAVE_PIPE 1
-# define HAVE_SYSTEM 1
-# define HAVE_WAIT 1
-# define HAVE_TTYNAME 1
# endif /* _MSC_VER */
#endif /* ! __WATCOMC__ || __QNX__ */
diff --git a/configure b/configure
index 5f8b11c941..1c398929c9 100755
--- a/configure
+++ b/configure
@@ -13376,31 +13376,32 @@ $as_echo "$MACHDEP_OBJS" >&6; }
fi
# checks for library functions
-for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \
- explicit_memset faccessat fchmod fchmodat fchown fchownat \
- fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \
- futimens futimes gai_strerror getentropy \
- getgrgid getgrgid_r getgrnam_r \
- getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \
- getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \
- if_nameindex \
- initgroups kill killpg lchown lockf linkat lstat lutimes mmap \
- memrchr mbrtowc mkdirat mkfifo \
- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \
- posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
- pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
- readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
- setgid sethostname \
- setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
- sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
- sched_rr_get_interval shutdown \
- sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
- sigtimedwait sigwait sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \
- sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
- truncate uname unlinkat utimensat utimes vfork waitid waitpid wait3 wait4 \
- wcscoll wcsftime wcsxfrm wmemcmp writev _getpty rtpSpawn
+for ac_func in \
+ accept4 alarm bind_textdomain_codeset chown clock close_range confstr \
+ copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \
+ faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \
+ fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \
+ gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \
+ getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \
+ getpeername getpgid getpid getppid getpriority _getpty \
+ getpwent getpwnam_r getpwuid_r getresgid getresuid getsid getspent \
+ getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \
+ lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \
+ mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \
+ pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
+ pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \
+ pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \
+ rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \
+ sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \
+ sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \
+ setitimer setlocale setpgid setpgrp setpriority setregid setresgid \
+ setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \
+ sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \
+ sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \
+ sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \
+ tmpnam tmpnam_r truncate ttyname uname unlinkat utimensat utimes vfork \
+ wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \
+
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff --git a/configure.ac b/configure.ac
index 447a9c8509..e96d88fb8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3937,31 +3937,32 @@ else
fi
# checks for library functions
-AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \
- explicit_memset faccessat fchmod fchmodat fchown fchownat \
- fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \
- futimens futimes gai_strerror getentropy \
- getgrgid getgrgid_r getgrnam_r \
- getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \
- getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \
- if_nameindex \
- initgroups kill killpg lchown lockf linkat lstat lutimes mmap \
- memrchr mbrtowc mkdirat mkfifo \
- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \
- posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
- pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
- readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
- setgid sethostname \
- setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
- sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
- sched_rr_get_interval shutdown \
- sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
- sigtimedwait sigwait sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \
- sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
- truncate uname unlinkat utimensat utimes vfork waitid waitpid wait3 wait4 \
- wcscoll wcsftime wcsxfrm wmemcmp writev _getpty rtpSpawn)
+AC_CHECK_FUNCS([ \
+ accept4 alarm bind_textdomain_codeset chown clock close_range confstr \
+ copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \
+ faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \
+ fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \
+ gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \
+ getgrnam_r getgrouplist getgroups getitimer getloadavg getlogin \
+ getpeername getpgid getpid getppid getpriority _getpty \
+ getpwent getpwnam_r getpwuid_r getresgid getresuid getsid getspent \
+ getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \
+ lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \
+ mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \
+ pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
+ pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \
+ pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \
+ rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \
+ sched_setparam sched_setscheduler sem_clockwait sem_getvalue sem_open \
+ sem_timedwait sem_unlink sendfile setegid seteuid setgid sethostname \
+ setitimer setlocale setpgid setpgrp setpriority setregid setresgid \
+ setresuid setreuid setsid setuid setvbuf shutdown sigaction sigaltstack \
+ sigfillset siginterrupt sigpending sigrelse sigtimedwait sigwait \
+ sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \
+ sysconf system tcgetpgrp tcsetpgrp tempnam timegm times tmpfile \
+ tmpnam tmpnam_r truncate ttyname uname unlinkat utimensat utimes vfork \
+ wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \
+])
# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
# links. Some libc implementations have a stub lchmod implementation that always
diff --git a/pyconfig.h.in b/pyconfig.h.in
index b837b9ad2e..27bed56084 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -362,6 +362,9 @@
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
+/* Define to 1 if you have the `fork1' function. */
+#undef HAVE_FORK1
+
/* Define to 1 if you have the `forkpty' function. */
#undef HAVE_FORKPTY
@@ -435,9 +438,18 @@
/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
#undef HAVE_GETC_UNLOCKED
+/* Define to 1 if you have the `getegid' function. */
+#undef HAVE_GETEGID
+
/* Define to 1 if you have the `getentropy' function. */
#undef HAVE_GETENTROPY
+/* Define to 1 if you have the `geteuid' function. */
+#undef HAVE_GETEUID
+
+/* Define to 1 if you have the `getgid' function. */
+#undef HAVE_GETGID
+
/* Define to 1 if you have the `getgrgid' function. */
#undef HAVE_GETGRGID
@@ -495,6 +507,9 @@
/* Define to 1 if you have the `getpid' function. */
#undef HAVE_GETPID
+/* Define to 1 if you have the `getppid' function. */
+#undef HAVE_GETPPID
+
/* Define to 1 if you have the `getpriority' function. */
#undef HAVE_GETPRIORITY
@@ -528,6 +543,9 @@
/* Define to 1 if you have the `getspnam' function. */
#undef HAVE_GETSPNAM
+/* Define to 1 if you have the `getuid' function. */
+#undef HAVE_GETUID
+
/* Define to 1 if you have the `getwd' function. */
#undef HAVE_GETWD
@@ -767,6 +785,9 @@
/* Define to 1 if you have the `openat' function. */
#undef HAVE_OPENAT
+/* Define to 1 if you have the `opendir' function. */
+#undef HAVE_OPENDIR
+
/* Define to 1 if you have the `openpty' function. */
#undef HAVE_OPENPTY
@@ -776,6 +797,9 @@
/* Define to 1 if you have the `pause' function. */
#undef HAVE_PAUSE
+/* Define to 1 if you have the `pipe' function. */
+#undef HAVE_PIPE
+
/* Define to 1 if you have the `pipe2' function. */
#undef HAVE_PIPE2
@@ -1137,6 +1161,9 @@
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
+/* Define to 1 if you have the `system' function. */
+#undef HAVE_SYSTEM
+
/* Define to 1 if you have the <sys/audioio.h> header file. */
#undef HAVE_SYS_AUDIOIO_H
@@ -1296,6 +1323,9 @@
/* Define to 1 if you have the `truncate' function. */
#undef HAVE_TRUNCATE
+/* Define to 1 if you have the `ttyname' function. */
+#undef HAVE_TTYNAME
+
/* Define to 1 if you don't have `tm_zone' but do have the external array
`tzname'. */
#undef HAVE_TZNAME
@@ -1347,6 +1377,9 @@
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
+/* Define to 1 if you have the `wait' function. */
+#undef HAVE_WAIT
+
/* Define to 1 if you have the `wait3' function. */
#undef HAVE_WAIT3