Skip to content

Rebuild against manylinux_2_28 for the new libstdc++ ABI - #165

Merged
ryanmrichard merged 1 commit into
masterfrom
rebuild_manylinux_2_28
Sep 16, 2026
Merged

ryanmrichard merged 1 commit into
masterfrom
rebuild_manylinux_2_28

Conversation

@ryanmrichard

Copy link
Copy Markdown
Member

Empty commit to trigger a republish. First of 11 — this is the canary for the ecosystem-wide ABI rebuild.

Why

The published wheels were built on manylinux2014, which cannot emit the new libstdc++ ABI — it defines _GLIBCXX_USE_DUAL_ABI 0, so -D_GLIBCXX_USE_CXX11_ABI=1 is silently discarded. C++ consumers on gcc-14/clang-18 then fail to link the wheels' SDK:

undefined reference to `pluginplay::ModuleManager::at(std::__cxx11::basic_string<...> const&) const'
undefined reference to `pluginplay::utility::generate_uuid[abi:cxx11]()'
undefined reference to `utilities::printing::Demangler::demangle[abi:cxx11](char const*)'

No PR has ever built a manylinux wheel — build_pypi_dist runs only from merge.yaml, and test_pip_build doesn't use cibuildwheel — which is how this survived.

What this picks up

Verified locally before opening this

  • All 11 packages build on manylinux_2_28.
  • Full-stack consumer (links nwx::scf, nwx::integrals, nwx::chemcache, nwx::nux) links and runs against the rebuilt wheelhouse on gcc-14 and clang-18.
  • Control against the currently published wheels fails with the exact symbols above — so the check can actually detect the defect.
  • macOS MPI fix verified A/B: default repair → segfault with CI's signature; patched repair → clean exit.

🤖 Generated with Claude Code

The published wheels were built on manylinux2014, which cannot emit the new
libstdc++ ABI: it defines _GLIBCXX_USE_DUAL_ABI 0, so -D_GLIBCXX_USE_CXX11_ABI=1
is discarded. Consumers on gcc-14/clang-18 therefore fail to link against the
wheels' C++ SDK with undefined references to the __cxx11 / B5cxx11 manglings.

This empty commit triggers a republish from the manylinux_2_28 image
(NWChemEx/.github#194) with nwxcmake 0.2.6's ABI guard and stamp. It also
picks up NWChemEx/.github@620e081, which stops delocate vendoring a second
OpenMPI into the macOS wheels.

Verified locally before this rebuild: all 11 packages build on manylinux_2_28,
and a full-stack consumer links and runs against them on gcc-14 and clang-18
(control against the published wheels fails with CI's exact symbols).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ryanmrichard
ryanmrichard merged commit 3595610 into master Sep 16, 2026
11 checks passed
@ryanmrichard
ryanmrichard deleted the rebuild_manylinux_2_28 branch September 16, 2026 19:42
@github-actions

Copy link
Copy Markdown
Contributor

🚀 [bumpr] Bumped!
New version:v0.1.47
Changes:v0.1.46...v0.1.47

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