Skip to content

Remove -Z link-native-libraries=no default#269

Merged
hoodmane merged 1 commit into
pyodide:mainfrom
hoodmane:remove-link-native-libs-no
Dec 16, 2025
Merged

Remove -Z link-native-libraries=no default#269
hoodmane merged 1 commit into
pyodide:mainfrom
hoodmane:remove-link-native-libs-no

Conversation

@hoodmane
Copy link
Copy Markdown
Member

We haven't wanted this for a long time

We haven't wanted this for a long time
@ryanking13 ryanking13 added the integration This PR will run the integration tests. This label can be used as a persistent marker to do so. label Dec 11, 2025
Copy link
Copy Markdown
Member

@ryanking13 ryanking13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I enabled integration test.

Don't we need to update the default rust toolchain version too to make this work?

Also, we tested this in #42 but somehow the downstream PR is closed. Do you remember what kind of error we faced at that time?

@hoodmane
Copy link
Copy Markdown
Member Author

We're overriding this in Makefile.envs:
https://github.com/pyodide/pyodide/blob/main/Makefile.envs#L15

@ryanking13
Copy link
Copy Markdown
Member

We're overriding this in Makefile.envs:
https://github.com/pyodide/pyodide/blob/main/Makefile.envs#L15

Yes, but the config in pyproject.toml dominates the one in the Makefile.envs. So we can test set custom rustflags overwriting the default one.

@hoodmane
Copy link
Copy Markdown
Member Author

We clearly don't want this as a default. Presumably we can add it explicitly to any recipe that needs it?

@hoodmane
Copy link
Copy Markdown
Member Author

Anyways I'd like to switch to stable Rust in the next few months and to do that we need to stop passing unstable flags.

@ryanking13
Copy link
Copy Markdown
Member

We clearly don't want this as a default. Presumably we can add it explicitly to any recipe that needs it?

Sounds reasonable.

@hoodmane hoodmane merged commit 8a42492 into pyodide:main Dec 16, 2025
20 checks passed
greateggsgreg added a commit to greateggsgreg/pydantic that referenced this pull request May 12, 2026
- maturin: bump `requires` in pydantic-core/pyproject.toml to
  `>=1.13.2,<2` (PEP 783 `pyemscripten_*_wasm32` tag landed in 1.13.2);
  drop the CI pre-install of `maturin @ git+main` and the `--no-isolation`
  flag in `make build-pyemscripten`. PEP 517 isolation now installs a
  released maturin from PyPI (wheel install, no rustc needed for maturin).
- Rust toolchain: switch `core-build-pyemscripten` from nightly to stable.
  Pyodide 314.0.0a1's xbuildenv pins `RUST_TOOLCHAIN ?= 1.93.0`, the
  `-Z link-native-libraries=no` default was dropped in
  pyodide/pyodide-build#269, and `-Z emscripten-wasm-eh` became default in
  Rust 1.93 (rust-lang/rust#148309 / MCP 920).
- pyodide-build: depend on the released `pyodide-build[resolve]>=0.34.3`
  rather than `git+main`.
- Drop the `skip_emscripten` marker indirection: the marker, its
  registrations in both pyproject.toml files, and the `pytest_runtest_setup`
  hooks that consumed it are gone. `tests/test_docs.py` and
  `tests/test_pickle.py` now use `pytest.mark.skipif(sys.platform ==
  'emscripten', ...)` directly.
- Drop the `pytest_itemcollected` Emscripten guard in tests/conftest.py.
  `pytest-run-parallel` is pure Python and now installs cleanly inside
  the Pyodide venv (added to `pyemscripten-run-tests.sh`), so the
  `add_marker('thread_unsafe')` path no longer needs to be skipped.
- Move `pyemscripten-run-tests.sh` from `.github/scripts/` to the project
  root to match the convention of other top-level scripts; update the CI
  step path accordingly.
- Add `make test-pyemscripten` so contributors can reproduce the CI job
  locally (build pyemscripten + pure-Python wheels, then run the suite
  inside a Pyodide venv).
- Reword the Pyodide teardown-crash comment in the test runner to
  describe the symptom precisely (`RuntimeError: null function or
  function signature mismatch`) and reference the closest related
  upstream report (pyodide/pyodide#5015).

Verified locally end-to-end on aarch64 (emsdk 5.0.3 + pyodide-build
0.34.3 + Rust 1.95 stable + Pyodide xbuildenv 314.0.0a1): wheel builds
green, twine check PASSED, 11248 tests pass / 297 skipped / 37 xfailed
inside the Pyodide venv.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration This PR will run the integration tests. This label can be used as a persistent marker to do so.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants