17db96d56Sopenharmony_ci# config.site override for cross compiling to wasm32-emscripten platform
27db96d56Sopenharmony_ci#
37db96d56Sopenharmony_ci# CONFIG_SITE=Tools/wasm/config.site-wasm32-emscripten \
47db96d56Sopenharmony_ci#     emconfigure ./configure --host=wasm32-unknown-emscripten --build=...
57db96d56Sopenharmony_ci#
67db96d56Sopenharmony_ci# Written by Christian Heimes <christian@python.org>
77db96d56Sopenharmony_ci# Partly based on pyodide's pyconfig.undefs.h file.
87db96d56Sopenharmony_ci#
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci# cannot be detected in cross builds
117db96d56Sopenharmony_ciac_cv_buggy_getaddrinfo=no
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci# Emscripten has no /dev/pt*
147db96d56Sopenharmony_ciac_cv_file__dev_ptmx=no
157db96d56Sopenharmony_ciac_cv_file__dev_ptc=no
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci# dummy readelf, Emscripten build does not need readelf.
187db96d56Sopenharmony_ciac_cv_prog_ac_ct_READELF=true
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci# new undefined symbols / unsupported features
217db96d56Sopenharmony_ciac_cv_func_posix_spawn=no
227db96d56Sopenharmony_ciac_cv_func_posix_spawnp=no
237db96d56Sopenharmony_ciac_cv_func_eventfd=no
247db96d56Sopenharmony_ciac_cv_func_memfd_create=no
257db96d56Sopenharmony_ciac_cv_func_prlimit=no
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci# unsupported syscall, https://github.com/emscripten-core/emscripten/issues/13393
287db96d56Sopenharmony_ciac_cv_func_shutdown=no
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci# The rest is based on pyodide
317db96d56Sopenharmony_ci# https://github.com/pyodide/pyodide/blob/main/cpython/pyconfig.undefs.h
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ciac_cv_func_epoll_create=no
347db96d56Sopenharmony_ciac_cv_func_epoll_create1=no
357db96d56Sopenharmony_ciac_cv_header_linux_vm_sockets_h=no
367db96d56Sopenharmony_ciac_cv_func_socketpair=no
377db96d56Sopenharmony_ciac_cv_func_sigaction=no
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ci# symlinkat is implemented, but fails
407db96d56Sopenharmony_ciac_cv_func_symlinkat=no
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci# lchmod/lchown are implemented, but fail with ENOTSUP.
437db96d56Sopenharmony_ciac_cv_func_lchmod=no
447db96d56Sopenharmony_ciac_cv_func_lchown=no
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci# geteuid / getegid are stubs and always return 0 (root). The stub breaks
477db96d56Sopenharmony_ci# code that assume effective user root has special permissions.
487db96d56Sopenharmony_ciac_cv_func_geteuid=no
497db96d56Sopenharmony_ciac_cv_func_getegid=no
507db96d56Sopenharmony_ciac_cv_func_seteuid=no
517db96d56Sopenharmony_ciac_cv_func_setegid=no
527db96d56Sopenharmony_ciac_cv_func_getresuid=no
537db96d56Sopenharmony_ciac_cv_func_getresgid=no
547db96d56Sopenharmony_ciac_cv_func_setresuid=no
557db96d56Sopenharmony_ciac_cv_func_setresgid=no
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci# Syscalls not implemented in emscripten
587db96d56Sopenharmony_ci# [Errno 52] Function not implemented
597db96d56Sopenharmony_ciac_cv_func_preadv2=no
607db96d56Sopenharmony_ciac_cv_func_preadv=no
617db96d56Sopenharmony_ciac_cv_func_pwritev2=no
627db96d56Sopenharmony_ciac_cv_func_pwritev=no
637db96d56Sopenharmony_ciac_cv_func_pipe2=no
647db96d56Sopenharmony_ciac_cv_func_nice=no
657db96d56Sopenharmony_ciac_cv_func_setpriority=no
667db96d56Sopenharmony_ciac_cv_func_setitimer=no
677db96d56Sopenharmony_ci# unsupported syscall: __syscall_prlimit64
687db96d56Sopenharmony_ciac_cv_func_prlimit=no
697db96d56Sopenharmony_ci# unsupported syscall: __syscall_getrusage
707db96d56Sopenharmony_ciac_cv_func_getrusage=no
717db96d56Sopenharmony_ciac_cv_func_posix_fallocate=no
727db96d56Sopenharmony_ci
737db96d56Sopenharmony_ci# Syscalls that resulted in a segfault
747db96d56Sopenharmony_ciac_cv_func_utimensat=no
757db96d56Sopenharmony_ciac_cv_header_sys_ioctl_h=no
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ci# sockets are supported, but only AF_INET / AF_INET6 in non-blocking mode.
787db96d56Sopenharmony_ci# Disable AF_UNIX and AF_PACKET support, see socketmodule.h.
797db96d56Sopenharmony_ciac_cv_header_sys_un_h=no
807db96d56Sopenharmony_ciac_cv_header_netpacket_packet_h=no
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci# aborts with bad ioctl
837db96d56Sopenharmony_ciac_cv_func_openpty=no
847db96d56Sopenharmony_ciac_cv_func_forkpty=no
857db96d56Sopenharmony_ci
867db96d56Sopenharmony_ci# mkfifo and mknod are broken, create regular file
877db96d56Sopenharmony_ciac_cv_func_mkfifo=no
887db96d56Sopenharmony_ciac_cv_func_mkfifoat=no
897db96d56Sopenharmony_ciac_cv_func_mknod=no
907db96d56Sopenharmony_ciac_cv_func_mknodat=no
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_ci# always fails with permission or not implemented error
937db96d56Sopenharmony_ciac_cv_func_getgroups=no
947db96d56Sopenharmony_ciac_cv_func_setgroups=no
957db96d56Sopenharmony_ciac_cv_func_setresuid=no
967db96d56Sopenharmony_ciac_cv_func_setresgid=no
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_ci# Emscripten does not support hard links, always fails with errno 34
997db96d56Sopenharmony_ci# "Too many links". See emscripten_syscall_stubs.c
1007db96d56Sopenharmony_ciac_cv_func_link=no
1017db96d56Sopenharmony_ciac_cv_func_linkat=no
1027db96d56Sopenharmony_ci
1037db96d56Sopenharmony_ci# Emscripten's faccessat does not accept AT_* flags.
1047db96d56Sopenharmony_ciac_cv_func_faccessat=no
1057db96d56Sopenharmony_ci
1067db96d56Sopenharmony_ci# alarm signal is not delivered, may need a callback into the event loop?
1077db96d56Sopenharmony_ciac_cv_func_alarm=no
108