ci(macos pip): pin floor to 12.0 to fix ld64.lld version-skew warnings#6061
Draft
Grantim wants to merge 6 commits into
Draft
ci(macos pip): pin floor to 12.0 to fix ld64.lld version-skew warnings#6061Grantim wants to merge 6 commits into
Grantim wants to merge 6 commits into
Conversation
mrbind link target was 12.7, in-tree libs 15.0 (runner default), and brew bottles 14.0. Pin all three to 12.0 via shared DefaultOptions.cmake, brew --bottle-tag=monterey, and an updated MACOS_MIN_VER. Wheel plat-name macosx_12_0_* now matches actual minos for the first time. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rce instead CI revealed brew install rejects --bottle-tag (the flag is only valid for brew fetch / brew bottle). Swap to --build-from-source on jsoncpp, openvdb, opencascade, and tbb — the four libs that link into the wheel — so they honor MACOSX_DEPLOYMENT_TARGET=12.0. Adds ~30-40 min to macOS pip-build CI (opencascade is the bulk). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Companion to PR #6058. PR-A stripped our own libs at link; this strips the third-party deps that we bundle into wheels/.pkg/NuGet/etc. - Linux: VCPKG_LINKER_FLAGS_RELEASE -Wl,-s in x64+arm64 triplets so vcpkg ports drop .symtab/.strtab/.debug_* during their own release link (~15 MB across the bundled chain). Strip-at-link sidesteps the patchelf alignment bug that broke #6057's auditwheel --strip attempt. - macOS: chmod +w + strip -x every brew dylib in install_brew_requirements.sh so delocate-wheel/install_name_tool/.pkg copy already-trimmed binaries. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces --build-from-source with the documented cross-tag bottle path: brew fetch downloads the monterey-tagged bottle into the cache, then we install from the cached tarball with --force-bottle. Avoids the ~30-40 min source-build cost while still getting minos=12 dylibs for the four libs that link into the wheel. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…stics Previous iteration set --force-bottle on brew fetch (mutually exclusive with --bottle-tag, hard error) and didn't use set -e, so the failure silently fell through and the catchall brew install proceeded with default Sequoia bottles. Warnings stayed. This iteration: drop --force-bottle from both fetch and install (we don't need it — we're passing a local tarball path), add set -e around the cross-tag block, and log the cached path + ls before each install so we can see what brew actually got. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
\$BREW_PREFIX/lib contains only symlinks into Cellar/, so the previous find -type f matched nothing. Walking Cellar reaches the real .dylib files. Verified separately: linux vcpkg side stripped libopenvdb.so .strtab from 2.07 MB to 0; mac libopenvdb.dylib __LINKEDIT was unchanged because of this bug. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Fixes ld64.lld version-skew warnings during pip-build's mrbind link by pinning all input dylib floors at
minos=12.0. Pre-fix: brew Sequoia bottles at 14.0, in-tree libs at 15.0 (runner default), mrbind target at 12.7. Now all three at 12.0 —CMAKE_OSX_DEPLOYMENT_TARGETin sharedDefaultOptions.cmake(covers both MeshLib and MeshInspectorCode via existinginclude(DefaultOptions)),brew install --bottle-tag=monterey(orarm64_monterey) ininstall_brew_requirements.sh,MACOS_MIN_VER=12.0in pip-build.yml.Wheel plat-name (
macosx_12_0_*) stays — the wheel claim now matches actualminosfor the first time (pre-fix it lied: mrbind already required 12.7).MIC's existing inline pin at
CMakeLists.txt:22becomes a redundant no-op once this lands; can be removed in a follow-up cleanup PR.Test plan
Install thirdparty libsstep succeeds (or fails fast with a clear "no monterey bottle" error — fallback toventuraper the plan).otool -l build/Release/bin/libMRMesh.dylibshowsminos 12.0(was 15.0).ld64.lld: warning: ... newer than target minimumlines in theGenerate and build MRBind bindingsstep log.CI scope:
test-pip-buildenables pip-build.yml;disable-build-*labels skip non-macOS platforms.🤖 Generated with Claude Code