mirror of
https://github.com/python/cpython.git
synced 2026-04-14 07:41:00 +00:00
gh-85277: Fix building without stropts.h or empty stropts.h (#143521)
This commit is contained in:
parent
2114da976c
commit
2756d56eef
4 changed files with 167 additions and 146 deletions
|
|
@ -0,0 +1 @@
|
|||
Fix building without ``stropts.h`` or empty ``stropts.h``
|
||||
|
|
@ -9397,13 +9397,13 @@ os_openpty_impl(PyObject *module)
|
|||
if (_Py_set_inheritable(master_fd, 0, NULL) < 0)
|
||||
goto posix_error;
|
||||
|
||||
#if !defined(__CYGWIN__) && !defined(__ANDROID__) && !defined(HAVE_DEV_PTC)
|
||||
#if defined(HAVE_STROPTS_H) && !defined(HAVE_DEV_PTC)
|
||||
ioctl(slave_fd, I_PUSH, "ptem"); /* push ptem */
|
||||
ioctl(slave_fd, I_PUSH, "ldterm"); /* push ldterm */
|
||||
#ifndef __hpux
|
||||
ioctl(slave_fd, I_PUSH, "ttcompat"); /* push ttcompat */
|
||||
#endif /* __hpux */
|
||||
#endif /* HAVE_CYGWIN */
|
||||
#endif /* defined(HAVE_STROPTS_H) && !defined(HAVE_DEV_PTC) */
|
||||
#endif /* HAVE_OPENPTY */
|
||||
|
||||
return Py_BuildValue("(ii)", master_fd, slave_fd);
|
||||
|
|
|
|||
296
configure
generated
vendored
296
configure
generated
vendored
|
|
@ -2340,6 +2340,60 @@ fi
|
|||
|
||||
} # ac_fn_c_try_run
|
||||
|
||||
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
|
||||
# ------------------------------------------------------------------
|
||||
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
|
||||
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
|
||||
ac_fn_check_decl ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
as_decl_name=`echo $2|sed 's/ *(.*//'`
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
|
||||
printf %s "checking whether $as_decl_name is declared... " >&6; }
|
||||
if eval test \${$3+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else case e in #(
|
||||
e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
|
||||
eval ac_save_FLAGS=\$$6
|
||||
as_fn_append $6 " $5"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$4
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
#ifndef $as_decl_name
|
||||
#ifdef __cplusplus
|
||||
(void) $as_decl_use;
|
||||
#else
|
||||
(void) $as_decl_name;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
eval "$3=yes"
|
||||
else case e in #(
|
||||
e) eval "$3=no" ;;
|
||||
esac
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
eval $6=\$ac_save_FLAGS
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
eval ac_res=\$$3
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
printf "%s\n" "$ac_res" >&6; }
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
|
||||
} # ac_fn_check_decl
|
||||
|
||||
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
|
||||
# -------------------------------------------
|
||||
# Tests whether TYPE exists after having included INCLUDES, setting cache
|
||||
|
|
@ -2658,60 +2712,6 @@ printf "%s\n" "$ac_res" >&6; }
|
|||
|
||||
} # ac_fn_c_check_func
|
||||
|
||||
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
|
||||
# ------------------------------------------------------------------
|
||||
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
|
||||
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
|
||||
ac_fn_check_decl ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
as_decl_name=`echo $2|sed 's/ *(.*//'`
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
|
||||
printf %s "checking whether $as_decl_name is declared... " >&6; }
|
||||
if eval test \${$3+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else case e in #(
|
||||
e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
|
||||
eval ac_save_FLAGS=\$$6
|
||||
as_fn_append $6 " $5"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$4
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
#ifndef $as_decl_name
|
||||
#ifdef __cplusplus
|
||||
(void) $as_decl_use;
|
||||
#else
|
||||
(void) $as_decl_name;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
eval "$3=yes"
|
||||
else case e in #(
|
||||
e) eval "$3=no" ;;
|
||||
esac
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
eval $6=\$ac_save_FLAGS
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
eval ac_res=\$$3
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
printf "%s\n" "$ac_res" >&6; }
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
|
||||
} # ac_fn_check_decl
|
||||
|
||||
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
|
||||
# ----------------------------------------------------
|
||||
# Tries to find if the field MEMBER exists in type AGGR, after including
|
||||
|
|
@ -11461,12 +11461,6 @@ if test "x$ac_cv_header_spawn_h" = xyes
|
|||
then :
|
||||
printf "%s\n" "#define HAVE_SPAWN_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_stropts_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "sys/audioio.h" "ac_cv_header_sys_audioio_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_audioio_h" = xyes
|
||||
|
|
@ -11951,6 +11945,105 @@ fi
|
|||
fi
|
||||
|
||||
|
||||
# On Linux, stropts.h may be empty
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
|
||||
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
|
||||
if test ${ac_cv_c_undeclared_builtin_options+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else case e in #(
|
||||
e) ac_save_CFLAGS=$CFLAGS
|
||||
ac_cv_c_undeclared_builtin_options='cannot detect'
|
||||
for ac_arg in '' -fno-builtin; do
|
||||
CFLAGS="$ac_save_CFLAGS $ac_arg"
|
||||
# This test program should *not* compile successfully.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
(void) strchr;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
|
||||
else case e in #(
|
||||
e) # This test program should compile successfully.
|
||||
# No library function is consistently available on
|
||||
# freestanding implementations, so test against a dummy
|
||||
# declaration. Include always-available headers on the
|
||||
# off chance that they somehow elicit warnings.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <float.h>
|
||||
#include <limits.h>
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
extern void ac_decl (int, char *);
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
(void) ac_decl (0, (char *) 0);
|
||||
(void) ac_decl;
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
if test x"$ac_arg" = x
|
||||
then :
|
||||
ac_cv_c_undeclared_builtin_options='none needed'
|
||||
else case e in #(
|
||||
e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;
|
||||
esac
|
||||
fi
|
||||
break
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
|
||||
esac
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
done
|
||||
CFLAGS=$ac_save_CFLAGS
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
|
||||
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
|
||||
case $ac_cv_c_undeclared_builtin_options in #(
|
||||
'cannot detect') :
|
||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
|
||||
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot make $CC report undeclared builtins
|
||||
See 'config.log' for more details" "$LINENO" 5; } ;; #(
|
||||
'none needed') :
|
||||
ac_c_undeclared_builtin_options='' ;; #(
|
||||
*) :
|
||||
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
|
||||
esac
|
||||
|
||||
ac_fn_check_decl "$LINENO" "I_PUSH" "ac_cv_have_decl_I_PUSH" "
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
#include <stropts.h>
|
||||
|
||||
" "$ac_c_undeclared_builtin_options" "CFLAGS"
|
||||
if test "x$ac_cv_have_decl_I_PUSH" = xyes
|
||||
then :
|
||||
|
||||
|
||||
printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
# bluetooth/bluetooth.h has been known to not compile with -std=c99.
|
||||
# http://permalink.gmane.org/gmane.linux.bluez.kernel/22294
|
||||
SAVE_CFLAGS=$CFLAGS
|
||||
|
|
@ -20608,89 +20701,6 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
|
||||
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
|
||||
if test ${ac_cv_c_undeclared_builtin_options+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else case e in #(
|
||||
e) ac_save_CFLAGS=$CFLAGS
|
||||
ac_cv_c_undeclared_builtin_options='cannot detect'
|
||||
for ac_arg in '' -fno-builtin; do
|
||||
CFLAGS="$ac_save_CFLAGS $ac_arg"
|
||||
# This test program should *not* compile successfully.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
(void) strchr;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
|
||||
else case e in #(
|
||||
e) # This test program should compile successfully.
|
||||
# No library function is consistently available on
|
||||
# freestanding implementations, so test against a dummy
|
||||
# declaration. Include always-available headers on the
|
||||
# off chance that they somehow elicit warnings.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <float.h>
|
||||
#include <limits.h>
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
extern void ac_decl (int, char *);
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
(void) ac_decl (0, (char *) 0);
|
||||
(void) ac_decl;
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"
|
||||
then :
|
||||
if test x"$ac_arg" = x
|
||||
then :
|
||||
ac_cv_c_undeclared_builtin_options='none needed'
|
||||
else case e in #(
|
||||
e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;
|
||||
esac
|
||||
fi
|
||||
break
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
|
||||
esac
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
done
|
||||
CFLAGS=$ac_save_CFLAGS
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
|
||||
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
|
||||
case $ac_cv_c_undeclared_builtin_options in #(
|
||||
'cannot detect') :
|
||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
|
||||
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot make $CC report undeclared builtins
|
||||
See 'config.log' for more details" "$LINENO" 5; } ;; #(
|
||||
'none needed') :
|
||||
ac_c_undeclared_builtin_options='' ;; #(
|
||||
*) :
|
||||
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
|
||||
esac
|
||||
|
||||
ac_fn_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
" "$ac_c_undeclared_builtin_options" "CFLAGS"
|
||||
|
|
|
|||
12
configure.ac
12
configure.ac
|
|
@ -3011,7 +3011,7 @@ AC_CHECK_HEADERS([ \
|
|||
io.h langinfo.h libintl.h libutil.h linux/auxvec.h sys/auxv.h linux/fs.h linux/limits.h linux/memfd.h \
|
||||
linux/netfilter_ipv4.h linux/random.h linux/soundcard.h linux/sched.h \
|
||||
linux/tipc.h linux/wait.h netdb.h net/ethernet.h netinet/in.h netpacket/packet.h poll.h process.h pthread.h pty.h \
|
||||
sched.h setjmp.h shadow.h signal.h spawn.h stropts.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \
|
||||
sched.h setjmp.h shadow.h signal.h spawn.h sys/audioio.h sys/bsdtty.h sys/devpoll.h \
|
||||
sys/endian.h sys/epoll.h sys/event.h sys/eventfd.h sys/file.h sys/ioctl.h sys/kern_control.h \
|
||||
sys/loadavg.h sys/lock.h sys/memfd.h sys/mkdev.h sys/mman.h sys/modem.h sys/param.h sys/pidfd.h sys/poll.h \
|
||||
sys/random.h sys/resource.h sys/select.h sys/sendfile.h sys/socket.h sys/soundcard.h sys/stat.h \
|
||||
|
|
@ -3022,6 +3022,16 @@ AC_CHECK_HEADERS([ \
|
|||
AC_HEADER_DIRENT
|
||||
AC_HEADER_MAJOR
|
||||
|
||||
# On Linux, stropts.h may be empty
|
||||
AC_CHECK_DECL([I_PUSH], [
|
||||
AC_DEFINE([HAVE_STROPTS_H], [1],
|
||||
[Define to 1 if you have the <stropts.h> header file.])], [], [
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
#include <stropts.h>
|
||||
])
|
||||
|
||||
# bluetooth/bluetooth.h has been known to not compile with -std=c99.
|
||||
# http://permalink.gmane.org/gmane.linux.bluez.kernel/22294
|
||||
SAVE_CFLAGS=$CFLAGS
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue