Added build config to get python.com

Modules/Setup and Modules/Setup.local contain the build recipes for
various extensions, wrote a custom script to translate them for
python.mk. Modules/config.c needs to be changed if any extensions are
removed or added.

Most of the source modifications are for missing headers or compile time
build vars like ABIFLAGS.

Created separate mk files for the C extensions and the Python stdlib.
Can use find for adding the python files to the APE ZIP store, but right
now necessary files are just hardcoded.

python.com loads but some build configs are still missing (showing 1 Jan
1970 as time of compilation).
This commit is contained in:
ahgamut 2021-08-09 02:49:30 +05:30 committed by Justine Tunney
parent 5ef64dbcdb
commit 98f330b764
45 changed files with 2482 additions and 45 deletions

View file

@ -142,6 +142,7 @@ include third_party/mbedtls/test/test.mk
include third_party/quickjs/quickjs.mk
include third_party/lz4cli/lz4cli.mk
include third_party/infozip/infozip.mk
include third_party/python/python.mk
include tool/build/lib/buildlib.mk
include third_party/chibicc/chibicc.mk
include third_party/chibicc/test/test.mk

View file

@ -29,10 +29,10 @@ Makefile
Makefile.pre
Misc/python.pc
Misc/python-config.sh
Modules/Setup
!Modules/Setup
Modules/Setup.config
Modules/Setup.local
Modules/config.c
!Modules/Setup.local
!Modules/config.c
Modules/ld_so_aix
Programs/_freeze_importlib
Programs/_testembed

View file

