diff --git a/Makefile b/Makefile index 0f98ff62d..9c7af956c 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/third_party/python/.gitignore b/third_party/python/.gitignore index d5ed84531..ac5863974 100644 --- a/third_party/python/.gitignore +++ b/third_party/python/.gitignore @@ -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 diff --git a/third_party/python/Include/modsupport.h b/third_party/python/Include/modsupport.h index 86719c6e9..46bf41ab2 100644 --- a/third_party/python/Include/modsupport.h +++ b/third_party/python/Include/modsupport.h @@ -9,6 +9,8 @@ extern "C" { #include +#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 diff --git a/third_party/python/Include/pyport.h b/third_party/python/Include/pyport.h index 426822a81..a076d28e3 100644 --- a/third_party/python/Include/pyport.h +++ b/third_party/python/Include/pyport.h @@ -216,7 +216,7 @@ typedef int Py_ssize_clean_t; /* NB caller must include */ #ifdef HAVE_SYS_SELECT_H -#include +// #include #endif /* !HAVE_SYS_SELECT_H */ /******************************* diff --git a/third_party/python/Lib/_sysconfigdata_m_linux_x86_64-linux-gnu.py b/third_party/python/Lib/_sysconfigdata_m_linux_x86_64-linux-gnu.py new file mode 100644 index 000000000..3f5f31334 --- /dev/null +++ b/third_party/python/Lib/_sysconfigdata_m_linux_x86_64-linux-gnu.py @@ -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': '.'} diff --git a/third_party/python/Modules/Setup b/third_party/python/Modules/Setup new file mode 100644 index 000000000..11c783764 --- /dev/null +++ b/third_party/python/Modules/Setup @@ -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: +# +# ... [ ...] [ ...] [ ...] +# +# is anything ending in .c (.C, .cc, .c++ are C++ files) +# is anything starting with -I, -D, -U or -C +# is anything ending in .a or beginning with -l or -L +# 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 +# +# = +# +# 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 diff --git a/third_party/python/Modules/Setup.local b/third_party/python/Modules/Setup.local new file mode 100644 index 000000000..5ea61a747 --- /dev/null +++ b/third_party/python/Modules/Setup.local @@ -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 diff --git a/third_party/python/Modules/_datetimemodule.c b/third_party/python/Modules/_datetimemodule.c index 397b89886..a43844bbf 100644 --- a/third_party/python/Modules/_datetimemodule.c +++ b/third_party/python/Modules/_datetimemodule.c @@ -6,6 +6,7 @@ #include "structmember.h" #include +#include "libc/time/struct/tm.h" #ifdef MS_WINDOWS # include /* struct timeval */ diff --git a/third_party/python/Modules/_decimal/libmpdec/io.c b/third_party/python/Modules/_decimal/libmpdec/io.c index f45e558f1..35bc1b1e3 100644 --- a/third_party/python/Modules/_decimal/libmpdec/io.c +++ b/third_party/python/Modules/_decimal/libmpdec/io.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include "libc/unicode/locale.h" #include "bits.h" #include "constants.h" #include "typearith.h" diff --git a/third_party/python/Modules/_localemodule.c b/third_party/python/Modules/_localemodule.c index eba8289c3..27704c530 100644 --- a/third_party/python/Modules/_localemodule.c +++ b/third_party/python/Modules/_localemodule.c @@ -13,7 +13,7 @@ This software comes with no warranty. Use at your own risk. #include "Python.h" #include -#include +#include "libc/unicode/locale.h" #include #include diff --git a/third_party/python/Modules/_lsprof.c b/third_party/python/Modules/_lsprof.c index 5f2eeea6d..e3e74b526 100644 --- a/third_party/python/Modules/_lsprof.c +++ b/third_party/python/Modules/_lsprof.c @@ -33,7 +33,8 @@ hpTimerUnit(void) #endif #include -#include +#include "libc/time/time.h" +#include "libc/time/struct/tm.h" static long long hpTimer(void) diff --git a/third_party/python/Modules/_posixsubprocess.c b/third_party/python/Modules/_posixsubprocess.c index efc544eb2..c0bb5f53c 100644 --- a/third_party/python/Modules/_posixsubprocess.c +++ b/third_party/python/Modules/_posixsubprocess.c @@ -12,7 +12,7 @@ #include #endif #ifdef HAVE_SYS_SYSCALL_H -#include +#include "libc/calls/calls.h" #endif #if defined(HAVE_SYS_RESOURCE_H) #include diff --git a/third_party/python/Modules/config.c b/third_party/python/Modules/config.c new file mode 100644 index 000000000..0ba8e04bb --- /dev/null +++ b/third_party/python/Modules/config.c @@ -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 diff --git a/third_party/python/Modules/faulthandler.c b/third_party/python/Modules/faulthandler.c index 215fb61bb..02016fb4d 100644 --- a/third_party/python/Modules/faulthandler.c +++ b/third_party/python/Modules/faulthandler.c @@ -4,6 +4,9 @@ #include #include #include +#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 #endif diff --git a/third_party/python/Modules/fcntlmodule.c b/third_party/python/Modules/fcntlmodule.c index b5eea4986..d52e8c8e3 100644 --- a/third_party/python/Modules/fcntlmodule.c +++ b/third_party/python/Modules/fcntlmodule.c @@ -6,10 +6,13 @@ #include "Python.h" #ifdef HAVE_SYS_FILE_H -#include +// #include #endif -#include +#include "libc/calls/calls.h" +#include "libc/calls/ioctl.h" +#include "libc/calls/struct/flock.h" +#include "libc/sysv/consts/fd.h" #include #ifdef HAVE_STROPTS_H #include @@ -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); diff --git a/third_party/python/Modules/getpath.c b/third_party/python/Modules/getpath.c index 446217372..53d0296fc 100644 --- a/third_party/python/Modules/getpath.c +++ b/third_party/python/Modules/getpath.c @@ -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,9 +552,9 @@ 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); @@ -571,7 +575,7 @@ calculate_path(void) ape_lib_path[ape_length] = L'/'; wcscat(ape_lib_path + ape_length + 1, prefix); } - + wcsncpy(ape_exec_path, ape_path, MAXPATHLEN); if(ape_length + 1 + wcslen(exec_prefix) + 1 < MAXPATHLEN) { diff --git a/third_party/python/Modules/main.c b/third_party/python/Modules/main.c index e57211781..f40c1186b 100644 --- a/third_party/python/Modules/main.c +++ b/third_party/python/Modules/main.c @@ -3,7 +3,7 @@ #include "Python.h" #include "osdefs.h" -#include +#include "libc/unicode/locale.h" #if defined(MS_WINDOWS) || defined(__CYGWIN__) #include diff --git a/third_party/python/Modules/mmapmodule.c b/third_party/python/Modules/mmapmodule.c index dec670fa0..e6a4c8ce7 100644 --- a/third_party/python/Modules/mmapmodule.c +++ b/third_party/python/Modules/mmapmodule.c @@ -21,6 +21,9 @@ #define PY_SSIZE_T_CLEAN #include #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 #include +#include "libc/runtime/sysconf.h" #if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) static int diff --git a/third_party/python/Modules/posixmodule.c b/third_party/python/Modules/posixmodule.c index 12b189870..89cb75ff9 100644 --- a/third_party/python/Modules/posixmodule.c +++ b/third_party/python/Modules/posixmodule.c @@ -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 +#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 +#include "libc/calls/calls.h" +#include "libc/sysv/consts/fd.h" # if defined(HAVE_TERMIOS_H) # include # endif @@ -263,7 +267,7 @@ extern int lstat(const char *, struct stat *); #endif /* HAVE_SYS_UTIME_H */ #ifdef HAVE_SYS_TIMES_H -#include +// #include #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 +#include "libc/calls/termios.h" #else #ifdef HAVE_LIBUTIL_H #include diff --git a/third_party/python/Modules/readline.c b/third_party/python/Modules/readline.c index 096571548..748337f51 100644 --- a/third_party/python/Modules/readline.c +++ b/third_party/python/Modules/readline.c @@ -18,7 +18,7 @@ * We must save and restore the locale around the rl_initialize() call. */ #define SAVE_LOCALE -#include +#include "libc/unicode/locale.h" #endif #ifdef SAVE_LOCALE diff --git a/third_party/python/Modules/resource.c b/third_party/python/Modules/resource.c index 113ad5c3d..b7d792fc3 100644 --- a/third_party/python/Modules/resource.c +++ b/third_party/python/Modules/resource.c @@ -1,5 +1,6 @@ #include "Python.h" +#include "libc/sysv/consts/rlim.h" #include #include #include diff --git a/third_party/python/Modules/selectmodule.c b/third_party/python/Modules/selectmodule.c index 2bc7b9ff7..cf7ce7785 100644 --- a/third_party/python/Modules/selectmodule.c +++ b/third_party/python/Modules/selectmodule.c @@ -10,6 +10,7 @@ #include "Python.h" #include +#include "libc/sock/select.h" #ifdef HAVE_SYS_DEVPOLL_H #include @@ -1223,7 +1224,9 @@ static int select_have_broken_poll(void) */ #ifdef HAVE_SYS_EPOLL_H -#include +#include "libc/sysv/consts/epoll.h" +#include "libc/sysv/consts/nr.h" +#include "libc/sock/epoll.h" #endif typedef struct { diff --git a/third_party/python/Modules/socketmodule.c b/third_party/python/Modules/socketmodule.c index cc9bb73f0..beb5da6ee 100644 --- a/third_party/python/Modules/socketmodule.c +++ b/third_party/python/Modules/socketmodule.c @@ -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 +#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 +#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 +#ifdef AF_NETLINK +#undef AF_NETLINK +#endif + +#ifdef AF_CAN +#undef AF_CAN +#endif + /* Headers needed for inet_ntoa() and inet_addr() */ # include diff --git a/third_party/python/Modules/socketmodule.h b/third_party/python/Modules/socketmodule.h index 918f4c8c8..2469c0fa2 100644 --- a/third_party/python/Modules/socketmodule.h +++ b/third_party/python/Modules/socketmodule.h @@ -7,9 +7,9 @@ # else # include # endif -# include +// # include # if !defined(__CYGWIN__) -# include +// # include # endif #else /* MS_WINDOWS */ @@ -40,7 +40,7 @@ typedef int socklen_t; #endif /* MS_WINDOWS */ #ifdef HAVE_SYS_UN_H -# include +// # include #else # undef AF_UNIX #endif diff --git a/third_party/python/Modules/syslogmodule.c b/third_party/python/Modules/syslogmodule.c index 7afca58d0..d645cdc55 100644 --- a/third_party/python/Modules/syslogmodule.c +++ b/third_party/python/Modules/syslogmodule.c @@ -52,7 +52,8 @@ Revision history: #include "Python.h" #include "osdefs.h" -#include +#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() */ diff --git a/third_party/python/Modules/timemodule.c b/third_party/python/Modules/timemodule.c index c9e34ec89..9aa85647a 100644 --- a/third_party/python/Modules/timemodule.c +++ b/third_party/python/Modules/timemodule.c @@ -3,9 +3,12 @@ #include "Python.h" #include +#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 #endif #ifdef HAVE_SYS_TYPES_H diff --git a/third_party/python/Modules/zipimport.c b/third_party/python/Modules/zipimport.c index a8f65ebee..baee28d3c 100644 --- a/third_party/python/Modules/zipimport.c +++ b/third_party/python/Modules/zipimport.c @@ -3,6 +3,7 @@ #include "osdefs.h" #include "marshal.h" #include +#include "libc/time/struct/tm.h" #define IS_SOURCE 0x0 diff --git a/third_party/python/Modules/zlibmodule.c b/third_party/python/Modules/zlibmodule.c index ae37733b9..40c6c45be 100644 --- a/third_party/python/Modules/zlibmodule.c +++ b/third_party/python/Modules/zlibmodule.c @@ -7,7 +7,7 @@ #include "Python.h" #include "structmember.h" -// #include "zlib.h" +#include "third_party/zlib/zlib.h" #ifdef WITH_THREAD diff --git a/third_party/python/Objects/fileobject.c b/third_party/python/Objects/fileobject.c index f8b47fcdc..58cc47577 100644 --- a/third_party/python/Objects/fileobject.c +++ b/third_party/python/Objects/fileobject.c @@ -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. */ diff --git a/third_party/python/Objects/floatobject.c b/third_party/python/Objects/floatobject.c index 55406790e..f5ce29567 100644 --- a/third_party/python/Objects/floatobject.c +++ b/third_party/python/Objects/floatobject.c @@ -4,6 +4,7 @@ for any kind of float exception without losing portability. */ #include "Python.h" +#include "libc/runtime/fenv.h" #include #include diff --git a/third_party/python/Objects/obmalloc.c b/third_party/python/Objects/obmalloc.c index d46d14931..2c6d8f021 100644 --- a/third_party/python/Objects/obmalloc.c +++ b/third_party/python/Objects/obmalloc.c @@ -1,7 +1,7 @@ #include "Python.h" #include - +#include "libc/sysv/consts/prot.h" /* Defined in tracemalloc.c */ extern void _PyMem_DumpTraceback(int fd, const void *ptr); diff --git a/third_party/python/Programs/python.c b/third_party/python/Programs/python.c index a7afbc774..349592c44 100644 --- a/third_party/python/Programs/python.c +++ b/third_party/python/Programs/python.c @@ -1,7 +1,7 @@ /* Minimal main program -- everything is loaded from the library */ #include "Python.h" -#include +#include "libc/unicode/locale.h" #ifdef __FreeBSD__ #include diff --git a/third_party/python/Python/dynload_shlib.c b/third_party/python/Python/dynload_shlib.c index 7f8f134d6..488585c0b 100644 --- a/third_party/python/Python/dynload_shlib.c +++ b/third_party/python/Python/dynload_shlib.c @@ -17,7 +17,7 @@ #endif /* NetBSD */ #ifdef HAVE_DLFCN_H -#include +#include "libc/runtime/dlfcn.h" #endif #if (defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ELF__) diff --git a/third_party/python/Python/fileutils.c b/third_party/python/Python/fileutils.c index d1a9ca03a..3b2e05da3 100644 --- a/third_party/python/Python/fileutils.c +++ b/third_party/python/Python/fileutils.c @@ -1,6 +1,6 @@ #include "Python.h" #include "osdefs.h" -#include +#include "libc/unicode/locale.h" #ifdef MS_WINDOWS # include @@ -13,7 +13,8 @@ extern int winerror_to_errno(int); #endif #ifdef HAVE_SYS_IOCTL_H -#include +#include "libc/calls/calls.h" +#include "libc/sysv/consts/fd.h" #endif #ifdef HAVE_FCNTL_H diff --git a/third_party/python/Python/formatter_unicode.c b/third_party/python/Python/formatter_unicode.c index 4a38f7a30..79e245544 100644 --- a/third_party/python/Python/formatter_unicode.c +++ b/third_party/python/Python/formatter_unicode.c @@ -3,7 +3,7 @@ of int.__float__, etc., that take and return unicode objects */ #include "Python.h" -#include +#include "libc/unicode/locale.h" /* Raises an exception about an unknown presentation type for this * type. */ diff --git a/third_party/python/Python/frozenmain.c b/third_party/python/Python/frozenmain.c index 769b33d0e..a50eb6fe9 100644 --- a/third_party/python/Python/frozenmain.c +++ b/third_party/python/Python/frozenmain.c @@ -2,7 +2,7 @@ /* Python interpreter main program for frozen scripts */ #include "Python.h" -#include +#include "libc/unicode/locale.h" #ifdef MS_WINDOWS extern void PyWinFreeze_ExeInit(void); diff --git a/third_party/python/Python/pylifecycle.c b/third_party/python/Python/pylifecycle.c index f1fa5b2ab..a7cf0ffb5 100644 --- a/third_party/python/Python/pylifecycle.c +++ b/third_party/python/Python/pylifecycle.c @@ -14,7 +14,8 @@ #include "ast.h" #include "marshal.h" #include "osdefs.h" -#include +#include "libc/unicode/locale.h" +#include "libc/calls/sigbits.h" #ifdef HAVE_SIGNAL_H #include diff --git a/third_party/python/Python/pystate.c b/third_party/python/Python/pystate.c index 71494daa4..9e5db3254 100644 --- a/third_party/python/Python/pystate.c +++ b/third_party/python/Python/pystate.c @@ -23,7 +23,7 @@ to avoid the expense of doing their own locking). #ifdef HAVE_DLOPEN #ifdef HAVE_DLFCN_H -#include +#include "libc/runtime/dlfcn.h" #endif #if !HAVE_DECL_RTLD_LAZY #define RTLD_LAZY 1 diff --git a/third_party/python/Python/pystrtod.c b/third_party/python/Python/pystrtod.c index 509048ccf..ef1ce1f25 100644 --- a/third_party/python/Python/pystrtod.c +++ b/third_party/python/Python/pystrtod.c @@ -1,7 +1,7 @@ /* -*- Mode: C; c-file-style: "python" -*- */ #include -#include +#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. */ diff --git a/third_party/python/Python/pythonrun.c b/third_party/python/Python/pythonrun.c index fa0221e3e..43bf56828 100644 --- a/third_party/python/Python/pythonrun.c +++ b/third_party/python/Python/pythonrun.c @@ -15,7 +15,7 @@ #include "ast.h" #include "marshal.h" #include "osdefs.h" -#include +#include "libc/unicode/locale.h" #ifdef HAVE_SIGNAL_H #include diff --git a/third_party/python/Python/sysmodule.c b/third_party/python/Python/sysmodule.c index d1c6f1787..be6d7b8f5 100644 --- a/third_party/python/Python/sysmodule.c +++ b/third_party/python/Python/sysmodule.c @@ -20,7 +20,7 @@ Data members: #include "pythread.h" #include "osdefs.h" -#include +#include "libc/unicode/locale.h" #ifdef MS_WINDOWS #define WIN32_LEAN_AND_MEAN diff --git a/third_party/python/python-modules.mk b/third_party/python/python-modules.mk new file mode 100644 index 000000000..563df8efd --- /dev/null +++ b/third_party/python/python-modules.mk @@ -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 diff --git a/third_party/python/python-stdlib.mk b/third_party/python/python-stdlib.mk new file mode 100644 index 000000000..78db56f66 --- /dev/null +++ b/third_party/python/python-stdlib.mk @@ -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) diff --git a/third_party/python/python.mk b/third_party/python/python.mk new file mode 100644 index 000000000..fbb7f13cb --- /dev/null +++ b/third_party/python/python.mk @@ -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) diff --git a/third_party/third_party.mk b/third_party/third_party.mk index c98dfa7a9..c7a13b26d 100644 --- a/third_party/third_party.mk +++ b/third_party/third_party.mk @@ -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