Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux-bionic (Android libc w/o Android interop) initial implementation #66147

Merged
merged 209 commits into from
May 19, 2022
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
209 commits
Select commit Hold shift + click to select a range
03ed935
Initial linux-bionic implementation.
directhex Mar 3, 2022
6043460
Add some CI
directhex Mar 3, 2022
8c5f357
Fix the build
directhex Mar 3, 2022
c3eb11e
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 3, 2022
09c50b6
Update compat
directhex Mar 4, 2022
d23ae61
Merge branch 'joshield/linux-bionic' of github.com:directhex/runtime …
directhex Mar 4, 2022
50f245a
WIP to make this smaller & use `-os android` as a base
directhex Mar 7, 2022
416a094
Merge branch 'joshield/linux-bionic' of github.com:directhex/runtime …
directhex Mar 7, 2022
f87a238
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 7, 2022
f91bc32
Leftover crud
directhex Mar 7, 2022
eba386a
More cleanup
directhex Mar 7, 2022
78111b5
Refreshed runtime compat after inverting Android parenthood
directhex Mar 7, 2022
d41e9b8
Fix build to use -os Linux as a base, not -os Android
directhex Mar 9, 2022
cf290bf
Another stupid merge failure from days ago
directhex Mar 9, 2022
1b43926
Accepting any runtimeos in corehost build breaks non-portable build
directhex Mar 10, 2022
e30bda8
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 14, 2022
0c23374
Include runtime in correlation payload build
directhex Mar 16, 2022
e3ae793
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 17, 2022
05dfb73
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 24, 2022
a096c47
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 28, 2022
92778ad
Generate and use on-device test runner script for Bionic
directhex Mar 29, 2022
9d62401
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Mar 29, 2022
eecfadd
Latest changes (actually runs on Helix, w/ new enough xharness)
directhex Apr 4, 2022
4001132
Gross workaround for ICU failure
directhex Apr 5, 2022
461a346
Add missing file
directhex Apr 5, 2022
f7774d6
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 6, 2022
a2b02fa
Fix heisenbug
directhex Apr 7, 2022
1a3cbab
OpenSSL
directhex Apr 8, 2022
afa0bc7
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 11, 2022
841484f
Missing test exclusion
directhex Apr 11, 2022
0399b36
Support for building against OpenSSL 3 headers
directhex Apr 12, 2022
d4379ad
Use some Android parts for Bionic CoreLib
directhex Apr 13, 2022
f7835f7
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 14, 2022
b552962
Run in CI
directhex Apr 14, 2022
ee29b59
Use OutputRID not RuntimeOS for Bionic switches, as requested
directhex Apr 14, 2022
52e58bd
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 15, 2022
a4af08a
Deal with Android build failure
directhex Apr 15, 2022
dc3ca01
Workaround for DNNE restore error
directhex Apr 15, 2022
bc935f7
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 18, 2022
e972870
Fix the build
directhex Apr 18, 2022
84f4d9e
Get rid of debug spew
directhex Apr 18, 2022
72d931c
Update aka.ms link with NativeAOT optimization guide (#68151)
jkotas Apr 18, 2022
0233ccd
[Group 9] Enable nullable annotations for `Microsoft.Extensions.Hosti…
maxkoshevoi Apr 18, 2022
d8fcf0e
Enable multiple nested "no GC" region requests (#68105)
BruceForstall Apr 18, 2022
518f4fb
JIT ARM32: Force tailcall nullchecks with LR (#68107)
jakobbotsch Apr 18, 2022
3fcac66
Exposing generic math support for unsigned right shift (#68096)
tannergooding Apr 18, 2022
7d8ad2f
[Group 9] Enable nullable annotations for `Microsoft.Extensions.Hosti…
maxkoshevoi Apr 18, 2022
0b92e99
SPMI: fix AV in getStringLiteral (#68161)
EgorBo Apr 18, 2022
a685994
Support ByRefLike types as Generic parameters (#67783)
AaronRobinsonMSFT Apr 18, 2022
f449d21
Update VSCode library debugging documentation (#67925)
dakersnar Apr 18, 2022
40f0184
Expose APIs for getting the exponent and significand for IFloatingPoi…
tannergooding Apr 18, 2022
d4aaad8
Fix compiled / source generated lazy loop stack handling (#68138)
stephentoub Apr 18, 2022
d5f3aeb
Lift the restriction that we can have at most 4k regions (#68168)
cshung Apr 18, 2022
f176372
Fix nullability warnings for NativeAOT CoreLib (#65137)
kant2002 Apr 18, 2022
70d4ab2
Update dump template (#68185)
danmoseley Apr 18, 2022
6ae1baf
Improve performance of test partitioning (#68172)
trylek Apr 19, 2022
1ed02f7
Updating System.Runtime.InteropServices.NFloat to support generic mat…
tannergooding Apr 19, 2022
71d5d1b
CheckValue is not a fast path for all callers (#68125)
pedrobsaila Apr 19, 2022
862d395
Fix very adventurous LIR::Use::GetDummyUse (#68131)
jakobbotsch Apr 19, 2022
97ec939
Add links to docs (#68211)
kant2002 Apr 19, 2022
9694c48
Fixing casing issue with TargetPath (#68184)
LakshanF Apr 19, 2022
d289b52
[AOT] Don't set the 'CorrectedSynthesize' flag in the objc_imageinfo …
rolfbjarne Apr 19, 2022
eeaeebd
Fix CLR_CMAKE_USE_SYSTEM_LIBUNWIND on macOS (#68116)
Bo98 Apr 19, 2022
b1bd45f
Add JSON type hierarchies (#67961)
eiriktsarpalis Apr 19, 2022
6bb98cc
Fix issue #41084 - fix cmake CMP0068 warnings (#68095)
mikem8361 Apr 19, 2022
2a232f5
Fix path in servicing doc (#68208)
ViktorHofer Apr 19, 2022
d9af2ef
Cleanup ProjectN references (#68201)
jkotas Apr 19, 2022
ea4204a
Fix incorrect results of right shifting huge BigIntegers error report…
dakersnar Apr 19, 2022
9e09023
[mono][jit] Add SIMD support for System.Numerics.Vector4. (#68098)
vargaz Apr 19, 2022
55d3896
Consistently use forward slashes in test exclusion lists (#68215)
trylek Apr 19, 2022
37aecb0
Improving STJ source generator support for record types (#68064)
jharjung Apr 19, 2022
4d24aac
Revert "Update dump template (#68185)" (#68224)
danmoseley Apr 19, 2022
936ccf8
Expose ArrayMarshaller and PointerArrayMarshaller (#68173)
elinor-fung Apr 19, 2022
18000c2
Managed implementation of NTLM for Android and tvOS (#66879)
filipnavara Apr 19, 2022
d07fcaa
JIT: fix issue with invalid operand size in OSR prolog on arm64 (#68198)
AndyAyersMS Apr 19, 2022
29909ad
Two-phase matching algorithm for NonBacktracking (#68199)
olsaarik Apr 19, 2022
9e67be5
JIT: fix patchpoint offset encoding (#68202)
AndyAyersMS Apr 19, 2022
4576be0
avoid allocating collection for intermediate certificates (#68188)
wfurt Apr 19, 2022
8d4f53d
Fix a race condition in the thread pool (#68171)
kouvel Apr 19, 2022
34e6785
Add initial version of {Last}IndexOfAnyExcept (#67941)
stephentoub Apr 19, 2022
46a2705
Reflection.Emit cleanups (#67170)
jkotas Apr 19, 2022
075f4b0
Delete AssemblySpec::m_wszCodeBase (#68186)
jkotas Apr 19, 2022
714e365
Treat SuperPMI failures in AzDO pipelines as pipeline failures (#68196)
BruceForstall Apr 19, 2022
c067f78
Exposing MaxMagnitudeNumber, MaxNumber, MinMagnitudeNumber, and MinNu…
tannergooding Apr 20, 2022
051134b
Remove platform dependent compilation of System.Private.Uri (#68011)
huoyaoyuan Apr 20, 2022
f41d8bf
[mono] Rename .md files that are not actually markdown (#68239)
akoeplinger Apr 20, 2022
0913212
Exclude all markdown files from triggering CI (#68221)
ViktorHofer Apr 20, 2022
1bc30f1
Update 'main' branding to preview5 (#68236)
carlossanlop Apr 20, 2022
f73c6aa
Clean-up `System.Drawing.Common` and remove the Unix code. (#64623)
teo-tsirpanis Apr 20, 2022
9f5c989
Retype pointers to 'this' on stack as unmanaged pointers (#68074)
jakobbotsch Apr 20, 2022
802a4a1
Enable System.Text.Json tests on netfx (#63803) (#67007)
eiriktsarpalis Apr 20, 2022
8dd4295
Overhaul when/where we check for Regex timeouts (#68146)
stephentoub Apr 20, 2022
a45e2d9
Fix {Last}IndexOfAnyExcept behavior for an empty set of values (#68244)
stephentoub Apr 20, 2022
5ca4240
Avoid duplicate Strings.resx import & code-cleanup (#68220)
ViktorHofer Apr 20, 2022
5135336
Delete legacy HRESULTs and error messages (#68252)
jkotas Apr 20, 2022
89541a1
Delete libkrb5-dev from NativeAOT prereqs (#68253)
jkotas Apr 20, 2022
f1aeb28
Add LibraryImportGenerator to ref pack (#68247)
elinor-fung Apr 20, 2022
6356354
Mark OperatingSystem.IsXXX properties as non-versionable (#68250)
jkotas Apr 20, 2022
14c5418
Make BSWAP16 nodes normalize upper 16 bits (#67903)
jakobbotsch Apr 20, 2022
f083867
Fix JIT using too wide indirections when returning small structs (#68…
jakobbotsch Apr 20, 2022
ad65218
Exposing ExpM1, Exp2, Exp2M1, Exp10, Exp10M1, LogP1, Log2P1, and Log1…
tannergooding Apr 20, 2022
a0561bb
Remove CallArgABIInfo::ArgNum and fill out function headers (#68209)
jakobbotsch Apr 20, 2022
bfdd79d
Add missing RUC annotation to IAsyncEnumerableConverterFactory (#68233)
eiriktsarpalis Apr 20, 2022
e1748d1
Fix handling of vector instruction sets in NativeAOT compiler (#68249)
jkotas Apr 20, 2022
13a73ea
Use and support OpenSSL 3 on macOS (#68045)
vcsjones Apr 20, 2022
d0a5d5d
[mono] Preserve FirstChanceExceptionEventArgs ctor (#68235)
akoeplinger Apr 20, 2022
d581835
Added fixes for tests which are not robust against line endings (#68231)
oguzeldereli1 Apr 20, 2022
55d0cb6
Fix reading slightly incorrect Zip files (#68106)
danmoseley Apr 20, 2022
1d851ec
fix the srcBufferLength check (#68270)
kunalspathak Apr 20, 2022
f13eda9
Use generic math to dedup Enumerable.Min/Max (#68183)
stephentoub Apr 20, 2022
4627185
Use generic math to dedup Enumerable.Sum/Average (#68226)
stephentoub Apr 20, 2022
f216852
Only set the assembly binder on success when binding to SPCL (#68282)
elinor-fung Apr 20, 2022
d3fc061
Fix Docs_Examples_ValidateEmail test (#68294)
stephentoub Apr 20, 2022
6089bd4
Add retries to ModulesAreDisposedWhenProcessIsDisposed (#68104)
danmoseley Apr 20, 2022
9f6cc77
Remove dead const from RegexNode (#68297)
stephentoub Apr 20, 2022
24e7540
Use RegexCaseEquivalence table for case-insensitive backreferences (#…
joperezr Apr 20, 2022
3a26b4c
Add API entry for JsonDocument converter (#60236)
strobelt Apr 20, 2022
600b03f
Update TestHandleCollector() test (#68285)
AaronRobinsonMSFT Apr 20, 2022
804ddfd
Add more diagnostics to LookupProperty (more diagnostics to flaky tes…
krwq Apr 21, 2022
6f5def9
Update Microsoft.DotNet.Helix.Sdk (#68024)
akoeplinger Apr 21, 2022
1ecf501
Add more details to NativeAOT workflow doc (#68308)
jkotas Apr 21, 2022
85f50d6
Bump to XHarness w/ android-headless support
directhex Apr 21, 2022
f1fa6d6
Force tests to run, for now. Revert when we're happy.
directhex Apr 21, 2022
65565c3
Define a Helix queue for Bionic
directhex Apr 21, 2022
9d6023e
Smoke tests only for now
directhex Apr 21, 2022
58d6e32
This is fine, we fast path the lookup in managed code on real Android
directhex Apr 21, 2022
52977ef
Revert "Smoke tests only for now"
directhex Apr 21, 2022
a0a053d
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 21, 2022
35d5545
I do not enjoy AzDO YML
directhex Apr 21, 2022
25dd79f
I still don't enjoy AzDO YML
directhex Apr 21, 2022
75906d5
Uh
directhex Apr 21, 2022
34e223a
Android exclusions
directhex Apr 21, 2022
3804a37
Why do we have two copies of helix-queues-setup?
directhex Apr 21, 2022
8391ad6
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 22, 2022
cff4f8e
Merge branch 'joshield/linux-bionic' of github.com:directhex/runtime …
directhex Apr 22, 2022
9647c5f
Gotta pass through targetrid to helix.yml somehow?
directhex Apr 22, 2022
ff6e3f9
Revert "Gotta pass through targetrid to helix.yml somehow?"
directhex Apr 22, 2022
0a350aa
Test a thing from Steve
directhex Apr 22, 2022
95703ee
Switch to property name used for test runs
directhex Apr 22, 2022
9c9d8dd
Can we pass through the thing?
directhex Apr 22, 2022
9dc50a0
Revert "Can we pass through the thing?"
directhex Apr 22, 2022
f968c71
SERIOUSLY?!
directhex Apr 22, 2022
bdff807
Fix up test runner to deal with Android-vs-Bionic HOME issue
directhex Apr 25, 2022
5260996
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 25, 2022
beeafcb
Initial Windows version (for arm64 devices, connected to Windows mach…
directhex Apr 25, 2022
4da6817
Try again
directhex Apr 25, 2022
34a119b
Revert some of the last commit
directhex Apr 26, 2022
05a9623
Try to leverage BrowserHost infra to set HostedOS
directhex Apr 26, 2022
0fb49f4
Revert "Try to leverage BrowserHost infra to set HostedOS"
directhex Apr 26, 2022
7e7116d
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 27, 2022
d184ba5
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex Apr 28, 2022
b3885c4
Use IsPosixShell from Helix SDK.
directhex Apr 28, 2022
2f1e6af
Whoops, changed during testing, should not have been committed
directhex Apr 29, 2022
72953d2
Enable overriding of test script shell type generation
directhex Apr 29, 2022
16247b5
More yaml massage
directhex Apr 29, 2022
571fc10
Try shuffling things through template hell again
directhex Apr 29, 2022
55da3a1
No need for this twice
directhex Apr 29, 2022
06720ca
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 2, 2022
3da17c8
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 3, 2022
71af3b8
Update xharness (fixes Bionic tests not running on device)
directhex May 3, 2022
8270f34
ICU path on Android 29 varies per architecture, so specify a list
directhex May 3, 2022
28b0921
Maybe this symlink dir is always usable?
directhex May 4, 2022
0e0c716
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 4, 2022
1da50f6
Bump to support LinuxBionic exclusions
directhex May 4, 2022
5ad54ee
Initial attempt to exclude tests. This should remove failures in Syst…
directhex May 4, 2022
14d8fc9
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 5, 2022
b771210
Revert "Bump to support LinuxBionic exclusions"
directhex May 5, 2022
f663eaa
Revert "Revert "Bump to support LinuxBionic exclusions""
directhex May 5, 2022
78a2852
runtime compat update
directhex May 5, 2022
1d6969f
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 6, 2022
1118077
This is a computer crime
directhex May 6, 2022
1cf37d6
Low hanging fruit on getting tests going
directhex May 6, 2022
64c22fe
Get going on Linux again?
directhex May 6, 2022
c4579a1
Fix typo
directhex May 6, 2022
e79047e
Fixups
directhex May 6, 2022
7864c19
Use SkipOnPlatform to avoid Bionic, not PlatformSpecific
directhex May 6, 2022
735e607
Add Bionic exclusions for a few more tests
directhex May 6, 2022
0198417
Conditionally set depsfile, which isn't set in Runtime.Loader.Tests
directhex May 6, 2022
1757e83
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 9, 2022
c6f3c4d
Skip a bunch of unpassable tests for Bionic
directhex May 9, 2022
7365e9b
More fixes?
directhex May 9, 2022
b9cee37
More skips
directhex May 9, 2022
202ef90
More fixes?
directhex May 9, 2022
55ec6e6
More to skip on Bionic
directhex May 9, 2022
5f98870
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 10, 2022
50af6b3
More test fixes
directhex May 10, 2022
9e039c9
Maybe fix SSL failures
directhex May 10, 2022
13eabe9
More tests
directhex May 10, 2022
ee293b8
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 11, 2022
ab8b10e
Revert "This is a computer crime"
directhex May 11, 2022
0292ed1
Test run processor?
directhex May 11, 2022
0e1b653
Fix upload dir
directhex May 11, 2022
67416e5
Disambiguate
directhex May 11, 2022
5e3368d
Bump xharness to fix failed tests plus all tests on Windows
directhex May 11, 2022
7a118d1
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 11, 2022
df33943
Make WindowsShell usage more specific
directhex May 11, 2022
5e60931
Add exclusions for failing tests. Let's get green.
directhex May 11, 2022
f45adbf
Fix typo
directhex May 12, 2022
7685f14
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 16, 2022
fdece95
typo
directhex May 16, 2022
b86c675
wat
directhex May 16, 2022
5f93973
Merge remote-tracking branch 'origin/main' into joshield/linux-bionic
directhex May 19, 2022
5499ed6
Various change suggestions from review by Alex
directhex May 19, 2022
f7d9bdd
additional
directhex May 19, 2022
b664de9
Consistency w/ musl
directhex May 19, 2022
ce2d7fc
Consistency
directhex May 19, 2022
9343257
Redundant
directhex May 19, 2022
9868647
sigh
directhex May 19, 2022
a316320
Maybe move a property
directhex May 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@

<_portableOS>linux</_portableOS>
<_portableOS Condition="'$(_runtimeOS)' == 'linux-musl'">linux-musl</_portableOS>
<_portableOS Condition="'$(_runtimeOS)' == 'linux-bionic'">linux-bionic</_portableOS>
<_portableOS Condition="'$(_hostOS)' == 'OSX'">osx</_portableOS>
<_portableOS Condition="'$(_runtimeOS)' == 'win' or '$(TargetOS)' == 'windows'">win</_portableOS>
<_portableOS Condition="'$(_runtimeOS)' == 'FreeBSD' or '$(TargetOS)' == 'FreeBSD'">freebsd</_portableOS>
Expand Down Expand Up @@ -169,9 +170,9 @@
<_toolsRID Condition="'$(_runtimeOS)' == 'browser' and '$(HostOS)' == 'osx'">osx-x64</_toolsRID>

<!-- There are no Android tools, so use the default ones -->
<_toolsRID Condition="'$(_runtimeOS)' == 'android'">linux-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'windows'">win-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'osx'">osx-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic'">linux-x64</_toolsRID>
<_toolsRID Condition="('$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic') and '$(HostOS)' == 'windows'">win-x64</_toolsRID>
<_toolsRID Condition="('$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic') and '$(HostOS)' == 'osx'">osx-x64</_toolsRID>

<!-- There are no Mac Catalyst, iOS or tvOS tools and it can be built on OSX only, so use that -->
<_toolsRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'iOSSimulator' or '$(_runtimeOS)' == 'tvos' or '$(_runtimeOS)' == 'tvOSSimulator'">osx-x64</_toolsRID>
Expand All @@ -195,7 +196,8 @@
<TargetsFreeBSD Condition="'$(TargetOS)' == 'FreeBSD'">true</TargetsFreeBSD>
<Targetsillumos Condition="'$(TargetOS)' == 'illumos'">true</Targetsillumos>
<TargetsSolaris Condition="'$(TargetOS)' == 'Solaris'">true</TargetsSolaris>
<TargetsLinux Condition="'$(TargetOS)' == 'Linux' or '$(TargetOS)' == 'Android'">true</TargetsLinux>
<TargetsLinux Condition="'$(TargetOS)' == 'Linux' or '$(TargetOS)' == 'Android' or '$(RuntimeOS)' == 'Linux-bionic'">true</TargetsLinux>
<TargetsLinuxBionic Condition="'$(RuntimeOS)' == 'Linux-bionic'">true</TargetsLinuxBionic>
<TargetsNetBSD Condition="'$(TargetOS)' == 'NetBSD'">true</TargetsNetBSD>
<TargetsOSX Condition="'$(TargetOS)' == 'OSX'">true</TargetsOSX>
<TargetsMacCatalyst Condition="'$(TargetOS)' == 'MacCatalyst'">true</TargetsMacCatalyst>
Expand Down
5 changes: 3 additions & 2 deletions eng/Subsets.props
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,13 @@
flavor is used to decide when to build the hosts and installers. -->
<PropertyGroup>
<PrimaryRuntimeFlavor>CoreCLR</PrimaryRuntimeFlavor>
<PrimaryRuntimeFlavor Condition="'$(TargetArchitecture)' == 's390x' or '$(TargetArchitecture)' == 'armv6'">Mono</PrimaryRuntimeFlavor>
<PrimaryRuntimeFlavor Condition="'$(TargetArchitecture)' == 's390x' or '$(TargetArchitecture)' == 'armv6' or '$(RuntimeOS)' == 'Linux-bionic'">Mono</PrimaryRuntimeFlavor>
</PropertyGroup>

<PropertyGroup>
<DefaultSubsets>clr+mono+libs+host+packs</DefaultSubsets>
<DefaultSubsets Condition="'$(TargetsMobile)' == 'true'">mono+libs+packs</DefaultSubsets>
<DefaultSubsets Condition="'$(TargetsLinuxBionic)' == 'true'">mono+libs+host+packs</DefaultSubsets>
<!-- In source build, mono is only supported as primary runtime flavor. On Windows mono is supported for x86/x64 only. -->
<DefaultSubsets Condition="('$(DotNetBuildFromSource)' == 'true' and '$(PrimaryRuntimeFlavor)' != 'Mono') or ('$(TargetOS)' == 'windows' and '$(TargetArchitecture)' != 'x86' and '$(TargetArchitecture)' != 'x64')">clr+libs+host+packs</DefaultSubsets>
</PropertyGroup>
Expand Down Expand Up @@ -279,7 +280,7 @@
</ItemGroup>

<!-- Mono sets -->
<ItemGroup Condition="$(_subset.Contains('+mono.llvm+')) or $(_subset.Contains('+mono.aotcross+')) or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator' or '$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'Browser'">
<ItemGroup Condition="$(_subset.Contains('+mono.llvm+')) or $(_subset.Contains('+mono.aotcross+')) or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator' or '$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'Browser' or '$(TargetOS)' == 'Linux-bionic'">
directhex marked this conversation as resolved.
Show resolved Hide resolved
<ProjectToBuild Include="$(MonoProjectRoot)llvm\llvm-init.proj" Category="mono" />
</ItemGroup>

Expand Down
9 changes: 6 additions & 3 deletions eng/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ usage()
echo " --help (-h) Print help and exit."
echo " --librariesConfiguration (-lc) Libraries build configuration: Debug or Release."
echo " [Default: Debug]"
echo " --os Target operating system: windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS,"
echo " tvOSSimulator, iOS, iOSSimulator, Android, Browser, NetBSD, illumos or Solaris."
echo " --os Target operating system: windows, Linux, Linux-bionic, FreeBSD, OSX, MacCatalyst,"
echo " tvOS, tvOSSimulator, iOS, iOSSimulator, Android, Browser, NetBSD, illumos"
echo " or Solaris."
echo " [Default: Your machine's OS.]"
echo " --projects <value> Project or solution file(s) to build."
echo " --runtimeConfiguration (-rc) Runtime build configuration: Debug, Release or Checked."
Expand Down Expand Up @@ -259,6 +260,8 @@ while [[ $# > 0 ]]; do
os="windows" ;;
linux)
os="Linux" ;;
linux-bionic)
os="Linux-bionic" ;;
freebsd)
os="FreeBSD" ;;
osx)
Expand All @@ -283,7 +286,7 @@ while [[ $# > 0 ]]; do
os="Solaris" ;;
*)
echo "Unsupported target OS '$2'."
echo "The allowed values are windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, tvOSSimulator, iOS, iOSSimulator, Android, Browser, illumos and Solaris."
echo "The allowed values are windows, Linux, Linux-bionic, FreeBSD, OSX, MacCatalyst, tvOS, tvOSSimulator, iOS, iOSSimulator, Android, Browser, illumos and Solaris."
exit 1
;;
esac
Expand Down
2 changes: 1 addition & 1 deletion eng/native/build-commons.sh
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ build_native()
cmakeArgs="-DCMAKE_SYSTEM_VARIANT=MacCatalyst $cmakeArgs"
fi

if [[ "$targetOS" == Android && -z "$ROOTFS_DIR" ]]; then
if [[ ( "$targetOS" == Android || "$targetOS" == linux-bionic ) && -z "$ROOTFS_DIR" ]]; then
if [[ -z "$ANDROID_NDK_ROOT" ]]; then
echo "Error: You need to set the ANDROID_NDK_ROOT environment variable pointing to the Android NDK root."
exit 1
Expand Down
10 changes: 10 additions & 0 deletions eng/native/init-distro-rid.sh
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,19 @@ initDistroRidGlobal()
distroRid="linux-musl-${buildArch}"
fi

# Unlike Musl, we can't execute things to detect Bionic
# Instead assume that if we think is is Linux, but find
# Android specific files in the sysroot, then it's Bionic
local ANDROID_NDK_ROOT="${ANDROID_NDK_ROOT:=}"
if [ "$targetOs" = "Linux" ] && [ -d "${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/" ]; then
distroRid="linux-bionic-${buildArch}"
fi

if [ -z "${distroRid}" ]; then
if [ "$targetOs" = "Linux" ]; then
distroRid="linux-$buildArch"
elif [ "$targetOs" = "linux-bionic" ]; then
distroRid="linux-bionic-$buildArch"
elif [ "$targetOs" = "OSX" ]; then
distroRid="osx-$buildArch"
elif [ "$targetOs" = "MacCatalyst" ]; then
Expand Down
4 changes: 4 additions & 0 deletions eng/pipelines/common/global-build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ jobs:
- name: _osParameter
value: /p:RuntimeOS=linux-musl /p:OutputRid=linux-musl-${{ parameters.archType }}

- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_bionic')) }}:
- name: _osParameter
value: /p:RuntimeOS=linux-bionic /p:OutputRid=linux-bionic-${{ parameters.archType }}

# Do not rename as it clashes with MSBuild property in libraries/build-native.proj
- name: _crossBuildPropertyArg
value: /p:CrossBuild=${{ parameters.crossBuild }}
Expand Down
50 changes: 50 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,56 @@ jobs:
crossrootfsDir: '/crossrootfs/arm64'
${{ insert }}: ${{ parameters.jobParameters }}

# Linux Bionic arm64

- ${{ if containsValue(parameters.platforms, 'Linux_bionic_arm64') }}:
- template: xplat-setup.yml
parameters:
jobTemplate: ${{ parameters.jobTemplate }}
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
variables: ${{ parameters.variables }}
osGroup: Linux
osSubgroup: _bionic
archType: arm64
targetRid: linux-bionic-arm64
platform: Linux_bionic_arm64
container:
image: ubuntu-18.04-android-20220131172314-3983b4e
registry: mcr
jobParameters:
runtimeFlavor: mono
stagedBuild: ${{ parameters.stagedBuild }}
buildConfig: ${{ parameters.buildConfig }}
${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}

# Linux Bionic x64

- ${{ if containsValue(parameters.platforms, 'Linux_bionic_x64') }}:
- template: xplat-setup.yml
parameters:
jobTemplate: ${{ parameters.jobTemplate }}
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
variables: ${{ parameters.variables }}
osGroup: Linux
osSubgroup: _bionic
archType: x64
targetRid: linux-bionic-x64
platform: Linux_bionic_x64
container:
image: ubuntu-18.04-android-20220131172314-3983b4e
registry: mcr
jobParameters:
runtimeFlavor: mono
stagedBuild: ${{ parameters.stagedBuild }}
buildConfig: ${{ parameters.buildConfig }}
${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}

# Linux x64

- ${{ if or(containsValue(parameters.platforms, 'Linux_x64'), containsValue(parameters.platforms, 'CoreClrTestBuildHost'), in(parameters.platformGroup, 'all', 'gcstress')) }}:
Expand Down
34 changes: 34 additions & 0 deletions eng/pipelines/runtime-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,40 @@ jobs:
creator: dotnet-bot
testRunNamePrefixSuffix: Mono_$(_BuildConfig)

#
# Build the whole product using Mono for Android and run runtime tests with Android devices
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: Release
runtimeFlavor: mono
platforms:
- Linux_bionic_arm64
- Linux_bionic_x64
variables:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
- name: _HelixSource
value: pr/dotnet/runtime/$(Build.SourceBranch)
- ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
- name: _HelixSource
value: ci/dotnet/runtime/$(Build.SourceBranch)
- name: timeoutPerTestInMinutes
value: 60
- name: timeoutPerTestCollectionInMinutes
value: 180
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_Mono
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
timeoutInMinutes: 240
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
eq(variables['isRollingBuild'], true))

#
# Build the whole product using Mono for Android and run runtime tests with Android devices
#
Expand Down
6 changes: 3 additions & 3 deletions eng/targetingpacks.targets
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
LatestRuntimeFrameworkVersion="$(ProductVersion)"
RuntimeFrameworkName="$(LocalFrameworkOverrideName)"
RuntimePackNamePatterns="$(LocalFrameworkOverrideName).Runtime.**RID**"
RuntimePackRuntimeIdentifiers="linux-arm;linux-arm64;linux-musl-arm64;linux-loongarch64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64;maccatalyst-x64;maccatalyst-arm64"
RuntimePackRuntimeIdentifiers="linux-arm;linux-arm64;linux-musl-arm64;linux-bionic-arm64;linux-loongarch64;linux-musl-x64;linux-bionic-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64;maccatalyst-x64;maccatalyst-arm64"
TargetFramework="$(NetCoreAppCurrent)"
TargetingPackName="$(LocalFrameworkOverrideName).Ref"
TargetingPackVersion="$(ProductVersion)"
Expand All @@ -43,13 +43,13 @@
RuntimeFrameworkName="$(LocalFrameworkOverrideName)"
LatestRuntimeFrameworkVersion="$(ProductVersion)"
RuntimePackNamePatterns="$(LocalFrameworkOverrideName).Runtime.Mono.**RID**"
RuntimePackRuntimeIdentifiers="linux-arm;linux-armv6;linux-arm64;linux-musl-arm64;linux-loongarch64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64;maccatalyst-x64;maccatalyst-arm64;browser-wasm;ios-arm64;ios-arm;iossimulator-arm64;iossimulator-x64;iossimulator-x86;tvos-arm64;tvossimulator-arm64;tvossimulator-x64;android-arm64;android-arm;android-x64;android-x86"
RuntimePackRuntimeIdentifiers="linux-arm;linux-armv6;linux-arm64;linux-musl-arm64;linux-bionic-arm64;linux-loongarch64;linux-musl-x64;linux-bionic-x64;linux-x64;osx-x64;rhel.6-x64;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64;maccatalyst-x64;maccatalyst-arm64;browser-wasm;ios-arm64;ios-arm;iossimulator-arm64;iossimulator-x64;iossimulator-x86;tvos-arm64;tvossimulator-arm64;tvossimulator-x64;android-arm64;android-arm;android-x64;android-x86"
RuntimePackLabels="Mono"
Condition="'@(KnownRuntimePack)' == '' or !@(KnownRuntimePack->AnyHaveMetadataValue('TargetFramework', '$(NetCoreAppCurrent)'))"/>
<KnownAppHostPack Include="$(LocalFrameworkOverrideName)"
AppHostPackNamePattern="$(LocalFrameworkOverrideName).Host.**RID**"
AppHostPackVersion="$([MSBuild]::ValueOrDefault('$(_AppHostBaselinePackVersion)', '$(ProductVersion)'))"
AppHostRuntimeIdentifiers="linux-arm;linux-armv6;linux-arm64;linux-musl-arm64;linux-loongarch64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64"
AppHostRuntimeIdentifiers="linux-arm;linux-armv6;linux-arm64;linux-musl-arm64;linux-bionic-arm64;linux-loongarch64;linux-musl-x64;linux-bionic-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64"
TargetFramework="$(NetCoreAppCurrent)"
Condition="'@(KnownAppHostPack)' == '' or !@(KnownAppHostPack->AnyHaveMetadataValue('TargetFramework', '$(NetCoreAppCurrent)'))" />
<KnownCrossgen2Pack Include="$(LocalFrameworkOverrideName).Crossgen2"
Expand Down
3 changes: 3 additions & 0 deletions src/installer/pkg/projects/netcoreappRIDs.props
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
<OfficialBuildRID Include="linux-musl-arm64">
<Platform>arm64</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="linux-bionic-arm64">
directhex marked this conversation as resolved.
Show resolved Hide resolved
<Platform>arm64</Platform>
</OfficialBuildRID>

<!-- The following RIDs are not officically supported and are not
built during official builds, however we wish to include them
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3760,6 +3760,38 @@
"any",
"base"
],
"linux-bionic": [
"linux-bionic",
"android",
"linux",
"unix",
"any",
"base"
],
"linux-bionic-arm64": [
"linux-bionic-arm64",
"linux-bionic",
"android-arm64",
"android",
"linux-arm64",
"linux",
"unix-arm64",
"unix",
"any",
"base"
],
"linux-bionic-x64": [
"linux-bionic-x64",
"linux-bionic",
"android-x64",
"android",
"linux-x64",
"linux",
"unix-x64",
"unix",
"any",
"base"
],
"linux-loongarch64": [
"linux-loongarch64",
"linux",
Expand Down
17 changes: 17 additions & 0 deletions src/libraries/Microsoft.NETCore.Platforms/src/runtime.json
Original file line number Diff line number Diff line change
Expand Up @@ -1504,6 +1504,23 @@
"unix-armv6"
]
},
"linux-bionic": {
"#import": [
"android"
]
},
"linux-bionic-arm64": {
"#import": [
"linux-bionic",
"android-arm64"
]
},
"linux-bionic-x64": {
"#import": [
"linux-bionic",
"android-x64"
]
},
"linux-loongarch64": {
"#import": [
"linux",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
<Parent>linux</Parent>
<Architectures>x64;x86;arm;armel;arm64;s390x</Architectures>
</RuntimeGroup>
<RuntimeGroup Include="linux-bionic">
<Parent>android</Parent>
directhex marked this conversation as resolved.
Show resolved Hide resolved
<Architectures>x64;arm64</Architectures>
</RuntimeGroup>

<RuntimeGroup Include="alpine">
<Parent>linux-musl</Parent>
Expand Down
Loading