@ -9,6 +9,8 @@ extern "C" {
#include <stdarg.h>
#pragma GCC diagnostic ignored "-Wredundant-decls"
/* If PY_SSIZE_T_CLEAN is defined, each functions treats #-specifier
to mean Py_ssize_t */
#ifdef PY_SSIZE_T_CLEAN

View file

@ -216,7 +216,7 @@ typedef int Py_ssize_clean_t;
/* NB caller must include <sys/types.h> */
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
// #include <sys/select.h>
#endif /* !HAVE_SYS_SELECT_H */
/*******************************

View file

@ -0,0 +1,812 @@
# system configuration generated and used by the sysconfig module
build_time_vars = {'ABIFLAGS': 'm',
'AC_APPLE_UNIVERSAL_BUILD': 0,
'AIX_GENUINE_CPLUSPLUS': 0,
'ANDROID_API_LEVEL': 0,
'AR': 'ar',
'ARFLAGS': 'rcs',
'BASECFLAGS': '-Wno-unused-result -Wsign-compare',
'BASECPPFLAGS': '',
'BASEMODLIBS': '',
'BINDIR': '/bin',
'BINLIBDEST': '/lib/python3.6',
'BLAKE_SSE': "'BLAKE_USE_SSE=1'",
'BLDLIBRARY': 'libpython3.6m.a',
'BLDSHARED': 'gcc -shared -static -nostdlib -nostdinc -fno-pie '
'-mno-red-zone -include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'BUILDEXE': '.com.dbg',
'BUILDPYTHON': 'python.com.dbg',
'BUILD_GNU_TYPE': 'x86_64-pc-linux-gnu',
'BYTESTR_DEPS': '\\',
'CC': 'gcc',
'CCSHARED': '-fPIC',
'CFLAGS': '-Wno-unused-result -Wsign-compare -DNDEBUG -Os -Wall '
'-Wno-strict-prototypes -Wno-unused-value -std=c99 '
'-static -fno-pie -fno-omit-frame-pointer '
'-ffunction-sections -fdata-sections -mno-red-zone -pg '
'-nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs -include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'CFLAGSFORSHARED': '',
'CFLAGS_ALIASING': '',
'CFLAGS_NODIST': '',
'CONFIGFILES': 'configure configure.ac acconfig.h pyconfig.h.in '
'Makefile.pre.in',
'CONFIGURE_CFLAGS': '-Os -Wall -Wno-strict-prototypes -Wno-unused-value '
'-std=c99 -static -fno-pie '
'-fno-omit-frame-pointer -ffunction-sections '
'-fdata-sections -mno-red-zone -pg -nostdinc '
'-nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'CONFIGURE_CFLAGS_NODIST': '-Os -Wall -Wno-strict-prototypes '
'-Wno-unused-value -std=c99 -static '
'-fno-pie -fno-omit-frame-pointer '
'-mno-red-zone -pg -nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'-std=c99 -Wextra -Wno-unused-result '
'-Wno-unused-parameter '
'-Wno-missing-field-initializers '
'-Wno-cast-function-type',
'CONFIGURE_CPPFLAGS': '',
'CONFIGURE_LDFLAGS': '-static -nostdlib -nostdinc -fno-pie '
'-mno-red-zone -include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'CONFIGURE_LDFLAGS_NODIST': '',
'CONFIG_ARGS': "'--prefix=' '--disable-shared' '--disable-profiling' "
"'--disable-ipv6' '--disable-optimizations' "
"'--without-pydebug' '--without-threads' '--without-lto' "
"'--with-pymalloc' '--without-ensurepip' "
"'--with-tcltk-includes=' '--with-tcltk-libs=' '--with-libm=' "
"'OPT=' 'CCSHARED=' 'LINKFORSHARED=' 'PKG_CONFIG=' 'CFLAGS=-Os "
'-Wall -Wno-strict-prototypes -Wno-unused-value -std=c99 '
'-static -fno-pie -fno-omit-frame-pointer '
'-ffunction-sections -fdata-sections -mno-red-zone '
'-pg -nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
"/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h' "
"'LDFLAGS=-static -nostdlib -nostdinc -fno-pie "
'-mno-red-zone -include '
"/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h' "
"'LIBS= -Wl,--gc-sections -fuse-ld=bfd "
'-Wl,-T,/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.lds '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/crt.o '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.o '
"/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.a' "
"'CFLAGS_NODIST=-Os -Wall -Wno-strict-prototypes "
'-Wno-unused-value -std=c99 -static -fno-pie '
'-fno-omit-frame-pointer -mno-red-zone -pg '
'-nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
"/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h'",
'CONFINCLUDEDIR': '/include',
'CONFINCLUDEPY': '/include/python3.6m',
'COREPYTHONPATH': ':',
'COVERAGE_INFO': '/home/gautham/stuff/cosmo/cpython36/coverage.info',
'COVERAGE_REPORT': '/home/gautham/stuff/cosmo/cpython36/lcov-report',
'COVERAGE_REPORT_OPTIONS': '--no-branch-coverage --title "CPython lcov '
'report"',
'CPPFLAGS': '-I. -I./Include',
'CXX': 'g++',
'DECIMAL_USE_ASM': "'ASM=1'",
'DECIMAL_USE_X64': "'CONFIG_64=1'",
'DESTDIRS': '/lib /lib/python3.6 /lib/python3.6/lib-dynload',
'DESTLIB': '/lib/python3.6',
'DESTPATH': '',
'DESTSHARED': '/lib/python3.6/lib-dynload',
'DFLAGS': '',
'DIRMODE': 755,
'DIST': 'README ChangeLog configure configure.ac acconfig.h pyconfig.h.in '
'Makefile.pre.in Include Lib Misc Ext-dummy',
'DISTDIRS': 'Include Lib Misc Ext-dummy',
'DISTFILES': 'README ChangeLog configure configure.ac acconfig.h '
'pyconfig.h.in Makefile.pre.in',
'DLINCLDIR': '.',
'DLLLIBRARY': '',
'DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754': 0,
'DOUBLE_IS_BIG_ENDIAN_IEEE754': 0,
'DOUBLE_IS_LITTLE_ENDIAN_IEEE754': 1,
'DTRACE': '',
'DTRACE_DEPS': '\\',
'DTRACE_HEADERS': '',
'DTRACE_OBJS': '',
'DYNLOADFILE': 'dynload_shlib.o',
'ENABLE_IPV6': 0,
'ENSUREPIP': 'no',
'EXE': '.com.dbg',
'EXEMODE': 755,
'EXTRAMACHDEPPATH': '',
'EXTRATESTOPTS': '',
'EXTRA_CFLAGS': '',
'EXT_SUFFIX': '.cpython-36m-x86_64-linux-gnu.so',
'FILEMODE': 644,
'FLOCK_NEEDS_LIBBSD': 0,
'GETPGRP_HAVE_ARG': 0,
'GETTIMEOFDAY_NO_TZ': 0,
'GITBRANCH': 'git --git-dir ./.git name-rev --name-only HEAD',
'GITTAG': 'git --git-dir ./.git describe --all --always --dirty',
'GITVERSION': 'git --git-dir ./.git rev-parse --short HEAD',
'GNULD': 'yes',
'HAVE_ACCEPT4': 1,
'HAVE_ACOSH': 1,
'HAVE_ADDRINFO': 1,
'HAVE_ALARM': 1,
'HAVE_ALIGNED_REQUIRED': 0,
'HAVE_ALLOCA_H': 1,
'HAVE_ALTZONE': 0,
'HAVE_ASINH': 1,
'HAVE_ASM_TYPES_H': 0,
'HAVE_ATANH': 1,
'HAVE_BIND_TEXTDOMAIN_CODESET': 0,
'HAVE_BLUETOOTH_BLUETOOTH_H': 0,
'HAVE_BLUETOOTH_H': 0,
'HAVE_BROKEN_MBSTOWCS': 0,
'HAVE_BROKEN_NICE': 0,
'HAVE_BROKEN_PIPE_BUF': 0,
'HAVE_BROKEN_POLL': 0,
'HAVE_BROKEN_POSIX_SEMAPHORES': 0,
'HAVE_BROKEN_PTHREAD_SIGMASK': 0,
'HAVE_BROKEN_SEM_GETVALUE': 1,
'HAVE_BROKEN_UNSETENV': 0,
'HAVE_BUILTIN_ATOMIC': 1,
'HAVE_CHFLAGS': 0,
'HAVE_CHOWN': 1,
'HAVE_CHROOT': 1,
'HAVE_CLOCK': 1,
'HAVE_CLOCK_GETRES': 1,
'HAVE_CLOCK_GETTIME': 1,
'HAVE_CLOCK_SETTIME': 1,
'HAVE_COMPUTED_GOTOS': 1,
'HAVE_CONFSTR': 0,
'HAVE_CONIO_H': 0,
'HAVE_COPYSIGN': 1,
'HAVE_CRYPT_H': 0,
'HAVE_CTERMID': 0,
'HAVE_CTERMID_R': 0,
'HAVE_CURSES_FILTER': 1,
'HAVE_CURSES_H': 1,
'HAVE_CURSES_HAS_KEY': 1,
'HAVE_CURSES_IMMEDOK': 1,
'HAVE_CURSES_IS_PAD': 1,
'HAVE_CURSES_IS_TERM_RESIZED': 1,
'HAVE_CURSES_RESIZETERM': 1,
'HAVE_CURSES_RESIZE_TERM': 1,
'HAVE_CURSES_SYNCOK': 1,
'HAVE_CURSES_TYPEAHEAD': 1,
'HAVE_CURSES_USE_ENV': 1,
'HAVE_CURSES_WCHGAT': 1,
'HAVE_DECL_ISFINITE': 1,
'HAVE_DECL_ISINF': 1,
'HAVE_DECL_ISNAN': 1,
'HAVE_DECL_RTLD_DEEPBIND': 0,
'HAVE_DECL_RTLD_GLOBAL': 1,
'HAVE_DECL_RTLD_LAZY': 1,
'HAVE_DECL_RTLD_LOCAL': 1,
'HAVE_DECL_RTLD_NODELETE': 0,
'HAVE_DECL_RTLD_NOLOAD': 0,
'HAVE_DECL_RTLD_NOW': 1,
'HAVE_DECL_TZNAME': 0,
'HAVE_DEVICE_MACROS': 0,
'HAVE_DEV_PTC': 0,
'HAVE_DEV_PTMX': 1,
'HAVE_DIRECT_H': 0,
'HAVE_DIRENT_D_TYPE': 1,
'HAVE_DIRENT_H': 1,
'HAVE_DIRFD': 1,
'HAVE_DLFCN_H': 1,
'HAVE_DLOPEN': 1,
'HAVE_DUP2': 1,
'HAVE_DUP3': 1,
'HAVE_DYNAMIC_LOADING': 1,
'HAVE_ENDIAN_H': 0,
'HAVE_EPOLL': 1,
'HAVE_EPOLL_CREATE1': 1,
'HAVE_ERF': 1,
'HAVE_ERFC': 1,
'HAVE_ERRNO_H': 1,
'HAVE_EXECV': 1,
'HAVE_EXPM1': 1,
'HAVE_FACCESSAT': 1,
'HAVE_FCHDIR': 1,
'HAVE_FCHMOD': 1,
'HAVE_FCHMODAT': 1,
'HAVE_FCHOWN': 1,
'HAVE_FCHOWNAT': 1,
'HAVE_FCNTL_H': 1,
'HAVE_FDATASYNC': 1,
'HAVE_FDOPENDIR': 1,
'HAVE_FEXECVE': 0,
'HAVE_FINITE': 0,
'HAVE_FLOCK': 1,
'HAVE_FORK': 1,
'HAVE_FORKPTY': 1,
'HAVE_FPATHCONF': 1,
'HAVE_FSEEK64': 0,
'HAVE_FSEEKO': 1,
'HAVE_FSTATAT': 1,
'HAVE_FSTATVFS': 0,
'HAVE_FSYNC': 1,
'HAVE_FTELL64': 0,
'HAVE_FTELLO': 1,
'HAVE_FTIME': 0,
'HAVE_FTRUNCATE': 1,
'HAVE_FUTIMENS': 1,
'HAVE_FUTIMES': 1,
'HAVE_FUTIMESAT': 1,
'HAVE_GAI_STRERROR': 1,
'HAVE_GAMMA': 0,
'HAVE_GCC_ASM_FOR_MC68881': 0,
'HAVE_GCC_ASM_FOR_X64': 1,
'HAVE_GCC_ASM_FOR_X87': 1,
'HAVE_GCC_UINT128_T': 1,
'HAVE_GETADDRINFO': 0,
'HAVE_GETC_UNLOCKED': 1,
'HAVE_GETENTROPY': 1,
'HAVE_GETGROUPLIST': 1,
'HAVE_GETGROUPS': 1,
'HAVE_GETHOSTBYNAME': 1,
'HAVE_GETHOSTBYNAME_R': 0,
'HAVE_GETHOSTBYNAME_R_3_ARG': 0,
'HAVE_GETHOSTBYNAME_R_5_ARG': 0,
'HAVE_GETHOSTBYNAME_R_6_ARG': 0,
'HAVE_GETITIMER': 1,
'HAVE_GETLOADAVG': 0,
'HAVE_GETLOGIN': 1,
'HAVE_GETNAMEINFO': 1,
'HAVE_GETPAGESIZE': 1,
'HAVE_GETPEERNAME': 1,
'HAVE_GETPGID': 0,
'HAVE_GETPGRP': 1,
'HAVE_GETPID': 1,
'HAVE_GETPRIORITY': 1,
'HAVE_GETPWENT': 1,
'HAVE_GETRANDOM': 1,
'HAVE_GETRANDOM_SYSCALL': 0,
'HAVE_GETRESGID': 0,
'HAVE_GETRESUID': 0,
'HAVE_GETSID': 1,
'HAVE_GETSPENT': 0,
'HAVE_GETSPNAM': 0,
'HAVE_GETTIMEOFDAY': 1,
'HAVE_GETWD': 0,
'HAVE_GLIBC_MEMMOVE_BUG': 1,
'HAVE_GRP_H': 1,
'HAVE_HSTRERROR': 0,
'HAVE_HTOLE64': 1,
'HAVE_HYPOT': 1,
'HAVE_IEEEFP_H': 0,
'HAVE_IF_NAMEINDEX': 0,
'HAVE_INET_ATON': 1,
'HAVE_INET_PTON': 1,
'HAVE_INITGROUPS': 1,
'HAVE_INTTYPES_H': 1,
'HAVE_IO_H': 0,
'HAVE_IPA_PURE_CONST_BUG': 1,
'HAVE_KILL': 1,
'HAVE_KILLPG': 1,
'HAVE_KQUEUE': 0,
'HAVE_LANGINFO_H': 0,
'HAVE_LARGEFILE_SUPPORT': 0,
'HAVE_LCHFLAGS': 0,
'HAVE_LCHMOD': 0,
'HAVE_LCHOWN': 1,
'HAVE_LGAMMA': 1,
'HAVE_LIBDL': 0,
'HAVE_LIBDLD': 0,
'HAVE_LIBIEEE': 0,
'HAVE_LIBINTL_H': 0,
'HAVE_LIBREADLINE': 0,
'HAVE_LIBRESOLV': 0,
'HAVE_LIBSENDFILE': 0,
'HAVE_LIBUTIL_H': 0,
'HAVE_LINK': 1,
'HAVE_LINKAT': 1,
'HAVE_LINUX_CAN_BCM_H': 0,
'HAVE_LINUX_CAN_H': 0,
'HAVE_LINUX_CAN_RAW_FD_FRAMES': 0,
'HAVE_LINUX_CAN_RAW_H': 0,
'HAVE_LINUX_NETLINK_H': 0,
'HAVE_LINUX_RANDOM_H': 0,
'HAVE_LINUX_TIPC_H': 0,
'HAVE_LOCKF': 0,
'HAVE_LOG1P': 1,
'HAVE_LOG2': 1,
'HAVE_LONG_DOUBLE': 1,
'HAVE_LSTAT': 1,
'HAVE_LUTIMES': 0,
'HAVE_MAKEDEV': 0,
'HAVE_MBRTOWC': 1,
'HAVE_MEMMOVE': 1,
'HAVE_MEMORY_H': 1,
'HAVE_MEMRCHR': 1,
'HAVE_MKDIRAT': 1,
'HAVE_MKFIFO': 1,
'HAVE_MKFIFOAT': 0,
'HAVE_MKNOD': 1,
'HAVE_MKNODAT': 1,
'HAVE_MKTIME': 1,
'HAVE_MMAP': 1,
'HAVE_MREMAP': 1,
'HAVE_NCURSES_H': 1,
'HAVE_NDIR_H': 0,
'HAVE_NETPACKET_PACKET_H': 0,
'HAVE_NET_IF_H': 0,
'HAVE_NICE': 1,
'HAVE_OPENAT': 1,
'HAVE_OPENPTY': 1,
'HAVE_PATHCONF': 1,
'HAVE_PAUSE': 1,
'HAVE_PIPE2': 1,
'HAVE_PLOCK': 0,
'HAVE_POLL': 1,
'HAVE_POLL_H': 1,
'HAVE_POSIX_FADVISE': 1,
'HAVE_POSIX_FALLOCATE': 0,
'HAVE_PREAD': 1,
'HAVE_PRLIMIT': 0,
'HAVE_PROCESS_H': 0,
'HAVE_PROTOTYPES': 1,
'HAVE_PTHREAD_ATFORK': 0,
'HAVE_PTHREAD_DESTRUCTOR': 0,
'HAVE_PTHREAD_H': 1,
'HAVE_PTHREAD_INIT': 0,
'HAVE_PTHREAD_KILL': 0,
'HAVE_PTHREAD_SIGMASK': 0,
'HAVE_PTY_H': 1,
'HAVE_PUTENV': 1,
'HAVE_PWRITE': 1,
'HAVE_READLINK': 1,
'HAVE_READLINKAT': 1,
'HAVE_READV': 1,
'HAVE_REALPATH': 1,
'HAVE_RENAMEAT': 1,
'HAVE_RL_APPEND_HISTORY': 0,
'HAVE_RL_CALLBACK': 0,
'HAVE_RL_CATCH_SIGNAL': 1,
'HAVE_RL_COMPLETION_APPEND_CHARACTER': 1,
'HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK': 1,
'HAVE_RL_COMPLETION_MATCHES': 0,
'HAVE_RL_COMPLETION_SUPPRESS_APPEND': 1,
'HAVE_RL_PRE_INPUT_HOOK': 1,
'HAVE_RL_RESIZE_TERMINAL': 0,
'HAVE_ROUND': 1,
'HAVE_SCHED_GET_PRIORITY_MAX': 0,
'HAVE_SCHED_H': 0,
'HAVE_SCHED_RR_GET_INTERVAL': 0,
'HAVE_SCHED_SETAFFINITY': 1,
'HAVE_SCHED_SETPARAM': 1,
'HAVE_SCHED_SETSCHEDULER': 1,
'HAVE_SELECT': 1,
'HAVE_SEM_GETVALUE': 0,
'HAVE_SEM_OPEN': 0,
'HAVE_SEM_TIMEDWAIT': 0,
'HAVE_SEM_UNLINK': 0,
'HAVE_SENDFILE': 1,
'HAVE_SETEGID': 1,
'HAVE_SETEUID': 1,
'HAVE_SETGID': 1,
'HAVE_SETGROUPS': 1,
'HAVE_SETHOSTNAME': 1,
'HAVE_SETITIMER': 1,
'HAVE_SETLOCALE': 1,
'HAVE_SETPGID': 1,
'HAVE_SETPGRP': 0,
'HAVE_SETPRIORITY': 1,
'HAVE_SETREGID': 1,
'HAVE_SETRESGID': 1,
'HAVE_SETRESUID': 1,
'HAVE_SETREUID': 1,
'HAVE_SETSID': 1,
'HAVE_SETUID': 1,
'HAVE_SETVBUF': 1,
'HAVE_SHADOW_H': 0,
'HAVE_SIGACTION': 1,
'HAVE_SIGALTSTACK': 0,
'HAVE_SIGINTERRUPT': 0,
'HAVE_SIGNAL_H': 1,
'HAVE_SIGPENDING': 0,
'HAVE_SIGRELSE': 0,
'HAVE_SIGTIMEDWAIT': 0,
'HAVE_SIGWAIT': 0,
'HAVE_SIGWAITINFO': 0,
'HAVE_SNPRINTF': 1,
'HAVE_SOCKADDR_ALG': 0,
'HAVE_SOCKADDR_SA_LEN': 0,
'HAVE_SOCKADDR_STORAGE': 1,
'HAVE_SOCKETPAIR': 1,
'HAVE_SPAWN_H': 1,
'HAVE_SSIZE_T': 1,
'HAVE_STATVFS': 0,
'HAVE_STAT_TV_NSEC': 1,
'HAVE_STAT_TV_NSEC2': 0,
'HAVE_STDARG_PROTOTYPES': 1,
'HAVE_STDINT_H': 1,
'HAVE_STDLIB_H': 1,
'HAVE_STD_ATOMIC': 0,
'HAVE_STRDUP': 1,
'HAVE_STRFTIME': 1,
'HAVE_STRINGS_H': 1,
'HAVE_STRING_H': 1,
'HAVE_STRLCPY': 1,
'HAVE_STROPTS_H': 0,
'HAVE_STRUCT_PASSWD_PW_GECOS': 1,
'HAVE_STRUCT_PASSWD_PW_PASSWD': 1,
'HAVE_STRUCT_STAT_ST_BIRTHTIME': 0,
'HAVE_STRUCT_STAT_ST_BLKSIZE': 1,
'HAVE_STRUCT_STAT_ST_BLOCKS': 1,
'HAVE_STRUCT_STAT_ST_FLAGS': 0,
'HAVE_STRUCT_STAT_ST_GEN': 0,
'HAVE_STRUCT_STAT_ST_RDEV': 1,
'HAVE_STRUCT_TM_TM_ZONE': 1,
'HAVE_SYMLINK': 1,
'HAVE_SYMLINKAT': 1,
'HAVE_SYNC': 1,
'HAVE_SYSCONF': 1,
'HAVE_SYSEXITS_H': 1,
'HAVE_SYS_AUDIOIO_H': 0,
'HAVE_SYS_BSDTTY_H': 0,
'HAVE_SYS_DEVPOLL_H': 0,
'HAVE_SYS_DIR_H': 0,
'HAVE_SYS_ENDIAN_H': 0,
'HAVE_SYS_EPOLL_H': 1,
'HAVE_SYS_EVENT_H': 0,
'HAVE_SYS_FILE_H': 1,
'HAVE_SYS_IOCTL_H': 1,
'HAVE_SYS_KERN_CONTROL_H': 0,
'HAVE_SYS_LOADAVG_H': 0,
'HAVE_SYS_LOCK_H': 0,
'HAVE_SYS_MKDEV_H': 0,
'HAVE_SYS_MODEM_H': 0,
'HAVE_SYS_NDIR_H': 0,
'HAVE_SYS_PARAM_H': 1,
'HAVE_SYS_POLL_H': 1,
'HAVE_SYS_RANDOM_H': 1,
'HAVE_SYS_RESOURCE_H': 1,
'HAVE_SYS_SELECT_H': 1,
'HAVE_SYS_SENDFILE_H': 0,
'HAVE_SYS_SOCKET_H': 1,
'HAVE_SYS_STATVFS_H': 1,
'HAVE_SYS_STAT_H': 1,
'HAVE_SYS_SYSCALL_H': 1,
'HAVE_SYS_SYSMACROS_H': 0,
'HAVE_SYS_SYS_DOMAIN_H': 0,
'HAVE_SYS_TERMIO_H': 0,
'HAVE_SYS_TIMES_H': 1,
'HAVE_SYS_TIME_H': 1,
'HAVE_SYS_TYPES_H': 1,
'HAVE_SYS_UIO_H': 0,
'HAVE_SYS_UN_H': 1,
'HAVE_SYS_UTSNAME_H': 1,
'HAVE_SYS_WAIT_H': 1,
'HAVE_SYS_XATTR_H': 0,
'HAVE_TCGETPGRP': 1,
'HAVE_TCSETPGRP': 1,
'HAVE_TEMPNAM': 1,
'HAVE_TERMIOS_H': 1,
'HAVE_TERM_H': 1,
'HAVE_TGAMMA': 0,
'HAVE_TIMEGM': 1,
'HAVE_TIMES': 1,
'HAVE_TMPFILE': 1,
'HAVE_TMPNAM': 0,
'HAVE_TMPNAM_R': 0,
'HAVE_TM_ZONE': 1,
'HAVE_TRUNCATE': 1,
'HAVE_TZNAME': 0,
'HAVE_UCS4_TCL': 0,
'HAVE_UNAME': 1,
'HAVE_UNISTD_H': 1,
'HAVE_UNLINKAT': 1,
'HAVE_UNSETENV': 1,
'HAVE_USABLE_WCHAR_T': 0,
'HAVE_UTIL_H': 0,
'HAVE_UTIMENSAT': 1,
'HAVE_UTIMES': 1,
'HAVE_UTIME_H': 1,
'HAVE_WAIT3': 1,
'HAVE_WAIT4': 1,
'HAVE_WAITID': 0,
'HAVE_WAITPID': 1,
'HAVE_WCHAR_H': 1,
'HAVE_WCSCOLL': 0,
'HAVE_WCSFTIME': 0,
'HAVE_WCSXFRM': 0,
'HAVE_WMEMCMP': 1,
'HAVE_WORKING_TZSET': 1,
'HAVE_WRITEV': 1,
'HAVE_ZLIB_COPY': 0,
'HAVE__GETPTY': 0,
'HOST_GNU_TYPE': 'x86_64-pc-linux-gnu',
'INCLDIRSTOMAKE': '/include /include /include/python3.6m /include/python3.6m',
'INCLUDEDIR': '/include',
'INCLUDEPY': '/include/python3.6m',
'INSTALL': '/usr/bin/install -c',
'INSTALL_DATA': '/usr/bin/install -c -m 644',
'INSTALL_PROGRAM': '/usr/bin/install -c',
'INSTALL_SCRIPT': '/usr/bin/install -c',
'INSTALL_SHARED': '/usr/bin/install -c -m 555',
'INSTSONAME': 'libpython3.6m.a',
'IO_H': 'Modules/_io/_iomodule.h',
'IO_OBJS': '\\',
'LDCXXSHARED': 'g++ -shared',
'LDFLAGS': '-static -nostdlib -nostdinc -fno-pie -mno-red-zone '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'LDFLAGS_NODIST': '',
'LDLAST': '',
'LDLIBRARY': 'libpython3.6m.a',
'LDLIBRARYDIR': '',
'LDSHARED': 'gcc -shared -static -nostdlib -nostdinc -fno-pie '
'-mno-red-zone -include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'LDVERSION': '3.6m',
'LIBC': '',
'LIBDEST': '/lib/python3.6',
'LIBDIR': '/lib',
'LIBFFI_INCLUDEDIR': '',
'LIBM': '',
'LIBOBJDIR': 'Python/',
'LIBOBJS': '',
'LIBPC': '/lib/pkgconfig',
'LIBPL': '/lib/python3.6/config-3.6m-x86_64-linux-gnu',
'LIBRARY': 'libpython3.6m.a',
'LIBRARY_OBJS': '\\',
'LIBRARY_OBJS_OMIT_FROZEN': '\\',
'LIBS': '-Wl,--gc-sections -fuse-ld=bfd '
'-Wl,-T,/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.lds '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/crt.o '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.o '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.a',
'LIBSUBDIRS': 'tkinter tkinter/test tkinter/test/test_tkinter \\',
'LINKCC': 'gcc',
'LINKFORSHARED': '',
'LIPO_32BIT_FLAGS': '',
'LLVM_PROF_ERR': 'no',
'LLVM_PROF_FILE': '',
'LLVM_PROF_MERGER': 'true',
'LN': 'ln',
'LOCALMODLIBS': '',
'LOG1P_DROPS_ZERO_SIGN': 0,
'MACHDEP': 'linux',
'MACHDEPPATH': ':',
'MACHDEP_OBJS': '',
'MACHDESTLIB': '/lib/python3.6',
'MACOSX_DEPLOYMENT_TARGET': '',
'MAINCC': 'gcc',
'MAJOR_IN_MKDEV': 0,
'MAJOR_IN_SYSMACROS': 0,
'MAKESETUP': './Modules/makesetup',
'MANDIR': '/share/man',
'MKDIR_P': '/usr/bin/mkdir -p',
'MODLIBS': '',
'MODNAMES': '_decimal _markupsafe_speedups _greenlet posix errno pwd _sre '
'_codecs _functools _operator _collections itertools atexit '
'_signal _stat time _locale _io zipimport faulthandler '
'_tracemalloc _symtable array cmath math _struct _weakref '
'_testcapi _random _elementtree _pickle _datetime _bisect _heapq '
'unicodedata fcntl grp select mmap _csv _socket resource '
'_posixsubprocess _md5 _sha1 _sha256 _sha512 _sha3 _blake2 syslog '
'binascii parser fpectl zlib pyexpat _multibytecodec _codecs_cn '
'_codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw '
'xxsubtype _json _lsprof _opcode',
'MODOBJS': 'Modules/_decimal.o Modules/basearith.o Modules/constants.o '
'Modules/context.o Modules/convolute.o Modules/crt.o '
'Modules/difradix2.o Modules/fnt.o Modules/fourstep.o Modules/io.o '
'Modules/memory.o Modules/mpdecimal.o Modules/numbertheory.o '
'Modules/sixstep.o Modules/transpose.o '
'Modules/_markupsafe_speedups.o Modules/greenlet.o '
'Modules/posixmodule.o Modules/errnomodule.o '
'Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o '
'Modules/_functoolsmodule.o Modules/_operator.o '
'Modules/_collectionsmodule.o Modules/itertoolsmodule.o '
'Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o '
'Modules/timemodule.o Modules/_localemodule.o '
'Modules/_iomodule.o Modules/iobase.o Modules/fileio.o '
'Modules/bytesio.o Modules/bufferedio.o Modules/textio.o '
'Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o '
'Modules/_tracemalloc.o Modules/hashtable.o '
'Modules/symtablemodule.o Modules/arraymodule.o '
'Modules/cmathmodule.o Modules/mathmodule.o Modules/_math.o '
'Modules/_struct.o Modules/_weakref.o Modules/_testcapimodule.o '
'Modules/_randommodule.o Modules/_elementtree.o '
'Modules/_pickle.o Modules/_datetimemodule.o '
'Modules/_bisectmodule.o Modules/_heapqmodule.o '
'Modules/unicodedata.o Modules/fcntlmodule.o '
'Modules/grpmodule.o Modules/selectmodule.o '
'Modules/mmapmodule.o Modules/_csv.o Modules/socketmodule.o '
'Modules/resource.o Modules/_posixsubprocess.o '
'Modules/md5module.o Modules/sha1module.o '
'Modules/sha256module.o Modules/sha512module.o '
'Modules/sha3module.o Modules/blake2module.o '
'Modules/blake2b_impl.o Modules/blake2s_impl.o '
'Modules/syslogmodule.o Modules/binascii.o '
'Modules/parsermodule.o Modules/fpectlmodule.o '
'Modules/zlibmodule.o Modules/xmlparse.o Modules/xmlrole.o '
'Modules/xmltok.o Modules/pyexpat.o Modules/multibytecodec.o '
'Modules/_codecs_cn.o Modules/_codecs_hk.o '
'Modules/_codecs_iso2022.o Modules/_codecs_jp.o '
'Modules/_codecs_kr.o Modules/_codecs_tw.o Modules/xxsubtype.o '
'Modules/_json.o Modules/_lsprof.o Modules/rotatingtree.o '
'Modules/_opcode.o',
'MODULE_OBJS': '\\',
'MULTIARCH': 'x86_64-linux-gnu',
'MULTIARCH_CPPFLAGS': '-DMULTIARCH=\\"x86_64-linux-gnu\\"',
'MVWDELCH_IS_EXPRESSION': 1,
'NO_AS_NEEDED': '-Wl,--no-as-needed',
'OBJECT_OBJS': '\\',
'OPT': '-DNDEBUG',
'OTHER_LIBTOOL_OPT': '',
'PACKAGE_BUGREPORT': 0,
'PACKAGE_NAME': 0,
'PACKAGE_STRING': 0,
'PACKAGE_TARNAME': 0,
'PACKAGE_URL': 0,
'PACKAGE_VERSION': 0,
'PARSER_HEADERS': '\\',
'PARSER_OBJS': '\\ Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o',
'PGEN': 'Parser/pgen.com.dbg',
'PGENOBJS': '\\ \\',
'PGOBJS': '\\',
'PGO_PROF_GEN_FLAG': '-fprofile-generate',
'PGO_PROF_USE_FLAG': '-fprofile-use -fprofile-correction',
'PLATDIR': '',
'POBJS': '\\',
'POSIX_SEMAPHORES_NOT_ENABLED': 1,
'PROFILE_TASK': '-m test.regrtest --pgo',
'PTHREAD_SYSTEM_SCHED_SUPPORTED': 0,
'PURIFY': '',
'PY3LIBRARY': '',
'PYEXPAT_ENTROPY': "'XML_POOR_ENTROPY=1'",
'PYLONG_BITS_IN_DIGIT': 0,
'PYTHON': 'python.com.dbg',
'PYTHONFRAMEWORK': '',
'PYTHONFRAMEWORKDIR': 'no-framework',
'PYTHONFRAMEWORKINSTALLDIR': '',
'PYTHONFRAMEWORKPREFIX': '',
'PYTHONPATH': ':',
'PYTHON_APE': 'python.com',
'PYTHON_FOR_BUILD': './python.com.dbg -E',
'PYTHON_FOR_REGEN': 'python3',
'PYTHON_HEADERS': '\\',
'PYTHON_OBJS': '\\',
'PY_CFLAGS': '-Wno-unused-result -Wsign-compare -DNDEBUG -Os -Wall '
'-Wno-strict-prototypes -Wno-unused-value -std=c99 '
'-static -fno-pie -fno-omit-frame-pointer '
'-ffunction-sections -fdata-sections -mno-red-zone '
'-pg -nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'PY_CFLAGS_NODIST': '-Os -Wall -Wno-strict-prototypes -Wno-unused-value '
'-std=c99 -static -fno-pie '
'-fno-omit-frame-pointer -mno-red-zone -pg '
'-nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'-std=c99 -Wextra -Wno-unused-result '
'-Wno-unused-parameter -Wno-missing-field-initializers '
'-Wno-cast-function-type',
'PY_CORE_CFLAGS': '-Wno-unused-result -Wsign-compare -DNDEBUG -Os -Wall '
'-Wno-strict-prototypes -Wno-unused-value -std=c99 '
'-static -fno-pie -fno-omit-frame-pointer '
'-ffunction-sections -fdata-sections -mno-red-zone '
'-pg -nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'-Os -Wall -Wno-strict-prototypes -Wno-unused-value '
'-std=c99 -static -fno-pie '
'-fno-omit-frame-pointer -mno-red-zone -pg '
'-nostdinc -nostdlib '
'-I/home/gautham/stuff/cosmo/cpython36/header_stubs '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter '
'-Wno-missing-field-initializers -Wno-cast-function-type '
'-I. -I./Include -DPy_BUILD_CORE',
'PY_CORE_LDFLAGS': '-static -nostdlib -nostdinc -fno-pie '
'-mno-red-zone -include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'PY_CPPFLAGS': '-I. -I./Include',
'PY_FORMAT_SIZE_T': '"z"',
'PY_LDFLAGS': '-static -nostdlib -nostdinc -fno-pie -mno-red-zone '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h',
'PY_LDFLAGS_NODIST': '',
'Py_DEBUG': 0,
'Py_ENABLE_SHARED': 0,
'Py_HASH_ALGORITHM': 0,
'QUICKTESTOPTS': '-x test_subprocess test_io test_lib2to3 \\',
'READELF': 'readelf',
'RESSRCDIR': 'Mac/Resources/framework',
'RETSIGTYPE': 'void',
'RUNSHARED': '',
'SCRIPTDIR': '/lib',
'SETPGRP_HAVE_ARG': 0,
'SGI_ABI': '',
'SHELL': '/bin/sh',
'SHLIBS': '-Wl,--gc-sections -fuse-ld=bfd '
'-Wl,-T,/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.lds '
'-include '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.h '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/crt.o '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/ape.o '
'/home/gautham/stuff/cosmo/cpython36/libcosmo/cosmopolitan.a',
'SHLIB_SUFFIX': '.so',
'SIGNED_RIGHT_SHIFT_ZERO_FILLS': 0,
'SITEPATH': '',
'SIZEOF_DOUBLE': 8,
'SIZEOF_FLOAT': 4,
'SIZEOF_FPOS_T': 8,
'SIZEOF_INT': 4,
'SIZEOF_LONG': 8,
'SIZEOF_LONG_DOUBLE': 16,
'SIZEOF_LONG_LONG': 8,
'SIZEOF_OFF_T': 8,
'SIZEOF_PID_T': 4,
'SIZEOF_PTHREAD_T': 0,
'SIZEOF_SHORT': 2,
'SIZEOF_SIZE_T': 8,
'SIZEOF_TIME_T': 8,
'SIZEOF_UINTPTR_T': 8,
'SIZEOF_VOID_P': 8,
'SIZEOF_WCHAR_T': 4,
'SIZEOF__BOOL': 1,
'SOABI': 'cpython-36m-x86_64-linux-gnu',
'SRCDIRS': 'Parser Objects Python Modules Programs',
'SRC_GDB_HOOKS': './Tools/gdb/libpython.py',
'STDC_HEADERS': 1,
'STRICT_SYSV_CURSES': "/* Don't use ncurses extensions */",
'STRIPFLAG': '-s',
'SUBDIRS': '',
'SUBDIRSTOO': 'Include Lib Misc',
'SYSLIBS': '',
'SYS_SELECT_WITH_SYS_TIME': 1,
'TANH_PRESERVES_ZERO_SIGN': 1,
'TCLTK_INCLUDES': '',
'TCLTK_LIBS': '',
'TESTOPTS': '',
'TESTPATH': '',
'TESTPYTHON': './python.com.dbg',
'TESTPYTHONOPTS': '',
'TESTRUNNER': './python.com.dbg ./Tools/scripts/run_tests.py',
'TESTTIMEOUT': 1200,
'THREADOBJ': '',
'TIMEMODULE_LIB': 0,
'TIME_WITH_SYS_TIME': 1,
'TM_IN_SYS_TIME': 0,
'UNICODE_DEPS': '\\',
'UNIVERSALSDK': '',
'UPDATE_FILE': 'python3 ./Tools/scripts/update_file.py',
'USE_COMPUTED_GOTOS': 0,
'USE_INLINE': 1,
'VERSION': '3.6',
'WANT_SIGFPE_HANDLER': 0,
'WINDOW_HAS_FLAGS': 1,
'WITH_DOC_STRINGS': 1,
'WITH_DTRACE': 0,
'WITH_DYLD': 0,
'WITH_LIBINTL': 0,
'WITH_NEXT_FRAMEWORK': 0,
'WITH_PYMALLOC': 1,
'WITH_THREAD': 0,
'WITH_VALGRIND': 0,
'X87_DOUBLE_ROUNDING': 0,
'XMLLIBSUBDIRS': 'xml xml/dom xml/etree xml/parsers xml/sax',
'abs_builddir': '/home/gautham/stuff/cosmo/cpython36',
'abs_srcdir': '/home/gautham/stuff/cosmo/cpython36',
'datarootdir': '/share',
'exec_prefix': '',
'prefix': '',
'srcdir': '.'}

393
third_party/python/Modules/Setup vendored Normal file
View file

@ -0,0 +1,393 @@
# -*- makefile -*-
# The file Setup is used by the makesetup script to construct the files
# Makefile and config.c, from Makefile.pre and config.c.in,
# respectively. The file Setup itself is initially copied from
# Setup.dist; once it exists it will not be overwritten, so you can edit
# Setup to your heart's content. Note that Makefile.pre is created
# from Makefile.pre.in by the toplevel configure script.
# (VPATH notes: Setup and Makefile.pre are in the build directory, as
# are Makefile and config.c; the *.in and *.dist files are in the source
# directory.)
# Each line in this file describes one or more optional modules.
# Modules enabled here will not be compiled by the setup.py script,
# so the file can be used to override setup.py's behavior.
# Lines have the following structure:
#
# <module> ... [<sourcefile> ...] [<cpparg> ...] [<library> ...]
#
# <sourcefile> is anything ending in .c (.C, .cc, .c++ are C++ files)
# <cpparg> is anything starting with -I, -D, -U or -C
# <library> is anything ending in .a or beginning with -l or -L
# <module> is anything else but should be a valid Python
# identifier (letters, digits, underscores, beginning with non-digit)
#
# (As the makesetup script changes, it may recognize some other
# arguments as well, e.g. *.so and *.sl as libraries. See the big
# case statement in the makesetup script.)
#
# Lines can also have the form
#
# <name> = <value>
#
# which defines a Make variable definition inserted into Makefile.in
#
# Finally, if a line contains just the word "*shared*" (without the
# quotes but with the stars), then the following modules will not be
# built statically. The build process works like this:
#
# 1. Build all modules that are declared as static in Modules/Setup,
# combine them into libpythonxy.a, combine that into python.
# 2. Build all modules that are listed as shared in Modules/Setup.
# 3. Invoke setup.py. That builds all modules that
# a) are not builtin, and
# b) are not listed in Modules/Setup, and
# c) can be build on the target
#
# Therefore, modules declared to be shared will not be
# included in the config.c file, nor in the list of objects to be
# added to the library archive, and their linker options won't be
# added to the linker options. Rules to create their .o files and
# their shared libraries will still be added to the Makefile, and
# their names will be collected in the Make variable SHAREDMODS. This
# is used to build modules as shared libraries. (They can be
# installed using "make sharedinstall", which is implied by the
# toplevel "make install" target.) (For compatibility,
# *noconfig* has the same effect as *shared*.)
#
# In addition, *static* explicitly declares the following modules to
# be static. Lines containing "*static*" and "*shared*" may thus
# alternate throughout this file.
# NOTE: As a standard policy, as many modules as can be supported by a
# platform should be present. The distribution comes with all modules
# enabled that are supported by most platforms and don't require you
# to ftp sources from elsewhere.
# Some special rules to define PYTHONPATH.
# Edit the definitions below to indicate which options you are using.
# Don't add any whitespace or comments!
# Directories where library files get installed.
# DESTLIB is for Python modules; MACHDESTLIB for shared libraries.
DESTLIB=$(LIBDEST)
MACHDESTLIB=$(BINLIBDEST)
# NOTE: all the paths are now relative to the prefix that is computed
# at run time!
# Standard path -- don't edit.
# No leading colon since this is the first entry.
# Empty since this is now just the runtime prefix.
DESTPATH=
# Site specific path components -- should begin with : if non-empty
SITEPATH=
# Standard path components for test modules
TESTPATH=
# Path components for machine- or system-dependent modules and shared libraries
MACHDEPPATH=:$(PLATDIR)
EXTRAMACHDEPPATH=
COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)
PYTHONPATH=$(COREPYTHONPATH)
*static*
# The modules listed here can't be built as shared libraries for
# various reasons; therefore they are listed here instead of in the
# normal order.
# This only contains the minimal set of modules required to run the
# setup.py script in the root of the Python source tree.
posix posixmodule.c # posix (UNIX) system calls
errno errnomodule.c # posix (UNIX) errno values
pwd pwdmodule.c # this is needed to find out the user's home dir
# if $HOME is not set
_sre _sre.c # Fredrik Lundh's new regular expressions
_codecs _codecsmodule.c # access to the builtin codecs and codec registry
## _weakref _weakref.c # weak references
_functools _functoolsmodule.c # Tools for working with functions and callable objects
_operator _operator.c # operator.add() and similar goodies
_collections _collectionsmodule.c # Container types
itertools itertoolsmodule.c # Functions creating iterators for efficient looping
atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
_signal signalmodule.c
_stat _stat.c # stat.h interface
time timemodule.c # -lm # time operations and variables
# access to ISO C locale support
_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
# The zipimport module is always imported at startup. Having it as a
# builtin module avoids some bootstrapping problems and reduces overhead.
zipimport zipimport.c
# faulthandler module
faulthandler faulthandler.c
# debug tool to trace memory blocks allocated by Python
_tracemalloc _tracemalloc.c hashtable.c
# The rest of the modules listed in this file are all commented out by
# default. Usually they can be detected and built as dynamically
# loaded modules by the new setup.py script added in Python 2.1. If
# you're on a platform that doesn't support dynamic loading, want to
# compile modules statically into the Python binary, or need to
# specify some odd set of compiler switches, you can uncomment the
# appropriate lines below.
# ======================================================================
# The Python symtable module depends on .h files that setup.py doesn't track
_symtable symtablemodule.c
# Uncommenting the following line tells makesetup that all following
# modules are to be built as shared libraries (see above for more
# detail; also note that *static* reverses this effect):
*static*
# GNU readline. Unlike previous Python incarnations, GNU readline is
# now incorporated in an optional module, configured in the Setup file
# instead of by a configure script switch. You may have to insert a
# -L option pointing to the directory where libreadline.* lives,
# and you may have to change -ltermcap to -ltermlib or perhaps remove
# it, depending on your system -- see the GNU readline instructions.
# It's okay for this to be a shared library, too.
#readline readline.c -lreadline -ltermcap
# Modules that should always be present (non UNIX dependent):
array arraymodule.c # array objects
cmath cmathmodule.c # _math.c # -lm # complex math library functions
math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
_struct _struct.c # binary structure packing/unpacking
_weakref _weakref.c # basic weak reference support
_testcapi _testcapimodule.c # Python C API test module
_random _randommodule.c # Random number generator
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
_pickle _pickle.c # pickle accelerator
_datetime _datetimemodule.c # datetime accelerator
_bisect _bisectmodule.c # Bisection algorithms
_heapq _heapqmodule.c # Heap queue algorithm
# _asyncio _asynciomodule.c # Fast asyncio Future
unicodedata unicodedata.c # static Unicode character database
# Modules with some UNIX dependencies -- on by default:
# (If you have a really backward UNIX, select and socket may not be
# supported...)
fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
#spwd spwdmodule.c # spwd(3)
grp grpmodule.c # grp(3)
select selectmodule.c # select(2); not on ancient System V
# Memory-mapped files (also works on Win32).
mmap mmapmodule.c
# CSV file helper
_csv _csv.c
# Socket module helper for socket(2)
_socket socketmodule.c
# The crypt module is now disabled by default because it breaks builds
# on many systems (where -lcrypt is needed), e.g. Linux (I believe).
#
# First, look at Setup.config; configure may have set this for you.
#_crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
# Some more UNIX dependent modules -- off by default, since these
# are not supported by all UNIX systems:
#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
# termios termios.c # Steen Lumholt's termios module
resource resource.c # Jeremy Hylton's rlimit interface
_posixsubprocess _posixsubprocess.c # POSIX subprocess module helper
# Multimedia modules -- off by default.
# These don't work for 64-bit platforms!!!
# #993173 says audioop works on 64-bit platforms, though.
# These represent audio samples or images as strings:
#audioop audioop.c # Operations on audio samples
# Note that the _md5 and _sha modules are normally only built if the
# system does not have the OpenSSL libs containing an optimized version.
# The _md5 module implements the RSA Data Security, Inc. MD5
# Message-Digest Algorithm, described in RFC 1321.
_md5 md5module.c
# The _sha module implements the SHA checksum algorithms.
# (NIST's Secure Hash Algorithms.)
_sha1 sha1module.c
_sha256 sha256module.c
_sha512 sha512module.c
_sha3 _sha3/sha3module.c
# _blake module
BLAKE_SSE='BLAKE_USE_SSE=1'
_blake2 _blake2/blake2module.c \
_blake2/blake2b_impl.c _blake2/blake2s_impl.c \
-D$(BLAKE_SSE)
# The _tkinter module.
#
# The command for _tkinter is long and site specific. Please
# uncomment and/or edit those parts as indicated. If you don't have a
# specific extension (e.g. Tix or BLT), leave the corresponding line
# commented out. (Leave the trailing backslashes in! If you
# experience strange errors, you may want to join all uncommented
# lines and remove the backslashes -- the backslash interpretation is
# done by the shell's "read" command and it may not be implemented on
# every system.
# *** Always uncomment this (leave the leading underscore in!):
# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
# *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
# -L/usr/local/lib \
# *** Uncomment and edit to reflect where your Tcl/Tk headers are:
# -I/usr/local/include \
# *** Uncomment and edit to reflect where your X11 header files are:
# -I/usr/X11R6/include \
# *** Or uncomment this for Solaris:
# -I/usr/openwin/include \
# *** Uncomment and edit for Tix extension only:
# -DWITH_TIX -ltix8.1.8.2 \
# *** Uncomment and edit for BLT extension only:
# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
# *** Uncomment and edit for PIL (TkImaging) extension only:
# (See http://www.pythonware.com/products/pil/ for more info)
# -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \
# *** Uncomment and edit for TOGL extension only:
# -DWITH_TOGL togl.c \
# *** Uncomment and edit to reflect your Tcl/Tk versions:
# -ltk8.2 -ltcl8.2 \
# *** Uncomment and edit to reflect where your X11 libraries are:
# -L/usr/X11R6/lib \
# *** Or uncomment this for Solaris:
# -L/usr/openwin/lib \
# *** Uncomment these for TOGL extension only:
# -lGL -lGLU -lXext -lXmu \
# *** Uncomment for AIX:
# -lld \
# *** Always uncomment this; X11 libraries to link with:
# -lX11
# Lance Ellinghaus's syslog module
syslog syslogmodule.c # syslog daemon interface
# Curses support, requiring the System V version of curses, often
# provided by the ncurses library. e.g. on Linux, link with -lncurses
# instead of -lcurses).
#
# First, look at Setup.config; configure may have set this for you.
#_curses _cursesmodule.c -lcurses -ltermcap
# Wrapper for the panel library that's part of ncurses and SYSV curses.
#_curses_panel _curses_panel.c -lpanel -lncurses
# Modules that provide persistent dictionary-like semantics. You will
# probably want to arrange for at least one of them to be available on
# your machine, though none are defined by default because of library
# dependencies. The Python module dbm/__init__.py provides an
# implementation independent wrapper for these; dbm/dumb.py provides
# similar functionality (but slower of course) implemented in Python.
# The standard Unix dbm module has been moved to Setup.config so that
# it will be compiled as a shared library by default. Compiling it as
# a built-in module causes conflicts with the pybsddb3 module since it
# creates a static dependency on an out-of-date version of db.so.
#
# First, look at Setup.config; configure may have set this for you.
#_dbm _dbmmodule.c # dbm(3) may require -lndbm or similar
# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm:
#
# First, look at Setup.config; configure may have set this for you.
#_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
# Helper module for various ascii-encoders
binascii binascii.c
# Fred Drake's interface to the Python parser
parser parsermodule.c
# Lee Busby's SIGFPE modules.
# The library to link fpectl with is platform specific.
# Choose *one* of the options below for fpectl:
# For SGI IRIX (tested on 5.3):
#fpectl fpectlmodule.c -lfpe
# For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2):
# (Without the compiler you don't have -lsunmath.)
#fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm
# For other systems: see instructions in fpectlmodule.c.
fpectl fpectlmodule.c # ...
# Test module for fpectl. No extra libraries needed.
#fpetest fpetestmodule.c
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c # -I$(prefix)/include -L$(exec_prefix)/lib -lz
# Interface to the Expat XML parser
# More information on Expat can be found at www.libexpat.org.
#
PYEXPAT_ENTROPY='XML_POOR_ENTROPY=1'
pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c\
-I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H \
-D$(PYEXPAT_ENTROPY) -DUSE_PYEXPAT_CAPI
# Hye-Shik Chang's CJKCodecs
# multibytecodec is required for all the other CJK codec modules
_multibytecodec cjkcodecs/multibytecodec.c
_codecs_cn cjkcodecs/_codecs_cn.c
_codecs_hk cjkcodecs/_codecs_hk.c
_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
_codecs_jp cjkcodecs/_codecs_jp.c
_codecs_kr cjkcodecs/_codecs_kr.c
_codecs_tw cjkcodecs/_codecs_tw.c
# Example -- included for reference only:
# xx xxmodule.c
# Another example -- the 'xxsubtype' module shows C-level subtyping in action
xxsubtype xxsubtype.c
# additional modules from setup.py
_json _json.c
_lsprof _lsprof.c rotatingtree.c
_opcode _opcode.c

68
third_party/python/Modules/Setup.local vendored Normal file
View file

@ -0,0 +1,68 @@
# Edit this file for local setup changes
# # example recipe with SQLite3
# # set variables to be used in Makefile
# *static*
# # location of compiled https://github.com/ahgamut/sqlite
# SQLITE3_DIR=../sqlite
# # if there are compile-time flags with an equals sign
# # set them within a string, otherwise written wrongly into the Makefile
# SQLITE3_OMIT_EXTFLAG='SQLITE_OMIT_LOAD_EXTENSION=1'
# SQLITE3_MOD='MODULE_NAME="sqlite3"'
# # order is (module, sources, includes/defines, link locations, linked libs)
# # read Modules/Setup.dist for more details
# _sqlite3 _sqlite/util.c _sqlite/connection.c _sqlite/cursor.c \
# _sqlite/microprotocols.c _sqlite/cache.c _sqlite/prepare_protocol.c \
# _sqlite/row.c _sqlite/statement.c _sqlite/module.c \
# -D$(SQLITE3_OMIT_EXTFLAG) -D$(SQLITE3_MOD) \
# -IModules/_sqlite -I$(SQLITE3_DIR) \
# -L$(SQLITE3_DIR)/.libs -lsqlite3
# recipe for _ctypes
# requires compiled libffi in the _ctypes directory
# go to Modules/_ctypes/libffi and run superconfigure first
# _ctypes _ctypes/callbacks.c _ctypes/callproc.c _ctypes/cfield.c \
# _ctypes/_ctypes.c _ctypes/stgdict.c \
# -I./Modules/_ctypes -I./Modules/_ctypes/libffi/x86_64-unknown-linux-gnu/include \
# -L./Modules/_ctypes/libffi/x86_64-unknown-linux-gnu/.libs -lffi
# _ctypes_test _ctypes/_ctypes_test.c \
# -I./Modules/_ctypes
# # Possible to compile readline, but no benefit without termlib/curses
# readline readline.c \
# -I"../readline-8.1" \
# -L"../readline-8.1" -L"../termcap-1.3.1" -lreadline -ltermcap
# # The bz2 module requires bzlib.h and libbz2.a to be available
# bz2 bz2module.c \
# -I"../bzip2-1.0.8" \
# -L"../bzip2-1.0.8" -lbz2
# the _decimal folder contains libmpdec source
DECIMAL_USE_X64='CONFIG_64=1'
DECIMAL_USE_ASM='ASM=1'
_decimal _decimal/_decimal.c \
_decimal/libmpdec/basearith.c _decimal/libmpdec/constants.c \
_decimal/libmpdec/context.c _decimal/libmpdec/convolute.c \
_decimal/libmpdec/crt.c _decimal/libmpdec/difradix2.c \
_decimal/libmpdec/fnt.c _decimal/libmpdec/fourstep.c \
_decimal/libmpdec/io.c _decimal/libmpdec/memory.c \
_decimal/libmpdec/mpdecimal.c _decimal/libmpdec/numbertheory.c \
_decimal/libmpdec/sixstep.c _decimal/libmpdec/transpose.c \
-IModules/_decimal -IModules/_decimal/libmpdec \
-D$(DECIMAL_USE_X64) -D$(DECIMAL_USE_ASM)
# if OpenSSL is added to the repo, then use below recipe
# SSL=$(srcdir)/../openssl-1.1.1k
# _ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/ -lssl -lcrypto
# _hashlib _hashopenssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/ -lssl -lcrypto

View file

@ -6,6 +6,7 @@
#include "structmember.h"
#include <time.h>
#include "libc/time/struct/tm.h"
#ifdef MS_WINDOWS
# include <winsock2.h> /* struct timeval */

View file

@ -34,7 +34,7 @@
#include <limits.h>
#include <assert.h>
#include <errno.h>
#include <locale.h>
#include "libc/unicode/locale.h"
#include "bits.h"
#include "constants.h"
#include "typearith.h"

View file

@ -13,7 +13,7 @@ This software comes with no warranty. Use at your own risk.
#include "Python.h"
#include <stdio.h>
#include <locale.h>
#include "libc/unicode/locale.h"
#include <string.h>
#include <ctype.h>

View file

@ -33,7 +33,8 @@ hpTimerUnit(void)
#endif
#include <sys/resource.h>
#include <sys/times.h>
#include "libc/time/time.h"
#include "libc/time/struct/tm.h"
static long long
hpTimer(void)

View file

@ -12,7 +12,7 @@
#include <sys/stat.h>
#endif
#ifdef HAVE_SYS_SYSCALL_H
#include <sys/syscall.h>
#include "libc/calls/calls.h"
#endif
#if defined(HAVE_SYS_RESOURCE_H)
#include <sys/resource.h>

196
third_party/python/Modules/config.c vendored Normal file
View file

@ -0,0 +1,196 @@
/* Generated automatically from ./Modules/config.c.in by makesetup. */
/* -*- C -*- ***********************************************
Copyright (c) 2000, BeOpen.com.
Copyright (c) 1995-2000, Corporation for National Research Initiatives.
Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
All rights reserved.
See the file "Misc/COPYRIGHT" for information on usage and
redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
******************************************************************/
/* Module configuration */
/* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
/* This file contains the table of built-in modules.
See create_builtin() in import.c. */
#include "Python.h"
#ifdef __cplusplus
extern "C" {
#endif
extern PyObject* PyInit__decimal(void);
extern PyObject* PyInit_posix(void);
extern PyObject* PyInit_errno(void);
extern PyObject* PyInit_pwd(void);
extern PyObject* PyInit__sre(void);
extern PyObject* PyInit__codecs(void);
extern PyObject* PyInit__functools(void);
extern PyObject* PyInit__operator(void);
extern PyObject* PyInit__collections(void);
extern PyObject* PyInit_itertools(void);
extern PyObject* PyInit_atexit(void);
extern PyObject* PyInit__signal(void);
extern PyObject* PyInit__stat(void);
extern PyObject* PyInit_time(void);
extern PyObject* PyInit__locale(void);
extern PyObject* PyInit__io(void);
extern PyObject* PyInit_zipimport(void);
extern PyObject* PyInit_faulthandler(void);
extern PyObject* PyInit__tracemalloc(void);
extern PyObject* PyInit__symtable(void);
extern PyObject* PyInit_array(void);
extern PyObject* PyInit_cmath(void);
extern PyObject* PyInit_math(void);
extern PyObject* PyInit__struct(void);
extern PyObject* PyInit__weakref(void);
extern PyObject* PyInit__testcapi(void);
extern PyObject* PyInit__random(void);
extern PyObject* PyInit__elementtree(void);
extern PyObject* PyInit__pickle(void);
extern PyObject* PyInit__datetime(void);
extern PyObject* PyInit__bisect(void);
extern PyObject* PyInit__heapq(void);
extern PyObject* PyInit_unicodedata(void);
extern PyObject* PyInit_fcntl(void);
extern PyObject* PyInit_grp(void);
extern PyObject* PyInit_select(void);
extern PyObject* PyInit_mmap(void);
extern PyObject* PyInit__csv(void);
extern PyObject* PyInit__socket(void);
extern PyObject* PyInit_resource(void);
extern PyObject* PyInit__posixsubprocess(void);
extern PyObject* PyInit__md5(void);
extern PyObject* PyInit__sha1(void);
extern PyObject* PyInit__sha256(void);
extern PyObject* PyInit__sha512(void);
extern PyObject* PyInit__sha3(void);
extern PyObject* PyInit__blake2(void);
extern PyObject* PyInit_syslog(void);
extern PyObject* PyInit_binascii(void);
extern PyObject* PyInit_parser(void);
extern PyObject* PyInit_fpectl(void);
extern PyObject* PyInit_zlib(void);
extern PyObject* PyInit_pyexpat(void);
extern PyObject* PyInit__multibytecodec(void);
extern PyObject* PyInit__codecs_cn(void);
extern PyObject* PyInit__codecs_hk(void);
extern PyObject* PyInit__codecs_iso2022(void);
extern PyObject* PyInit__codecs_jp(void);
extern PyObject* PyInit__codecs_kr(void);
extern PyObject* PyInit__codecs_tw(void);
extern PyObject* PyInit__json(void);
extern PyObject* PyInit__lsprof(void);
extern PyObject* PyInit__opcode(void);
/* -- ADDMODULE MARKER 1 -- */
extern PyObject* PyMarshal_Init(void);
extern PyObject* PyInit_imp(void);
extern PyObject* PyInit_gc(void);
extern PyObject* PyInit__ast(void);
extern PyObject* _PyWarnings_Init(void);
extern PyObject* PyInit__string(void);
struct _inittab _PyImport_Inittab[] = {
{"_decimal", PyInit__decimal},
{"posix", PyInit_posix},
{"errno", PyInit_errno},
{"pwd", PyInit_pwd},
{"_sre", PyInit__sre},
{"_codecs", PyInit__codecs},
{"_functools", PyInit__functools},
{"_operator", PyInit__operator},
{"_collections", PyInit__collections},
{"itertools", PyInit_itertools},
{"atexit", PyInit_atexit},
{"_signal", PyInit__signal},
{"_stat", PyInit__stat},
{"time", PyInit_time},
{"_locale", PyInit__locale},
{"_io", PyInit__io},
{"zipimport", PyInit_zipimport},
{"faulthandler", PyInit_faulthandler},
{"_tracemalloc", PyInit__tracemalloc},
{"_symtable", PyInit__symtable},
{"array", PyInit_array},
{"cmath", PyInit_cmath},
{"math", PyInit_math},
{"_struct", PyInit__struct},
{"_weakref", PyInit__weakref},
{"_testcapi", PyInit__testcapi},
{"_random", PyInit__random},
{"_elementtree", PyInit__elementtree},
{"_pickle", PyInit__pickle},
{"_datetime", PyInit__datetime},
{"_bisect", PyInit__bisect},
{"_heapq", PyInit__heapq},
{"unicodedata", PyInit_unicodedata},
{"fcntl", PyInit_fcntl},
{"grp", PyInit_grp},
{"select", PyInit_select},
{"mmap", PyInit_mmap},
{"_csv", PyInit__csv},
{"_socket", PyInit__socket},
{"resource", PyInit_resource},
{"_posixsubprocess", PyInit__posixsubprocess},
{"_md5", PyInit__md5},
{"_sha1", PyInit__sha1},
{"_sha256", PyInit__sha256},
{"_sha512", PyInit__sha512},
{"_sha3", PyInit__sha3},
{"_blake2", PyInit__blake2},
{"syslog", PyInit_syslog},
{"binascii", PyInit_binascii},
{"parser", PyInit_parser},
{"fpectl", PyInit_fpectl},
{"zlib", PyInit_zlib},
{"pyexpat", PyInit_pyexpat},
{"_multibytecodec", PyInit__multibytecodec},
{"_codecs_cn", PyInit__codecs_cn},
{"_codecs_hk", PyInit__codecs_hk},
{"_codecs_iso2022", PyInit__codecs_iso2022},
{"_codecs_jp", PyInit__codecs_jp},
{"_codecs_kr", PyInit__codecs_kr},
{"_codecs_tw", PyInit__codecs_tw},
{"_json", PyInit__json},
{"_lsprof", PyInit__lsprof},
{"_opcode", PyInit__opcode},
/* -- ADDMODULE MARKER 2 -- */
/* This module lives in marshal.c */
{"marshal", PyMarshal_Init},
/* This lives in import.c */
{"_imp", PyInit_imp},
/* This lives in Python/Python-ast.c */
{"_ast", PyInit__ast},
/* These entries are here for sys.builtin_module_names */
{"builtins", NULL},
{"sys", NULL},
/* This lives in gcmodule.c */
{"gc", PyInit_gc},
/* This lives in _warnings.c */
{"_warnings", _PyWarnings_Init},
/* This lives in Objects/unicodeobject.c */
{"_string", PyInit__string},
/* Sentinel */
{0, 0}
};
#ifdef __cplusplus
}
#endif

View file

@ -4,6 +4,9 @@
#include <object.h>
#include <frameobject.h>
#include <signal.h>
#include "libc/calls/sigbits.h"
#include "libc/sysv/consts/sa.h"
#include "libc/sysv/consts/rlimit.h"
#if defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK)
# include <pthread.h>
#endif

View file

@ -6,10 +6,13 @@
#include "Python.h"
#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
// #include <sys/file.h>
#endif
#include <sys/ioctl.h>
#include "libc/calls/calls.h"
#include "libc/calls/ioctl.h"
#include "libc/calls/struct/flock.h"
#include "libc/sysv/consts/fd.h"
#include <fcntl.h>
#ifdef HAVE_STROPTS_H
#include <stropts.h>
@ -202,11 +205,11 @@ fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
}
if (buf == arg) {
Py_BEGIN_ALLOW_THREADS /* think array.resize() */
ret = ioctl(fd, code, arg);
ret = ioctl(fd, code, (void*)arg);
Py_END_ALLOW_THREADS
}
else {
ret = ioctl(fd, code, arg);
ret = ioctl(fd, code, (void*)arg);
}
if (mutate_arg && (len <= IOCTL_BUFSZ)) {
memcpy(str, buf, len);
@ -258,7 +261,7 @@ fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
// Fall-through to outside the 'if' statement.
}
Py_BEGIN_ALLOW_THREADS
ret = ioctl(fd, code, arg);
ret = -1; // ioctl(fd, code, (void*)arg);
Py_END_ALLOW_THREADS
if (ret < 0) {
PyErr_SetFromErrno(PyExc_IOError);

View file

@ -105,7 +105,11 @@
#if !defined(PREFIX) || !defined(EXEC_PREFIX) || !defined(VERSION) || !defined(VPATH)
#error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
#define PREFIX L"Lib"
#define EXEC_PREFIX L"build"
#define VERSION L"3.6"
#define VPATH ""
// #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
#endif
#ifndef LANDMARK
@ -548,8 +552,8 @@ calculate_path(void)
/* Avoid absolute path got prefix */
wcsncpy(prefix, L"Lib", MAXPATHLEN);
/* Avoid absolute path for prefix */
wcsncpy(prefix, L"third_party/python/Lib", MAXPATHLEN);
/* Avoid absolute path for exec_prefix */
wcsncpy(exec_prefix, L"build/lib.linux-x86_64-3.6", MAXPATHLEN);

View file

@ -3,7 +3,7 @@
#include "Python.h"
#include "osdefs.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#if defined(MS_WINDOWS) || defined(__CYGWIN__)
#include <windows.h>

View file

@ -21,6 +21,9 @@
#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include "structmember.h"
#include "libc/mem/mem.h"
#include "libc/sysv/consts/prot.h"
#include "libc/sysv/consts/msync.h"
#ifndef MS_WINDOWS
#define UNIX
@ -53,6 +56,7 @@ my_getallocationgranularity (void)
#ifdef UNIX
#include <sys/mman.h>
#include <sys/stat.h>
#include "libc/runtime/sysconf.h"
#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
static int

View file

@ -26,6 +26,9 @@
#include "Python.h"
#include "structmember.h"
#include "libc/sock/sock.h"
#include "libc/runtime/sysconf.h"
#include "libc/runtime/dlfcn.h"
#ifndef MS_WINDOWS
#include "posixmodule.h"
#else
@ -85,7 +88,7 @@ corresponding Unix manual entries for more information on calls.");
#endif
#ifdef HAVE_SYSEXITS_H
#include <sysexits.h>
#include "libc/sysv/consts/ex.h"
#endif /* HAVE_SYSEXITS_H */
#ifdef HAVE_SYS_LOADAVG_H
@ -148,7 +151,8 @@ corresponding Unix manual entries for more information on calls.");
#if defined(MS_WINDOWS)
# define TERMSIZE_USE_CONIO
#elif defined(HAVE_SYS_IOCTL_H)
# include <sys/ioctl.h>
#include "libc/calls/calls.h"
#include "libc/sysv/consts/fd.h"
# if defined(HAVE_TERMIOS_H)
# include <termios.h>
# endif
@ -263,7 +267,7 @@ extern int lstat(const char *, struct stat *);
#endif /* HAVE_SYS_UTIME_H */
#ifdef HAVE_SYS_TIMES_H
#include <sys/times.h>
// #include <sys/times.h>
#endif /* HAVE_SYS_TIMES_H */
#ifdef HAVE_SYS_PARAM_H
@ -5790,7 +5794,7 @@ error:
#if defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY) || defined(HAVE_DEV_PTMX)
#ifdef HAVE_PTY_H
#include <pty.h>
#include "libc/calls/termios.h"
#else
#ifdef HAVE_LIBUTIL_H
#include <libutil.h>

View file

@ -18,7 +18,7 @@
* We must save and restore the locale around the rl_initialize() call.
*/
#define SAVE_LOCALE
#include <locale.h>
#include "libc/unicode/locale.h"
#endif
#ifdef SAVE_LOCALE

View file

@ -1,5 +1,6 @@
#include "Python.h"
#include "libc/sysv/consts/rlim.h"
#include <sys/resource.h>
#include <sys/time.h>
#include <string.h>

View file

@ -10,6 +10,7 @@
#include "Python.h"
#include <structmember.h>
#include "libc/sock/select.h"
#ifdef HAVE_SYS_DEVPOLL_H
#include <sys/resource.h>
@ -1223,7 +1224,9 @@ static int select_have_broken_poll(void)
*/
#ifdef HAVE_SYS_EPOLL_H
#include <sys/epoll.h>
#include "libc/sysv/consts/epoll.h"
#include "libc/sysv/consts/nr.h"
#include "libc/sock/epoll.h"
#endif
typedef struct {

View file

@ -265,7 +265,8 @@ http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/net/getaddrinfo.c.diff?r1=1.82&
#endif
#define HAVE_INET_PTON
#include <netdb.h>
#include "libc/sock/sock.h"
#include "libc/dns/dns.h"
#endif
/* Irix 6.5 fails to define this variable at all. This is needed
@ -297,9 +298,24 @@ http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/net/getaddrinfo.c.diff?r1=1.82&
#ifndef MS_WINDOWS
/* Non-MS WINDOWS includes */
# include <netdb.h>
#include "libc/sock/sock.h"
#include "libc/sysv/consts/af.h"
#include "libc/sysv/consts/sock.h"
#include "libc/sysv/consts/inaddr.h"
#include "libc/sysv/consts/sol.h"
#include "libc/sysv/consts/so.h"
#include "libc/dns/dns.h"
#include "libc/dns/ent.h"
# include <unistd.h>
#ifdef AF_NETLINK
#undef AF_NETLINK
#endif
#ifdef AF_CAN
#undef AF_CAN
#endif
/* Headers needed for inet_ntoa() and inet_addr() */
# include <arpa/inet.h>

View file

@ -7,9 +7,9 @@
# else
# include <sys/socket.h>
# endif
# include <netinet/in.h>
// # include <netinet/in.h>
# if !defined(__CYGWIN__)
# include <netinet/tcp.h>
// # include <netinet/tcp.h>
# endif
#else /* MS_WINDOWS */
@ -40,7 +40,7 @@ typedef int socklen_t;
#endif /* MS_WINDOWS */
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
// # include <sys/un.h>
#else
# undef AF_UNIX
#endif

View file

@ -52,7 +52,8 @@ Revision history:
#include "Python.h"
#include "osdefs.h"
#include <syslog.h>
#include "libc/sock/syslog.h"
#include "libc/sysv/consts/log.h"
/* only one instance, only one syslog, so globals should be ok */
static PyObject *S_ident_o = NULL; /* identifier, held by openlog() */

View file

@ -3,9 +3,12 @@
#include "Python.h"
#include <ctype.h>
#include "libc/sock/select.h"
#include "libc/time/time.h"
#include "libc/time/struct/tm.h"
#include "libc/sysv/consts/rusage.h"
#ifdef HAVE_SYS_TIMES_H
#include <sys/times.h>
#endif
#ifdef HAVE_SYS_TYPES_H

View file

@ -3,6 +3,7 @@
#include "osdefs.h"
#include "marshal.h"
#include <time.h>
#include "libc/time/struct/tm.h"
#define IS_SOURCE 0x0

View file

@ -7,7 +7,7 @@
#include "Python.h"
#include "structmember.h"
// #include "zlib.h"
#include "third_party/zlib/zlib.h"
#ifdef WITH_THREAD

View file

@ -2,6 +2,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "libc/stdio/unlocked.h"
#if defined(HAVE_GETC_UNLOCKED) && !defined(_Py_MEMORY_SANITIZER)
/* clang MemorySanitizer doesn't yet understand getc_unlocked. */

View file

@ -4,6 +4,7 @@
for any kind of float exception without losing portability. */
#include "Python.h"
#include "libc/runtime/fenv.h"
#include <ctype.h>
#include <float.h>

View file

@ -1,7 +1,7 @@
#include "Python.h"
#include <stdbool.h>
#include "libc/sysv/consts/prot.h"
/* Defined in tracemalloc.c */
extern void _PyMem_DumpTraceback(int fd, const void *ptr);

View file

@ -1,7 +1,7 @@
/* Minimal main program -- everything is loaded from the library */
#include "Python.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#ifdef __FreeBSD__
#include <fenv.h>

View file

@ -17,7 +17,7 @@
#endif /* NetBSD */
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#include "libc/runtime/dlfcn.h"
#endif
#if (defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ELF__)

View file

@ -1,6 +1,6 @@
#include "Python.h"
#include "osdefs.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#ifdef MS_WINDOWS
# include <malloc.h>
@ -13,7 +13,8 @@ extern int winerror_to_errno(int);
#endif
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#include "libc/calls/calls.h"
#include "libc/sysv/consts/fd.h"
#endif
#ifdef HAVE_FCNTL_H

View file

@ -3,7 +3,7 @@
of int.__float__, etc., that take and return unicode objects */
#include "Python.h"
#include <locale.h>
#include "libc/unicode/locale.h"
/* Raises an exception about an unknown presentation type for this
* type. */

View file

@ -2,7 +2,7 @@
/* Python interpreter main program for frozen scripts */
#include "Python.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#ifdef MS_WINDOWS
extern void PyWinFreeze_ExeInit(void);

View file

@ -14,7 +14,8 @@
#include "ast.h"
#include "marshal.h"
#include "osdefs.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#include "libc/calls/sigbits.h"
#ifdef HAVE_SIGNAL_H
#include <signal.h>

View file

@ -23,7 +23,7 @@ to avoid the expense of doing their own locking).
#ifdef HAVE_DLOPEN
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#include "libc/runtime/dlfcn.h"
#endif
#if !HAVE_DECL_RTLD_LAZY
#define RTLD_LAZY 1

View file

@ -1,7 +1,7 @@
/* -*- Mode: C; c-file-style: "python" -*- */
#include <Python.h>
#include <locale.h>
#include "libc/unicode/locale.h"
/* Case-insensitive string match used for nan and inf detection; t should be
lower-case. Returns 1 for a successful match, 0 otherwise. */

View file

@ -15,7 +15,7 @@
#include "ast.h"
#include "marshal.h"
#include "osdefs.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#ifdef HAVE_SIGNAL_H
#include <signal.h>

View file

@ -20,7 +20,7 @@ Data members:
#include "pythread.h"
#include "osdefs.h"
#include <locale.h>
#include "libc/unicode/locale.h"
#ifdef MS_WINDOWS
#define WIN32_LEAN_AND_MEAN

208
third_party/python/python-modules.mk vendored Normal file
View file

@ -0,0 +1,208 @@
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
# this file contains the recipes for the C extensions
# that are included with the Python source distribution
# the list of modules are also provided in Modules/config.c
# so any changes here must be reflected there as well
# these modules are always required
# _elementtree
EXTMODULE_ELEMENTTREE_SRCS_C = \
third_party/python/Modules/_elementtree.c
EXTMODULE_ELEMENTTREE_OBJS = \
$(EXTMODULE_ELEMENTTREE_SRCS_C:%.c=o/$(MODE)/%.o)
# _io
EXTMODULE_IO_SRCS_C = \
$(wildcard third_party/python/Modules/_io/*.c)
EXTMODULE_IO_OBJS = \
$(EXTMODULE_IO_SRCS_C:%.c=o/$(MODE)/%.o)
# _tracemalloc
EXTMODULE_TRACEMALLOC_SRCS_C = \
third_party/python/Modules/_tracemalloc.c \
third_party/python/Modules/hashtable.c
# these modules don't rely on POSIX
EXTMODULE_BASE_INDEP_SRCS_C = \
third_party/python/Modules/gcmodule.c \
third_party/python/Modules/arraymodule.c \
third_party/python/Modules/cmathmodule.c \
third_party/python/Modules/mathmodule.c \
third_party/python/Modules/_math.c \
third_party/python/Modules/_struct.c \
third_party/python/Modules/_weakref.c \
third_party/python/Modules/_testcapimodule.c \
third_party/python/Modules/_randommodule.c \
third_party/python/Modules/_pickle.c \
third_party/python/Modules/_datetimemodule.c \
third_party/python/Modules/_bisectmodule.c \
third_party/python/Modules/_heapqmodule.c \
third_party/python/Modules/unicodedata.c \
$(EXTMODULE_TRACEMALLOC_SRCS_C) \
$(EXTMODULE_ELEMENTTREE_SRCS_C)
# these modules require POSIX-compliant libs
EXTMODULE_BASE_POSIX_SRCS_C = \
third_party/python/Modules/main.c \
third_party/python/Modules/posixmodule.c \
third_party/python/Modules/errnomodule.c \
third_party/python/Modules/pwdmodule.c \
third_party/python/Modules/_sre.c \
third_party/python/Modules/_codecsmodule.c \
third_party/python/Modules/_functoolsmodule.c \
third_party/python/Modules/_operator.c \
third_party/python/Modules/_collectionsmodule.c \
third_party/python/Modules/itertoolsmodule.c \
third_party/python/Modules/atexitmodule.c \
third_party/python/Modules/signalmodule.c \
third_party/python/Modules/_stat.c \
third_party/python/Modules/timemodule.c \
third_party/python/Modules/zipimport.c \
third_party/python/Modules/faulthandler.c \
third_party/python/Modules/symtablemodule.c \
third_party/python/Modules/fcntlmodule.c \
third_party/python/Modules/grpmodule.c \
third_party/python/Modules/selectmodule.c \
third_party/python/Modules/mmapmodule.c \
third_party/python/Modules/_csv.c \
third_party/python/Modules/_localemodule.c \
$(EXTMODULE_IO_SRCS_C)
# optional modules
# _blake
EXTMODULE_BLAKE_SRCS_C = \
$(wildcard third_party/python/Modules/_blake2/*.c)
EXTMODULE_BLAKE_OBJS = \
$(EXTMODULE_BLAKE_SRCS_C:%.c=o/$(MODE)/%.o)
# pyexpat
EXTMODULE_PYEXPAT_SRCS_C = \
third_party/python/Modules/expat/xmlparse.c \
third_party/python/Modules/expat/xmlrole.c \
third_party/python/Modules/expat/xmltok.c \
third_party/python/Modules/pyexpat.c
EXTMODULE_PYEXPAT_OBJS = \
$(EXTMODULE_PYEXPAT_SRCS_C:%.c=o/$(MODE)/%.o)
# lsprof
EXTMODULE_LSPROF_SRCS_C = \
third_party/python/Modules/_lsprof.c \
third_party/python/Modules/rotatingtree.c
# CJK codecs
EXTMODULE_CJKCODECS_SRCS_C = \
$(wildcard third_party/python/Modules/cjkcodecs/*.c)
# sqlite
# bz2
# readline
# ctypes
# _ssl
# _hashlib
# _decimal module (w/libmpdec)
EXTMODULE_DECIMAL_SRCS_C = \
$(wildcard third_party/python/Modules/_decimal/libmpdec/*.c) \
third_party/python/Modules/_decimal/_decimal.c
EXTMODULE_DECIMAL_OBJS = \
$(EXTMODULE_DECIMAL_SRCS_C:%.c=o/$(MODE)/%.o)
EXTMODULE_OPT_SRCS_C = \
$(EXTMODULE_CJKCODECS_SRCS_C) \
$(EXTMODULE_LSPROF_SRCS_C) \
$(EXTMODULE_BLAKE_SRCS_C) \
$(EXTMODULE_LSPROF_SRCS_C) \
$(EXTMODULE_DECIMAL_SRCS_C) \
$(EXTMODULE_PYEXPAT_SRCS_C) \
third_party/python/Modules/socketmodule.c \
third_party/python/Modules/md5module.c \
third_party/python/Modules/sha1module.c \
third_party/python/Modules/sha256module.c \
third_party/python/Modules/sha512module.c \
third_party/python/Modules/_sha3/sha3module.c \
third_party/python/Modules/resource.c \
third_party/python/Modules/_posixsubprocess.c \
third_party/python/Modules/syslogmodule.c \
third_party/python/Modules/binascii.c \
third_party/python/Modules/parsermodule.c \
third_party/python/Modules/syslogmodule.c \
third_party/python/Modules/fpectlmodule.c \
third_party/python/Modules/zlibmodule.c \
third_party/python/Modules/_json.c \
third_party/python/Modules/_opcode.c
# add all of the module source files together to use in python.mk
THIRD_PARTY_PYTHON_MODULES_SRCS_C = \
third_party/python/Modules/config.c \
third_party/python/Modules/getbuildinfo.c \
third_party/python/Modules/getpath.c \
$(EXTMODULE_BASE_INDEP_SRCS_C) \
$(EXTMODULE_BASE_POSIX_SRCS_C) \
$(EXTMODULE_OPT_SRCS_C)
THIRD_PARTY_PYTHON_MODULES_OBJS = \
$(THIRD_PARTY_PYTHON_MODULES_SRCS_C:%.c=o/$(MODE)/%.o)
THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS = \
THIRD_PARTY_ZLIB
# add sqlite if needed here
$(THIRD_PARTY_PYTHON_MODULES_OBJS): \
OVERRIDE_CFLAGS += \
-Ithird_party/python/Modules
o/$(MODE)/third_party/python/Modules/getbuildinfo.o: \
OVERRIDE_CFLAGS += \
-DGITVERSION='"3.6"' \
-DGITTAG='"3.6"' \
-DGITBRANCH='"cosmo"'
$(EXTMODULE_ELEMENTTREE_OBJS): \
OVERRIDE_CFLAGS += \
-DUSE_PYEXPAT_CAPI \
-DHAVE_EXPAT_CONFIG_H \
-Ithird_party/python/Modules/expat/
$(EXTMODULE_IO_OBJS): \
OVERRIDE_CFLAGS += \
-Ithird_party/python/Modules/_io
$(EXTMODULE_BLAKE_OBJS): \
OVERRIDE_CFLAGS += \
-DBLAKE_USE_SSE=1
$(EXTMODULE_PYEXPAT_OBJS): \
OVERRIDE_CFLAGS += \
-DXML_POOR_ENTROPY \
-DHAVE_EXPAT_CONFIG_H \
-DUSE_PYEXPAT_CAPI \
-Ithird_party/python/Modules/expat
$(EXTMODULE_DECIMAL_OBJS): \
OVERRIDE_CFLAGS += \
-Ithird_party/python/Modules/_decimal/ \
-Ithird_party/python/Modules/_decimal/libmpdec \
-DASM=1 \
-DCONFIG_64=1
o/$(MODE)/third_party/python/Modules/_decimal/libmpdec/transpose.o: \
OVERRIDE_CFLAGS += -DSTACK_FRAME_UNLIMITED

569
third_party/python/python-stdlib.mk vendored Normal file
View file

@ -0,0 +1,569 @@
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
# this file contains the list of python files that will be added
# to the ZIP store in the APE
# (can remove this if find command is usable)
THIRD_PARTY_PYTHON_STDLIB_PY = \
third_party/python/Lib/__future__.py \
third_party/python/Lib/__phello__.foo.py \
third_party/python/Lib/_bootlocale.py \
third_party/python/Lib/_collections_abc.py \
third_party/python/Lib/_compat_pickle.py \
third_party/python/Lib/_compression.py \
third_party/python/Lib/_dummy_thread.py \
third_party/python/Lib/_markupbase.py \
third_party/python/Lib/_osx_support.py \
third_party/python/Lib/_pyio.py \
third_party/python/Lib/_sitebuiltins.py \
third_party/python/Lib/_strptime.py \
third_party/python/Lib/_threading_local.py \
third_party/python/Lib/_weakrefset.py \
third_party/python/Lib/abc.py \
third_party/python/Lib/aifc.py \
third_party/python/Lib/antigravity.py \
third_party/python/Lib/argparse.py \
third_party/python/Lib/ast.py \
third_party/python/Lib/base64.py \
third_party/python/Lib/bdb.py \
third_party/python/Lib/binhex.py \
third_party/python/Lib/bisect.py \
third_party/python/Lib/bz2.py \
third_party/python/Lib/cProfile.py \
third_party/python/Lib/calendar.py \
third_party/python/Lib/cgi.py \
third_party/python/Lib/cgitb.py \
third_party/python/Lib/chunk.py \
third_party/python/Lib/cmd.py \
third_party/python/Lib/code.py \
third_party/python/Lib/codecs.py \
third_party/python/Lib/codeop.py \
third_party/python/Lib/collections/__init__.py \
third_party/python/Lib/collections/abc.py \
third_party/python/Lib/colorsys.py \
third_party/python/Lib/compileall.py \
third_party/python/Lib/configparser.py \
third_party/python/Lib/contextlib.py \
third_party/python/Lib/copy.py \
third_party/python/Lib/copyreg.py \
third_party/python/Lib/crypt.py \
third_party/python/Lib/csv.py \
third_party/python/Lib/datetime.py \
third_party/python/Lib/dbm/__init__.py \
third_party/python/Lib/dbm/dumb.py \
third_party/python/Lib/dbm/gnu.py \
third_party/python/Lib/dbm/ndbm.py \
third_party/python/Lib/decimal.py \
third_party/python/Lib/difflib.py \
third_party/python/Lib/dis.py \
third_party/python/Lib/doctest.py \
third_party/python/Lib/dummy_threading.py \
third_party/python/Lib/email/__init__.py \
third_party/python/Lib/email/_encoded_words.py \
third_party/python/Lib/email/_header_value_parser.py \
third_party/python/Lib/email/_parseaddr.py \
third_party/python/Lib/email/_policybase.py \
third_party/python/Lib/email/architecture.rst \
third_party/python/Lib/email/base64mime.py \
third_party/python/Lib/email/charset.py \
third_party/python/Lib/email/contentmanager.py \
third_party/python/Lib/email/encoders.py \
third_party/python/Lib/email/errors.py \
third_party/python/Lib/email/feedparser.py \
third_party/python/Lib/email/generator.py \
third_party/python/Lib/email/header.py \
third_party/python/Lib/email/headerregistry.py \
third_party/python/Lib/email/iterators.py \
third_party/python/Lib/email/message.py \
third_party/python/Lib/email/mime/__init__.py \
third_party/python/Lib/email/mime/application.py \
third_party/python/Lib/email/mime/audio.py \
third_party/python/Lib/email/mime/base.py \
third_party/python/Lib/email/mime/image.py \
third_party/python/Lib/email/mime/message.py \
third_party/python/Lib/email/mime/multipart.py \
third_party/python/Lib/email/mime/nonmultipart.py \
third_party/python/Lib/email/mime/text.py \
third_party/python/Lib/email/parser.py \
third_party/python/Lib/email/policy.py \
third_party/python/Lib/email/quoprimime.py \
third_party/python/Lib/email/utils.py \
third_party/python/Lib/encodings/__init__.py \
third_party/python/Lib/encodings/aliases.py \
third_party/python/Lib/encodings/ascii.py \
third_party/python/Lib/encodings/base64_codec.py \
third_party/python/Lib/encodings/big5.py \
third_party/python/Lib/encodings/big5hkscs.py \
third_party/python/Lib/encodings/bz2_codec.py \
third_party/python/Lib/encodings/charmap.py \
third_party/python/Lib/encodings/cp037.py \
third_party/python/Lib/encodings/cp1006.py \
third_party/python/Lib/encodings/cp1026.py \
third_party/python/Lib/encodings/cp1125.py \
third_party/python/Lib/encodings/cp1140.py \
third_party/python/Lib/encodings/cp1250.py \
third_party/python/Lib/encodings/cp1251.py \
third_party/python/Lib/encodings/cp1252.py \
third_party/python/Lib/encodings/cp1253.py \
third_party/python/Lib/encodings/cp1254.py \
third_party/python/Lib/encodings/cp1255.py \
third_party/python/Lib/encodings/cp1256.py \
third_party/python/Lib/encodings/cp1257.py \
third_party/python/Lib/encodings/cp1258.py \
third_party/python/Lib/encodings/cp273.py \
third_party/python/Lib/encodings/cp424.py \
third_party/python/Lib/encodings/cp437.py \
third_party/python/Lib/encodings/cp500.py \
third_party/python/Lib/encodings/cp65001.py \
third_party/python/Lib/encodings/cp720.py \
third_party/python/Lib/encodings/cp737.py \
third_party/python/Lib/encodings/cp775.py \
third_party/python/Lib/encodings/cp850.py \
third_party/python/Lib/encodings/cp852.py \
third_party/python/Lib/encodings/cp855.py \
third_party/python/Lib/encodings/cp856.py \
third_party/python/Lib/encodings/cp857.py \
third_party/python/Lib/encodings/cp858.py \
third_party/python/Lib/encodings/cp860.py \
third_party/python/Lib/encodings/cp861.py \
third_party/python/Lib/encodings/cp862.py \
third_party/python/Lib/encodings/cp863.py \
third_party/python/Lib/encodings/cp864.py \
third_party/python/Lib/encodings/cp865.py \
third_party/python/Lib/encodings/cp866.py \
third_party/python/Lib/encodings/cp869.py \
third_party/python/Lib/encodings/cp874.py \
third_party/python/Lib/encodings/cp875.py \
third_party/python/Lib/encodings/cp932.py \
third_party/python/Lib/encodings/cp949.py \
third_party/python/Lib/encodings/cp950.py \
third_party/python/Lib/encodings/euc_jis_2004.py \
third_party/python/Lib/encodings/euc_jisx0213.py \
third_party/python/Lib/encodings/euc_jp.py \
third_party/python/Lib/encodings/euc_kr.py \
third_party/python/Lib/encodings/gb18030.py \
third_party/python/Lib/encodings/gb2312.py \
third_party/python/Lib/encodings/gbk.py \
third_party/python/Lib/encodings/hex_codec.py \
third_party/python/Lib/encodings/hp_roman8.py \
third_party/python/Lib/encodings/hz.py \
third_party/python/Lib/encodings/idna.py \
third_party/python/Lib/encodings/iso2022_jp.py \
third_party/python/Lib/encodings/iso2022_jp_1.py \
third_party/python/Lib/encodings/iso2022_jp_2.py \
third_party/python/Lib/encodings/iso2022_jp_2004.py \
third_party/python/Lib/encodings/iso2022_jp_3.py \
third_party/python/Lib/encodings/iso2022_jp_ext.py \
third_party/python/Lib/encodings/iso2022_kr.py \
third_party/python/Lib/encodings/iso8859_1.py \
third_party/python/Lib/encodings/iso8859_10.py \
third_party/python/Lib/encodings/iso8859_11.py \
third_party/python/Lib/encodings/iso8859_13.py \
third_party/python/Lib/encodings/iso8859_14.py \
third_party/python/Lib/encodings/iso8859_15.py \
third_party/python/Lib/encodings/iso8859_16.py \
third_party/python/Lib/encodings/iso8859_2.py \
third_party/python/Lib/encodings/iso8859_3.py \
third_party/python/Lib/encodings/iso8859_4.py \
third_party/python/Lib/encodings/iso8859_5.py \
third_party/python/Lib/encodings/iso8859_6.py \
third_party/python/Lib/encodings/iso8859_7.py \
third_party/python/Lib/encodings/iso8859_8.py \
third_party/python/Lib/encodings/iso8859_9.py \
third_party/python/Lib/encodings/johab.py \
third_party/python/Lib/encodings/koi8_r.py \
third_party/python/Lib/encodings/koi8_t.py \
third_party/python/Lib/encodings/koi8_u.py \
third_party/python/Lib/encodings/kz1048.py \
third_party/python/Lib/encodings/latin_1.py \
third_party/python/Lib/encodings/mac_arabic.py \
third_party/python/Lib/encodings/mac_centeuro.py \
third_party/python/Lib/encodings/mac_croatian.py \
third_party/python/Lib/encodings/mac_cyrillic.py \
third_party/python/Lib/encodings/mac_farsi.py \
third_party/python/Lib/encodings/mac_greek.py \
third_party/python/Lib/encodings/mac_iceland.py \
third_party/python/Lib/encodings/mac_latin2.py \
third_party/python/Lib/encodings/mac_roman.py \
third_party/python/Lib/encodings/mac_romanian.py \
third_party/python/Lib/encodings/mac_turkish.py \
third_party/python/Lib/encodings/mbcs.py \
third_party/python/Lib/encodings/oem.py \
third_party/python/Lib/encodings/palmos.py \
third_party/python/Lib/encodings/ptcp154.py \
third_party/python/Lib/encodings/punycode.py \
third_party/python/Lib/encodings/quopri_codec.py \
third_party/python/Lib/encodings/raw_unicode_escape.py \
third_party/python/Lib/encodings/rot_13.py \
third_party/python/Lib/encodings/shift_jis.py \
third_party/python/Lib/encodings/shift_jis_2004.py \
third_party/python/Lib/encodings/shift_jisx0213.py \
third_party/python/Lib/encodings/tis_620.py \
third_party/python/Lib/encodings/undefined.py \
third_party/python/Lib/encodings/unicode_escape.py \
third_party/python/Lib/encodings/unicode_internal.py \
third_party/python/Lib/encodings/utf_16.py \
third_party/python/Lib/encodings/utf_16_be.py \
third_party/python/Lib/encodings/utf_16_le.py \
third_party/python/Lib/encodings/utf_32.py \
third_party/python/Lib/encodings/utf_32_be.py \
third_party/python/Lib/encodings/utf_32_le.py \
third_party/python/Lib/encodings/utf_7.py \
third_party/python/Lib/encodings/utf_8.py \
third_party/python/Lib/encodings/utf_8_sig.py \
third_party/python/Lib/encodings/uu_codec.py \
third_party/python/Lib/encodings/zlib_codec.py \
third_party/python/Lib/enum.py \
third_party/python/Lib/filecmp.py \
third_party/python/Lib/fileinput.py \
third_party/python/Lib/fnmatch.py \
third_party/python/Lib/formatter.py \
third_party/python/Lib/fractions.py \
third_party/python/Lib/ftplib.py \
third_party/python/Lib/functools.py \
third_party/python/Lib/genericpath.py \
third_party/python/Lib/getopt.py \
third_party/python/Lib/getpass.py \
third_party/python/Lib/gettext.py \
third_party/python/Lib/glob.py \
third_party/python/Lib/gzip.py \
third_party/python/Lib/hashlib.py \
third_party/python/Lib/heapq.py \
third_party/python/Lib/hmac.py \
third_party/python/Lib/html/__init__.py \
third_party/python/Lib/html/entities.py \
third_party/python/Lib/html/parser.py \
third_party/python/Lib/http/__init__.py \
third_party/python/Lib/http/client.py \
third_party/python/Lib/http/cookiejar.py \
third_party/python/Lib/http/cookies.py \
third_party/python/Lib/http/server.py \
third_party/python/Lib/imaplib.py \
third_party/python/Lib/imghdr.py \
third_party/python/Lib/imp.py \
third_party/python/Lib/importlib/__init__.py \
third_party/python/Lib/importlib/_bootstrap.py \
third_party/python/Lib/importlib/_bootstrap_external.py \
third_party/python/Lib/importlib/abc.py \
third_party/python/Lib/importlib/machinery.py \
third_party/python/Lib/importlib/util.py \
third_party/python/Lib/inspect.py \
third_party/python/Lib/io.py \
third_party/python/Lib/ipaddress.py \
third_party/python/Lib/json/__init__.py \
third_party/python/Lib/json/decoder.py \
third_party/python/Lib/json/encoder.py \
third_party/python/Lib/json/scanner.py \
third_party/python/Lib/json/tool.py \
third_party/python/Lib/keyword.py \
third_party/python/Lib/lib2to3/Grammar.txt \
third_party/python/Lib/lib2to3/PatternGrammar.txt \
third_party/python/Lib/lib2to3/__init__.py \
third_party/python/Lib/lib2to3/__main__.py \
third_party/python/Lib/lib2to3/btm_matcher.py \
third_party/python/Lib/lib2to3/btm_utils.py \
third_party/python/Lib/lib2to3/fixer_base.py \
third_party/python/Lib/lib2to3/fixer_util.py \
third_party/python/Lib/lib2to3/fixes/__init__.py \
third_party/python/Lib/lib2to3/fixes/fix_apply.py \
third_party/python/Lib/lib2to3/fixes/fix_asserts.py \
third_party/python/Lib/lib2to3/fixes/fix_basestring.py \
third_party/python/Lib/lib2to3/fixes/fix_buffer.py \
third_party/python/Lib/lib2to3/fixes/fix_dict.py \
third_party/python/Lib/lib2to3/fixes/fix_except.py \
third_party/python/Lib/lib2to3/fixes/fix_exec.py \
third_party/python/Lib/lib2to3/fixes/fix_execfile.py \
third_party/python/Lib/lib2to3/fixes/fix_exitfunc.py \
third_party/python/Lib/lib2to3/fixes/fix_filter.py \
third_party/python/Lib/lib2to3/fixes/fix_funcattrs.py \
third_party/python/Lib/lib2to3/fixes/fix_future.py \
third_party/python/Lib/lib2to3/fixes/fix_getcwdu.py \
third_party/python/Lib/lib2to3/fixes/fix_has_key.py \
third_party/python/Lib/lib2to3/fixes/fix_idioms.py \
third_party/python/Lib/lib2to3/fixes/fix_import.py \
third_party/python/Lib/lib2to3/fixes/fix_imports.py \
third_party/python/Lib/lib2to3/fixes/fix_imports2.py \
third_party/python/Lib/lib2to3/fixes/fix_input.py \
third_party/python/Lib/lib2to3/fixes/fix_intern.py \
third_party/python/Lib/lib2to3/fixes/fix_isinstance.py \
third_party/python/Lib/lib2to3/fixes/fix_itertools.py \
third_party/python/Lib/lib2to3/fixes/fix_itertools_imports.py \
third_party/python/Lib/lib2to3/fixes/fix_long.py \
third_party/python/Lib/lib2to3/fixes/fix_map.py \
third_party/python/Lib/lib2to3/fixes/fix_metaclass.py \
third_party/python/Lib/lib2to3/fixes/fix_methodattrs.py \
third_party/python/Lib/lib2to3/fixes/fix_ne.py \
third_party/python/Lib/lib2to3/fixes/fix_next.py \
third_party/python/Lib/lib2to3/fixes/fix_nonzero.py \
third_party/python/Lib/lib2to3/fixes/fix_numliterals.py \
third_party/python/Lib/lib2to3/fixes/fix_operator.py \
third_party/python/Lib/lib2to3/fixes/fix_paren.py \
third_party/python/Lib/lib2to3/fixes/fix_print.py \
third_party/python/Lib/lib2to3/fixes/fix_raise.py \
third_party/python/Lib/lib2to3/fixes/fix_raw_input.py \
third_party/python/Lib/lib2to3/fixes/fix_reduce.py \
third_party/python/Lib/lib2to3/fixes/fix_reload.py \
third_party/python/Lib/lib2to3/fixes/fix_renames.py \
third_party/python/Lib/lib2to3/fixes/fix_repr.py \
third_party/python/Lib/lib2to3/fixes/fix_set_literal.py \
third_party/python/Lib/lib2to3/fixes/fix_standarderror.py \
third_party/python/Lib/lib2to3/fixes/fix_sys_exc.py \
third_party/python/Lib/lib2to3/fixes/fix_throw.py \
third_party/python/Lib/lib2to3/fixes/fix_tuple_params.py \
third_party/python/Lib/lib2to3/fixes/fix_types.py \
third_party/python/Lib/lib2to3/fixes/fix_unicode.py \
third_party/python/Lib/lib2to3/fixes/fix_urllib.py \
third_party/python/Lib/lib2to3/fixes/fix_ws_comma.py \
third_party/python/Lib/lib2to3/fixes/fix_xrange.py \
third_party/python/Lib/lib2to3/fixes/fix_xreadlines.py \
third_party/python/Lib/lib2to3/fixes/fix_zip.py \
third_party/python/Lib/lib2to3/main.py \
third_party/python/Lib/lib2to3/patcomp.py \
third_party/python/Lib/lib2to3/pgen2/__init__.py \
third_party/python/Lib/lib2to3/pgen2/conv.py \
third_party/python/Lib/lib2to3/pgen2/driver.py \
third_party/python/Lib/lib2to3/pgen2/grammar.py \
third_party/python/Lib/lib2to3/pgen2/literals.py \
third_party/python/Lib/lib2to3/pgen2/parse.py \
third_party/python/Lib/lib2to3/pgen2/pgen.py \
third_party/python/Lib/lib2to3/pgen2/token.py \
third_party/python/Lib/lib2to3/pgen2/tokenize.py \
third_party/python/Lib/lib2to3/pygram.py \
third_party/python/Lib/lib2to3/pytree.py \
third_party/python/Lib/lib2to3/refactor.py \
third_party/python/Lib/lib2to3/tests/__init__.py \
third_party/python/Lib/lib2to3/tests/__main__.py \
third_party/python/Lib/lib2to3/tests/data/README \
third_party/python/Lib/lib2to3/tests/data/bom.py \
third_party/python/Lib/lib2to3/tests/data/crlf.py \
third_party/python/Lib/lib2to3/tests/data/different_encoding.py \
third_party/python/Lib/lib2to3/tests/data/false_encoding.py \
third_party/python/Lib/lib2to3/tests/data/fixers/bad_order.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/__init__.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/fix_explicit.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/fix_first.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/fix_last.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/fix_parrot.py \
third_party/python/Lib/lib2to3/tests/data/fixers/myfixes/fix_preorder.py \
third_party/python/Lib/lib2to3/tests/data/fixers/no_fixer_cls.py \
third_party/python/Lib/lib2to3/tests/data/fixers/parrot_example.py \
third_party/python/Lib/lib2to3/tests/data/infinite_recursion.py \
third_party/python/Lib/lib2to3/tests/data/py2_test_grammar.py \
third_party/python/Lib/lib2to3/tests/data/py3_test_grammar.py \
third_party/python/Lib/lib2to3/tests/pytree_idempotency.py \
third_party/python/Lib/lib2to3/tests/support.py \
third_party/python/Lib/lib2to3/tests/test_all_fixers.py \
third_party/python/Lib/lib2to3/tests/test_fixers.py \
third_party/python/Lib/lib2to3/tests/test_main.py \
third_party/python/Lib/lib2to3/tests/test_parser.py \
third_party/python/Lib/lib2to3/tests/test_pytree.py \
third_party/python/Lib/lib2to3/tests/test_refactor.py \
third_party/python/Lib/lib2to3/tests/test_util.py \
third_party/python/Lib/linecache.py \
third_party/python/Lib/locale.py \
third_party/python/Lib/logging/__init__.py \
third_party/python/Lib/logging/config.py \
third_party/python/Lib/logging/handlers.py \
third_party/python/Lib/lzma.py \
third_party/python/Lib/macpath.py \
third_party/python/Lib/macurl2path.py \
third_party/python/Lib/mailbox.py \
third_party/python/Lib/mailcap.py \
third_party/python/Lib/mimetypes.py \
third_party/python/Lib/modulefinder.py \
third_party/python/Lib/msilib/__init__.py \
third_party/python/Lib/msilib/schema.py \
third_party/python/Lib/msilib/sequence.py \
third_party/python/Lib/msilib/text.py \
third_party/python/Lib/multiprocessing/__init__.py \
third_party/python/Lib/multiprocessing/connection.py \
third_party/python/Lib/multiprocessing/context.py \
third_party/python/Lib/multiprocessing/dummy/__init__.py \
third_party/python/Lib/multiprocessing/dummy/connection.py \
third_party/python/Lib/multiprocessing/forkserver.py \
third_party/python/Lib/multiprocessing/heap.py \
third_party/python/Lib/multiprocessing/managers.py \
third_party/python/Lib/multiprocessing/pool.py \
third_party/python/Lib/multiprocessing/popen_fork.py \
third_party/python/Lib/multiprocessing/popen_forkserver.py \
third_party/python/Lib/multiprocessing/popen_spawn_posix.py \
third_party/python/Lib/multiprocessing/popen_spawn_win32.py \
third_party/python/Lib/multiprocessing/process.py \
third_party/python/Lib/multiprocessing/queues.py \
third_party/python/Lib/multiprocessing/reduction.py \
third_party/python/Lib/multiprocessing/resource_sharer.py \
third_party/python/Lib/multiprocessing/semaphore_tracker.py \
third_party/python/Lib/multiprocessing/sharedctypes.py \
third_party/python/Lib/multiprocessing/spawn.py \
third_party/python/Lib/multiprocessing/synchronize.py \
third_party/python/Lib/multiprocessing/util.py \
third_party/python/Lib/netrc.py \
third_party/python/Lib/nntplib.py \
third_party/python/Lib/ntpath.py \
third_party/python/Lib/nturl2path.py \
third_party/python/Lib/numbers.py \
third_party/python/Lib/opcode.py \
third_party/python/Lib/operator.py \
third_party/python/Lib/optparse.py \
third_party/python/Lib/os.py \
third_party/python/Lib/pathlib.py \
third_party/python/Lib/pdb.py \
third_party/python/Lib/pickle.py \
third_party/python/Lib/pickletools.py \
third_party/python/Lib/pipes.py \
third_party/python/Lib/pkgutil.py \
third_party/python/Lib/platform.py \
third_party/python/Lib/plistlib.py \
third_party/python/Lib/poplib.py \
third_party/python/Lib/posixpath.py \
third_party/python/Lib/pprint.py \
third_party/python/Lib/profile.py \
third_party/python/Lib/pstats.py \
third_party/python/Lib/pty.py \
third_party/python/Lib/py_compile.py \
third_party/python/Lib/pyclbr.py \
third_party/python/Lib/pydoc.py \
third_party/python/Lib/queue.py \
third_party/python/Lib/quopri.py \
third_party/python/Lib/random.py \
third_party/python/Lib/re.py \
third_party/python/Lib/reprlib.py \
third_party/python/Lib/rlcompleter.py \
third_party/python/Lib/runpy.py \
third_party/python/Lib/sched.py \
third_party/python/Lib/secrets.py \
third_party/python/Lib/selectors.py \
third_party/python/Lib/shelve.py \
third_party/python/Lib/shlex.py \
third_party/python/Lib/shutil.py \
third_party/python/Lib/signal.py \
third_party/python/Lib/site.py \
third_party/python/Lib/smtpd.py \
third_party/python/Lib/smtplib.py \
third_party/python/Lib/sndhdr.py \
third_party/python/Lib/socket.py \
third_party/python/Lib/socketserver.py \
third_party/python/Lib/sqlite3/__init__.py \
third_party/python/Lib/sqlite3/dbapi2.py \
third_party/python/Lib/sqlite3/dump.py \
third_party/python/Lib/sre_compile.py \
third_party/python/Lib/sre_constants.py \
third_party/python/Lib/sre_parse.py \
third_party/python/Lib/ssl.py \
third_party/python/Lib/stat.py \
third_party/python/Lib/statistics.py \
third_party/python/Lib/string.py \
third_party/python/Lib/stringprep.py \
third_party/python/Lib/struct.py \
third_party/python/Lib/subprocess.py \
third_party/python/Lib/sunau.py \
third_party/python/Lib/symbol.py \
third_party/python/Lib/symtable.py \
third_party/python/Lib/sysconfig.py \
third_party/python/Lib/tabnanny.py \
third_party/python/Lib/tarfile.py \
third_party/python/Lib/telnetlib.py \
third_party/python/Lib/tempfile.py \
third_party/python/Lib/textwrap.py \
third_party/python/Lib/this.py \
third_party/python/Lib/threading.py \
third_party/python/Lib/timeit.py \
third_party/python/Lib/token.py \
third_party/python/Lib/tokenize.py \
third_party/python/Lib/trace.py \
third_party/python/Lib/traceback.py \
third_party/python/Lib/tracemalloc.py \
third_party/python/Lib/tty.py \
third_party/python/Lib/turtledemo/__init__.py \
third_party/python/Lib/turtledemo/__main__.py \
third_party/python/Lib/turtledemo/bytedesign.py \
third_party/python/Lib/turtledemo/chaos.py \
third_party/python/Lib/turtledemo/clock.py \
third_party/python/Lib/turtledemo/colormixer.py \
third_party/python/Lib/turtledemo/forest.py \
third_party/python/Lib/turtledemo/fractalcurves.py \
third_party/python/Lib/turtledemo/lindenmayer.py \
third_party/python/Lib/turtledemo/minimal_hanoi.py \
third_party/python/Lib/turtledemo/nim.py \
third_party/python/Lib/turtledemo/paint.py \
third_party/python/Lib/turtledemo/peace.py \
third_party/python/Lib/turtledemo/penrose.py \
third_party/python/Lib/turtledemo/planet_and_moon.py \
third_party/python/Lib/turtledemo/rosette.py \
third_party/python/Lib/turtledemo/round_dance.py \
third_party/python/Lib/turtledemo/sorting_animate.py \
third_party/python/Lib/turtledemo/tree.py \
third_party/python/Lib/turtledemo/turtle.cfg \
third_party/python/Lib/turtledemo/two_canvases.py \
third_party/python/Lib/turtledemo/yinyang.py \
third_party/python/Lib/types.py \
third_party/python/Lib/typing.py \
third_party/python/Lib/unittest/__init__.py \
third_party/python/Lib/unittest/__main__.py \
third_party/python/Lib/unittest/case.py \
third_party/python/Lib/unittest/loader.py \
third_party/python/Lib/unittest/main.py \
third_party/python/Lib/unittest/mock.py \
third_party/python/Lib/unittest/result.py \
third_party/python/Lib/unittest/runner.py \
third_party/python/Lib/unittest/signals.py \
third_party/python/Lib/unittest/suite.py \
third_party/python/Lib/unittest/util.py \
third_party/python/Lib/urllib/__init__.py \
third_party/python/Lib/urllib/error.py \
third_party/python/Lib/urllib/parse.py \
third_party/python/Lib/urllib/request.py \
third_party/python/Lib/urllib/response.py \
third_party/python/Lib/urllib/robotparser.py \
third_party/python/Lib/uu.py \
third_party/python/Lib/uuid.py \
third_party/python/Lib/venv/__init__.py \
third_party/python/Lib/venv/__main__.py \
third_party/python/Lib/venv/scripts/common/activate \
third_party/python/Lib/venv/scripts/nt/Activate.ps1 \
third_party/python/Lib/venv/scripts/nt/activate.bat \
third_party/python/Lib/venv/scripts/nt/deactivate.bat \
third_party/python/Lib/venv/scripts/posix/activate.csh \
third_party/python/Lib/venv/scripts/posix/activate.fish \
third_party/python/Lib/warnings.py \
third_party/python/Lib/wave.py \
third_party/python/Lib/weakref.py \
third_party/python/Lib/webbrowser.py \
third_party/python/Lib/wsgiref/__init__.py \
third_party/python/Lib/wsgiref/handlers.py \
third_party/python/Lib/wsgiref/headers.py \
third_party/python/Lib/wsgiref/simple_server.py \
third_party/python/Lib/wsgiref/util.py \
third_party/python/Lib/wsgiref/validate.py \
third_party/python/Lib/xdrlib.py \
third_party/python/Lib/xml/__init__.py \
third_party/python/Lib/xml/dom/NodeFilter.py \
third_party/python/Lib/xml/dom/__init__.py \
third_party/python/Lib/xml/dom/domreg.py \
third_party/python/Lib/xml/dom/expatbuilder.py \
third_party/python/Lib/xml/dom/minicompat.py \
third_party/python/Lib/xml/dom/minidom.py \
third_party/python/Lib/xml/dom/pulldom.py \
third_party/python/Lib/xml/dom/xmlbuilder.py \
third_party/python/Lib/xml/etree/ElementInclude.py \
third_party/python/Lib/xml/etree/ElementPath.py \
third_party/python/Lib/xml/etree/ElementTree.py \
third_party/python/Lib/xml/etree/__init__.py \
third_party/python/Lib/xml/etree/cElementTree.py \
third_party/python/Lib/xml/parsers/__init__.py \
third_party/python/Lib/xml/parsers/expat.py \
third_party/python/Lib/xml/sax/__init__.py \
third_party/python/Lib/xml/sax/_exceptions.py \
third_party/python/Lib/xml/sax/expatreader.py \
third_party/python/Lib/xml/sax/handler.py \
third_party/python/Lib/xml/sax/saxutils.py \
third_party/python/Lib/xml/sax/xmlreader.py \
third_party/python/Lib/xmlrpc/__init__.py \
third_party/python/Lib/xmlrpc/client.py \
third_party/python/Lib/xmlrpc/server.py \
third_party/python/Lib/zipapp.py \
third_party/python/Lib/zipfile.py
THIRD_PARTY_PYTHON_STDLIB_PY_OBJS = \
$(THIRD_PARTY_PYTHON_STDLIB_PY:%=o/$(MODE)/%.zip.o)

138
third_party/python/python.mk vendored Normal file
View file

@ -0,0 +1,138 @@
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
PKGS += THIRD_PARTY_PYTHON
THIRD_PARTY_PYTHON_ARTIFACTS = THIRD_PARTY_PYTHON_A
THIRD_PARTY_PYTHON = $(THIRD_PARTY_PYTHON_DEPS) $(THIRD_PARTY_PYTHON_A)
THIRD_PARTY_PYTHON_A = o/$(MODE)/third_party/python/libpython3.6m.a
include third_party/python/python-modules.mk
include third_party/python/python-stdlib.mk
THIRD_PARTY_PYTHON_OBJECT_SRCS_C = \
$(wildcard third_party/python/Objects/*.c)
THIRD_PARTY_PYTHON_PARSER_SKIP_SRCS_C = \
third_party/python/Parser/tokenizer_pgen.c \
third_party/python/Parser/pgenmain.c \
third_party/python/Parser/printgrammar.c \
third_party/python/Parser/parsetok_pgen.c
THIRD_PARTY_PYTHON_PARSER_SRCS_C = \
$(filter-out $(THIRD_PARTY_PYTHON_PARSER_SKIP_SRCS_C),$(wildcard third_party/python/Parser/*.c))
THIRD_PARTY_PYTHON_CORE_SKIP_SRCS_C = \
third_party/python/Python/dynload_%.c \
third_party/python/Python/strdup.c \
third_party/python/Python/thread.c
THIRD_PARTY_PYTHON_CORE_SRCS_C = \
$(filter-out $(THIRD_PARTY_PYTHON_CORE_SKIP_SRCS_C),$(wildcard third_party/python/Python/*.c)) \
third_party/python/Python/dynload_shlib.c
THIRD_PARTY_PYTHON_SRCS_C = \
third_party/python/Programs/python.c \
$(THIRD_PARTY_PYTHON_OBJECT_SRCS_C) \
$(THIRD_PARTY_PYTHON_PARSER_SRCS_C) \
$(THIRD_PARTY_PYTHON_CORE_SRCS_C) \
$(THIRD_PARTY_PYTHON_MODULES_SRCS_C)
THIRD_PARTY_PYTHON_OBJS = \
$(THIRD_PARTY_PYTHON_SRCS_C:%.c=o/$(MODE)/%.o)
THIRD_PARTY_PYTHON_A_OBJS = \
$(filter-out o/$(MODE)/third_party/python/Programs/python.o,$(THIRD_PARTY_PYTHON_OBJS))
THIRD_PARTY_PYTHON_BINS = \
$(THIRD_PARTY_PYTHON_COMS) $(THIRD_PARTY_PYTHON_COMS:%=%.dbg)
THIRD_PARTY_PYTHON_COMS = \
o/$(MODE)/third_party/python/python.com
THIRD_PARTY_PYTHON_A_CHECKS = \
$(THIRD_PARTY_PYTHON_A).pkg
# add .h.ok check here
THIRD_PARTY_PYTHON_A_DIRECTDEPS0 = \
$(THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS) \
LIBC_ALG \
LIBC_BITS \
LIBC_CALLS \
LIBC_FMT \
LIBC_INTRIN \
LIBC_LOG \
LIBC_MEM \
LIBC_NEXGEN32E \
LIBC_RAND \
LIBC_RUNTIME \
LIBC_SOCK \
LIBC_DNS \
LIBC_STDIO \
LIBC_STR \
LIBC_STUBS \
LIBC_SYSV \
LIBC_SYSV_CALLS \
LIBC_TIME \
LIBC_TINYMATH \
LIBC_UNICODE \
LIBC_ZIPOS \
THIRD_PARTY_GDTOA \
THIRD_PARTY_GETOPT \
THIRD_PARTY_MUSL \
THIRD_PARTY_ZLIB
THIRD_PARTY_PYTHON_A_DIRECTDEPS = \
$(call uniq,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS0))
THIRD_PARTY_PYTHON_A_DEPS = \
$(call uniq,$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x))))
o/$(MODE)/third_party/python/python.com.dbg: \
$(THIRD_PARTY_PYTHON_A_DEPS) \
$(THIRD_PARTY_PYTHON_A) \
$(THIRD_PARTY_PYTHON_STDLIB_PY_OBJS) \
o/$(MODE)/third_party/python/Programs/python.o \
$(CRT) \
$(APE)
-@$(APELINK)
$(THIRD_PARTY_PYTHON_A): \
third_party/python \
$(THIRD_PARTY_PYTHON_A).pkg \
$(THIRD_PARTY_PYTHON_A_OBJS)
$(THIRD_PARTY_PYTHON_A).pkg: \
$(THIRD_PARTY_PYTHON_A_OBJS) \
$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x)_A).pkg)
$(THIRD_PARTY_PYTHON_OBJS): \
OVERRIDE_CFLAGS += \
-DPy_BUILD_CORE \
-DPLATFORM='"linux"' \
-DMULTIARCH='"x86_64-linux-gnu"' \
-isystem libc/isystem \
-Ithird_party/python \
-Ithird_party/python/Include
o/$(MODE)/third_party/python/Programs/python.o \
o/$(MODE)/third_party/python/Python/marshal.o \
o/$(MODE)/third_party/python/Python/sysmodule.o \
o/$(MODE)/third_party/python/Modules/selectmodule.o \
o/$(MODE)/third_party/python/Modules/getpath.o \
o/$(MODE)/third_party/python/Objects/listobject.o: \
OVERRIDE_CFLAGS += \
-DSTACK_FRAME_UNLIMITED
o/$(MODE)/third_party/python/Python/dynload_shlib.o: \
OVERRIDE_CFLAGS += \
-DSOABI='"cpython36m-x86_64-linux-gnu"'
o/$(MODE)/third_party/python/Python/sysmodule.o: \
OVERRIDE_CFLAGS += \
-DABIFLAGS='"m"'
$(THIRD_PARTY_PYTHON_OBJS): \
third_party/python/python.mk \
third_party/python/python-modules.mk
.PHONY: o/$(MODE)/third_party/python
o/$(MODE)/third_party/python: \
$(THIRD_PARTY_PYTHON_BINS) \
$(THIRD_PARTY_PYTHON_CHECKS)

View file

@ -18,4 +18,5 @@ o/$(MODE)/third_party: \
o/$(MODE)/third_party/sqlite3 \
o/$(MODE)/third_party/xed \
o/$(MODE)/third_party/infozip \
o/$(MODE)/third_party/python \
o/$(MODE)/third_party/zlib