Skip to content

Pyodide build broken by updating meson.build to C17 #29013

@lesteve

Description

@lesteve

Scheduled Pyodide build failed today see build log

../meson.build:1:0: ERROR: None of values ['c17'] are supported by the C compiler. Possible values are ['none', 'c89', 'c99', 'c11', 'gnu89', 'gnu99', 'gnu11']

This is due to #28980. Using c11 for example instead of c17 fixes the issue.

Not sure why this is happening and if this is a Pyodide issue or a more generic Meson cross-compilation issue ...

Full build log
##[section]Starting: Build Pyodide wheel
==============================================================================
Task         : Bash
Description  : Run a Bash script on macOS, Linux, or Windows
Version      : 3.237.1
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/bash
==============================================================================
Generating script.
Script contents:
bash build_tools/azure/install_pyodide.sh
========================== Starting Command Output ===========================
[command]/usr/bin/bash /home/vsts/work/_temp/ec9d44b4-19e2-4e87-befe-ff7e5563ae37.sh
Cloning into 'emsdk'...
Resolving SDK version '3.1.46' to 'sdk-releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'
Installing SDK 'sdk-releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'..
Installing tool 'node-16.20.0-64bit'..
Downloading: /home/vsts/work/1/s/emsdk/downloads/node-v16.20.0-linux-x64.tar.xz from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v16.20.0-linux-x64.tar.xz, 22559772 Bytes
 [----------------------------------------------------------------------------]
Unpacking '/home/vsts/work/1/s/emsdk/downloads/node-v16.20.0-linux-x64.tar.xz' to '/home/vsts/work/1/s/emsdk/node/16.20.0_64bit'
Done installing tool 'node-16.20.0-64bit'.
Installing tool 'releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'..
Downloading: /home/vsts/work/1/s/emsdk/downloads/21644188d5c473e92f1d7df2f9f60c758a78a486-wasm-binaries.tar.xz from https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/21644188d5c473e92f1d7df2f9f60c758a78a486/wasm-binaries.tar.xz, 257708108 Bytes
 [----------------------------------------------------------------------------]
Unpacking '/home/vsts/work/1/s/emsdk/downloads/21644188d5c473e92f1d7df2f9f60c758a78a486-wasm-binaries.tar.xz' to '/home/vsts/work/1/s/emsdk/upstream'
Done installing tool 'releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'.
Done installing SDK 'sdk-releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'.
Resolving SDK version '3.1.46' to 'sdk-releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit'
Setting the following tools as active:
   node-16.20.0-64bit
   releases-21644188d5c473e92f1d7df2f9f60c758a78a486-64bit

Next steps:
- To conveniently access emsdk tools from the command line,
  consider adding the following directories to your PATH:
    /home/vsts/work/1/s/emsdk
    /home/vsts/work/1/s/emsdk/upstream/emscripten
- This can be done for the current shell by running:
    source "/home/vsts/work/1/s/emsdk/emsdk_env.sh"
- Configure emsdk in your shell startup scripts by running:
    echo 'source "/home/vsts/work/1/s/emsdk/emsdk_env.sh"' >> $HOME/.bash_profile
Setting up EMSDK environment (suppress these messages with EMSDK_QUIET=1)
Adding directories to PATH:
PATH += /home/vsts/work/1/s/emsdk
PATH += /home/vsts/work/1/s/emsdk/upstream/emscripten

Setting environment variables:
PATH = /home/vsts/work/1/s/emsdk:/home/vsts/work/1/s/emsdk/upstream/emscripten:/opt/hostedtoolcache/Python/3.11.3/x64/bin:/opt/hostedtoolcache/Python/3.11.3/x64:/snap/bin:/home/vsts/.local/bin:/opt/pipx_bin:/home/vsts/.cargo/bin:/home/vsts/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/vsts/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
EMSDK = /home/vsts/work/1/s/emsdk
EMSDK_NODE = /home/vsts/work/1/s/emsdk/node/16.20.0_64bit/bin/node
/home/vsts/work/1/s
Collecting pyodide-build==0.25.1
  Downloading pyodide_build-0.25.1-py3-none-any.whl.metadata (1.6 kB)
Collecting pyodide-cli
  Downloading pyodide_cli-0.2.3-py3-none-any.whl.metadata (2.1 kB)
Collecting pyyaml (from pyodide-build==0.25.1)
  Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting cython<3.0 (from pyodide-build==0.25.1)
  Downloading Cython-0.29.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.metadata (3.1 kB)
Collecting ruamel.yaml (from pyodide-build==0.25.1)
  Downloading ruamel.yaml-0.18.6-py3-none-any.whl.metadata (23 kB)
Collecting packaging (from pyodide-build==0.25.1)
  Downloading packaging-24.0-py3-none-any.whl.metadata (3.2 kB)
Collecting wheel (from pyodide-build==0.25.1)
  Downloading wheel-0.43.0-py3-none-any.whl.metadata (2.2 kB)
Collecting tomli (from pyodide-build==0.25.1)
  Downloading tomli-2.0.1-py3-none-any.whl.metadata (8.9 kB)
Collecting build~=1.2.0 (from pyodide-build==0.25.1)
  Downloading build-1.2.1-py3-none-any.whl.metadata (4.3 kB)
Collecting virtualenv (from pyodide-build==0.25.1)
  Downloading virtualenv-20.26.2-py3-none-any.whl.metadata (4.4 kB)
Collecting pydantic<2,>=1.10.2 (from pyodide-build==0.25.1)
  Downloading pydantic-1.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (150 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.6/150.6 kB 5.2 MB/s eta 0:00:00
Collecting cmake>=3.24 (from pyodide-build==0.25.1)
  Downloading cmake-3.29.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.1 kB)
Collecting unearth~=0.6 (from pyodide-build==0.25.1)
  Downloading unearth-0.15.2-py3-none-any.whl.metadata (3.8 kB)
Collecting requests (from pyodide-build==0.25.1)
  Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting types-requests (from pyodide-build==0.25.1)
  Downloading types_requests-2.31.0.20240406-py3-none-any.whl.metadata (1.8 kB)
Collecting typer (from pyodide-build==0.25.1)
  Downloading typer-0.12.3-py3-none-any.whl.metadata (15 kB)
Collecting auditwheel-emscripten~=0.0.9 (from pyodide-build==0.25.1)
  Downloading auditwheel_emscripten-0.0.14-py3-none-any.whl.metadata (27 kB)
Collecting pyodide-lock==0.1.0a4 (from pyodide-build==0.25.1)
  Downloading pyodide_lock-0.1.0a4-py3-none-any.whl.metadata (2.2 kB)
Collecting resolvelib (from pyodide-build==0.25.1)
  Downloading resolvelib-1.0.1-py2.py3-none-any.whl.metadata (4.0 kB)
Collecting rich (from pyodide-build==0.25.1)
  Downloading rich-13.7.1-py3-none-any.whl.metadata (18 kB)
Collecting loky (from pyodide-build==0.25.1)
  Downloading loky-3.4.1-py3-none-any.whl.metadata (6.4 kB)
Collecting leb128 (from auditwheel-emscripten~=0.0.9->pyodide-build==0.25.1)
  Downloading leb128-1.0.7-py3-none-any.whl.metadata (2.9 kB)
Collecting pyproject_hooks (from build~=1.2.0->pyodide-build==0.25.1)
  Downloading pyproject_hooks-1.1.0-py3-none-any.whl.metadata (1.3 kB)
Collecting typing-extensions>=4.2.0 (from pydantic<2,>=1.10.2->pyodide-build==0.25.1)
  Downloading typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)
Collecting httpx<1,>=0.27.0 (from unearth~=0.6->pyodide-build==0.25.1)
  Downloading httpx-0.27.0-py3-none-any.whl.metadata (7.2 kB)
Collecting cloudpickle (from loky->pyodide-build==0.25.1)
  Downloading cloudpickle-3.0.0-py3-none-any.whl.metadata (7.0 kB)
Collecting charset-normalizer<4,>=2 (from requests->pyodide-build==0.25.1)
  Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests->pyodide-build==0.25.1)
  Downloading idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->pyodide-build==0.25.1)
  Downloading urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->pyodide-build==0.25.1)
  Downloading certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting markdown-it-py>=2.2.0 (from rich->pyodide-build==0.25.1)
  Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich->pyodide-build==0.25.1)
  Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml->pyodide-build==0.25.1)
  Downloading ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.metadata (2.2 kB)
Collecting click>=8.0.0 (from typer->pyodide-build==0.25.1)
  Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting shellingham>=1.3.0 (from typer->pyodide-build==0.25.1)
  Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)
