build: pin macOS deployment floor at link time (minos) (#13341) 5df57079b5
* build: pin macOS deployment floor at link time (minos)

-mmacosx-version-min was in buildoptions (compile) only, so the linker
stamped LC_BUILD_VERSION.minos from the host SDK — a dylib built on macOS 26
shipped minos 26.0 and today's sonoma build ships 14.0 despite intending 11.0.
Adding the flag to linkoptions makes the floor host-independent (proven: both
sonoma and Xcode-26 builds stamp minos 11.0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Potential fix for pull request finding

Co-authored-by: Anirrudh <anirrudh@rive.app>
Co-authored-by: Anirrudh <anirrv08@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index 6ee153f..8d01dc5 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-5cdcaab570e5176d12b8efa1b58326e7d57308cf
+5df57079b56a7e7a844ff1628e19f2ed3238b164
diff --git a/build/rive_build_config.lua b/build/rive_build_config.lua
index a2254f3..12d3852 100644
--- a/build/rive_build_config.lua
+++ b/build/rive_build_config.lua
@@ -781,6 +781,16 @@
         buildoptions({
             '-mmacosx-version-min=11.0',
         })
+        -- Pass the deployment target at LINK time too. Without this, the linker
+        -- stamps LC_BUILD_VERSION.minos from the build host's SDK, so a dylib
+        -- built against a newer SDK can advertise a higher min OS version and
+        -- fail to load on older macOS versions.
+        --
+        -- Note: buildoptions affects compilation only (e.g., availability macros)
+        -- and does not influence the link step that stamps the final dylib.
+        linkoptions({
+            '-mmacosx-version-min=11.0',
+        })
     end
 
     filter({ 'system:macosx', 'options:arch=host', 'action:xcode4' })