-build_unwind() {
- set -x
- dir_name="${target}_temp"
- rm -rf ${dir_name}
- mkdir -p ${dir_name}
- pushd ${dir_name}
-
- # 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
- target_CC="CC_${target//-/_}"
- target_CXX="CXX_${target//-/_}"
- target_CFLAGS="CFLAGS_${target//-/_}"
- target_CXXFLAGS="CXXFLAGS_${target//-/_}"
- cmake -DCMAKE_BUILD_TYPE="RELEASE" -DRUST_SGX=1 -G "Unix Makefiles" \
- -DCMAKE_C_COMPILER="${!target_CC}" -DCMAKE_CXX_COMPILER="${!target_CXX}" \
- -DCMAKE_C_FLAGS="${!target_CFLAGS}" -DCMAKE_CXX_FLAGS="${!target_CXXFLAGS}" \
- -DCMAKE_C_COMPILER_TARGET=$target -DCMAKE_CXX_COMPILER_TARGET=$target \
- -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