Skip to content

GH-55416: [CI][C++] Update Emscripten to 5.0.3 - #55417

Merged
kou merged 1 commit into
apache:mainfrom
tadeja:emscripten-upgrade
Nov 7, 2026
Merged

kou merged 1 commit into
apache:mainfrom
tadeja:emscripten-upgrade

Conversation

@tadeja

@tadeja tadeja commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Rationale for this change

Closes #55416

What changes are included in this PR?

Update C++ Emscripten from 3.1.45 to 5.0.3 ( and remove the offset-converter workaround for Emscripten<4.0.14 )

Are these changes tested?

Yes

Are there any user-facing changes?

No

Was AI used for this PR?

PR code and description written by:

  • Human
  • AI

Reviewed before submission by:

  • Human
  • AI
  • Not reviewed

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

⚠️ GitHub issue #55416 has been automatically assigned in GitHub to PR creator.

@tadeja

tadeja commented Nov 5, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit *-emscripten

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

Revision: 8ba3527

Submitted crossbow builds: ursacomputing/crossbow @ actions-c3b963985d

Task Status
test-conda-python-emscripten GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions

@tadeja
tadeja marked this pull request as ready for review November 5, 2026 15:01
Copilot AI balanced review requested due to automatic review settings November 5, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues are reported for the C++ CI Emscripten update and removal of the legacy workaround.

No open issues 🎉

What changed in this PR

Updates Emscripten for the C++ Ubuntu 22.04 nightly CI job, addressing #55416. The separate Python/Pyodide toolchain update remains out of scope.

Changes:

  • Bumps the C++ CI image’s Emscripten version from 3.1.45 to 5.0.3.
  • Removes the offset-converter workaround for Emscripten versions older than 4.0.14.
File Description
cpp/​cmake_modules/​SetupCxxFlags.cmake Removes the legacy Emscripten offset-converter linker flag.
ci/​docker/​ubuntu-22.04-cpp.dockerfile Updates the default Emscripten version to 5.0.3.

Review effort: Balanced

@tadeja tadeja mentioned this pull request Nov 5, 2026
5 tasks

@kou kou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@kou
kou merged commit 17b78f3 into apache:main Nov 7, 2026
70 of 72 checks passed
@tadeja
tadeja deleted the emscripten-upgrade branch November 8, 2026 17:43
raulcd pushed a commit that referenced this pull request Nov 13, 2026
…dide 314 (`2026_0` ABI) (#47330)

### Rationale for this change

This PR allows PyArrow to be built and tested against our Pyodide `2026_0` ABI introduced with [the Pyodide 314.0.0 release](https://blog.pyodide.org/posts/314-release/).

Closes #47329

### What changes are included in this PR?

This PR updates the Pyodide version in the build scripts to 314.0.7 and the Emscripten version to 5.0.3, along with associated build-time changes to fix compilation issues.

This PR updates the `conda-python-emscripten` job to Pyodide 314.0.7, Python 3.14, Node 24, and pyodide-build 0.39.2 and later. The Emscripten version for this job is gathered from the Pyodide distribution, which renders it to be 5.0.3. That matches the version the C++ job uses, since #55417.

The build changes are as follows:

- Emscripten builds now use native WebAssembly exceptions and WebAssembly-based `setjmp`/`longjmp` (`-fwasm-exceptions -sSUPPORT_LONGJMP=wasm`), as our `2026_0` ABI requires.
- `libarrow_python.so` and the Cython extension modules are linked with an `$ORIGIN` RPATH, in order for us to find `libarrow_python.so` next to the modules that need it.
- The host Protobuf build is given the C++ standard explicitly, which fixes an Abseil ABI mismatch when linking with AppleClang on my machine.

### Are these changes tested?

Yes, these changes are (to be) tested by the `test-conda-python-emscripten` and `test-ubuntu-22.04-cpp-emscripten` jobs on Crossbow.

### Are there any user-facing changes?

Yes, downstream packagers trying to build a WASM wheel for Pyodide are now required to use newer Pyodide and Emscripten versions, and the latest stable version of pyodide-build.

* GitHub Issue: #47329

cc: @ hoodmane @ ryanking13

Lead-authored-by: Agriya Khetarpal <[email protected]>
Co-authored-by: Tadeja Kadunc <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][C++] Update Emscripten to 5.0.3

3 participants