Update docker images for arm32 (#17422)
authorSergey Andreenko <seandree@microsoft.com>
Fri, 6 Apr 2018 03:09:46 +0000 (20:09 -0700)
committerGitHub <noreply@github.com>
Fri, 6 Apr 2018 03:09:46 +0000 (20:09 -0700)
* mark places that we need to change

* update dockumentation for arm

* update build.sh for arm

* update dockers' versions

* fix build.sh

* change default version for arm/armem/arm64

Documentation/building/linux-instructions.md
build.sh
buildpipeline/pipelines.json
netci.groovy

index e3738cd..98222c5 100644 (file)
@@ -37,6 +37,8 @@ In order to get clang-3.9, llvm-3.9 and lldb-3.9 on Ubuntu 14.04, we need to add
     ~$ echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee /etc/apt/sources.list.d/llvm.list
     ~$ wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
     ~$ sudo apt-get update
+
+Note: arm clang has a known issue with CompareExchange (#15074), so for arm you have to use clang-4.0 or higher, the official build uses clang-5.0.
     
 For other version of Debian/Ubuntu, please visit http://apt.llvm.org/.
 
index d43a790..dcb16a9 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -150,10 +150,10 @@ check_prereqs()
     hash cmake 2>/dev/null || { echo >&2 "Please install cmake before running this script"; exit 1; }
 
 
-    # Minimum required version of clang is version 3.9 for arm/armel cross build
+    # Minimum required version of clang is version 4.0 for arm/armel cross build
     if [[ $__CrossBuild == 1 && ("$__BuildArch" == "arm" || "$__BuildArch" == "armel") ]]; then
-        if ! [[ "$__ClangMajorVersion" -gt "3" || ( $__ClangMajorVersion == 3 && $__ClangMinorVersion == 9 ) ]]; then
-            echo "Please install clang3.9 or latest for arm/armel cross build"; exit 1;
+        if ! [[ "$__ClangMajorVersion" -ge "4" ]]; then
+            echo "Please install clang4.0 or latest for arm/armel cross build"; exit 1;
         fi
     fi
 
@@ -894,8 +894,13 @@ fi
 
 # Set default clang version
 if [[ $__ClangMajorVersion == 0 && $__ClangMinorVersion == 0 ]]; then
-    __ClangMajorVersion=3
-    __ClangMinorVersion=9
+       if [[ "$__BuildArch" == "arm" || "$__BuildArch" == "armel" ]]; then
+               __ClangMajorVersion=5
+               __ClangMinorVersion=0
+       else
+               __ClangMajorVersion=3
+               __ClangMinorVersion=9
+       fi
 fi
 
 if [[ "$__BuildArch" == "armel" ]]; then
index 4c76859..49e3763 100644 (file)
         {
           "Name": "DotNet-CoreClr-Trusted-Linux-Crossbuild",
           "Parameters": {
-            "DockerTag": "ubuntu-14.04-cross-e435274-20180323032140",
+            "DockerTag": "ubuntu-14.04-cross-e435274-20180405193556",
             "Architecture": "arm",
             "Rid": "linux",
             "CrossArchitecture": "x86",
index 2984308..c4994c9 100755 (executable)
@@ -968,10 +968,10 @@ def static getDockerImageName(def architecture, def os, def isBuild) {
         }
         else if (architecture == 'armem') {
             if (os == 'Ubuntu') {
-                return "microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-0cd4667-20172211042239"
+                return "microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180405193556"
             }
             else if (os == 'Ubuntu16.04') {
-                return "microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-ef0ac75-20175511035548"
+                return "microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180404203310"
             }
             else if (os == 'Tizen') {
                 return "hqueue/dotnetcore:ubuntu1404_cross_prereqs_v4-tizen_rootfs"
@@ -979,7 +979,7 @@ def static getDockerImageName(def architecture, def os, def isBuild) {
         }
         else if (architecture == 'arm') {
             if (os == 'Ubuntu') {
-                return "microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180323032140"
+                return "microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180405193556"
             }
         }
     }