Repository navigation
Rebuild against manylinux_2_28 and stop vendoring MPI - #162
Merged
Merged
Conversation
Two fixes land with this republish:
1. manylinux2014 cannot emit the new libstdc++ ABI (_GLIBCXX_USE_DUAL_ABI 0
discards -D_GLIBCXX_USE_CXX11_ABI=1), so consumers on gcc-14/clang-18 fail
to link the wheel's C++ SDK. Rebuilding on manylinux_2_28 fixes it, as
already confirmed on the published nwchemex-utilities 0.1.47.
2. delocate was vendoring a second OpenMPI into the macOS wheel. Because the
wheel also ships the C++ SDK, a downstream CMake build links the system
Homebrew libmpi while the wheel's dylib loads the vendored copy. Two
OpenMPI images in one process do not share ompi_mpi_comm_world, leaving
c_local_group NULL and segfaulting at MPI init inside CommPP:
Signal: Segmentation fault: 11 / Invalid permissions / address 0x10
parallelzone::mpi_helpers::detail_::CommPPPIMPL::CommPPPIMPL
NWChemEx/.github@620e081 excludes the MPI stack from delocate, matching
what the Linux leg already does.
This is the first needs_mpi repo to rebuild, so it is the first CI exercise
of that macOS change.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
🚀 [bumpr] Bumped! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Empty commit to trigger a republish. Second canary of the ecosystem ABI rebuild — the first
needs_mpirepo, so this is the first CI exercise of the macOS delocate change.Two fixes land here
1. libstdc++ ABI.
manylinux2014cannot emit the new ABI (_GLIBCXX_USE_DUAL_ABI 0discards-D_GLIBCXX_USE_CXX11_ABI=1), so C++ consumers on gcc-14/clang-18 can't link the wheel's SDK. Already confirmed fixed on the publishednwchemex-utilities 0.1.47, which now exports_ZN9utilities8printing9Demangler8demangleB5cxx11EPKc.2. Double OpenMPI on macOS.
delocatevendored Homebrew's MPI stack intonwchemex_parallelzone.dylibs/and pointedlibparallelzone.dylibat it via@loader_path. But the wheel also ships the C++ SDK, so a downstream CMake build (nwx_find_mpi()) links the system libmpi while the wheel's dylib loads the vendored one. Two OpenMPI images in one process don't shareompi_mpi_comm_world;MPI_Initpopulates one, ParallelZone reads the other,c_local_groupis NULL:This was not an OpenMPI-5 bug and not a ParallelZone source bug — it reproduces on 5.0.7 and 5.0.10, and
MPI_InitreturnsMPI_SUCCESS. NWChemEx/.github@620e081 excludes the MPI stack from delocate, matching the Linux leg.Verified locally
Same wheel, repaired two ways, identical repro linked against each:
@loader_path/../nwchemex_parallelzone.dylibs/libmpi.40.dylib/opt/homebrew/opt/open-mpi/lib/libmpi.40.dylibsize=1, exit 0Note for reviewers
The macOS wheel will now require Homebrew
open-mpiat import time. Linux already made this tradeoff deliberately; macOS is now consistent with it. Worth a docs line.🤖 Generated with Claude Code