diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml
index cfec860067039..04e7d31ad2f89 100644
--- a/eng/pipelines/common/platform-matrix.yml
+++ b/eng/pipelines/common/platform-matrix.yml
@@ -97,6 +97,31 @@ jobs:
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
+# Linux musl arm
+
+- ${{ if or(containsValue(parameters.platforms, 'Linux_musl_arm'), eq(parameters.platformGroup, 'all')) }}:
+ - template: xplat-setup.yml
+ parameters:
+ jobTemplate: ${{ parameters.jobTemplate }}
+ helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
+ variables: ${{ parameters.variables }}
+ osGroup: Linux
+ osSubgroup: _musl
+ archType: arm
+ platform: Linux_musl_arm
+ container:
+ image: ubuntu-18.04-cross-arm-alpine-20200818211451-14441ae
+ registry: mcr
+ jobParameters:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
+ stagedBuild: ${{ parameters.stagedBuild }}
+ buildConfig: ${{ parameters.buildConfig }}
+ ${{ if eq(parameters.passPlatforms, true) }}:
+ platforms: ${{ parameters.platforms }}
+ helixQueueGroup: ${{ parameters.helixQueueGroup }}
+ crossrootfsDir: '/crossrootfs/arm'
+ ${{ insert }}: ${{ parameters.jobParameters }}
+
# Linux musl arm64
- ${{ if or(containsValue(parameters.platforms, 'Linux_musl_arm64'), eq(parameters.platformGroup, 'all')) }}:
diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml
index bb6789a277c4b..80c88871892e9 100644
--- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml
+++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml
@@ -47,6 +47,13 @@ jobs:
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- (Alpine.312.Amd64)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-20200602002622-e06dc59
+ # Linux musl arm32
+ - ${{ if eq(parameters.platform, 'Linux_musl_arm') }}:
+ - ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ - (Alpine.312.Arm32.Open)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-arm32v7-20200908125213-5bece88
+ - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ - (Alpine.312.Arm32)Ubuntu.1804.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-arm32v7-20200908125213-5bece88
+
# Linux musl arm64
- ${{ if eq(parameters.platform, 'Linux_musl_arm64') }}:
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml
index 619db5a33c99e..3deef33444c41 100644
--- a/eng/pipelines/runtime-official.yml
+++ b/eng/pipelines/runtime-official.yml
@@ -54,6 +54,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
@@ -75,6 +76,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x64
- Windows_NT_arm
@@ -104,6 +106,7 @@ stages:
- Linux_arm64
- Linux_musl_x64
- Browser_wasm
+ # - Linux_musl_arm
# - Linux_musl_arm64
# - Windows_NT_x64 enable once coreclr.dll has a version header: https://github.com/dotnet/runtime/issues/37503
# - Windows_NT_x86
@@ -174,6 +177,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
@@ -215,6 +219,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index 9ae2ba7758381..7c6722fb880f6 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -144,6 +144,7 @@ jobs:
- Linux_x64
- Linux_arm
- Linux_arm64
+ - Linux_musl_arm
- Linux_musl_arm64
- Linux_musl_x64
- Windows_NT_x86
@@ -209,6 +210,7 @@ jobs:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x64
- Windows_NT_x86
@@ -563,6 +565,7 @@ jobs:
buildConfig: Release
platforms:
- Linux_arm
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_arm
- Windows_NT_arm64
@@ -651,6 +654,7 @@ jobs:
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
platforms:
- Linux_arm
+ - Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_arm
diff --git a/src/coreclr/src/.nuget/Directory.Build.props b/src/coreclr/src/.nuget/Directory.Build.props
index 257da02a7ffc9..e44f8de0a11c6 100644
--- a/src/coreclr/src/.nuget/Directory.Build.props
+++ b/src/coreclr/src/.nuget/Directory.Build.props
@@ -166,6 +166,9 @@
arm
+
+ arm
+
arm64
diff --git a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj b/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
index 037a6b102605b..1b1eb74c02a52 100644
--- a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
+++ b/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj
@@ -3,7 +3,7 @@
false
- linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm;
+ linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm;linux-musl-arm
@@ -19,6 +19,7 @@
%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm64.$(Configuration)/x64
%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm64.$(Configuration)/x64
%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm.$(Configuration)/x86
+ %(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm.$(Configuration)/x86
diff --git a/src/installer/pkg/projects/netcoreappRIDs.props b/src/installer/pkg/projects/netcoreappRIDs.props
index 0b3024cf53838..86a934d2b9170 100644
--- a/src/installer/pkg/projects/netcoreappRIDs.props
+++ b/src/installer/pkg/projects/netcoreappRIDs.props
@@ -30,6 +30,9 @@
arm64
+
+ arm
+
arm64
diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
index 230cd39e76d87..aebdd38981496 100644
--- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
+++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json
@@ -7,6 +7,18 @@
"any",
"base"
],
+ "alpine-arm": [
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine-arm64": [
"alpine-arm64",
"alpine",
@@ -44,6 +56,28 @@
"any",
"base"
],
+ "alpine.3.10-arm": [
+ "alpine.3.10-arm",
+ "alpine.3.10",
+ "alpine.3.9-arm",
+ "alpine.3.9",
+ "alpine.3.8-arm",
+ "alpine.3.8",
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.10-arm64": [
"alpine.3.10-arm64",
"alpine.3.10",
@@ -102,6 +136,30 @@
"any",
"base"
],
+ "alpine.3.11-arm": [
+ "alpine.3.11-arm",
+ "alpine.3.11",
+ "alpine.3.10-arm",
+ "alpine.3.10",
+ "alpine.3.9-arm",
+ "alpine.3.9",
+ "alpine.3.8-arm",
+ "alpine.3.8",
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.11-arm64": [
"alpine.3.11-arm64",
"alpine.3.11",
@@ -165,6 +223,32 @@
"any",
"base"
],
+ "alpine.3.12-arm": [
+ "alpine.3.12-arm",
+ "alpine.3.12",
+ "alpine.3.11-arm",
+ "alpine.3.11",
+ "alpine.3.10-arm",
+ "alpine.3.10",
+ "alpine.3.9-arm",
+ "alpine.3.9",
+ "alpine.3.8-arm",
+ "alpine.3.8",
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.12-arm64": [
"alpine.3.12-arm64",
"alpine.3.12",
@@ -226,6 +310,20 @@
"any",
"base"
],
+ "alpine.3.6-arm": [
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.6-arm64": [
"alpine.3.6-arm64",
"alpine.3.6",
@@ -264,6 +362,22 @@
"any",
"base"
],
+ "alpine.3.7-arm": [
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.7-arm64": [
"alpine.3.7-arm64",
"alpine.3.7",
@@ -307,6 +421,24 @@
"any",
"base"
],
+ "alpine.3.8-arm": [
+ "alpine.3.8-arm",
+ "alpine.3.8",
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.8-arm64": [
"alpine.3.8-arm64",
"alpine.3.8",
@@ -355,6 +487,26 @@
"any",
"base"
],
+ "alpine.3.9-arm": [
+ "alpine.3.9-arm",
+ "alpine.3.9",
+ "alpine.3.8-arm",
+ "alpine.3.8",
+ "alpine.3.7-arm",
+ "alpine.3.7",
+ "alpine.3.6-arm",
+ "alpine.3.6",
+ "alpine-arm",
+ "alpine",
+ "linux-musl-arm",
+ "linux-musl",
+ "linux-arm",
+ "linux",
+ "unix-arm",
+ "unix",
+ "any",
+ "base"
+ ],
"alpine.3.9-arm64": [
"alpine.3.9-arm64",
"alpine.3.9",
diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json
index f9fb470a3b638..05205172d7370 100644
--- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json
+++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json
@@ -5,6 +5,12 @@
"linux-musl"
]
},
+ "alpine-arm": {
+ "#import": [
+ "alpine",
+ "linux-musl-arm"
+ ]
+ },
"alpine-arm64": {
"#import": [
"alpine",
@@ -22,6 +28,12 @@
"alpine.3.9"
]
},
+ "alpine.3.10-arm": {
+ "#import": [
+ "alpine.3.10",
+ "alpine.3.9-arm"
+ ]
+ },
"alpine.3.10-arm64": {
"#import": [
"alpine.3.10",
@@ -39,6 +51,12 @@
"alpine.3.10"
]
},
+ "alpine.3.11-arm": {
+ "#import": [
+ "alpine.3.11",
+ "alpine.3.10-arm"
+ ]
+ },
"alpine.3.11-arm64": {
"#import": [
"alpine.3.11",
@@ -56,6 +74,12 @@
"alpine.3.11"
]
},
+ "alpine.3.12-arm": {
+ "#import": [
+ "alpine.3.12",
+ "alpine.3.11-arm"
+ ]
+ },
"alpine.3.12-arm64": {
"#import": [
"alpine.3.12",
@@ -73,6 +97,12 @@
"alpine"
]
},
+ "alpine.3.6-arm": {
+ "#import": [
+ "alpine.3.6",
+ "alpine-arm"
+ ]
+ },
"alpine.3.6-arm64": {
"#import": [
"alpine.3.6",
@@ -90,6 +120,12 @@
"alpine.3.6"
]
},
+ "alpine.3.7-arm": {
+ "#import": [
+ "alpine.3.7",
+ "alpine.3.6-arm"
+ ]
+ },
"alpine.3.7-arm64": {
"#import": [
"alpine.3.7",
@@ -107,6 +143,12 @@
"alpine.3.7"
]
},
+ "alpine.3.8-arm": {
+ "#import": [
+ "alpine.3.8",
+ "alpine.3.7-arm"
+ ]
+ },
"alpine.3.8-arm64": {
"#import": [
"alpine.3.8",
@@ -124,6 +166,12 @@
"alpine.3.8"
]
},
+ "alpine.3.9-arm": {
+ "#import": [
+ "alpine.3.9",
+ "alpine.3.8-arm"
+ ]
+ },
"alpine.3.9-arm64": {
"#import": [
"alpine.3.9",
diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
index 88c01770552ba..eae3576b9c3c9 100644
--- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
+++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props
@@ -15,7 +15,7 @@
linux-musl
- x64;arm64
+ x64;arm;arm64
3.6;3.7;3.8;3.9;3.10;3.11;3.12