about summary refs log tree commit diff
path: root/src/ci
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-01-31 16:21:39 +0000
committerbors <bors@rust-lang.org>2019-01-31 16:21:39 +0000
commit63505b84a6fb0fdb6a2f2a2a884556aeca2326d4 (patch)
treef044db5e9aca7fe1d2f7a9250418cb65c5aeb3bd /src/ci
parent8a0e5faec7f62e3cfd88d6625ce213d93b061305 (diff)
parentb025557e9703f2e8a52789ea50bcb7fe060fac54 (diff)
downloadrust-63505b84a6fb0fdb6a2f2a2a884556aeca2326d4.tar.gz
rust-63505b84a6fb0fdb6a2f2a2a884556aeca2326d4.zip
Auto merge of #57914 - jethrogb:jb/sgx-unwind-version, r=alexcrichton
SGX target: clean up dist builder, update libunwind

This incorporates https://github.com/fortanix/llvm-project/pull/4

Fixes https://github.com/fortanix/rust-sgx/issues/65

r? @alexcrichton
Diffstat (limited to 'src/ci')
-rw-r--r--src/ci/docker/dist-various-2/Dockerfile2
-rwxr-xr-xsrc/ci/docker/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh35
-rw-r--r--src/ci/docker/dist-various-2/shared.sh15
-rwxr-xr-xsrc/ci/init_repo.sh7
-rw-r--r--src/ci/shared.sh1
5 files changed, 35 insertions, 25 deletions
diff --git a/src/ci/docker/dist-various-2/Dockerfile b/src/ci/docker/dist-various-2/Dockerfile
index 952c1ba2ccb..97892405b8e 100644
--- a/src/ci/docker/dist-various-2/Dockerfile
+++ b/src/ci/docker/dist-various-2/Dockerfile
@@ -32,7 +32,7 @@ RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
 COPY dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
 # We pass the commit id of the port of LLVM's libunwind to the build script.
 # Any update to the commit id here, should cause the container image to be re-built from this point on.
-RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh "13fad13f8ea83a8da58d04a5faa45943151b3398"
+RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh "53b586346f2c7870e20b170decdc30729d97c42b"
 
 COPY scripts/sccache.sh /scripts/
 RUN sh /scripts/sccache.sh
diff --git a/src/ci/docker/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh b/src/ci/docker/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh
index 76921316df2..725ec341b94 100755
--- a/src/ci/docker/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh
+++ b/src/ci/docker/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh
@@ -12,8 +12,7 @@ target="x86_64-fortanix-unknown-sgx"
 url="https://github.com/fortanix/llvm-project/archive/${1}.tar.gz"
 repo_name="llvm-project"
 
-install_prereq()
-{
+install_prereq() {
     apt-get update
     apt-get install -y --no-install-recommends \
             build-essential \
@@ -22,36 +21,32 @@ install_prereq()
             git
 }
 
-# Clone Fortanix's port of llvm-project to build libunwind that would link with this target.
-# The below method to download a single commit from llvm-project is based on fetch_submodule
-# from init_repo.sh
-fetch_llvm_commit()
-{
-    cached="download-${repo_name}.tar.gz"
-    curl -f -sSL -o ${cached} ${url}
-    tar -xvzf ${cached}
-    mkdir "./${repo_name}" && tar -xf ${cached} -C ${repo_name} --strip-components 1
-}
-
-build_unwind()
-{
+build_unwind() {
+    set -x
     dir_name="${target}_temp"
-    rm -rf "./${dir_name}"
+    rm -rf ${dir_name}
     mkdir -p ${dir_name}
-    cd ${dir_name}
+    pushd ${dir_name}
 
-    retry fetch_llvm_commit
+    # Clone Fortanix's fork of llvm-project which has a port of libunwind
+    fetch_github_commit_archive "$repo_name" "$url"
     cd "${repo_name}/libunwind"
 
     # Build libunwind
     mkdir -p build
     cd build
-    cmake -DCMAKE_BUILD_TYPE="RELEASE" -DRUST_SGX=1 -G "Unix Makefiles" -DLLVM_PATH=../../llvm/ ../
+    cmake -DCMAKE_BUILD_TYPE="RELEASE" -DRUST_SGX=1 -G "Unix Makefiles" \
+        -DLLVM_ENABLE_WARNINGS=1 -DLIBUNWIND_ENABLE_WERROR=1 -DLIBUNWIND_ENABLE_PEDANTIC=0 \
+        -DLLVM_PATH=../../llvm/ ../
     make unwind_static
     install -D "lib/libunwind.a" "/${target}/lib/libunwind.a"
+
+    popd
     rm -rf ${dir_name}
+
+    { set +x; } 2>/dev/null
 }
 
 set -x
 hide_output install_prereq
-hide_output build_unwind
+build_unwind
diff --git a/src/ci/docker/dist-various-2/shared.sh b/src/ci/docker/dist-various-2/shared.sh
index fb917b0510e..7abace65b9c 100644
--- a/src/ci/docker/dist-various-2/shared.sh
+++ b/src/ci/docker/dist-various-2/shared.sh
@@ -1,5 +1,5 @@
 hide_output() {
-  set +x
+  { set +x; } 2>/dev/null
   on_err="
 echo ERROR: An error was encountered with the build.
 cat /tmp/build.log
@@ -14,6 +14,7 @@ exit 1
   set -x
 }
 
+# Copied from ../../shared.sh
 function retry {
   echo "Attempting with retry:" "$@"
   local n=1
@@ -31,3 +32,15 @@ function retry {
     }
   done
 }
+
+# Copied from ../../init_repo.sh
+function fetch_github_commit_archive {
+    local module=$1
+    local cached="download-${module//\//-}.tar.gz"
+    retry sh -c "rm -f $cached && \
+        curl -f -sSL -o $cached $2"
+    mkdir $module
+    touch "$module/.git"
+    tar -C $module --strip-components=1 -xf $cached
+    rm $cached
+}
diff --git a/src/ci/init_repo.sh b/src/ci/init_repo.sh
index 6de433fd4c2..3dfd3381576 100755
--- a/src/ci/init_repo.sh
+++ b/src/ci/init_repo.sh
@@ -34,11 +34,12 @@ if grep -q RUST_RELEASE_CHANNEL=beta src/ci/run.sh; then
   git fetch origin --unshallow beta master
 fi
 
-function fetch_submodule {
+# Duplicated in docker/dist-various-2/shared.sh
+function fetch_github_commit_archive {
     local module=$1
     local cached="download-${module//\//-}.tar.gz"
     retry sh -c "rm -f $cached && \
-        curl -sSL -o $cached $2"
+        curl -f -sSL -o $cached $2"
     mkdir $module
     touch "$module/.git"
     tar -C $module --strip-components=1 -xf $cached
@@ -58,7 +59,7 @@ for i in ${!modules[@]}; do
         git rm $module
         url=${urls[$i]}
         url=${url/\.git/}
-        fetch_submodule $module "$url/archive/$commit.tar.gz" &
+        fetch_github_commit_archive $module "$url/archive/$commit.tar.gz" &
         continue
     else
         use_git="$use_git $module"
diff --git a/src/ci/shared.sh b/src/ci/shared.sh
index 4a49f3441a4..3ba64ad4120 100644
--- a/src/ci/shared.sh
+++ b/src/ci/shared.sh
@@ -5,6 +5,7 @@
 # marked as an executable file in git.
 
 # See http://unix.stackexchange.com/questions/82598
+# Duplicated in docker/dist-various-2/shared.sh
 function retry {
   echo "Attempting with retry:" "$@"
   local n=1