Skip to content

cppyy-cling: Add version 6.32.8 - #3275

Draft
luhenry wants to merge 2 commits into
mainfrom
port/cppyy-cling
Draft

luhenry wants to merge 2 commits into
mainfrom
port/cppyy-cling

Conversation

@luhenry

@luhenry luhenry commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Re-packaged Cling (ROOT's C++ interpreter), the backend cppyy JITs against; building it compiles LLVM/Clang plus Cling's interpreter layer from source. Upstream publishes no riscv64 wheel.

Mirrors upstream's cling-wheels.yml, driving the manylinux_riscv64 image directly instead of through cibuildwheel, the same shape as build-libclang.yml.

Differs from upstream

  • Scopes LLVM_TARGETS_TO_BUILD to RISCV;NVPTX - setup.py never sets it on Linux, so it silently built every LLVM backend.
  • Sets AUDITWHEEL_PLAT/_PYTHON_HOST_PLATFORM - setup.py's manylinux detection predates PEP 600 images.

Testing

  • same as upstream

License: OK

Patches

  • 0001-setup-recognize-current-generation-manylinux-images.patch - To upstream. Without it the build silently drops to RelWithDebInfo and a different default C++ standard than every other published platform; not riscv64-specific.
  • 0002-setup-scope-llvm-targets-to-build-on-riscv64-linux.patch - To upstream. Without it the build compiles every LLVM backend instead of just RISCV;NVPTX, multiplying an already multi-hour build.

From-source LLVM/Clang/Cling build, this repo's largest build shape (build-libclang.yml's bracket); CI run in progress at time of writing.

Adds build-cppyy-cling.yml, following build-libclang.yml's shape for the
same reason: this is a from-source LLVM/Clang build, here with Cling's
interpreter layer and PCH/dictionary generation on top.

Checked out at wlav/cppyy-backend's cppyy-cling-6.32.8 tag and verified
directly against it (not just the PyPI sdist): src/interpreter/
CMakeLists.txt has a first-class `ROOT_ARCHITECTURE MATCHES riscv64`
branch (same shape as its AArch64/ARM/PowerPC/SystemZ branches), and the
bundled llvm-project snapshot carries the complete modern upstream RISCV
backend. But ROOT_ARCHITECTURE is never actually set in this cling-only
build (src/CMakeLists.txt never pulls in ROOT's SetUpLinux.cmake), so
that branch is dead and setup.py's cmake invocation falls through to
building every LLVM backend on Linux. Patch 0002 scopes it to RISCV;NVPTX
the same way setup.py's own macOS-arm64 branch already scopes to
ARM;AArch64;NVPTX. Patch 0001 generalizes setup.py's manylinux detection
(hardcoded to three old CentOS release strings) to also recognize our
Rocky Linux 10-based manylinux_2_39_riscv64 image via AUDITWHEEL_PLAT, so
the build picks Release over debug-laden RelWithDebInfo and the default
C++ standard matches every other published platform.

No gpl_sources job: unlike libclang, this build does not pass
-static-libgcc/-static-libstdc++ anywhere, so it carries no gcc runtime
into the wheel.
luhenry added a commit that referenced this pull request Oct 15, 2026
@luhenry
luhenry marked this pull request as draft October 15, 2026 12:13
git -C cppyy-backend apply <glob> hands git the literal glob: the shell
expands it in the step's own cwd ($GITHUB_WORKSPACE), which -C only
moves git past, not the shell. The runner's workspace directory is
itself named python-wheels, so ../python-wheels from the workspace root
resolves back onto the workspace and the glob silently matches nothing
instead of erroring on a missing directory - git then receives the
unexpanded glob verbatim and fails with "No such file or directory".

Use working-directory: cppyy-backend instead, matching every other
build-<pkg>.yml in this repo that checks out its source under path:
<pkg> (build-pyicu-binary.yml, build-labmaze.yml, build-minorminer.yml,
...), so the shell and git share one base for the relative path.

Verified by applying 0001/0002 with the fixed relative path against a
fresh checkout of wlav/cppyy-backend's cppyy-cling-6.32.8 tag - both
patches apply cleanly.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant