summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarret Shook <jashoo@microsoft.com>2019-02-12 14:38:27 -0800
committerGitHub <noreply@github.com>2019-02-12 14:38:27 -0800
commitde2fe10e6f53dd4f05f04e9ddad0ccd7619829a0 (patch)
treeab16363e2fd8908deb3b6dc0950a68c98f9fdda4
parent8ad7d5e57e0eb0308453895693a996f5a93c8e08 (diff)
downloadcoreclr-de2fe10e6f53dd4f05f04e9ddad0ccd7619829a0.tar.gz
coreclr-de2fe10e6f53dd4f05f04e9ddad0ccd7619829a0.tar.bz2
coreclr-de2fe10e6f53dd4f05f04e9ddad0ccd7619829a0.zip
Enable arm64 linux musl builds (#22495)
* Enable arm64 linux musl builds Note that -clang5.0 is required to be passed. * Fix syntax error * Pass clang arg to build-test.sh
-rw-r--r--Documentation/building/linux-instructions.md17
-rw-r--r--azure-pipelines.yml4
-rw-r--r--eng/build-job.yml3
-rw-r--r--eng/platform-matrix.yml21
-rw-r--r--eng/test-job.yml12
5 files changed, 48 insertions, 9 deletions
diff --git a/Documentation/building/linux-instructions.md b/Documentation/building/linux-instructions.md
index 9cf5f24957..9b378f1b46 100644
--- a/Documentation/building/linux-instructions.md
+++ b/Documentation/building/linux-instructions.md
@@ -45,14 +45,15 @@ Note that instructions on building the crossrootfs location can be found at http
Docker Images
=============
-| OS | Target Arch | Image location | crossrootfs location |
-| -------------- | ----------- | -------------- | -------------------- |
-| Ubuntu 16.04 | x64 | `microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-c103199-20180628134544` | - |
-| Alpine | x64 | `microsoft/dotnet-buildtools-prereqs:alpine-3.6-e2521f8-20180716231200` | - |
-| CentOS 6 (build for RHEL 6) | x64 | `microsoft/dotnet-buildtools-prereqs:centos-6-376e1a3-20174311014331` | - |
-| CentOS 7 (build for RHEL 7) | x64 | `microsoft/dotnet-buildtools-prereqs:centos-7-d485f41-20173404063424` | - |
-| Ubuntu 14.04 | arm32(armhf) | `microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180426002420` | `/crossrootfs/arm` |
-| Ubuntu 16.04 | arm64 (aarch64) | `microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921` | `/crossrootfs/arm64` |
+| OS | Target Arch | Image location | crossrootfs location | Clang Version |
+| -------------- | ----------- | -------------- | -------------------- | ------------- |
+| Ubuntu 16.04 | x64 | `microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-c103199-20180628134544` | - | - |
+| Alpine | x64 | `microsoft/dotnet-buildtools-prereqs:alpine-3.6-e2521f8-20180716231200` | - | - |
+| CentOS 6 (build for RHEL 6) | x64 | `microsoft/dotnet-buildtools-prereqs:centos-6-376e1a3-20174311014331` | - | - |
+| CentOS 7 (build for RHEL 7) | x64 | `microsoft/dotnet-buildtools-prereqs:centos-7-d485f41-20173404063424` | - | - |
+| Ubuntu 14.04 | arm32(armhf) | `microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180426002420` | `/crossrootfs/arm` | - |
+| Ubuntu 16.04 | arm64 (arm64v8) | `microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921` | `/crossrootfs/arm64` | - |
+| Alpine | arm64 (arm64v8) | `microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917` | `/crossrootfs/arm64` | -clang5.0 |
Environment
===========
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 9edfa280bd..77a2d010b1 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -17,6 +17,9 @@ resources:
- container: musl_x64_build_image
image: microsoft/dotnet-buildtools-prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247
+ - container: musl_arm64_build_image
+ image: microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917
+
- container: centos7_x64_build_image
image: microsoft/dotnet-buildtools-prereqs:centos-7-d485f41-20173404063424
@@ -271,6 +274,7 @@ jobs:
- build_Linux_arm_release
- build_Linux_arm64_release
- build_Linux_musl_x64_release
+ - build_Linux_musl_arm64_release
- build_Linux_rhel6_x64_release
- build_Linux_x64_release
- build_OSX_x64_release
diff --git a/eng/build-job.yml b/eng/build-job.yml
index 782f77c3ba..f5d7b2293b 100644
--- a/eng/build-job.yml
+++ b/eng/build-job.yml
@@ -56,6 +56,9 @@ jobs:
- ${{ if eq(parameters.osGroup, 'FreeBSD') }}:
- name: clangArg
value: '-clang6.0'
+ - ${{ if and(eq(parameters.osIdentifier, 'Linux_musl'), eq(parameters.archType, 'arm64')) }}:
+ - name: clangArg
+ value: '-clang5.0'
- ${{ if and(ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
# Variables used to publish packages to blob feed
- name: dotnetfeedUrl
diff --git a/eng/platform-matrix.yml b/eng/platform-matrix.yml
index dd41bba394..e0c3a14477 100644
--- a/eng/platform-matrix.yml
+++ b/eng/platform-matrix.yml
@@ -79,6 +79,27 @@ jobs:
- Alpine.38.Amd64
${{ insert }}: ${{ parameters.jobParameters }}
+# Linux musl arm64
+
+- template: ${{ parameters.jobTemplate }}
+ parameters:
+ buildConfig: ${{ parameters.buildConfig }}
+ archType: arm64
+ osGroup: Linux
+ osIdentifier: Linux_musl
+ containerName: musl_arm64_build_image
+ helixQueues:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ # TODO: there are no Alpine arm64 queues https://github.com/dotnet/core-eng/issues/5206
+ asString: ''
+ asArray: []
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ # TODO: there are no Alpine arm64 queues https://github.com/dotnet/core-eng/issues/5206
+ asString: ''
+ asArray: []
+ crossrootfsDir: '/crossrootfs/arm64'
+ ${{ insert }}: ${{ parameters.jobParameters }}
+
# RHEL 6
- template: ${{ parameters.jobTemplate }}
diff --git a/eng/test-job.yml b/eng/test-job.yml
index 2026fd0a64..4c8d9978b7 100644
--- a/eng/test-job.yml
+++ b/eng/test-job.yml
@@ -61,6 +61,16 @@ jobs:
- name: crossgenArg
value: ''
+ - name: clangArg
+ value: ''
+ # Our FreeBSD doesn't yet detect available clang versions, so pass it explicitly.
+ - ${{ if eq(parameters.osGroup, 'FreeBSD') }}:
+ - name: clangArg
+ value: '-clang6.0'
+ - ${{ if and(eq(parameters.osIdentifier, 'Linux_musl'), eq(parameters.archType, 'arm64')) }}:
+ - name: clangArg
+ value: '-clang5.0'
+
# TODO: Enable crossgen in build-test.sh. It currently doesn't
# accept a crossgen arg, so disable the macos/linux crossgen test
# build jobs.
@@ -106,7 +116,7 @@ jobs:
# Build tests
# TODO: enable crossgen in build-test.sh
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - script: ./build-test.sh $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(crossgenArg)
+ - script: ./build-test.sh $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(crossgenArg) $(clangArg)
displayName: Build tests
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- script: build-test.cmd $(buildConfig) $(archType) $(priorityArg) $(crossgenArg)