Repository navigation
DIAGNOSTIC (do not merge): resolve ecosystem from source - #76
ryanmrichard wants to merge 1 commit into
Conversation
Attributes the macos-14/clang-18 segfault in test_cmake_build.
The four legs currently fail because `extra_pip_packages: nwchemex`
installs the published wheels before configure, so
nwx_ecosystem_dependency takes its installed-wheel branch and the C++
build links prebuilt binaries built by a different toolchain than the
dev matrix uses:
- ubuntu gcc-14/clang-18: wheels are manylinux2014 (old libstdc++
COW std::string ABI), the runners default to the new one.
- macos-14 gcc-14: wheels are libc++, Homebrew gcc is libstdc++.
- macos-14 clang-18: libc++ on both sides, so it links -- then every
test segfaults, and we do not know why.
Setting NWX_ECOSYSTEM_FROM_SOURCE=ON skips the installed-wheel branch
entirely, so every leg compiles the ecosystem from git master with one
compiler and the ABI variable disappears. That isolates the last case:
if macos-14/clang-18 still segfaults it is the pre-existing SCF#70
pybind11 issue; if it goes green the segfault was itself an ABI
artifact (likely Homebrew LLVM's libc++ against the SDK libc++ the
wheels were built with), which would mean the standard library is not
a single axis and the planned per-stdlib wheel variants would not be
sufficient.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Diagnostic complete — closing without merging. Result: The other three legs failed on the same underlying ABI bug, through a gap: Real fix remains moving the Linux wheel build to manylinux_2_28. |
Diagnostic only — please do not merge. Opened to answer one question; will be closed once CI reports.
What this measures
test_cmake_buildfails on all four legs becauseextra_pip_packages: nwchemexinstalls the published wheels before configure, sonwx_ecosystem_dependencytakes its installed-wheel branch and the C++ build links prebuilt binaries produced by a different toolchain than the dev matrix uses. Verified by reading the published wheels' symbol tables:ubuntu-latestgcc-14 / clang-18std::stringABImacos-14gcc-14macos-14clang-18The third row is unattributed. Setting
NWX_ECOSYSTEM_FROM_SOURCE=ONskips the installed-wheel branch, so every leg compiles the ecosystem from git master with a single compiler and the ABI variable disappears.Either way this run also measures whether from-source resolution is a viable interim unblock for #75.
Related
The Linux half is being fixed separately by moving the wheel build to
manylinux_2_28— manylinux2014's devtoolset-10 is built with_GLIBCXX_USE_DUAL_ABI 0and itsc++config.hdiscards any-D_GLIBCXX_USE_CXX11_ABI=1, so the new ABI is compiled out of that toolchain entirely.🤖 Generated with Claude Code