diff options
author | Christian Heimes <christian@python.org> | 2021-11-26 20:36:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-26 19:36:48 +0100 |
commit | 4ebde73b8e416eeb1fd5d2ca3283f7ddb534c5b1 (patch) | |
tree | 1749ac9f7a8cd2f6231d08c240f240c82130e884 | |
parent | b0b10e146b1cbf9c5dfa44af116a2eeb0f210e8b (diff) | |
download | cpython-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.rst | 3 | ||||
-rw-r--r-- | Modules/posixmodule.c | 20 | ||||
-rwxr-xr-x | configure | 51 | ||||
-rw-r--r-- | configure.ac | 51 | ||||
-rw-r--r-- | pyconfig.h.in | 33 |
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__ */ @@ -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 |