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