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
+