WARNING: typer 0.12.3 does not provide the extra 'all'
Collecting distlib<1,>=0.3.7 (from virtualenv->pyodide-build==0.25.1)
  Downloading distlib-0.3.8-py2.py3-none-any.whl.metadata (5.1 kB)
Collecting filelock<4,>=3.12.2 (from virtualenv->pyodide-build==0.25.1)
  Downloading filelock-3.14.0-py3-none-any.whl.metadata (2.8 kB)
Collecting platformdirs<5,>=3.9.1 (from virtualenv->pyodide-build==0.25.1)
  Downloading platformdirs-4.2.1-py3-none-any.whl.metadata (11 kB)
Collecting anyio (from httpx<1,>=0.27.0->unearth~=0.6->pyodide-build==0.25.1)
  Downloading anyio-4.3.0-py3-none-any.whl.metadata (4.6 kB)
Collecting httpcore==1.* (from httpx<1,>=0.27.0->unearth~=0.6->pyodide-build==0.25.1)
  Downloading httpcore-1.0.5-py3-none-any.whl.metadata (20 kB)
Collecting sniffio (from httpx<1,>=0.27.0->unearth~=0.6->pyodide-build==0.25.1)
  Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx<1,>=0.27.0->unearth~=0.6->pyodide-build==0.25.1)
  Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->pyodide-build==0.25.1)
  Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Downloading pyodide_build-0.25.1-py3-none-any.whl (91 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.1/91.1 kB 16.3 MB/s eta 0:00:00
Downloading pyodide_lock-0.1.0a4-py3-none-any.whl (9.8 kB)
Downloading pyodide_cli-0.2.3-py3-none-any.whl (10 kB)
Downloading auditwheel_emscripten-0.0.14-py3-none-any.whl (31 kB)
Downloading build-1.2.1-py3-none-any.whl (21 kB)
Downloading cmake-3.29.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 26.7/26.7 MB 78.4 MB/s eta 0:00:00
Downloading Cython-0.29.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 72.3 MB/s eta 0:00:00
Downloading packaging-24.0-py3-none-any.whl (53 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.5/53.5 kB 12.2 MB/s eta 0:00:00
Downloading pydantic-1.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 90.9 MB/s eta 0:00:00
Downloading unearth-0.15.2-py3-none-any.whl (47 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.0/47.0 kB 8.3 MB/s eta 0:00:00
Downloading loky-3.4.1-py3-none-any.whl (54 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.6/54.6 kB 9.5 MB/s eta 0:00:00
Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 757.7/757.7 kB 53.2 MB/s eta 0:00:00
Downloading requests-2.31.0-py3-none-any.whl (62 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 11.7 MB/s eta 0:00:00
Downloading resolvelib-1.0.1-py2.py3-none-any.whl (17 kB)
Downloading rich-13.7.1-py3-none-any.whl (240 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 240.7/240.7 kB 38.4 MB/s eta 0:00:00
Downloading ruamel.yaml-0.18.6-py3-none-any.whl (117 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.8/117.8 kB 25.7 MB/s eta 0:00:00
Downloading tomli-2.0.1-py3-none-any.whl (12 kB)
Downloading typer-0.12.3-py3-none-any.whl (47 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.2/47.2 kB 10.6 MB/s eta 0:00:00
Downloading types_requests-2.31.0.20240406-py3-none-any.whl (15 kB)
Downloading virtualenv-20.26.2-py3-none-any.whl (3.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 104.4 MB/s eta 0:00:00
Downloading wheel-0.43.0-py3-none-any.whl (65 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 kB 7.7 MB/s eta 0:00:00
Downloading certifi-2024.2.2-py3-none-any.whl (163 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.8/163.8 kB 31.8 MB/s eta 0:00:00
Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.3/140.3 kB 28.9 MB/s eta 0:00:00
Downloading click-8.1.7-py3-none-any.whl (97 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 20.4 MB/s eta 0:00:00
Downloading distlib-0.3.8-py2.py3-none-any.whl (468 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 468.9/468.9 kB 42.9 MB/s eta 0:00:00
Downloading filelock-3.14.0-py3-none-any.whl (12 kB)
Downloading httpx-0.27.0-py3-none-any.whl (75 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.6/75.6 kB 15.7 MB/s eta 0:00:00
Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.9/77.9 kB 13.2 MB/s eta 0:00:00
Downloading idna-3.7-py3-none-any.whl (66 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.8/66.8 kB 15.2 MB/s eta 0:00:00
Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 19.1 MB/s eta 0:00:00
Downloading platformdirs-4.2.1-py3-none-any.whl (17 kB)
Downloading pygments-2.18.0-py3-none-any.whl (1.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 74.1 MB/s eta 0:00:00
Downloading ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (544 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 544.0/544.0 kB 55.1 MB/s eta 0:00:00
Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Downloading typing_extensions-4.11.0-py3-none-any.whl (34 kB)
Downloading urllib3-2.2.1-py3-none-any.whl (121 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 kB 24.2 MB/s eta 0:00:00
Downloading cloudpickle-3.0.0-py3-none-any.whl (20 kB)
Downloading leb128-1.0.7-py3-none-any.whl (4.0 kB)
Downloading pyproject_hooks-1.1.0-py3-none-any.whl (9.2 kB)
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Downloading anyio-4.3.0-py3-none-any.whl (85 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.6/85.6 kB 19.8 MB/s eta 0:00:00
Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
Downloading h11-0.14.0-py3-none-any.whl (58 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 14.0 MB/s eta 0:00:00
Installing collected packages: resolvelib, leb128, distlib, wheel, urllib3, typing-extensions, tomli, sniffio, shellingham, ruamel.yaml.clib, pyyaml, pyproject_hooks, pygments, platformdirs, packaging, mdurl, idna, h11, filelock, cython, cmake, cloudpickle, click, charset-normalizer, certifi, virtualenv, types-requests, ruamel.yaml, requests, pydantic, markdown-it-py, loky, httpcore, build, anyio, rich, pyodide-lock, httpx, unearth, typer, pyodide-cli, auditwheel-emscripten, pyodide-build
Successfully installed anyio-4.3.0 auditwheel-emscripten-0.0.14 build-1.2.1 certifi-2024.2.2 charset-normalizer-3.3.2 click-8.1.7 cloudpickle-3.0.0 cmake-3.29.3 cython-0.29.37 distlib-0.3.8 filelock-3.14.0 h11-0.14.0 httpcore-1.0.5 httpx-0.27.0 idna-3.7 leb128-1.0.7 loky-3.4.1 markdown-it-py-3.0.0 mdurl-0.1.2 packaging-24.0 platformdirs-4.2.1 pydantic-1.10.15 pygments-2.18.0 pyodide-build-0.25.1 pyodide-cli-0.2.3 pyodide-lock-0.1.0a4 pyproject_hooks-1.1.0 pyyaml-6.0.1 requests-2.31.0 resolvelib-1.0.1 rich-13.7.1 ruamel.yaml-0.18.6 ruamel.yaml.clib-0.2.8 shellingham-1.5.4 sniffio-1.3.1 tomli-2.0.1 typer-0.12.3 types-requests-2.31.0.20240406 typing-extensions-4.11.0 unearth-0.15.2 urllib3-2.2.1 virtualenv-20.26.2 wheel-0.43.0
Downloading xbuild environment                                                  
Installing xbuild environment                                                   
+ meson setup /home/vsts/work/1/s /home/vsts/work/1/s/.mesonpy-h6vlcfoy -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=/home/vsts/work/1/s/.mesonpy-h6vlcfoy/meson-python-native-file.ini
The Meson build system
Version: 1.4.0
Source dir: /home/vsts/work/1/s
Build dir: /home/vsts/work/1/s/.mesonpy-h6vlcfoy
Build type: cross build
Project name: scikit-learn
Project version: 1.6.dev0
Cross compiler sanity tests disabled via the cross file.

../meson.build:1:0: ERROR: None of values ['c17'] are supported by the C compiler. Possible values are ['none', 'c89', 'c99', 'c11', 'gnu89', 'gnu99', 'gnu11']

A full log can be found at /home/vsts/work/1/s/.mesonpy-h6vlcfoy/meson-logs/meson-log.txt

ERROR Backend subprocess exited when trying to invoke build_wheel

##[error]Bash exited with code '1'.
##[section]Finishing: Build Pyodide wheel

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugBuild / CIfree-threadingPRs and issues related to support for free-threaded CPython (a.k.a. nogil or no-GIL, PEP 703)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions