Skip to content

Instantly share code, notes, and snippets.

@brettcannon
Last active February 2, 2022 22:49
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brettcannon/fedffac5a16357ee3eb3a4a10308eb05 to your computer and use it in GitHub Desktop.
Save brettcannon/fedffac5a16357ee3eb3a4a10308eb05 to your computer and use it in GitHub Desktop.
WASI-SDK w/ CPython
cross_compiling=yes
ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no
configure: loading site script ./config.site
checking for git... found
checking build system type... i386-apple-darwin20.6.0
checking host system type... wasm32-unknown-wasi
checking for python3.11... python3.11
checking for python interpreter for cross build... python3.11
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "wasi"
checking for wasm32-unknown-wasi-gcc... /opt/wasi-sdk/bin/clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /opt/wasi-sdk/bin/clang accepts -g... yes
checking for /opt/wasi-sdk/bin/clang option to enable C11 features... none needed
checking how to run the C preprocessor... /opt/wasi-sdk/bin/clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for a sed that does not truncate output... /usr/bin/sed
checking for --with-cxx-main=<compiler>... no
checking for the platform triplet based on compiler characteristics... none
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for -Wl,--no-as-needed... no
checking for the Android API level... not Android
checking for --with-suffix... .wasm
checking for case-insensitive build directory... yes
checking LIBRARY... libpython$(VERSION)$(ABIFLAGS).a
checking LINKCC... $(PURIFY) $(MAINCC)
checking EXPORTSYMS...
checking for GNU ld... no
checking for --enable-shared... no
checking for --enable-profiling... no
checking LDLIBRARY... libpython$(VERSION)$(ABIFLAGS).a
checking for wasm32-unknown-wasi-ar... no
checking for wasm32-unknown-wasi-aal... no
checking for ar... ar
configure: WARNING: using cross tools not prefixed with host triplet
checking for wasm32-unknown-wasi-readelf... no
checking for readelf... no
checking for a BSD-compatible install... /usr/bin/install -c
checking for a race-free mkdir -p... ./install-sh -c -d
checking for --with-pydebug... yes
checking for --with-trace-refs... no
checking for --with-assertions... implied by --with-pydebug
checking for --enable-optimizations... no
checking PROFILE_TASK... -m test --pgo --timeout=$(TESTTIMEOUT)
checking for --with-lto... no
checking for wasm32-unknown-wasi-llvm-profdata... no
checking for llvm-profdata... no
checking for -Wextra... yes
checking whether /opt/wasi-sdk/bin/clang accepts and needs -fno-strict-aliasing... no
checking if we can turn off /opt/wasi-sdk/bin/clang unused result warning... yes
checking if we can turn off /opt/wasi-sdk/bin/clang unused parameter warning... yes
checking if we can turn off /opt/wasi-sdk/bin/clang missing field initializers warning... yes
checking if we can turn on /opt/wasi-sdk/bin/clang mixed sign comparison warning... yes
checking if we can turn on /opt/wasi-sdk/bin/clang unreachable code warning... no
checking if we can turn on /opt/wasi-sdk/bin/clang strict-prototypes warning... yes
checking if we can make implicit function declaration an error in /opt/wasi-sdk/bin/clang... yes
checking if we can use visibility in /opt/wasi-sdk/bin/clang... yes
checking whether pthreads are available without options... no
checking whether /opt/wasi-sdk/bin/clang accepts -Kpthread... no
checking whether /opt/wasi-sdk/bin/clang accepts -Kthread... no
checking whether /opt/wasi-sdk/bin/clang accepts -pthread... no
checking whether /opt/wasi-sdk/bin/clang++ also accepts flags for thread support... no
checking for egrep... /usr/bin/grep -E
checking for asm/types.h... no
checking for crypt.h... yes
checking for conio.h... no
checking for direct.h... no
checking for dlfcn.h... no
checking for errno.h... yes
checking for fcntl.h... yes
checking for grp.h... no
checking for ieeefp.h... no
checking for io.h... no
checking for langinfo.h... yes
checking for libintl.h... no
checking for process.h... no
checking for pthread.h... no
checking for sched.h... yes
checking for shadow.h... no
checking for signal.h... no
checking for stropts.h... yes
checking for termios.h... no
checking for utime.h... yes
checking for poll.h... yes
checking for sys/devpoll.h... no
checking for sys/epoll.h... no
checking for sys/poll.h... yes
checking for sys/audioio.h... no
checking for sys/xattr.h... no
checking for sys/bsdtty.h... no
checking for sys/event.h... no
checking for sys/file.h... yes
checking for sys/ioctl.h... yes
checking for sys/kern_control.h... no
checking for sys/loadavg.h... no
checking for sys/lock.h... no
checking for sys/mkdev.h... no
checking for sys/modem.h... no
checking for sys/param.h... yes
checking for sys/random.h... yes
checking for sys/select.h... yes
checking for sys/sendfile.h... no
checking for sys/socket.h... yes
checking for sys/statvfs.h... no
checking for sys/stat.h... (cached) yes
checking for sys/syscall.h... yes
checking for sys/sys_domain.h... no
checking for sys/termio.h... no
checking for sys/time.h... yes
checking for sys/times.h... yes
checking for sys/types.h... (cached) yes
checking for sys/uio.h... yes
checking for sys/un.h... yes
checking for sys/utsname.h... yes
checking for sys/wait.h... no
checking for pty.h... no
checking for libutil.h... no
checking for sys/resource.h... yes
checking for netpacket/packet.h... yes
checking for sysexits.h... yes
checking for bluetooth.h... no
checking for linux/tipc.h... no
checking for linux/random.h... no
checking for spawn.h... no
checking for util.h... no
checking for alloca.h... yes
checking for endian.h... yes
checking for sys/endian.h... no
checking for sys/sysmacros.h... no
checking for linux/memfd.h... no
checking for linux/wait.h... no
checking for sys/memfd.h... no
checking for sys/mman.h... no
checking for sys/eventfd.h... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for sys/mkdev.h... (cached) no
checking for sys/sysmacros.h... (cached) no
checking for bluetooth/bluetooth.h... no
checking for net/if.h... no
checking for linux/netlink.h... no
checking for linux/qrtr.h... no
checking for linux/vm_sockets.h... no
checking for linux/can.h... no
checking for linux/can/bcm.h... no
checking for linux/can/j1939.h... no
checking for linux/can/raw.h... no
checking for clock_t in time.h... yes
checking for makedev... no
checking for le64toh... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for ssize_t... yes
checking for __uint128_t... yes
checking size of int... 4
checking size of long... 4
checking alignment of long... 4
checking size of long long... 8
checking size of void *... 4
checking size of short... 2
checking size of float... 4
checking size of double... 8
checking size of fpos_t... 16
checking size of size_t... 4
checking alignment of size_t... 4
checking size of pid_t... 4
checking size of uintptr_t... 4
checking for long double... yes
checking size of long double... 16
checking size of _Bool... 1
checking size of off_t... 8
checking whether to enable large file support... yes
checking size of time_t... 8
checking for pthread_t... no
checking size of pthread_key_t... 0
checking whether pthread_key_t is compatible with int... no
checking for --enable-framework... no
checking for dyld... no
checking for --with-address-sanitizer... no
checking for --with-memory-sanitizer... no
checking for --with-undefined-behavior-sanitizer... no
checking the extension of shared libraries... .so
checking LDSHARED... ld
checking CCSHARED...
checking LINKFORSHARED...
checking CFLAGSFORSHARED...
checking SHLIBS... $(LIBS)
checking for sendfile in -lsendfile... no
checking for dlopen in -ldl... no
checking for shl_load in -ldld... no
checking for uuid/uuid.h... no
checking for uuid.h... no
checking for uuid_generate_time_safe... no
checking for uuid_create... no
checking for uuid_enc_be... no
checking for library containing sem_init... no
checking for textdomain in -lintl... no
checking aligned memory access is required... yes
checking for --with-hash-algorithm... default
checking for --with-tzpath... "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo"
checking for t_open in -lnsl... no
checking for socket in -lsocket... no
checking for --with-libs... no
checking for wasm32-unknown-wasi-pkg-config... no
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for --with-system-expat... no
checking for --with-system-ffi... yes
checking for --with-system-libmpdec... no
checking for --with-decimal-contextvar... yes
checking for --enable-loadable-sqlite-extensions... no
checking for --with-tcltk-includes... default
checking for --with-tcltk-libs... default
checking for --with-dbmliborder...
checking for _POSIX_THREADS in unistd.h... yes
checking for pthread_create in -lpthread... checking for pthread_detach... no
checking for pthread_create in -lpthreads... no
checking for pthread_create in -lc_r... no
checking for __pthread_create_system in -lpthread... no
checking for pthread_create in -lcma... no
checking for usconfig in -lmpc... no
checking if --enable-ipv6 is specified... no
checking for CAN_RAW_FD_FRAMES... no
checking for CAN_RAW_JOIN_FILTERS... no
checking for --with-doc-strings... yes
checking for --with-pymalloc... yes
checking for --with-c-locale-coercion... yes
checking for --with-valgrind... no
checking for --with-dtrace... no
checking for dlopen... no
checking DYNLOADFILE... dynload_stub.o
checking MACHDEP_OBJS... none
checking for alarm... no
checking for accept4... no
checking for setitimer... no
checking for getitimer... no
checking for bind_textdomain_codeset... no
checking for chown... no
checking for clock... yes
checking for confstr... yes
checking for close_range... no
checking for copy_file_range... no
checking for ctermid... no
checking for dup3... no
checking for execv... no
checking for explicit_bzero... yes
checking for explicit_memset... no
checking for faccessat... yes
checking for fchmod... no
checking for fchmodat... no
checking for fchown... no
checking for fchownat... no
checking for fdwalk... no
checking for fexecve... no
checking for fdopendir... yes
checking for fork... no
checking for fpathconf... yes
checking for fstatat... yes
checking for ftime... yes
checking for ftruncate... yes
checking for futimesat... no
checking for futimens... yes
checking for futimes... no
checking for gai_strerror... no
checking for getentropy... yes
checking for getgrgid_r... no
checking for getgrnam_r... no
checking for getgrouplist... no
checking for getgroups... no
checking for getlogin... no
checking for getloadavg... no
checking for getpeername... no
checking for getpgid... no
checking for getpid... no
checking for getpriority... no
checking for getresuid... no
checking for getresgid... no
checking for getpwent... no
checking for getpwnam_r... no
checking for getpwuid_r... no
checking for getspnam... no
checking for getspent... no
checking for getsid... no
checking for getwd... no
checking for if_nameindex... no
checking for initgroups... no
checking for kill... no
checking for killpg... no
checking for lchown... no
checking for lockf... no
checking for linkat... yes
checking for lstat... yes
checking for lutimes... no
checking for mmap... no
checking for memrchr... yes
checking for mbrtowc... yes
checking for mkdirat... yes
checking for mkfifo... no
checking for madvise... no
checking for mkfifoat... no
checking for mknod... no
checking for mknodat... no
checking for mktime... yes
checking for mremap... no
checking for nice... no
checking for openat... yes
checking for pathconf... yes
checking for pause... no
checking for pipe2... no
checking for plock... no
checking for poll... yes
checking for posix_fallocate... yes
checking for posix_fadvise... yes
checking for posix_spawn... no
checking for posix_spawnp... no
checking for pread... yes
checking for preadv... yes
checking for preadv2... no
checking for pthread_condattr_setclock... no
checking for pthread_init... no
checking for pthread_kill... no
checking for pwrite... yes
checking for pwritev... yes
checking for pwritev2... no
checking for readlink... yes
checking for readlinkat... yes
checking for readv... yes
checking for realpath... no
checking for renameat... yes
checking for sem_open... no
checking for sem_timedwait... no
checking for sem_clockwait... no
checking for sem_getvalue... no
checking for sem_unlink... no
checking for sendfile... no
checking for setegid... no
checking for seteuid... no
checking for setgid... no
checking for sethostname... no
checking for setlocale... yes
checking for setregid... no
checking for setreuid... no
checking for setresuid... no
checking for setresgid... no
checking for setsid... no
checking for setpgid... no
checking for setpgrp... no
checking for setpriority... no
checking for setuid... no
checking for setvbuf... yes
checking for sched_get_priority_max... no
checking for sched_setaffinity... no
checking for sched_setscheduler... no
checking for sched_setparam... no
checking for sched_rr_get_interval... no
checking for sigaction... no
checking for sigaltstack... no
checking for sigfillset... no
checking for siginterrupt... no
checking for sigpending... no
checking for sigrelse... no
checking for sigtimedwait... no
checking for sigwait... no
checking for sigwaitinfo... no
checking for snprintf... yes
checking for splice... no
checking for strftime... yes
checking for strlcpy... yes
checking for strsignal... no
checking for symlinkat... yes
checking for sync... no
checking for sysconf... yes
checking for tcgetpgrp... no
checking for tcsetpgrp... no
checking for tempnam... no
checking for timegm... yes
checking for times... yes
checking for tmpfile... no
checking for tmpnam... no
checking for tmpnam_r... no
checking for truncate... yes
checking for uname... yes
checking for unlinkat... yes
checking for utimensat... yes
checking for utimes... no
checking for vfork... no
checking for waitid... no
checking for waitpid... no
checking for wait3... no
checking for wait4... no
checking for wcscoll... yes
checking for wcsftime... yes
checking for wcsxfrm... yes
checking for wmemcmp... yes
checking for writev... yes
checking for _getpty... no
checking for rtpSpawn... no
checking for lchmod... no
checking for /opt/wasi-sdk/bin/clang options needed to detect all undeclared functions... -fno-builtin
checking whether dirfd is declared... yes
checking for chroot... no
checking for link... yes
checking for symlink... yes
checking for fchdir... no
checking for fsync... yes
checking for fdatasync... yes
checking for epoll... no
checking for epoll_create1... no
checking for kqueue... no
checking for prlimit... no
checking for _dyld_shared_cache_contains_path... no
checking for memfd_create... no
checking for eventfd... yes
checking for ctermid_r... no
checking for flock declaration... yes
checking for flock... no
checking for flock in -lbsd... no
checking for getpagesize... no
checking for broken unsetenv... no
checking for true... true
checking for inet_aton in -lc... yes
checking for chflags... cross
checking for chflags... no
checking for lchflags... cross
checking for lchflags... no
checking for inflateCopy in -lz... no
checking for hstrerror... no
checking for inet_aton... yes
checking for inet_pton... yes
checking for setgroups... no
checking for openpty... no
checking for openpty in -lutil... no
checking for openpty in -lbsd... no
checking for forkpty... no
checking for forkpty in -lutil... no
checking for forkpty in -lbsd... no
checking for fseek64... no
checking for fseeko... yes
checking for fstatvfs... no
checking for ftell64... no
checking for ftello... yes
checking for statvfs... no
checking for dup2... no
checking for getpgrp... no
checking for setpgrp... (cached) no
checking for library containing crypt... none required
checking for library containing crypt_r... none required
checking for crypt_r... yes
checking for clock_gettime... yes
checking for clock_getres... yes
checking for clock_settime... no
checking for clock_settime in -lrt... no
checking for clock_nanosleep... yes
checking for nanosleep... yes
checking for major... no
checking for getaddrinfo... no
checking for getnameinfo... no
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct stat.st_rdev... yes
checking for struct stat.st_blksize... yes
checking for struct stat.st_flags... no
checking for struct stat.st_gen... no
checking for struct stat.st_birthtime... no
checking for struct stat.st_blocks... yes
checking for struct passwd.pw_gecos... no
checking for struct passwd.pw_passwd... no
checking for siginfo_t.si_band... no
checking for time.h that defines altzone... no
checking whether sys/select.h and sys/time.h may both be included... yes
checking for addrinfo... no
checking for sockaddr_storage... yes
checking for sockaddr_alg... no
checking whether char is unsigned... no
checking for an ANSI C-conforming const... yes
checking for working signed char... yes
checking for prototypes... yes
checking for variable length prototypes and stdarg.h... yes
checking for socketpair... no
checking if sockaddr has sa_len member... no
checking for gethostbyname_r... no
checking for gethostbyname... no
checking for __fpu_control... no
checking for __fpu_control in -lieee... no
checking for --with-libm=STRING... default LIBM="-lm"
checking for --with-libc=STRING... default LIBC=""
checking for x64 gcc inline assembler... no
checking whether float word ordering is bigendian... no
checking whether we can use gcc inline assembler to get and set x87 control word... no
checking whether we can use gcc inline assembler to get and set mc68881 fpcr... no
checking for x87-style double rounding... no
checking for acosh... yes
checking for asinh... yes
checking for atanh... yes
checking for copysign... yes
checking for erf... yes
checking for erfc... yes
checking for expm1... yes
checking for finite... yes
checking for gamma... no
checking for hypot... yes
checking for lgamma... yes
checking for log1p... yes
checking for log2... yes
checking for round... yes
checking for tgamma... yes
checking whether isinf is declared... yes
checking whether isnan is declared... yes
checking whether isfinite is declared... yes
checking whether POSIX semaphores are enabled... yes
checking for broken sem_getvalue... yes
checking whether RTLD_LAZY is declared... no
checking whether RTLD_NOW is declared... no
checking whether RTLD_GLOBAL is declared... no
checking whether RTLD_LOCAL is declared... no
checking whether RTLD_NODELETE is declared... no
checking whether RTLD_NOLOAD is declared... no
checking whether RTLD_DEEPBIND is declared... no
checking whether RTLD_MEMBER is declared... no
checking digit size for Python's longs... no value specified
checking for wchar.h... (cached) yes
checking size of wchar_t... 4
checking for UCS-4 tcl... no
checking whether wchar_t is signed... yes
checking whether wchar_t is usable... no
checking whether byte ordering is bigendian... no
checking ABIFLAGS... d
checking SOABI... cpython-311d
checking LDVERSION... $(VERSION)$(ABIFLAGS)
checking for --with-platlibdir... no
checking for --with-wheel-pkg-dir... no
checking whether right shift extends the sign bit... yes
checking for getc_unlocked() and friends... no
checking how to link readline libs... none
checking for broken nice()... no
checking for broken poll()... no
checking for working tzset()... no
checking for tv_nsec in struct stat... yes
checking for tv_nsec2 in struct stat... no
checking for curses.h... no
checking for ncurses.h... no
checking for term.h... no
checking whether mvwdelch is an expression... no
checking whether WINDOW has _flags... no
checking for is_pad... no
checking for is_term_resized... no
checking for resize_term... no
checking for resizeterm... no
checking for immedok... no
checking for syncok... no
checking for wchgat... no
checking for filter... no
checking for has_key... no
checking for typeahead... no
checking for use_env... no
configure: checking for device files
checking for /dev/ptmx... (cached) no
checking for /dev/ptc... (cached) no
checking for %zd printf() format support... cross -- assuming yes
checking for socklen_t... yes
checking for broken mbstowcs... no
checking for --with-computed-gotos... no value specified
checking whether /opt/wasi-sdk/bin/clang supports computed gotos... no
checking for build directories... done
checking for -O2... yes
checking for glibc _FORTIFY_SOURCE/memmove bug... undefined
checking for stdatomic.h... yes
checking for builtin __atomic_load_n and __atomic_store_n functions... yes
checking for ensurepip... no
checking if the dirent structure of a d_type field... yes
checking for the Linux getrandom() syscall... no
checking for the getrandom() function... no
checking for library containing shm_open... no
checking for sys/mman.h... (cached) no
checking for shm_open... no
checking for shm_unlink... no
checking for wasm32-unknown-wasi-pkg-config... /usr/local/bin/pkg-config
checking for openssl/ssl.h in /usr/local/ssl... no
checking for openssl/ssl.h in /usr/lib/ssl... no
checking for openssl/ssl.h in /usr/ssl... no
checking for openssl/ssl.h in /usr/pkg... no
checking for openssl/ssl.h in /usr/local... no
checking for openssl/ssl.h in /usr... no
checking whether compiling and linking against OpenSSL works... no
checking for --with-openssl-rpath...
checking for --with-ssl-default-suites... python
checking for --with-builtin-hashlib-hashes... md5,sha1,sha256,sha512,sha3,blake2
checking for --with-experimental-isolated-subinterpreters... no
checking for --with-static-libpython... no
checking for --disable-test-modules... no
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-embed.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
config.status: pyconfig.h is unchanged
creating Modules/Setup.local
creating Makefile
#! /bin/sh
PATH="/opt/wasi-sdk/bin:/Users/brettcannon/.local/cpython-3.11.dev/bin:$PATH"
WASI_SDK_PATH="/opt/wasi-sdk"
WASI_SYSROOT="${WASI_SDK_PATH}/share/wasi-sysroot"
CC="${WASI_SDK_PATH}/bin/clang" # --sysroot=${WASI_SDK_SYSROOT}
CXX="${WASI_SDK_PATH}/bin/clang++"
LD="${WASI_SDK_PATH}/bin/clang-ld"
NM="${WASI_SDK_PATH}/bin/llvm-nm"
AR="${WASI_SDK_PATH}/bin/llvm-ar"
RANLIB="${WASI_SDK_PATH}/bin/llvm-ranlib"
CONFIG_SITE=./config.site ./configure --with-pydebug --with-suffix=.wasm --with-ensurepip=no --disable-ipv6 --without-static-libpython --host=wasm32-unknown-wasi
@brettcannon
Copy link
Author

If you want to build CPython for WebAsembly please see https://github.com/ethanhs/python-wasm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment