$ the-wire · showcase
Crossgen2 fix for uppercase extensions, SSE parser buffer limit, Android pipeline governance
By RepoJournal · Filed · About .NET
crossgen2 now accepts uppercase .DLL/.EXE extensions, fixing a regression that broke PublishReadyToRun builds on case-normalizing volumes, while SseParser gains configurable buffer limits and Android's internal CI moves to a governed pipeline.
crossgen2 rejected input assemblies with uppercase `.DLL`/`.EXE` extensions on filesystems that normalize casing, a regression from `Microsoft.NETCore.App.Crossgen2` 10.0.5 to 10.0.9 that broke `PublishReadyToRun` builds; the fix corrects the extension matching in `RunSingleCompilation` [1]. SSE parsing now supports a caller-configured buffer limit through `SseParserOptions<T>`, which adds `ItemParser` and `MaxBufferSize` with a default of `-1` to preserve the internal limit [2]. The uniprocessor allocation helpers `RhpNewFast_UP` and friends are removed from Windows x86/x64, helpers that were barely reachable and used a global `ee_alloc_context` under a spin lock [3]. For WASM, R2R function names now travel in a name section instead of the export table, addressing a framework-scale issue where exporting every function exceeded engine limits [4]. dotnet/android's internal pipeline migrates to the official 1ES governed template, preserving triggers and signing while using `dotnet/macios-devtools` for auxiliary checkouts [5]. MAUI removes the `IlcTreatWarningsAsErrors=false` workaround from Apple NativeAOT simulator tests [6], and BlazorWebView's `TizenMauiAssetFileProvider` aligns with other platforms [7].
Action items
- → If you build PublishReadyToRun on case-normalizing volumes, verify the crossgen2 fix is in your SDK version dotnet/runtime [immediate]
- → Review SseParserOptions<T> API if you use SseParser with custom parsing dotnet/runtime [plan]
- → Monitor the vararg build change if you target non-Windows platforms (note: targets dev branch, not main) dotnet/runtime [monitor]
References
- [1] Fix crossgen2 rejecting input files with uppercase .DLL/.EXE extensions (#132857) ↗ dotnet/runtime
- [2] Add configurable SSE parser buffer limit ↗ dotnet/runtime
- [3] Remove the uniprocessor (non-TLS) allocation helpers (#132665) ↗ dotnet/runtime
- [4] [wasm] Carry R2R function names in a name section, not the export table (#132906) ↗ dotnet/runtime
- [5] [ci] Govern dnceng internal pipeline ↗ dotnet/android
- [6] [Tests] Remove obsolete Apple NativeAOT warning workaround (#37940) ↗ dotnet/maui
- [7] [tizen] align BlazorWebView TizenMauiAssetFileProvider with other platforms (#37972) ↗ dotnet/maui