ci: widen test-distribution macos-test Intel coverage; bump fastmcpp#6148
Merged
Conversation
Two coordinated changes, both Intel-side; arm64 build and test
configuration stays exactly as in master.
1. macos-test matrix gains two x64 rows alongside the existing
macos-15-intel:
- macos-26-intel (GitHub-hosted, newer)
- macos-x64-build (self-hosted, MACPRO2013 / Monterey 12)
The arm64 row stays at the single `macos-latest` runner.
2. thirdparty/fastmcpp bumped to c5271bc (MeshInspector/fastmcpp#2),
which widens fastmcpp's libc++
`_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0` workaround to
also fire under AppleClang. Without this, libMRMcp.dylib (built
with AppleClang for the x64 .pkg) references
`__from_native_exception_pointer`, which is absent from
/usr/lib/libc++.1.dylib on Monterey 12 and aborts MeshViewer on
macos-x64-build at load time.
Sibling arm64-side changes from #6138 (additional arm64 test runners
and the arm64-scoped cpr from-source rebuild) are intentionally not
included here -- arm64 self-hosted build hosts run an older Xcode and
the matter is intertwined with brew bottle SDK churn that's worth
landing separately.
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.
Summary
Carves out the Intel-only subset of #6138 so it can land independently:
test-distribution / macos-testgains two x64 rows alongside the existingmacos-15-intel:macos-26-intel(GitHub-hosted, newer macOS)macos-x64-build(self-hosted Mac Pro 2013 on Monterey 12)The arm64 row stays at the single
macos-latestrunner — exactly as in master. No arm64 build host or test runner is touched.thirdparty/fastmcppbumped toc5271bc(clang.hpp + CMakeLists: apply libc++ workaround under AppleClang too fastmcpp#2, already merged into main). That PR widens fastmcpp's_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0workaround so it also fires under AppleClang, both inclang.hpp's#ifand at theCMAKE_CXX_COMPILER_IDgate in CMakeLists.txt.Without this bump,
libMRMcp.dylib(built with AppleClang for the x64 .pkg) references__from_native_exception_pointer— a libc++ helper absent from/usr/lib/libc++.1.dylibon macOS 12. MeshViewer then aborts at load time on Mac Pro 2013 / Monterey:The submodule bump is what makes the new
macos-x64-buildmatrix row actually pass.Why not also include the arm64 changes from #6138
The arm64 side of #6138 expanded the matrix to
macos-14/macos-15/macos-26/macos-arm-build-12, and to makemacos-14pass it also had to rebuild Homebrew'scprformula from source on the arm64 build host (the prebuiltarm64_sequoiacpr bottle ships withLC_BUILD_VERSION minos=15and references the same__from_native_exception_pointersymbol).That arm64 rebuild trick only works because our self-hosted arm64 build hosts happen to carry an older Xcode whose libc++ properly suppresses the symbol at the
MACOSX_DEPLOYMENT_TARGET=12.7we pass; on a GitHub-hostedmacos-15arm64 runner (latest Xcode) the same rebuild would reintroduce the symbol. The arm64 path is therefore an undocumented invariant on the build hosts' Xcode version, and worth landing separately once we have a host-independent fix (likely building cpr in MeshLib's own source tree rather than via brew).This PR sidesteps that whole question — it keeps the arm64 test on
macos-latest(a current macOS, where the brew cpr bottle's libc++ symbol does resolve), so no rebuild is needed.CI scope
Only macOS distribution testing is affected. Non-mac jobs are disabled via labels.
full-ciis set soupload_artifactsis true andtest-distributionactually runs frombuild-test-distribute.yml.Test plan
Verified in run 26288059992:
test-distribution / macos-testrows pass:(x64, macos-15-intel)(x64, macos-26-intel)(new)(x64, macos-x64-build)(new — canary for the fastmcpp fix on Monterey)(arm64, macos-latest)(unchanged from master)macos-build-testvariants succeed;upload-distributionssucceeds.Related
Install Pkgfrom ci: install pkg to user home on runners without passwordless sudo #6142 (already in master).