diff --git a/Ports/python-3.6/README.md b/Ports/python-3.6/README.md new file mode 100644 index 00000000000..84c889c2739 --- /dev/null +++ b/Ports/python-3.6/README.md @@ -0,0 +1,26 @@ +# Python 3.6 Port + +This port is highly experimental. Python binary can be started with `python3`, but many +functionality is expected to not work. + +## Why this version is used + +Python 2.7 will not be supported in future, see e.g. [pythonclock.org]([https://link](https://pythonclock.org/)). +Python 3 is a good candidate for porting. Until Python 3.6 it is easily possible to disable +multi-threading API via `--without-threads` option. This is needed until SerenityOS provides the +pthread APIs. + +## How to improve + +Run the Python test suite via `python3 -m test` to see what fails and start working on that. +If functionality in LibC/LibM/Kernel/... is updated, recompile Python with `./package.sh build`. + +## Known limitations + +* No locale support, default locale encoding set to utf-8 + +* Instead of `/dev/urandom`, `/dev/random` is being used + +* No multi-threading + +* time module not working due to missing time related functions in LibC/Kernel diff --git a/Ports/python-3.6/config.site b/Ports/python-3.6/config.site new file mode 100644 index 00000000000..c2730240635 --- /dev/null +++ b/Ports/python-3.6/config.site @@ -0,0 +1,2 @@ +ac_cv_file__dev_ptmx=no +ac_cv_file__dev_ptc=no diff --git a/Ports/python-3.6/package.sh b/Ports/python-3.6/package.sh new file mode 100755 index 00000000000..95ee3e39ae1 --- /dev/null +++ b/Ports/python-3.6/package.sh @@ -0,0 +1,11 @@ +#!/bin/bash ../.port_include.sh +port=python-3.6 +version=3.6 +workdir=Python-3.6.0 +useconfigure=true +configopts="--build=i686 --without-threads --enable-optimizations" +makeopts="-j$(nproc) build_all" +installopts="-j$(nproc) build_all" +files="https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz Python-3.6.0.tar.xz" + +export CONFIG_SITE=$(pwd)/config.site diff --git a/Ports/python-3.6/patches/0001-Adapt-configuration.patch b/Ports/python-3.6/patches/0001-Adapt-configuration.patch new file mode 100644 index 00000000000..700cfc2eec2 --- /dev/null +++ b/Ports/python-3.6/patches/0001-Adapt-configuration.patch @@ -0,0 +1,1948 @@ +diff --git a/Makefile.pre.in b/Makefile.pre.in +index cd7d33d..7949077 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -470,7 +470,7 @@ DTRACE_DEPS = \ + # Rules + + # Default target +-all: @DEF_MAKE_ALL_RULE@ ++all: build_all + build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Programs/_testembed python-config + + # Compile a binary with profile guided optimization. +diff --git a/Modules/Setup.dist b/Modules/Setup.dist +index 8b87fc8..5d6f29f 100644 +--- a/Modules/Setup.dist ++++ b/Modules/Setup.dist +@@ -122,7 +122,7 @@ _stat _stat.c # stat.h interface + time timemodule.c # -lm # time operations and variables + + # access to ISO C locale support +-_locale _localemodule.c # -lintl ++#_locale _localemodule.c # -lintl + + # Standard I/O baseline + _io -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c +diff --git a/config.sub b/config.sub +index d654d03..ea26de9 100755 +--- a/config.sub ++++ b/config.sub +@@ -1512,6 +1512,8 @@ case $os in + ;; + -nacl*) + ;; ++ -serenity*) ++ ;; + -none) + ;; + *) +diff --git a/configure b/configure +index cf95b27..4e7241c 100755 +--- a/configure ++++ b/configure +@@ -784,6 +784,7 @@ infodir + docdir + oldincludedir + includedir ++runstatedir + localstatedir + sharedstatedir + sysconfdir +@@ -894,6 +895,7 @@ datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' ++runstatedir='${localstatedir}/run' + includedir='${prefix}/include' + oldincludedir='/usr/include' + docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +@@ -1146,6 +1148,15 @@ do + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + ++ -runstatedir | --runstatedir | --runstatedi | --runstated \ ++ | --runstate | --runstat | --runsta | --runst | --runs \ ++ | --run | --ru | --r) ++ ac_prev=runstatedir ;; ++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ ++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ ++ | --run=* | --ru=* | --r=*) ++ runstatedir=$ac_optarg ;; ++ + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ +@@ -1283,7 +1294,7 @@ fi + for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ +- libdir localedir mandir ++ libdir localedir mandir runstatedir + do + eval ac_val=\$$ac_var + # Remove trailing slashes. +@@ -1436,6 +1447,7 @@ Fine tuning of the installation directories: + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +@@ -2753,8 +2765,7 @@ else + fi + + +-ac_config_headers="$ac_config_headers pyconfig.h" +- ++#AC_CONFIG_HEADER(pyconfig.h) + + ac_aux_dir= + for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do +@@ -3250,7 +3261,10 @@ then + *-*-linux*) + ac_sys_system=Linux + ;; +- *-*-cygwin*) ++ *-*-serenity*) ++ ac_sys_system=Serenity ++ ;; ++ *-*-cygwin*) + ac_sys_system=Cygwin + ;; + *) +@@ -3295,6 +3309,9 @@ if test "$cross_compiling" = yes; then + _host_cpu=$host_cpu + esac + ;; ++ *-*-serenity*) ++ _host_cpu=$host_cpu ++ ;; + *-*-cygwin*) + _host_cpu= + ;; +@@ -16628,7 +16645,43 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix + # Let make expand exec_prefix. + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +-DEFS=-DHAVE_CONFIG_H ++# Transform confdefs.h into DEFS. ++# Protect against shell expansion while executing Makefile rules. ++# Protect against Makefile macro expansion. ++# ++# If the first sed substitution is executed (which looks for macros that ++# take arguments), then branch to the quote section. Otherwise, ++# look for a macro that doesn't take arguments. ++ac_script=' ++:mline ++/\\$/{ ++ N ++ s,\\\n,, ++ b mline ++} ++t clear ++:clear ++s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g ++t quote ++s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g ++t quote ++b any ++:quote ++s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g ++s/\[/\\&/g ++s/\]/\\&/g ++s/\$/$$/g ++H ++:any ++${ ++ g ++ s/^\n// ++ s/\n/ /g ++ p ++} ++' ++DEFS=`sed -n "$ac_script" confdefs.h` ++ + + ac_libobjs= + ac_ltlibobjs= +@@ -17063,15 +17116,11 @@ case $ac_config_files in *" + "*) set x $ac_config_files; shift; ac_config_files=$*;; + esac + +-case $ac_config_headers in *" +-"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +-esac + + + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + # Files that config.status was made for. + config_files="$ac_config_files" +-config_headers="$ac_config_headers" + + _ACEOF + +@@ -17092,15 +17141,10 @@ Usage: $0 [OPTION]... [TAG]... + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE +- --header=FILE[:TEMPLATE] +- instantiate the configuration header FILE + + Configuration files: + $config_files + +-Configuration headers: +-$config_headers +- + Report bugs to ." + + _ACEOF +@@ -17163,18 +17207,7 @@ do + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; +- --header | --heade | --head | --hea ) +- $ac_shift +- case $ac_optarg in +- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; +- esac +- as_fn_append CONFIG_HEADERS " '$ac_optarg'" +- ac_need_defaults=false;; +- --he | --h) +- # Conflict between --help and --header +- as_fn_error $? "ambiguous option: \`$1' +-Try \`$0 --help' for more information.";; +- --help | --hel | -h ) ++ --he | --h | --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) +@@ -17230,7 +17263,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + for ac_config_target in $ac_config_targets + do + case $ac_config_target in +- "pyconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS pyconfig.h" ;; + "Mac/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/Makefile" ;; + "Mac/PythonLauncher/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/PythonLauncher/Makefile" ;; + "Mac/Resources/framework/Info.plist") CONFIG_FILES="$CONFIG_FILES Mac/Resources/framework/Info.plist" ;; +@@ -17252,7 +17284,6 @@ done + # bizarre bug on SunOS 4.1.3. + if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + fi + + # Have a temporary directory for convenience. Make it in the build tree +@@ -17440,116 +17471,8 @@ fi + cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + fi # test -n "$CONFIG_FILES" + +-# Set up the scripts for CONFIG_HEADERS section. +-# No need to generate them if there are no CONFIG_HEADERS. +-# This happens for instance with `./config.status Makefile'. +-if test -n "$CONFIG_HEADERS"; then +-cat >"$ac_tmp/defines.awk" <<\_ACAWK || +-BEGIN { +-_ACEOF +- +-# Transform confdefs.h into an awk script `defines.awk', embedded as +-# here-document in config.status, that substitutes the proper values into +-# config.h.in to produce config.h. +- +-# Create a delimiter string that does not exist in confdefs.h, to ease +-# handling of long lines. +-ac_delim='%!_!# ' +-for ac_last_try in false false :; do +- ac_tt=`sed -n "/$ac_delim/p" confdefs.h` +- if test -z "$ac_tt"; then +- break +- elif $ac_last_try; then +- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 +- else +- ac_delim="$ac_delim!$ac_delim _$ac_delim!! " +- fi +-done +- +-# For the awk script, D is an array of macro values keyed by name, +-# likewise P contains macro parameters if any. Preserve backslash +-# newline sequences. +- +-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +-sed -n ' +-s/.\{148\}/&'"$ac_delim"'/g +-t rset +-:rset +-s/^[ ]*#[ ]*define[ ][ ]*/ / +-t def +-d +-:def +-s/\\$// +-t bsnl +-s/["\\]/\\&/g +-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +-D["\1"]=" \3"/p +-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +-d +-:bsnl +-s/["\\]/\\&/g +-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +-D["\1"]=" \3\\\\\\n"\\/p +-t cont +-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +-t cont +-d +-:cont +-n +-s/.\{148\}/&'"$ac_delim"'/g +-t clear +-:clear +-s/\\$// +-t bsnlc +-s/["\\]/\\&/g; s/^/"/; s/$/"/p +-d +-:bsnlc +-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +-b cont +-' >$CONFIG_STATUS || ac_write_fail=1 +- +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +- for (key in D) D_is_set[key] = 1 +- FS = "" +-} +-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { +- line = \$ 0 +- split(line, arg, " ") +- if (arg[1] == "#") { +- defundef = arg[2] +- mac1 = arg[3] +- } else { +- defundef = substr(arg[1], 2) +- mac1 = arg[2] +- } +- split(mac1, mac2, "(") #) +- macro = mac2[1] +- prefix = substr(line, 1, index(line, defundef) - 1) +- if (D_is_set[macro]) { +- # Preserve the white space surrounding the "#". +- print prefix "define", macro P[macro] D[macro] +- next +- } else { +- # Replace #undef with comments. This is necessary, for example, +- # in the case of _POSIX_SOURCE, which is predefined and required +- # on some systems where configure will not decide to define it. +- if (defundef == "undef") { +- print "/*", prefix defundef, macro, "*/" +- next +- } +- } +-} +-{ print } +-_ACAWK +-_ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +-fi # test -n "$CONFIG_HEADERS" +- + +-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " ++eval set X " :F $CONFIG_FILES " + shift + for ac_tag + do +@@ -17768,30 +17691,7 @@ which seems to be undefined. Please make sure it is defined" >&2;} + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; +- :H) +- # +- # CONFIG_HEADER +- # +- if test x"$ac_file" != x-; then +- { +- $as_echo "/* $configure_input */" \ +- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" +- } >"$ac_tmp/config.h" \ +- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +-$as_echo "$as_me: $ac_file is unchanged" >&6;} +- else +- rm -f "$ac_file" +- mv "$ac_tmp/config.h" "$ac_file" \ +- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +- fi +- else +- $as_echo "/* $configure_input */" \ +- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ +- || as_fn_error $? "could not create -" "$LINENO" 5 +- fi +- ;; ++ + + + esac +diff --git a/configure.ac b/configure.ac +index 1d63813..79bd3eb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,7 +47,7 @@ else + fi + + AC_CONFIG_SRCDIR([Include/object.h]) +-AC_CONFIG_HEADER(pyconfig.h) ++#AC_CONFIG_HEADER(pyconfig.h) + + AC_CANONICAL_HOST + AC_SUBST(build) +@@ -382,6 +382,9 @@ then + *-*-linux*) + ac_sys_system=Linux + ;; ++ *-*-serenity*) ++ ac_sys_system=Serenity ++ ;; + *-*-cygwin*) + ac_sys_system=Cygwin + ;; +@@ -427,6 +430,9 @@ if test "$cross_compiling" = yes; then + _host_cpu=$host_cpu + esac + ;; ++ *-*-serenity*) ++ _host_cpu=$host_cpu ++ ;; + *-*-cygwin*) + _host_cpu= + ;; +diff --git a/pyconfig.h b/pyconfig.h +new file mode 100644 +index 0000000..d830fe9 +--- /dev/null ++++ b/pyconfig.h +@@ -0,0 +1,1519 @@ ++/* pyconfig.h. Generated from pyconfig.h.in by configure. */ ++/* pyconfig.h.in. Generated from configure.ac by autoheader. */ ++ ++ ++#ifndef Py_PYCONFIG_H ++#define Py_PYCONFIG_H ++ ++ ++/* Define if building universal (internal helper macro) */ ++/* #undef AC_APPLE_UNIVERSAL_BUILD */ ++ ++/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want ++ support for AIX C++ shared extension modules. */ ++/* #undef AIX_GENUINE_CPLUSPLUS */ ++ ++/* The Android API level. */ ++/* #undef ANDROID_API_LEVEL */ ++ ++/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM ++ mixed-endian order (byte order 45670123) */ ++/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ ++ ++/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most ++ significant byte first */ ++/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ ++ ++/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the ++ least significant byte first */ ++/* #undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 */ ++ ++/* Define if --enable-ipv6 is specified */ ++/* #undef ENABLE_IPV6 */ ++ ++/* Define if flock needs to be linked with bsd library. */ ++/* #undef FLOCK_NEEDS_LIBBSD */ ++ ++/* Define if getpgrp() must be called as getpgrp(0). */ ++#define GETPGRP_HAVE_ARG 1 ++ ++/* Define if gettimeofday() does not have second (timezone) argument This is ++ the case on Motorola V4 (R40V4.2) */ ++/* #undef GETTIMEOFDAY_NO_TZ */ ++ ++/* Define to 1 if you have the `accept4' function. */ ++/* #undef HAVE_ACCEPT4 */ ++ ++/* Define to 1 if you have the `acosh' function. */ ++/* #undef HAVE_ACOSH */ ++ ++/* struct addrinfo (netdb.h) */ ++/* #undef HAVE_ADDRINFO */ ++ ++/* Define to 1 if you have the `alarm' function. */ ++#define HAVE_ALARM 1 ++ ++/* Define if aligned memory access is required */ ++#define HAVE_ALIGNED_REQUIRED 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ALLOCA_H 1 ++ ++/* Define this if your time.h defines altzone. */ ++#define HAVE_ALTZONE 1 ++ ++/* Define to 1 if you have the `asinh' function. */ ++/* #undef HAVE_ASINH */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_ASM_TYPES_H */ ++ ++/* Define to 1 if you have the `atanh' function. */ ++/* #undef HAVE_ATANH */ ++ ++/* Define to 1 if you have the `bind_textdomain_codeset' function. */ ++/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_BLUETOOTH_H */ ++ ++/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide ++ chars that would be converted. */ ++/* #undef HAVE_BROKEN_MBSTOWCS */ ++ ++/* Define if nice() returns success/failure instead of the new priority. */ ++/* #undef HAVE_BROKEN_NICE */ ++ ++/* Define if the system reports an invalid PIPE_BUF value. */ ++/* #undef HAVE_BROKEN_PIPE_BUF */ ++ ++/* Define if poll() sets errno on invalid file descriptors. */ ++/* #undef HAVE_BROKEN_POLL */ ++ ++/* Define if the Posix semaphores do not work on your system */ ++/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ ++ ++/* Define if pthread_sigmask() does not work on your system. */ ++/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ ++ ++/* define to 1 if your sem_getvalue is broken. */ ++#define HAVE_BROKEN_SEM_GETVALUE 1 ++ ++/* Define if `unsetenv` does not return an int. */ ++/* #undef HAVE_BROKEN_UNSETENV */ ++ ++/* Has builtin atomics */ ++#define HAVE_BUILTIN_ATOMIC 1 ++ ++/* Define to 1 if you have the 'chflags' function. */ ++/* #undef HAVE_CHFLAGS */ ++ ++/* Define to 1 if you have the `chown' function. */ ++#define HAVE_CHOWN 1 ++ ++/* Define if you have the 'chroot' function. */ ++/* #undef HAVE_CHROOT */ ++ ++/* Define to 1 if you have the `clock' function. */ ++#define HAVE_CLOCK 1 ++ ++/* Define to 1 if you have the `clock_getres' function. */ ++/* #undef HAVE_CLOCK_GETRES */ ++ ++/* Define to 1 if you have the `clock_gettime' function. */ ++/* #define HAVE_CLOCK_GETTIME 1 */ ++ ++/* Define to 1 if you have the `clock_settime' function. */ ++/* #undef HAVE_CLOCK_SETTIME */ ++ ++/* Define if the C compiler supports computed gotos. */ ++/* #undef HAVE_COMPUTED_GOTOS */ ++ ++/* Define to 1 if you have the `confstr' function. */ ++/* #undef HAVE_CONFSTR */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_CONIO_H */ ++ ++/* Define to 1 if you have the `copysign' function. */ ++/* #undef HAVE_COPYSIGN */ ++ ++/* Define to 1 if you have the `ctermid' function. */ ++/* #undef HAVE_CTERMID */ ++ ++/* Define if you have the 'ctermid_r' function. */ ++/* #undef HAVE_CTERMID_R */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_CURSES_H */ ++ ++/* Define if you have the 'is_term_resized' function. */ ++/* #undef HAVE_CURSES_IS_TERM_RESIZED */ ++ ++/* Define if you have the 'resizeterm' function. */ ++/* #undef HAVE_CURSES_RESIZETERM */ ++ ++/* Define if you have the 'resize_term' function. */ ++/* #undef HAVE_CURSES_RESIZE_TERM */ ++ ++/* Define to 1 if you have the declaration of `isfinite', and to 0 if you ++ don't. */ ++#define HAVE_DECL_ISFINITE 0 ++ ++/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't. ++ */ ++#define HAVE_DECL_ISINF 0 ++ ++/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't. ++ */ ++#define HAVE_DECL_ISNAN 0 ++ ++/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_DEEPBIND 0 ++ ++/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_GLOBAL 1 ++ ++/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_LAZY 1 ++ ++/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_LOCAL 1 ++ ++/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_NODELETE 0 ++ ++/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_NOLOAD 0 ++ ++/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you ++ don't. */ ++#define HAVE_DECL_RTLD_NOW 1 ++ ++/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. ++ */ ++#define HAVE_DECL_TZNAME 1 ++ ++/* Define to 1 if you have the device macros. */ ++/* #undef HAVE_DEVICE_MACROS */ ++ ++/* Define to 1 if you have the /dev/ptc device file. */ ++/* #undef HAVE_DEV_PTC */ ++ ++/* Define to 1 if you have the /dev/ptmx device file. */ ++/* #undef HAVE_DEV_PTMX */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_DIRECT_H */ ++ ++/* Define to 1 if the dirent structure has a d_type field */ ++/* #undef HAVE_DIRENT_D_TYPE */ ++ ++/* Define to 1 if you have the header file, and it defines `DIR'. ++ */ ++#define HAVE_DIRENT_H 1 ++ ++/* Define if you have the 'dirfd' function or macro. */ ++#define HAVE_DIRFD 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define to 1 if you have the `dlopen' function. */ ++#define HAVE_DLOPEN 1 ++ ++/* Define to 1 if you have the `dup2' function. */ ++#define HAVE_DUP2 1 ++ ++/* Define to 1 if you have the `dup3' function. */ ++/* #undef HAVE_DUP3 */ ++ ++/* Defined when any dynamic module loading is enabled. */ ++#define HAVE_DYNAMIC_LOADING 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ENDIAN_H 1 ++ ++/* Define if you have the 'epoll' functions. */ ++/* #undef HAVE_EPOLL */ ++ ++/* Define if you have the 'epoll_create1' function. */ ++/* #undef HAVE_EPOLL_CREATE1 */ ++ ++/* Define to 1 if you have the `erf' function. */ ++/* #undef HAVE_ERF */ ++ ++/* Define to 1 if you have the `erfc' function. */ ++/* #undef HAVE_ERFC */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ERRNO_H 1 ++ ++/* Define to 1 if you have the `execv' function. */ ++#define HAVE_EXECV 1 ++ ++/* Define to 1 if you have the `expm1' function. */ ++/* #undef HAVE_EXPM1 */ ++ ++/* Define to 1 if you have the `faccessat' function. */ ++/* #undef HAVE_FACCESSAT */ ++ ++/* Define if you have the 'fchdir' function. */ ++#define HAVE_FCHDIR 1 ++ ++/* Define to 1 if you have the `fchmod' function. */ ++#define HAVE_FCHMOD 1 ++ ++/* Define to 1 if you have the `fchmodat' function. */ ++/* #undef HAVE_FCHMODAT */ ++ ++/* Define to 1 if you have the `fchown' function. */ ++#define HAVE_FCHOWN 1 ++ ++/* Define to 1 if you have the `fchownat' function. */ ++/* #undef HAVE_FCHOWNAT */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_FCNTL_H 1 ++ ++/* Define if you have the 'fdatasync' function. */ ++/* #undef HAVE_FDATASYNC */ ++ ++/* Define to 1 if you have the `fdopendir' function. */ ++/* #undef HAVE_FDOPENDIR */ ++ ++/* Define to 1 if you have the `fexecve' function. */ ++/* #undef HAVE_FEXECVE */ ++ ++/* Define to 1 if you have the `finite' function. */ ++/* #undef HAVE_FINITE */ ++ ++/* Define to 1 if you have the `flock' function. */ ++/* #undef HAVE_FLOCK */ ++ ++/* Define to 1 if you have the `fork' function. */ ++#define HAVE_FORK 1 ++ ++/* Define to 1 if you have the `forkpty' function. */ ++/* #undef HAVE_FORKPTY */ ++ ++/* Define to 1 if you have the `fpathconf' function. */ ++#define HAVE_FPATHCONF 1 ++ ++/* Define to 1 if you have the `fseek64' function. */ ++/* #undef HAVE_FSEEK64 */ ++ ++/* Define to 1 if you have the `fseeko' function. */ ++/* #undef HAVE_FSEEKO */ ++ ++/* Define to 1 if you have the `fstatat' function. */ ++/* #undef HAVE_FSTATAT */ ++ ++/* Define to 1 if you have the `fstatvfs' function. */ ++/* #undef HAVE_FSTATVFS */ ++ ++/* Define if you have the 'fsync' function. */ ++#define HAVE_FSYNC 1 ++ ++/* Define to 1 if you have the `ftell64' function. */ ++/* #undef HAVE_FTELL64 */ ++ ++/* Define to 1 if you have the `ftello' function. */ ++/* #undef HAVE_FTELLO */ ++ ++/* Define to 1 if you have the `ftime' function. */ ++/* #undef HAVE_FTIME */ ++ ++/* Define to 1 if you have the `ftruncate' function. */ ++#define HAVE_FTRUNCATE 1 ++ ++/* Define to 1 if you have the `futimens' function. */ ++/* #undef HAVE_FUTIMENS */ ++ ++/* Define to 1 if you have the `futimes' function. */ ++/* #undef HAVE_FUTIMES */ ++ ++/* Define to 1 if you have the `futimesat' function. */ ++/* #undef HAVE_FUTIMESAT */ ++ ++/* Define to 1 if you have the `gai_strerror' function. */ ++/* #undef HAVE_GAI_STRERROR */ ++ ++/* Define to 1 if you have the `gamma' function. */ ++/* #undef HAVE_GAMMA */ ++ ++/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ ++/* #undef HAVE_GCC_ASM_FOR_MC68881 */ ++ ++/* Define if we can use x64 gcc inline assembler */ ++/* #undef HAVE_GCC_ASM_FOR_X64 */ ++ ++/* Define if we can use gcc inline assembler to get and set x87 control word ++ */ ++#define HAVE_GCC_ASM_FOR_X87 1 ++ ++/* Define if your compiler provides __uint128_t */ ++/* #undef HAVE_GCC_UINT128_T */ ++ ++/* Define if you have the getaddrinfo function. */ ++/* #undef HAVE_GETADDRINFO */ ++ ++/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ ++/* #undef HAVE_GETC_UNLOCKED */ ++ ++/* Define to 1 if you have the `getentropy' function. */ ++/* #undef HAVE_GETENTROPY */ ++ ++/* Define to 1 if you have the `getgrouplist' function. */ ++/* #undef HAVE_GETGROUPLIST */ ++ ++/* Define to 1 if you have the `getgroups' function. */ ++#define HAVE_GETGROUPS 1 ++ ++/* Define to 1 if you have the `gethostbyname' function. */ ++#define HAVE_GETHOSTBYNAME 1 ++ ++/* Define this if you have some version of gethostbyname_r() */ ++/* #undef HAVE_GETHOSTBYNAME_R */ ++ ++/* Define this if you have the 3-arg version of gethostbyname_r(). */ ++/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ ++ ++/* Define this if you have the 5-arg version of gethostbyname_r(). */ ++/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ ++ ++/* Define this if you have the 6-arg version of gethostbyname_r(). */ ++/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */ ++ ++/* Define to 1 if you have the `getitimer' function. */ ++/* #undef HAVE_GETITIMER */ ++ ++/* Define to 1 if you have the `getloadavg' function. */ ++/* #undef HAVE_GETLOADAVG */ ++ ++/* Define to 1 if you have the `getlogin' function. */ ++#define HAVE_GETLOGIN 1 ++ ++/* Define to 1 if you have the `getnameinfo' function. */ ++/* #undef HAVE_GETNAMEINFO */ ++ ++/* Define if you have the 'getpagesize' function. */ ++#define HAVE_GETPAGESIZE 1 ++ ++/* Define to 1 if you have the `getpeername' function. */ ++#define HAVE_GETPEERNAME 1 ++ ++/* Define to 1 if you have the `getpgid' function. */ ++#define HAVE_GETPGID 1 ++ ++/* Define to 1 if you have the `getpgrp' function. */ ++#define HAVE_GETPGRP 1 ++ ++/* Define to 1 if you have the `getpid' function. */ ++#define HAVE_GETPID 1 ++ ++/* Define to 1 if you have the `getpriority' function. */ ++/* #undef HAVE_GETPRIORITY */ ++ ++/* Define to 1 if you have the `getpwent' function. */ ++#define HAVE_GETPWENT 1 ++ ++/* Define to 1 if the getrandom() function is available */ ++/* #undef HAVE_GETRANDOM */ ++ ++/* Define to 1 if the Linux getrandom() syscall is available */ ++/* #undef HAVE_GETRANDOM_SYSCALL */ ++ ++/* Define to 1 if you have the `getresgid' function. */ ++/* #undef HAVE_GETRESGID */ ++ ++/* Define to 1 if you have the `getresuid' function. */ ++/* #undef HAVE_GETRESUID */ ++ ++/* Define to 1 if you have the `getsid' function. */ ++/* #undef HAVE_GETSID */ ++ ++/* Define to 1 if you have the `getspent' function. */ ++/* #undef HAVE_GETSPENT */ ++ ++/* Define to 1 if you have the `getspnam' function. */ ++/* #undef HAVE_GETSPNAM */ ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#define HAVE_GETTIMEOFDAY 1 ++ ++/* Define to 1 if you have the `getwd' function. */ ++#define HAVE_GETWD 1 ++ ++/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and ++ bcopy. */ ++/* #undef HAVE_GLIBC_MEMMOVE_BUG */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_GRP_H 1 ++ ++/* Define if you have the 'hstrerror' function. */ ++/* #undef HAVE_HSTRERROR */ ++ ++/* Define this if you have le64toh() */ ++/* #undef HAVE_HTOLE64 */ ++ ++/* Define to 1 if you have the `hypot' function. */ ++/* #undef HAVE_HYPOT */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_IEEEFP_H */ ++ ++/* Define to 1 if you have the `if_nameindex' function. */ ++/* #undef HAVE_IF_NAMEINDEX */ ++ ++/* Define if you have the 'inet_aton' function. */ ++/* #undef HAVE_INET_ATON */ ++ ++/* Define if you have the 'inet_pton' function. */ ++#define HAVE_INET_PTON 1 ++ ++/* Define to 1 if you have the `initgroups' function. */ ++#define HAVE_INITGROUPS 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_IO_H */ ++ ++/* Define if gcc has the ipa-pure-const bug. */ ++/* #undef HAVE_IPA_PURE_CONST_BUG */ ++ ++/* Define to 1 if you have the `kill' function. */ ++#define HAVE_KILL 1 ++ ++/* Define to 1 if you have the `killpg' function. */ ++#define HAVE_KILLPG 1 ++ ++/* Define if you have the 'kqueue' functions. */ ++/* #undef HAVE_KQUEUE */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LANGINFO_H */ ++ ++/* Defined to enable large file support when an off_t is bigger than a long ++ and long long is available and at least as big as an off_t. You may need to ++ add some flags for configuration and compilation to enable this mode. (For ++ Solaris and Linux, the necessary defines are already defined.) */ ++/* #undef HAVE_LARGEFILE_SUPPORT */ ++ ++/* Define to 1 if you have the 'lchflags' function. */ ++/* #undef HAVE_LCHFLAGS */ ++ ++/* Define to 1 if you have the `lchmod' function. */ ++/* #undef HAVE_LCHMOD */ ++ ++/* Define to 1 if you have the `lchown' function. */ ++/* #undef HAVE_LCHOWN */ ++ ++/* Define to 1 if you have the `lgamma' function. */ ++/* #undef HAVE_LGAMMA */ ++ ++/* Define to 1 if you have the `dl' library (-ldl). */ ++/* #undef HAVE_LIBDL */ ++ ++/* Define to 1 if you have the `dld' library (-ldld). */ ++/* #undef HAVE_LIBDLD */ ++ ++/* Define to 1 if you have the `ieee' library (-lieee). */ ++/* #undef HAVE_LIBIEEE */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LIBINTL_H */ ++ ++/* Define if you have the readline library (-lreadline). */ ++/* #undef HAVE_LIBREADLINE */ ++ ++/* Define to 1 if you have the `resolv' library (-lresolv). */ ++/* #undef HAVE_LIBRESOLV */ ++ ++/* Define to 1 if you have the `sendfile' library (-lsendfile). */ ++/* #undef HAVE_LIBSENDFILE */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LIBUTIL_H */ ++ ++/* Define if you have the 'link' function. */ ++#define HAVE_LINK 1 ++ ++/* Define to 1 if you have the `linkat' function. */ ++/* #undef HAVE_LINKAT */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_CAN_BCM_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_CAN_H */ ++ ++/* Define if compiling using Linux 3.6 or later. */ ++/* #undef HAVE_LINUX_CAN_RAW_FD_FRAMES */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_CAN_RAW_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_NETLINK_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_RANDOM_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LINUX_TIPC_H */ ++ ++/* Define to 1 if you have the `lockf' function. */ ++/* #undef HAVE_LOCKF */ ++ ++/* Define to 1 if you have the `log1p' function. */ ++/* #undef HAVE_LOG1P */ ++ ++/* Define to 1 if you have the `log2' function. */ ++#define HAVE_LOG2 1 ++ ++/* Define this if you have the type long double. */ ++#define HAVE_LONG_DOUBLE 1 ++ ++/* Define to 1 if you have the `lstat' function. */ ++#define HAVE_LSTAT 1 ++ ++/* Define to 1 if you have the `lutimes' function. */ ++/* #undef HAVE_LUTIMES */ ++ ++/* Define this if you have the makedev macro. */ ++/* #undef HAVE_MAKEDEV */ ++ ++/* Define to 1 if you have the `mbrtowc' function. */ ++/* #undef HAVE_MBRTOWC */ ++ ++/* Define to 1 if you have the `memmove' function. */ ++#define HAVE_MEMMOVE 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `memrchr' function. */ ++/* #undef HAVE_MEMRCHR */ ++ ++/* Define to 1 if you have the `mkdirat' function. */ ++/* #undef HAVE_MKDIRAT */ ++ ++/* Define to 1 if you have the `mkfifo' function. */ ++/* #undef HAVE_MKFIFO */ ++ ++/* Define to 1 if you have the `mkfifoat' function. */ ++/* #undef HAVE_MKFIFOAT */ ++ ++/* Define to 1 if you have the `mknod' function. */ ++#define HAVE_MKNOD 1 ++ ++/* Define to 1 if you have the `mknodat' function. */ ++/* #undef HAVE_MKNODAT */ ++ ++/* Define to 1 if you have the `mktime' function. */ ++#define HAVE_MKTIME 1 ++ ++/* Define to 1 if you have the `mmap' function. */ ++#define HAVE_MMAP 1 ++ ++/* Define to 1 if you have the `mremap' function. */ ++/* #undef HAVE_MREMAP */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_NCURSES_H */ ++ ++/* Define to 1 if you have the header file, and it defines `DIR'. */ ++/* #undef HAVE_NDIR_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_NETPACKET_PACKET_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_NET_IF_H */ ++ ++/* Define to 1 if you have the `nice' function. */ ++/* #undef HAVE_NICE */ ++ ++/* Define to 1 if you have the `openat' function. */ ++/* #undef HAVE_OPENAT */ ++ ++/* Define to 1 if you have the `openpty' function. */ ++/* #undef HAVE_OPENPTY */ ++ ++/* Define to 1 if you have the `pathconf' function. */ ++#define HAVE_PATHCONF 1 ++ ++/* Define to 1 if you have the `pause' function. */ ++/* #undef HAVE_PAUSE */ ++ ++/* Define to 1 if you have the `pipe2' function. */ ++#define HAVE_PIPE2 1 ++ ++/* Define to 1 if you have the `plock' function. */ ++/* #undef HAVE_PLOCK */ ++ ++/* Define to 1 if you have the `poll' function. */ ++#define HAVE_POLL 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_POLL_H 1 ++ ++/* Define to 1 if you have the `posix_fadvise' function. */ ++/* #undef HAVE_POSIX_FADVISE */ ++ ++/* Define to 1 if you have the `posix_fallocate' function. */ ++/* #undef HAVE_POSIX_FALLOCATE */ ++ ++/* Define to 1 if you have the `pread' function. */ ++/* #undef HAVE_PREAD */ ++ ++/* Define if you have the 'prlimit' functions. */ ++/* #undef HAVE_PRLIMIT */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_PROCESS_H */ ++ ++/* Define if your compiler supports function prototype */ ++#define HAVE_PROTOTYPES 1 ++ ++/* Define to 1 if you have the `pthread_atfork' function. */ ++/* #undef HAVE_PTHREAD_ATFORK */ ++ ++/* Defined for Solaris 2.6 bug in pthread header. */ ++/* #undef HAVE_PTHREAD_DESTRUCTOR */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_PTHREAD_H 1 ++ ++/* Define to 1 if you have the `pthread_init' function. */ ++/* #undef HAVE_PTHREAD_INIT */ ++ ++/* Define to 1 if you have the `pthread_kill' function. */ ++/* #undef HAVE_PTHREAD_KILL */ ++ ++/* Define to 1 if you have the `pthread_sigmask' function. */ ++/* #undef HAVE_PTHREAD_SIGMASK */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_PTY_H */ ++ ++/* Define to 1 if you have the `putenv' function. */ ++#define HAVE_PUTENV 1 ++ ++/* Define to 1 if you have the `pwrite' function. */ ++/* #undef HAVE_PWRITE */ ++ ++/* Define to 1 if you have the `readlink' function. */ ++#define HAVE_READLINK 1 ++ ++/* Define to 1 if you have the `readlinkat' function. */ ++/* #undef HAVE_READLINKAT */ ++ ++/* Define to 1 if you have the `readv' function. */ ++/* #undef HAVE_READV */ ++ ++/* Define to 1 if you have the `realpath' function. */ ++#define HAVE_REALPATH 1 ++ ++/* Define to 1 if you have the `renameat' function. */ ++/* #undef HAVE_RENAMEAT */ ++ ++/* Define if readline supports append_history */ ++/* #undef HAVE_RL_APPEND_HISTORY */ ++ ++/* Define if you have readline 2.1 */ ++/* #undef HAVE_RL_CALLBACK */ ++ ++/* Define if you can turn off readline's signal handling. */ ++/* #undef HAVE_RL_CATCH_SIGNAL */ ++ ++/* Define if you have readline 2.2 */ ++/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ ++ ++/* Define if you have readline 4.0 */ ++/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ ++ ++/* Define if you have readline 4.2 */ ++/* #undef HAVE_RL_COMPLETION_MATCHES */ ++ ++/* Define if you have rl_completion_suppress_append */ ++/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ ++ ++/* Define if you have readline 4.0 */ ++/* #undef HAVE_RL_PRE_INPUT_HOOK */ ++ ++/* Define if you have readline 4.0 */ ++/* #undef HAVE_RL_RESIZE_TERMINAL */ ++ ++/* Define to 1 if you have the `round' function. */ ++/* #undef HAVE_ROUND */ ++ ++/* Define to 1 if you have the `sched_get_priority_max' function. */ ++#define HAVE_SCHED_GET_PRIORITY_MAX 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SCHED_H 1 ++ ++/* Define to 1 if you have the `sched_rr_get_interval' function. */ ++/* #undef HAVE_SCHED_RR_GET_INTERVAL */ ++ ++/* Define to 1 if you have the `sched_setaffinity' function. */ ++/* #undef HAVE_SCHED_SETAFFINITY */ ++ ++/* Define to 1 if you have the `sched_setparam' function. */ ++#define HAVE_SCHED_SETPARAM 1 ++ ++/* Define to 1 if you have the `sched_setscheduler' function. */ ++/* #undef HAVE_SCHED_SETSCHEDULER */ ++ ++/* Define to 1 if you have the `select' function. */ ++#define HAVE_SELECT 1 ++ ++/* Define to 1 if you have the `sem_getvalue' function. */ ++/* #undef HAVE_SEM_GETVALUE */ ++ ++/* Define to 1 if you have the `sem_open' function. */ ++/* #undef HAVE_SEM_OPEN */ ++ ++/* Define to 1 if you have the `sem_timedwait' function. */ ++/* #undef HAVE_SEM_TIMEDWAIT */ ++ ++/* Define to 1 if you have the `sem_unlink' function. */ ++/* #undef HAVE_SEM_UNLINK */ ++ ++/* Define to 1 if you have the `sendfile' function. */ ++/* #undef HAVE_SENDFILE */ ++ ++/* Define to 1 if you have the `setegid' function. */ ++/* #undef HAVE_SETEGID */ ++ ++/* Define to 1 if you have the `seteuid' function. */ ++/* #undef HAVE_SETEUID */ ++ ++/* Define to 1 if you have the `setgid' function. */ ++#define HAVE_SETGID 1 ++ ++/* Define if you have the 'setgroups' function. */ ++#define HAVE_SETGROUPS 1 ++ ++/* Define to 1 if you have the `sethostname' function. */ ++/* #undef HAVE_SETHOSTNAME */ ++ ++/* Define to 1 if you have the `setitimer' function. */ ++/* #undef HAVE_SETITIMER */ ++ ++/* Define to 1 if you have the `setlocale' function. */ ++/* #define HAVE_SETLOCALE 1 */ ++ ++/* Define to 1 if you have the `setpgid' function. */ ++#define HAVE_SETPGID 1 ++ ++/* Define to 1 if you have the `setpgrp' function. */ ++/* #undef HAVE_SETPGRP */ ++ ++/* Define to 1 if you have the `setpriority' function. */ ++/* #undef HAVE_SETPRIORITY */ ++ ++/* Define to 1 if you have the `setregid' function. */ ++/* #undef HAVE_SETREGID */ ++ ++/* Define to 1 if you have the `setresgid' function. */ ++/* #undef HAVE_SETRESGID */ ++ ++/* Define to 1 if you have the `setresuid' function. */ ++/* #undef HAVE_SETRESUID */ ++ ++/* Define to 1 if you have the `setreuid' function. */ ++/* #undef HAVE_SETREUID */ ++ ++/* Define to 1 if you have the `setsid' function. */ ++#define HAVE_SETSID 1 ++ ++/* Define to 1 if you have the `setuid' function. */ ++#define HAVE_SETUID 1 ++ ++/* Define to 1 if you have the `setvbuf' function. */ ++#define HAVE_SETVBUF 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SHADOW_H */ ++ ++/* Define to 1 if you have the `sigaction' function. */ ++/* #define HAVE_SIGACTION 1 */ ++ ++/* Define to 1 if you have the `sigaltstack' function. */ ++/* #undef HAVE_SIGALTSTACK */ ++ ++/* Define to 1 if you have the `siginterrupt' function. */ ++/* #undef HAVE_SIGINTERRUPT */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the `sigpending' function. */ ++#define HAVE_SIGPENDING 1 ++ ++/* Define to 1 if you have the `sigrelse' function. */ ++/* #undef HAVE_SIGRELSE */ ++ ++/* Define to 1 if you have the `sigtimedwait' function. */ ++/* #undef HAVE_SIGTIMEDWAIT */ ++ ++/* Define to 1 if you have the `sigwait' function. */ ++/* #undef HAVE_SIGWAIT */ ++ ++/* Define to 1 if you have the `sigwaitinfo' function. */ ++/* #undef HAVE_SIGWAITINFO */ ++ ++/* Define to 1 if you have the `snprintf' function. */ ++#define HAVE_SNPRINTF 1 ++ ++/* struct sockaddr_alg (linux/if_alg.h) */ ++/* #undef HAVE_SOCKADDR_ALG */ ++ ++/* Define if sockaddr has sa_len member */ ++/* #undef HAVE_SOCKADDR_SA_LEN */ ++ ++/* struct sockaddr_storage (sys/socket.h) */ ++/* #undef HAVE_SOCKADDR_STORAGE */ ++ ++/* Define if you have the 'socketpair' function. */ ++/* #undef HAVE_SOCKETPAIR */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SPAWN_H */ ++ ++/* Define if your compiler provides ssize_t */ ++#define HAVE_SSIZE_T 1 ++ ++/* Define to 1 if you have the `statvfs' function. */ ++/* #undef HAVE_STATVFS */ ++ ++/* Define if you have struct stat.st_mtim.tv_nsec */ ++/* #undef HAVE_STAT_TV_NSEC */ ++ ++/* Define if you have struct stat.st_mtimensec */ ++/* #undef HAVE_STAT_TV_NSEC2 */ ++ ++/* Define if your compiler supports variable length function prototypes (e.g. ++ void fprintf(FILE *, char *, ...);) *and* */ ++#define HAVE_STDARG_PROTOTYPES 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Has stdatomic.h, atomic_int and _Atomic void* types work */ ++#define HAVE_STD_ATOMIC 1 ++ ++/* Define to 1 if you have the `strdup' function. */ ++#define HAVE_STRDUP 1 ++ ++/* Define to 1 if you have the `strftime' function. */ ++#define HAVE_STRFTIME 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strlcpy' function. */ ++/* #undef HAVE_STRLCPY */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_STROPTS_H */ ++ ++/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */ ++#define HAVE_STRUCT_PASSWD_PW_GECOS 1 ++ ++/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ ++#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 ++ ++/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ ++/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */ ++ ++/* Define to 1 if `st_blksize' is a member of `struct stat'. */ ++#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 ++ ++/* Define to 1 if `st_blocks' is a member of `struct stat'. */ ++#define HAVE_STRUCT_STAT_ST_BLOCKS 1 ++ ++/* Define to 1 if `st_flags' is a member of `struct stat'. */ ++/* #undef HAVE_STRUCT_STAT_ST_FLAGS */ ++ ++/* Define to 1 if `st_gen' is a member of `struct stat'. */ ++/* #undef HAVE_STRUCT_STAT_ST_GEN */ ++ ++/* Define to 1 if `st_rdev' is a member of `struct stat'. */ ++#define HAVE_STRUCT_STAT_ST_RDEV 1 ++ ++/* Define to 1 if `tm_zone' is a member of `struct tm'. */ ++/* #undef HAVE_STRUCT_TM_TM_ZONE */ ++ ++/* Define if you have the 'symlink' function. */ ++#define HAVE_SYMLINK 1 ++ ++/* Define to 1 if you have the `symlinkat' function. */ ++/* #undef HAVE_SYMLINKAT */ ++ ++/* Define to 1 if you have the `sync' function. */ ++#define HAVE_SYNC 1 ++ ++/* Define to 1 if you have the `sysconf' function. */ ++/* #undef HAVE_SYSCONF */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYSEXITS_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_AUDIOIO_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_BSDTTY_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_DEVPOLL_H */ ++ ++/* Define to 1 if you have the header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_DIR_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_ENDIAN_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_EPOLL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_EVENT_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_FILE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_KERN_CONTROL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_LOADAVG_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_LOCK_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_MKDEV_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_MODEM_H */ ++ ++/* Define to 1 if you have the header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_NDIR_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_POLL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #define HAVE_SYS_RESOURCE_H 1 */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SELECT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_SENDFILE_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_STATVFS_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_SYSCALL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_SYS_DOMAIN_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_TERMIO_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TIMES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_UIO_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_UN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_UTSNAME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_WAIT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_XATTR_H */ ++ ++/* Define to 1 if you have the `tcgetpgrp' function. */ ++#define HAVE_TCGETPGRP 1 ++ ++/* Define to 1 if you have the `tcsetpgrp' function. */ ++#define HAVE_TCSETPGRP 1 ++ ++/* Define to 1 if you have the `tempnam' function. */ ++/* #undef HAVE_TEMPNAM */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_TERMIOS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_TERM_H */ ++ ++/* Define to 1 if you have the `tgamma' function. */ ++/* #undef HAVE_TGAMMA */ ++ ++/* Define to 1 if you have the `timegm' function. */ ++/* #undef HAVE_TIMEGM */ ++ ++/* Define to 1 if you have the `times' function. */ ++#define HAVE_TIMES 1 ++ ++/* Define to 1 if you have the `tmpfile' function. */ ++#define HAVE_TMPFILE 1 ++ ++/* Define to 1 if you have the `tmpnam' function. */ ++#define HAVE_TMPNAM 1 ++ ++/* Define to 1 if you have the `tmpnam_r' function. */ ++/* #undef HAVE_TMPNAM_R */ ++ ++/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use ++ `HAVE_STRUCT_TM_TM_ZONE' instead. */ ++/* #undef HAVE_TM_ZONE */ ++ ++/* Define to 1 if you have the `truncate' function. */ ++/* #undef HAVE_TRUNCATE */ ++ ++/* Define to 1 if you don't have `tm_zone' but do have the external array ++ `tzname'. */ ++#define HAVE_TZNAME 1 ++ ++/* Define this if you have tcl and TCL_UTF_MAX==6 */ ++/* #undef HAVE_UCS4_TCL */ ++ ++/* Define to 1 if you have the `uname' function. */ ++#define HAVE_UNAME 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `unlinkat' function. */ ++/* #undef HAVE_UNLINKAT */ ++ ++/* Define to 1 if you have the `unsetenv' function. */ ++#define HAVE_UNSETENV 1 ++ ++/* Define if you have a useable wchar_t type defined in wchar.h; useable means ++ wchar_t must be an unsigned type with at least 16 bits. (see ++ Include/unicodeobject.h). */ ++#undef HAVE_USABLE_WCHAR_T ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_UTIL_H */ ++ ++/* Define to 1 if you have the `utimensat' function. */ ++/* #undef HAVE_UTIMENSAT */ ++ ++/* Define to 1 if you have the `utimes' function. */ ++/* #undef HAVE_UTIMES */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UTIME_H 1 ++ ++/* Define to 1 if you have the `wait3' function. */ ++/* #undef HAVE_WAIT3 */ ++ ++/* Define to 1 if you have the `wait4' function. */ ++/* #undef HAVE_WAIT4 */ ++ ++/* Define to 1 if you have the `waitid' function. */ ++/* #undef HAVE_WAITID */ ++ ++/* Define to 1 if you have the `waitpid' function. */ ++#define HAVE_WAITPID 1 ++ ++/* Define if the compiler provides a wchar.h header file. */ ++#define HAVE_WCHAR_H 1 ++ ++/* Define to 1 if you have the `wcscoll' function. */ ++/* #undef HAVE_WCSCOLL */ ++ ++/* Define to 1 if you have the `wcsftime' function. */ ++/* #undef HAVE_WCSFTIME */ ++ ++/* Define to 1 if you have the `wcsxfrm' function. */ ++/* #undef HAVE_WCSXFRM */ ++ ++/* Define to 1 if you have the `wmemcmp' function. */ ++/* #undef HAVE_WMEMCMP */ ++ ++/* Define if tzset() actually switches the local timezone in a meaningful way. ++ */ ++/* #undef HAVE_WORKING_TZSET */ ++ ++/* Define to 1 if you have the `writev' function. */ ++#define HAVE_WRITEV 1 ++ ++/* Define if the zlib library has inflateCopy */ ++/* #undef HAVE_ZLIB_COPY */ ++ ++/* Define to 1 if you have the `_getpty' function. */ ++/* #undef HAVE__GETPTY */ ++ ++/* Define if log1p(-0.) is 0. rather than -0. */ ++/* #undef LOG1P_DROPS_ZERO_SIGN */ ++ ++/* Define to 1 if `major', `minor', and `makedev' are declared in . ++ */ ++/* #undef MAJOR_IN_MKDEV */ ++ ++/* Define to 1 if `major', `minor', and `makedev' are declared in ++ . */ ++#define MAJOR_IN_SYSMACROS 1 ++ ++/* Define if mvwdelch in curses.h is an expression. */ ++/* #undef MVWDELCH_IS_EXPRESSION */ ++ ++/* Define to the address where bug reports for this package should be sent. */ ++/* #undef PACKAGE_BUGREPORT */ ++ ++/* Define to the full name of this package. */ ++/* #undef PACKAGE_NAME */ ++ ++/* Define to the full name and version of this package. */ ++/* #undef PACKAGE_STRING */ ++ ++/* Define to the one symbol short name of this package. */ ++/* #undef PACKAGE_TARNAME */ ++ ++/* Define to the home page for this package. */ ++/* #undef PACKAGE_URL */ ++ ++/* Define to the version of this package. */ ++/* #undef PACKAGE_VERSION */ ++ ++/* Define if POSIX semaphores aren't enabled on your system */ ++/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ ++ ++/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ ++/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ ++ ++/* Define as the preferred size in bits of long digits */ ++/* #undef PYLONG_BITS_IN_DIGIT */ ++ ++/* Define to printf format modifier for Py_ssize_t */ ++#define PY_FORMAT_SIZE_T "z" ++ ++/* Define if you want to build an interpreter with many run-time checks. */ ++/* #undef Py_DEBUG */ ++ ++/* Defined if Python is built as a shared library. */ ++/* #undef Py_ENABLE_SHARED */ ++ ++/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, ++ externally defined: 0 */ ++/* #undef Py_HASH_ALGORITHM */ ++ ++/* assume C89 semantics that RETSIGTYPE is always void */ ++#define RETSIGTYPE void ++ ++/* Define if setpgrp() must be called as setpgrp(0, 0). */ ++/* #undef SETPGRP_HAVE_ARG */ ++ ++/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */ ++/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ ++ ++/* The size of `double', as computed by sizeof. */ ++#define SIZEOF_DOUBLE 8 ++ ++/* The size of `float', as computed by sizeof. */ ++#define SIZEOF_FLOAT 4 ++ ++/* The size of `fpos_t', as computed by sizeof. */ ++#define SIZEOF_FPOS_T 4 ++ ++/* The size of `int', as computed by sizeof. */ ++#define SIZEOF_INT 4 ++ ++/* The size of `long', as computed by sizeof. */ ++#define SIZEOF_LONG 4 ++ ++/* The size of `long double', as computed by sizeof. */ ++#define SIZEOF_LONG_DOUBLE 12 ++ ++/* The size of `long long', as computed by sizeof. */ ++#define SIZEOF_LONG_LONG 8 ++ ++/* The size of `off_t', as computed by sizeof. */ ++#define SIZEOF_OFF_T 4 ++ ++/* The size of `pid_t', as computed by sizeof. */ ++#define SIZEOF_PID_T 4 ++ ++/* The size of `pthread_t', as computed by sizeof. */ ++#define SIZEOF_PTHREAD_T 4 ++ ++/* The size of `short', as computed by sizeof. */ ++#define SIZEOF_SHORT 2 ++ ++/* The size of `size_t', as computed by sizeof. */ ++#define SIZEOF_SIZE_T 4 ++ ++/* The size of `time_t', as computed by sizeof. */ ++#define SIZEOF_TIME_T 4 ++ ++/* The size of `uintptr_t', as computed by sizeof. */ ++#define SIZEOF_UINTPTR_T 4 ++ ++/* The size of `void *', as computed by sizeof. */ ++#define SIZEOF_VOID_P 4 ++ ++/* The size of `wchar_t', as computed by sizeof. */ ++#define SIZEOF_WCHAR_T 4 ++ ++/* The size of `_Bool', as computed by sizeof. */ ++#define SIZEOF__BOOL 1 ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* Define if you can safely include both and ++ (which you can't on SCO ODT 3.0). */ ++#define SYS_SELECT_WITH_SYS_TIME 1 ++ ++/* Define if tanh(-0.) is -0., or if platform doesn't have signed zeros */ ++/* #undef TANH_PRESERVES_ZERO_SIGN */ ++ ++/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ ++/* #undef TIMEMODULE_LIB */ ++ ++/* Define to 1 if you can safely include both and . */ ++#define TIME_WITH_SYS_TIME 1 ++ ++/* Define to 1 if your declares `struct tm'. */ ++/* #undef TM_IN_SYS_TIME */ ++ ++/* Define if you want to use computed gotos in ceval.c. */ ++/* #undef USE_COMPUTED_GOTOS */ ++ ++/* Define to use the C99 inline keyword. */ ++#define USE_INLINE 1 ++ ++/* Enable extensions on AIX 3, Interix. */ ++#ifndef _ALL_SOURCE ++# define _ALL_SOURCE 1 ++#endif ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++#endif ++/* Enable threading extensions on Solaris. */ ++#ifndef _POSIX_PTHREAD_SEMANTICS ++# define _POSIX_PTHREAD_SEMANTICS 1 ++#endif ++/* Enable extensions on HP NonStop. */ ++#ifndef _TANDEM_SOURCE ++# define _TANDEM_SOURCE 1 ++#endif ++/* Enable general extensions on Solaris. */ ++#ifndef __EXTENSIONS__ ++# define __EXTENSIONS__ 1 ++#endif ++ ++ ++/* Define if you want SIGFPE handled (see Include/pyfpe.h). */ ++/* #undef WANT_SIGFPE_HANDLER */ ++ ++/* Define if WINDOW in curses.h offers a field _flags. */ ++/* #undef WINDOW_HAS_FLAGS */ ++ ++/* Define if you want documentation strings in extension modules */ ++#define WITH_DOC_STRINGS 1 ++ ++/* Define if you want to compile in DTrace support */ ++/* #undef WITH_DTRACE */ ++ ++/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic ++ linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). ++ Dyld is necessary to support frameworks. */ ++/* #undef WITH_DYLD */ ++ ++/* Define to 1 if libintl is needed for locale functions. */ ++/* #undef WITH_LIBINTL */ ++ ++/* Define if you want to produce an OpenStep/Rhapsody framework (shared ++ library plus accessory files). */ ++/* #undef WITH_NEXT_FRAMEWORK */ ++ ++/* Define if you want to compile in Python-specific mallocs */ ++#define WITH_PYMALLOC 1 ++ ++/* Define if you want to compile in rudimentary thread support */ ++/* #undef WITH_THREAD */ ++ ++/* Define if you want pymalloc to be disabled when running under valgrind */ ++/* #undef WITH_VALGRIND */ ++ ++/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most ++ significant byte first (like Motorola and SPARC, unlike Intel). */ ++#if defined AC_APPLE_UNIVERSAL_BUILD ++# if defined __BIG_ENDIAN__ ++# define WORDS_BIGENDIAN 1 ++# endif ++#else ++# ifndef WORDS_BIGENDIAN ++/* # undef WORDS_BIGENDIAN */ ++# endif ++#endif ++ ++/* Define if arithmetic is subject to x87-style double rounding issue */ ++/* #undef X87_DOUBLE_ROUNDING */ ++ ++/* Define on OpenBSD to activate all library features */ ++/* #undef _BSD_SOURCE */ ++ ++/* Define on Irix to enable u_int */ ++#define _BSD_TYPES 1 ++ ++/* Define on Darwin to activate all library features */ ++#define _DARWIN_C_SOURCE 1 ++ ++/* This must be set to 64 on some systems to enable large file support. */ ++/* #undef _FILE_OFFSET_BITS */ ++ ++/* Define on Linux to activate all library features */ ++#define _GNU_SOURCE 1 ++ ++/* Define to include mbstate_t for mbrtowc */ ++/* #undef _INCLUDE__STDC_A1_SOURCE */ ++ ++/* This must be defined on some systems to enable large file support. */ ++/* #undef _LARGEFILE_SOURCE */ ++ ++/* This must be defined on AIX systems to enable large file support. */ ++/* #undef _LARGE_FILES */ ++ ++/* Define to 1 if on MINIX. */ ++/* #undef _MINIX */ ++ ++/* Define on NetBSD to activate all library features */ ++#define _NETBSD_SOURCE 1 ++ ++/* Define to 2 if the system does not provide POSIX.1 features except with ++ this defined. */ ++/* #undef _POSIX_1_SOURCE */ ++ ++/* Define to activate features from IEEE Stds 1003.1-2008 */ ++#define _POSIX_C_SOURCE 200809L ++ ++/* Define to 1 if you need to in order for `stat' and other things to work. */ ++/* #undef _POSIX_SOURCE */ ++ ++/* Define if you have POSIX threads, and your system does not define that. */ ++/* #undef _POSIX_THREADS */ ++ ++/* Define to force use of thread-safe errno, h_errno, and other functions */ ++/* #undef _REENTRANT */ ++ ++/* Define to the level of X/Open that your system supports */ ++#define _XOPEN_SOURCE 700 ++ ++/* Define to activate Unix95-and-earlier features */ ++#define _XOPEN_SOURCE_EXTENDED 1 ++ ++/* Define on FreeBSD to activate all library features */ ++#define __BSD_VISIBLE 1 ++ ++/* Define to 1 if type `char' is unsigned and you are not using gcc. */ ++#ifndef __CHAR_UNSIGNED__ ++/* # undef __CHAR_UNSIGNED__ */ ++#endif ++ ++/* Define to 'long' if doesn't define. */ ++/* #undef clock_t */ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef const */ ++ ++/* Define to `int' if doesn't define. */ ++/* #undef gid_t */ ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++/* #undef inline */ ++#endif ++ ++/* Define to `int' if does not define. */ ++/* #undef mode_t */ ++ ++/* Define to `long int' if does not define. */ ++/* #undef off_t */ ++ ++/* Define to `int' if does not define. */ ++/* #undef pid_t */ ++ ++/* Define to empty if the keyword does not work. */ ++/* #undef signed */ ++ ++/* Define to `unsigned int' if does not define. */ ++/* #undef size_t */ ++ ++/* Define to `int' if does not define. */ ++/* #undef socklen_t */ ++ ++/* Define to `int' if doesn't define. */ ++/* #undef uid_t */ ++ ++/* Define to empty if the keyword does not work. */ ++/* #undef volatile */ ++ ++ ++/* Define the macros needed if on a UnixWare 7.x system. */ ++#if defined(__USLC__) && defined(__SCO_VERSION__) ++#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ ++#endif ++ ++#endif /*Py_PYCONFIG_H*/ ++ +-- +2.17.1 + diff --git a/Ports/python-3.6/patches/0002-Remove-not-compiling-asserts.patch b/Ports/python-3.6/patches/0002-Remove-not-compiling-asserts.patch new file mode 100644 index 00000000000..fe474d0efe2 --- /dev/null +++ b/Ports/python-3.6/patches/0002-Remove-not-compiling-asserts.patch @@ -0,0 +1,238 @@ +diff --git a/Include/bytearrayobject.h b/Include/bytearrayobject.h +index a757b88..e4bf703 100644 +--- a/Include/bytearrayobject.h ++++ b/Include/bytearrayobject.h +@@ -49,9 +49,8 @@ PyAPI_FUNC(int) PyByteArray_Resize(PyObject *, Py_ssize_t); + /* Macros, trading safety for speed */ + #ifndef Py_LIMITED_API + #define PyByteArray_AS_STRING(self) \ +- (assert(PyByteArray_Check(self)), \ +- Py_SIZE(self) ? ((PyByteArrayObject *)(self))->ob_start : _PyByteArray_empty_string) +-#define PyByteArray_GET_SIZE(self) (assert(PyByteArray_Check(self)), Py_SIZE(self)) ++ (Py_SIZE(self) ? ((PyByteArrayObject*)(self))->ob_start : _PyByteArray_empty_string) ++#define PyByteArray_GET_SIZE(self) (Py_SIZE(self)) + + PyAPI_DATA(char) _PyByteArray_empty_string[]; + #endif +diff --git a/Include/bytesobject.h b/Include/bytesobject.h +index 98e29b6..7432bcd 100644 +--- a/Include/bytesobject.h ++++ b/Include/bytesobject.h +@@ -82,9 +82,8 @@ PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t, + + /* Macro, trading safety for speed */ + #ifndef Py_LIMITED_API +-#define PyBytes_AS_STRING(op) (assert(PyBytes_Check(op)), \ +- (((PyBytesObject *)(op))->ob_sval)) +-#define PyBytes_GET_SIZE(op) (assert(PyBytes_Check(op)),Py_SIZE(op)) ++#define PyBytes_AS_STRING(op) ((((PyBytesObject*)(op))->ob_sval)) ++#define PyBytes_GET_SIZE(op) (Py_SIZE(op)) + #endif + + /* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*, +diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h +index 8103a63..f0f3e1a 100644 +--- a/Include/unicodeobject.h ++++ b/Include/unicodeobject.h +@@ -381,11 +381,9 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; + on request. Use PyUnicode_GET_LENGTH() for the length in code points. */ + + #define PyUnicode_GET_SIZE(op) \ +- (assert(PyUnicode_Check(op)), \ +- (((PyASCIIObject *)(op))->wstr) ? \ ++ ((((PyASCIIObject *)(op))->wstr) ? \ + PyUnicode_WSTR_LENGTH(op) : \ + ((void)PyUnicode_AsUnicode((PyObject *)(op)), \ +- assert(((PyASCIIObject *)(op))->wstr), \ + PyUnicode_WSTR_LENGTH(op))) + + #define PyUnicode_GET_DATA_SIZE(op) \ +@@ -397,8 +395,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; + use PyUnicode_WRITE() and PyUnicode_READ(). */ + + #define PyUnicode_AS_UNICODE(op) \ +- (assert(PyUnicode_Check(op)), \ +- (((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \ ++ ((((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \ + PyUnicode_AsUnicode((PyObject *)(op))) + + #define PyUnicode_AS_DATA(op) \ +@@ -418,9 +415,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; + string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be + ready. */ + #define PyUnicode_IS_ASCII(op) \ +- (assert(PyUnicode_Check(op)), \ +- assert(PyUnicode_IS_READY(op)), \ +- ((PyASCIIObject*)op)->state.ascii) ++ (((PyASCIIObject*)op)->state.ascii) + + /* Return true if the string is compact or 0 if not. + No type checks or Ready calls are performed. */ +@@ -454,9 +449,7 @@ enum PyUnicode_Kind { + + /* Return one of the PyUnicode_*_KIND values defined above. */ + #define PyUnicode_KIND(op) \ +- (assert(PyUnicode_Check(op)), \ +- assert(PyUnicode_IS_READY(op)), \ +- ((PyASCIIObject *)(op))->state.kind) ++ (((PyASCIIObject *)(op))->state.kind) + + /* Return a void pointer to the raw unicode buffer. */ + #define _PyUnicode_COMPACT_DATA(op) \ +@@ -465,12 +458,10 @@ enum PyUnicode_Kind { + ((void*)((PyCompactUnicodeObject*)(op) + 1))) + + #define _PyUnicode_NONCOMPACT_DATA(op) \ +- (assert(((PyUnicodeObject*)(op))->data.any), \ +- ((((PyUnicodeObject *)(op))->data.any))) ++ (((((PyUnicodeObject *)(op))->data.any))) + + #define PyUnicode_DATA(op) \ +- (assert(PyUnicode_Check(op)), \ +- PyUnicode_IS_COMPACT(op) ? _PyUnicode_COMPACT_DATA(op) : \ ++ (PyUnicode_IS_COMPACT(op) ? _PyUnicode_COMPACT_DATA(op) : \ + _PyUnicode_NONCOMPACT_DATA(op)) + + /* In the access macros below, "kind" may be evaluated more than once. +@@ -517,9 +508,7 @@ enum PyUnicode_Kind { + PyUnicode_READ_CHAR, for multiple consecutive reads callers should + cache kind and use PyUnicode_READ instead. */ + #define PyUnicode_READ_CHAR(unicode, index) \ +- (assert(PyUnicode_Check(unicode)), \ +- assert(PyUnicode_IS_READY(unicode)), \ +- (Py_UCS4) \ ++ ((Py_UCS4) \ + (PyUnicode_KIND((unicode)) == PyUnicode_1BYTE_KIND ? \ + ((const Py_UCS1 *)(PyUnicode_DATA((unicode))))[(index)] : \ + (PyUnicode_KIND((unicode)) == PyUnicode_2BYTE_KIND ? \ +@@ -531,10 +520,8 @@ enum PyUnicode_Kind { + /* Returns the length of the unicode string. The caller has to make sure that + the string has it's canonical representation set before calling + this macro. Call PyUnicode_(FAST_)Ready to ensure that. */ +-#define PyUnicode_GET_LENGTH(op) \ +- (assert(PyUnicode_Check(op)), \ +- assert(PyUnicode_IS_READY(op)), \ +- ((PyASCIIObject *)(op))->length) ++#define PyUnicode_GET_LENGTH(op) \ ++ (((PyASCIIObject*)(op))->length) + + + /* Fast check to determine whether an object is ready. Equivalent to +@@ -547,16 +534,14 @@ enum PyUnicode_Kind { + _PyUnicode_Ready(). + Returns 0 on success and -1 on errors. */ + #define PyUnicode_READY(op) \ +- (assert(PyUnicode_Check(op)), \ +- (PyUnicode_IS_READY(op) ? \ ++ ((PyUnicode_IS_READY(op) ? \ + 0 : _PyUnicode_Ready((PyObject *)(op)))) + + /* Return a maximum character value which is suitable for creating another + string based on op. This is always an approximation but more efficient + than iterating over the string. */ + #define PyUnicode_MAX_CHAR_VALUE(op) \ +- (assert(PyUnicode_IS_READY(op)), \ +- (PyUnicode_IS_ASCII(op) ? \ ++ ((PyUnicode_IS_ASCII(op) ? \ + (0x7f) : \ + (PyUnicode_KIND(op) == PyUnicode_1BYTE_KIND ? \ + (0xffU) : \ +@@ -924,8 +909,7 @@ _PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer, + + Return 0 on success, raise an exception and return -1 on error. */ + #define _PyUnicodeWriter_PrepareKind(WRITER, KIND) \ +- (assert((KIND) != PyUnicode_WCHAR_KIND), \ +- (KIND) <= (WRITER)->kind \ ++ ((KIND) <= (WRITER)->kind \ + ? 0 \ + : _PyUnicodeWriter_PrepareKindInternal((WRITER), (KIND))) + +diff --git a/Objects/longobject.c b/Objects/longobject.c +index ad239ce..678cc7c 100644 +--- a/Objects/longobject.c ++++ b/Objects/longobject.c +@@ -17,8 +17,7 @@ + #endif + + /* convert a PyLong of size 1, 0 or -1 to an sdigit */ +-#define MEDIUM_VALUE(x) (assert(-1 <= Py_SIZE(x) && Py_SIZE(x) <= 1), \ +- Py_SIZE(x) < 0 ? -(sdigit)(x)->ob_digit[0] : \ ++#define MEDIUM_VALUE(x) (Py_SIZE(x) < 0 ? -(sdigit)(x)->ob_digit[0] : \ + (Py_SIZE(x) == 0 ? (sdigit)0 : \ + (sdigit)(x)->ob_digit[0])) + +diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c +index 9c998f7..25e36bc 100644 +--- a/Objects/unicodeobject.c ++++ b/Objects/unicodeobject.c +@@ -78,17 +78,13 @@ extern "C" { + #define _PyUnicode_UTF8(op) \ + (((PyCompactUnicodeObject*)(op))->utf8) + #define PyUnicode_UTF8(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- assert(PyUnicode_IS_READY(op)), \ +- PyUnicode_IS_COMPACT_ASCII(op) ? \ ++ (PyUnicode_IS_COMPACT_ASCII(op) ? \ + ((char*)((PyASCIIObject*)(op) + 1)) : \ + _PyUnicode_UTF8(op)) + #define _PyUnicode_UTF8_LENGTH(op) \ + (((PyCompactUnicodeObject*)(op))->utf8_length) + #define PyUnicode_UTF8_LENGTH(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- assert(PyUnicode_IS_READY(op)), \ +- PyUnicode_IS_COMPACT_ASCII(op) ? \ ++ (PyUnicode_IS_COMPACT_ASCII(op) ? \ + ((PyASCIIObject*)(op))->length : \ + _PyUnicode_UTF8_LENGTH(op)) + #define _PyUnicode_WSTR(op) \ +@@ -102,28 +98,22 @@ extern "C" { + #define _PyUnicode_HASH(op) \ + (((PyASCIIObject *)(op))->hash) + #define _PyUnicode_KIND(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- ((PyASCIIObject *)(op))->state.kind) ++ (((PyASCIIObject *)(op))->state.kind) + #define _PyUnicode_GET_LENGTH(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- ((PyASCIIObject *)(op))->length) ++ (((PyASCIIObject *)(op))->length) + #define _PyUnicode_DATA_ANY(op) \ + (((PyUnicodeObject*)(op))->data.any) + + #undef PyUnicode_READY + #define PyUnicode_READY(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- (PyUnicode_IS_READY(op) ? \ ++ ((PyUnicode_IS_READY(op) ? \ + 0 : \ + _PyUnicode_Ready(op))) + + #define _PyUnicode_SHARE_UTF8(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- assert(!PyUnicode_IS_COMPACT_ASCII(op)), \ +- (_PyUnicode_UTF8(op) == PyUnicode_DATA(op))) ++ ((_PyUnicode_UTF8(op) == PyUnicode_DATA(op))) + #define _PyUnicode_SHARE_WSTR(op) \ +- (assert(_PyUnicode_CHECK(op)), \ +- (_PyUnicode_WSTR(unicode) == PyUnicode_DATA(op))) ++ ((_PyUnicode_WSTR(unicode) == PyUnicode_DATA(op))) + + /* true if the Unicode object has an allocated UTF-8 memory block + (not shared with other data) */ +diff --git a/Python/pytime.c b/Python/pytime.c +index 3015a6b..07335d4 100644 +--- a/Python/pytime.c ++++ b/Python/pytime.c +@@ -8,8 +8,7 @@ + #endif + + #define _PyTime_check_mul_overflow(a, b) \ +- (assert(b > 0), \ +- (_PyTime_t)(a) < _PyTime_MIN / (_PyTime_t)(b) \ ++ ((_PyTime_t)(a) < _PyTime_MIN / (_PyTime_t)(b) \ + || _PyTime_MAX / (_PyTime_t)(b) < (_PyTime_t)(a)) + + /* To millisecond (10^-3) */ +-- +2.17.1 + diff --git a/Ports/python-3.6/patches/0003-Remove-locale-setup-and-use-utf-8-as-default.patch b/Ports/python-3.6/patches/0003-Remove-locale-setup-and-use-utf-8-as-default.patch new file mode 100644 index 00000000000..0bb649a3652 --- /dev/null +++ b/Ports/python-3.6/patches/0003-Remove-locale-setup-and-use-utf-8-as-default.patch @@ -0,0 +1,82 @@ +diff --git a/Modules/main.c b/Modules/main.c +index d75f64a..143a452 100644 +--- a/Modules/main.c ++++ b/Modules/main.c +@@ -557,8 +557,8 @@ Py_Main(int argc, wchar_t **argv) + Py_FatalError( + "not enough memory to copy PYTHONWARNINGS"); + strcpy(buf, p); +- oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); +- setlocale(LC_ALL, ""); ++ //oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); ++ //setlocale(LC_ALL, ""); + for (p = strtok(buf, ","); p != NULL; p = strtok(NULL, ",")) { + #ifdef __APPLE__ + /* Use utf-8 on Mac OS X */ +@@ -574,8 +574,8 @@ Py_Main(int argc, wchar_t **argv) + PySys_AddWarnOptionUnicode(unicode); + Py_DECREF(unicode); + } +- setlocale(LC_ALL, oldloc); +- PyMem_RawFree(oldloc); ++ //setlocale(LC_ALL, oldloc); ++ //PyMem_RawFree(oldloc); + PyMem_RawFree(buf); + } + #endif +diff --git a/Programs/python.c b/Programs/python.c +index a7afbc7..07fcbe0 100644 +--- a/Programs/python.c ++++ b/Programs/python.c +@@ -43,17 +43,17 @@ main(int argc, char **argv) + fedisableexcept(FE_OVERFLOW); + #endif + +- oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); +- if (!oldloc) { +- fprintf(stderr, "out of memory\n"); +- return 1; +- } ++ // oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); ++ // if (!oldloc) { ++ // fprintf(stderr, "out of memory\n"); ++ // return 1; ++ // } + +- setlocale(LC_ALL, ""); ++ // setlocale(LC_ALL, ""); + for (i = 0; i < argc; i++) { + argv_copy[i] = Py_DecodeLocale(argv[i], NULL); + if (!argv_copy[i]) { +- PyMem_RawFree(oldloc); ++ //PyMem_RawFree(oldloc); + fprintf(stderr, "Fatal Python error: " + "unable to decode the command line argument #%i\n", + i + 1); +@@ -63,8 +63,8 @@ main(int argc, char **argv) + } + argv_copy2[argc] = argv_copy[argc] = NULL; + +- setlocale(LC_ALL, oldloc); +- PyMem_RawFree(oldloc); ++ //setlocale(LC_ALL, oldloc); ++ //PyMem_RawFree(oldloc); + + res = Py_Main(argc, argv_copy); + +diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c +index a4f7f82..823372f 100644 +--- a/Python/pylifecycle.c ++++ b/Python/pylifecycle.c +@@ -238,6 +238,8 @@ get_locale_encoding(void) + return get_codec_name(codeset); + #elif defined(__ANDROID__) + return get_codec_name("UTF-8"); ++#elif defined(__serenity__) ++ return get_codec_name("UTF-8"); + #else + PyErr_SetNone(PyExc_NotImplementedError); + return NULL; +-- +2.17.1 + diff --git a/Ports/python-3.6/patches/0004-Remove-wrong-ifdef.patch b/Ports/python-3.6/patches/0004-Remove-wrong-ifdef.patch new file mode 100644 index 00000000000..37e00e06855 --- /dev/null +++ b/Ports/python-3.6/patches/0004-Remove-wrong-ifdef.patch @@ -0,0 +1,26 @@ +diff --git a/Python/pytime.c b/Python/pytime.c +index 07335d4..50d676a 100644 +--- a/Python/pytime.c ++++ b/Python/pytime.c +@@ -225,7 +225,7 @@ _PyTime_FromNanoseconds(long long ns) + return t; + } + +-#ifdef HAVE_CLOCK_GETTIME ++ + static int + _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts, int raise) + { +@@ -247,7 +247,8 @@ _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts, int raise) + *tp = t; + return res; + } +-#elif !defined(MS_WINDOWS) ++ ++#if !defined(MS_WINDOWS) + static int + _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv, int raise) + { +-- +2.17.1 + diff --git a/Ports/python-3.6/patches/0005-Use-dev-random-instead-of-dev-urandom.patch b/Ports/python-3.6/patches/0005-Use-dev-random-instead-of-dev-urandom.patch new file mode 100644 index 00000000000..a03642528db --- /dev/null +++ b/Ports/python-3.6/patches/0005-Use-dev-random-instead-of-dev-urandom.patch @@ -0,0 +1,16 @@ +diff --git a/Python/random.c b/Python/random.c +index 46e3bb5..a4a7136 100644 +--- a/Python/random.c ++++ b/Python/random.c +@@ -316,7 +316,7 @@ dev_urandom(char *buffer, Py_ssize_t size, int blocking, int raise) + } while (0 < size); + } + else { +- fd = _Py_open_noraise("/dev/urandom", O_RDONLY); ++ fd = _Py_open_noraise("/dev/random", O_RDONLY); + if (fd < 0) { + return -1; + } +-- +2.17.1 +