Repository navigation
[CI] BuildNet10_0App fails to link _mono_helper_box_nullable #26474
Description
Failure signature
BuildNet10_0App fails while linking iOS and Mac Catalyst applications because the AOT-generated System.Private.CoreLib.dll.o references a native runtime symbol that is unavailable:
Undefined symbols for architecture arm64/x86_64:
"_mono_helper_box_nullable", referenced from:
wrapper_managed_to_native_object___icall_wrapper_mono_helper_box_nullable_intptr_intptr
in System.Private.CoreLib.dll.o
ld: symbol(s) not found
clang++: error: linker command failed with exit code 1
Confirmed occurrences
| PR / head | Azure run / attempt | Jobs |
|---|---|---|
#26454 / b956034e64eae11ea91afcec93b11996be9adbe0 |
15086535 / 1 | dotnettests_ios, dotnettests_maccatalyst |
#26454 / 918e83b75ed8152cb415cc7627e51ce69bc3124a |
15088820 / 1 | dotnettests_ios, dotnettests_maccatalyst |
#26454 / 3adbceca8e2a7ceb62aaf29c8d03633fd7d3fea2 |
15090225 / 1 | dotnettests_ios, dotnettests_maccatalyst |
#26356 / 070e656c01f70d18b2f0a3eac813c9ffbe3bc1e7 |
15114195 / 1 | dotnettests_ios, dotnettests_maccatalyst |
Total: 8 confirmed test occurrences across 2 distinct PRs, 4 heads, and 4 Azure runs.
First observed: 2026-08-25. Latest observed: 2026-08-27.
Classification and impact
Deterministic source/runtime linkage failure. The same symbol, generated wrapper, and linker failure reproduce on iOS arm64 and Mac Catalyst x86_64 across multiple dependency-update heads. This blocks the .NET 10 compatibility test in both platform jobs.
Run 15114195 uses .NET SDK 11.0.100-rc.2.26426.102 with the 26.5.10315 .NET 10 Apple SDK packs. The iOS failure ran on AcesShared 20; the Mac Catalyst failure ran on AcesShared 21.
No retry was requested because unchanged retries cannot repair a deterministic runtime/native-pack mismatch. Later #26454 heads stopped reproducing this signature, but it has recurred on #26356; the exact fixing commit was not established from retained diagnostics.
Investigation performed
- Inspected Azure task logs and NUnit/HTML artifacts for all current failures.
- Confirmed the exact
_mono_helper_box_nullablesymbol andSystem.Private.CoreLib.dll.oreference on both architectures. - Searched all open and closed
dotnet/maciosissues by stable signature, exact symbol, test name, linker error, and component. No issue represents this exact root cause. - [CI] DotNetWatch CoreCLR Hot Reload crashes with Bad IL range #26470 tracks a different post-Hot-Reload
Bad IL rangefailure and only mentions this symbol as a separate, previously resolved validation outcome. - Older undefined-symbol issues involve different native symbols and causes.
Reproduction pattern
On an affected dependency-update head, build the .NET 10 simple application through:
Xamarin.Tests.DotNetProjectTest.BuildNet10_0App(iOS, "ios-arm64")Xamarin.Tests.DotNetProjectTest.BuildNet10_0App(MacCatalyst, "maccatalyst-x64")
The managed AOT object references _mono_helper_box_nullable, but the linked native runtime libraries do not provide it.
Workaround
No confirmed workaround is available. Aligning the managed runtime/AOT output and native runtime pack resolves the underlying class of mismatch; the exact package or commit change still needs to be identified.
Azure artifacts and logs are subject to retention limits.
Activity
rolfbjarne commentedon Aug 27, 2026
Fixed with 1060054
dalexsoto commentedon Aug 27, 2026
_mono_helper_box_nullablefix validation (2026-08-27)PR #26356 head
10600548eb4614d4042b832a8dcc5388b9e612cfremoves the obsoleteTargetsCurrent=trueoverride so .NET 10 applications use matching .NET 10 AOT and runtime packs.In run 15115823:
BuildNet10_0App(iOS, "ios-arm64")passed.BuildNet10_0App(MacCatalyst, "maccatalyst-x64")passed._mono_helper_box_nullableor an undefined-symbol linker failure.This validates the fix on both architectures that previously reproduced the signature.
Issue-specific checklist: the issue body has no Additional info to collect section.
The issue remains closed
COMPLETED; the successful validation supports the closure reason, so it is not being reopened.