Enable CoreCLR for linux-bionic platforms and include singlefilehost in AppHost pack - #131115
Merged
Merged
Conversation
|
Azure Pipelines: 16 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
…in AppHost pack Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix self-contained binary size for linux-bionic-arm64
Enable CoreCLR for linux-bionic platforms and include singlefilehost in AppHost pack
Jul 20, 2026
jkoritzinsky
marked this pull request as ready for review
July 21, 2026 02:49
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Member
|
Is there a separate pipeline (maybe extra platforms?) we should kick off for this? |
Member
|
/azp run runtime-extra-platforms |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Member
|
@elinor-fung the bionic legs passed so we should be good to go |
elinor-fung
approved these changes
Jul 23, 2026
jkoritzinsky
enabled auto-merge (squash)
July 23, 2026 22:21
Member
|
/ba-g osx failures unrelated to Linux-bionic only change |
This was referenced Jul 24, 2026
hez2010
pushed a commit
to hez2010/runtime
that referenced
this pull request
Jul 26, 2026
akoeplinger
added a commit
to dotnet/dotnet
that referenced
this pull request
Jul 30, 2026
The linux-bionic line in _CoreCLRSupportedOS was added by dotnet/runtime#131115 by copying the Android line, but it picked up a 'arm' exclusion that Android had already dropped two months earlier. Android excluded arm in April 2026 with the comment "Android 32-bit builds blocked by dotnet/runtime#111665", then re-enabled it on 2026-05-21 once that was resolved. Issue 111665 (fseeko/ftello not supported on arm32 and x86 below API level 24) was closed as completed on 2026-07-20, and eng/native/build-commons.sh pins ANDROID_API_LEVEL to 24, so the restriction never applied here in the first place. Drop the stale exclusion so bionic matches Android. x86 stays excluded for both. The arm exclusions in _MonoSupportedArch and in _BuildHostPack/_BuildBundle are unrelated, predate this, and are left alone. This flips CoreCLRSupported to true for bionic-arm, moving its default subsets from clr.nativeaotruntime+clr.nativeaotlibs+libs+packs to clr+libs+host+packs, since Mono remains unsupported there. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6553736-6f22-41f2-9bd4-7223785d09e6
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Single-file self-contained binaries for
linux-bionic-arm64/x64(Termux on Android) were silently falling back toapphostinstead ofsinglefilehost, producing non-functional ~11MB binaries instead of the expected ~30MB bundles. Root cause:singlefilehostwas explicitly excluded from the linux-bionic AppHost pack, and CoreCLR was never enabled for linux-bionic builds.Changes
eng/Subsets.propsCoreCLRSupportedforlinux-bioniconarm64andx64(mirrors Android pattern; excludesarmandx86)DefaultSubsetsfor linux-bionic toclr+mono+libs+host+packswhen CoreCLR is supported, with fallback to NativeAOT-only subsets for unsupported architecturesDefaultCoreClrSubsetsfor linux-bionic (matches Android/Apple Mobile:clr.native+clr.corelib+clr.tools+clr.nativecorelib+clr.packages+clr.nativeaotlibs+clr.crossarchtools)RuntimeFlavor=CoreCLRcondition for linux-bionic whenclrsubset is requestedsrc/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj'$(TargetsLinuxBionic)' != 'true'guard from thesinglefilehostNativeRuntimeAssetitem — it is now built and should ship