Repository navigation
[linker] Restrict globalization symbol alias to MonoVM. Fixes #26876 - #26903
rolfbjarne wants to merge 2 commits into
Conversation
ListExportedSymbols treats System.Globalization.Native as an alias for symbols provided by libmonosgen-2.0. Applying that exception to NativeAOT forces references to globalization functions even when invariant globalization omits their native library, causing undefined-symbol errors during native linking. Limit the alias to MonoVM so NativeAOT relies on the direct references emitted by its compiler. Add invariant-globalization regression cases for all four Apple platforms with assembly preparation enabled and disabled, and document the runtime-specific symbol handling. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: cc0ff47f-10d6-4cea-8aa8-cb33dc13ea7b
There was a problem hiding this comment.
🔵 Needs a closer look
No verified defects were identified, but Apple-platform native-link regression validation remains unconfirmed.
0 open findings
What changed in this PR
Addresses #26876 by restricting the globalization symbol alias to MonoVM, avoiding unwanted NativeAOT linker references.
Changes:
- Applies the alias only when using MonoVM.
- Adds invariant-globalization regression cases for all four Apple platforms, with assembly preparation enabled and disabled.
- Documents runtime-specific symbol handling.
| File | Description |
|---|---|
| tools/linker/MonoTouch.Tuner/ListExportedSymbols.cs | Restricts the globalization alias to MonoVM. |
| tests/dotnet/UnitTests/RuntimeConfigurationTest.cs | Adds NativeAOT invariant-globalization regression coverage. |
| docs/code/native-symbols.md | Explains runtime-specific globalization references. |
🧠 Review effort: Balanced
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
|
✅ Applied expected app size files from gist. |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
🔥 [CI Build #202b48b] Test results 🔥Test results❌ Tests failed on VSTS: test results 1 tests crashed, 1 tests failed, 217 tests passed. Failures❌ monotouch tests (iOS)1 tests failed, 19 tests passed.Failed tests
Html Report (VSDrops) Download ❌ windows tests🔥 Failed catastrophically on VSTS: test results - windows (no summary found). Html Report (VSDrops) Download Successes✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
ListExportedSymbols treats System.Globalization.Native as an alias for symbols provided by libmonosgen-2.0. Applying that exception to NativeAOT forces references to globalization functions even when invariant globalization omits their native library, causing undefined-symbol errors during native linking.
Limit the alias to MonoVM so NativeAOT relies on the direct references emitted by its compiler. Add invariant-globalization regression cases for all four Apple platforms with assembly preparation enabled and disabled, and document the runtime-specific symbol handling.
Fixes #26876
🤖 Pull request created by Copilot