Skip to content

Commit

Permalink
Clean up build-x86_64-fortanix-unknown-sgx-toolchain.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
Jethro Beekman committed Jan 26, 2019
1 parent 9df043b commit 7e7a43b
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -22,34 +21,30 @@ 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
Expand Down
15 changes: 14 additions & 1 deletion src/ci/docker/dist-various-2/shared.sh
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -14,6 +14,7 @@ exit 1
set -x
}

# Copied from ../../shared.sh
function retry {
echo "Attempting with retry:" "$@"
local n=1
Expand All @@ -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
}
7 changes: 4 additions & 3 deletions src/ci/init_repo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand Down
1 change: 1 addition & 0 deletions src/ci/shared.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 7e7a43b

Please sign in to comment.