From 8c15cb4544cf9e0cee0ab49211e113f100a0690f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Mon, 15 Jan 2018 00:27:01 +0200 Subject: [PATCH] Allow syncing the source to the pinned version by setting SYNC=1 when running the build scripts This should allow updating an existing build to the desired, pinned version. --- build-compiler-rt.sh | 10 +++++++--- build-libcxx.sh | 24 +++++++++++++++--------- build-llvm.sh | 15 +++++++++++++-- build-mingw-w64.sh | 9 ++++++--- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/build-compiler-rt.sh b/build-compiler-rt.sh index 4824dc2..e158add 100755 --- a/build-compiler-rt.sh +++ b/build-compiler-rt.sh @@ -15,9 +15,7 @@ export PATH=$PREFIX/bin:$PATH if [ ! -d compiler-rt ]; then git clone -b master https://github.com/llvm-mirror/compiler-rt.git - cd compiler-rt - git checkout 1d871d6cd3fed01cd50dd63e743bd2ea6e65eab6 - cd .. + CHECKOUT=1 fi # Add a symlink for i386 -> i686; we normally name the toolchain @@ -26,6 +24,12 @@ fi ln -sf i686-w64-mingw32 $PREFIX/i386-w64-mingw32 cd compiler-rt + +if [ -n "$SYNC" ] || [ -n "$CHECKOUT" ]; then + [ -z "$SYNC" ] || git fetch + git checkout 1d871d6cd3fed01cd50dd63e743bd2ea6e65eab6 +fi + for arch in $ARCHS; do buildarchname=$arch libarchname=$arch diff --git a/build-libcxx.sh b/build-libcxx.sh index 7137e68..9784d0c 100755 --- a/build-libcxx.sh +++ b/build-libcxx.sh @@ -14,27 +14,25 @@ export PATH=$PREFIX/bin:$PATH if [ ! -d libunwind ]; then git clone -b master https://github.com/llvm-mirror/libunwind.git - cd libunwind - git checkout 2ddcf2461daa5d61c543474aed06b12a8b9ad816 - cd .. + CHECKOUT_LIBUNWIND=1 fi if [ ! -d libcxxabi ]; then git clone -b master https://github.com/llvm-mirror/libcxxabi.git - cd libcxxabi - git checkout 05ba3281482304ae8de31123a594972a495da06d - cd .. + CHECKOUT_LIBCXXABI=1 fi if [ ! -d libcxx ]; then git clone -b master https://github.com/llvm-mirror/libcxx.git - cd libcxx - git checkout 16eb426933cdb1c54fd6fbba5fc06cc5a4ca52b3 - cd .. + CHECKOUT_LIBCXX=1 fi LIBCXX=$(pwd)/libcxx MERGE_ARCHIVES=$(pwd)/merge-archives.sh cd libunwind +if [ -n "$SYNC" ] || [ -n "$CHECKOUT_LIBUNWIND" ]; then + [ -z "$SYNC" ] || git fetch + git checkout 2ddcf2461daa5d61c543474aed06b12a8b9ad816 +fi for arch in $ARCHS; do mkdir -p build-$arch cd build-$arch @@ -69,6 +67,10 @@ done cd .. cd libcxxabi +if [ -n "$SYNC" ] || [ -n "$CHECKOUT_LIBCXXABI" ]; then + [ -z "$SYNC" ] || git fetch + git checkout 05ba3281482304ae8de31123a594972a495da06d +fi for arch in $ARCHS; do mkdir -p build-$arch cd build-$arch @@ -99,6 +101,10 @@ done cd .. cd libcxx +if [ -n "$SYNC" ] || [ -n "$CHECKOUT_LIBCXX" ]; then + [ -z "$SYNC" ] || git fetch + git checkout 16eb426933cdb1c54fd6fbba5fc06cc5a4ca52b3 +fi for arch in $ARCHS; do mkdir -p build-$arch cd build-$arch diff --git a/build-llvm.sh b/build-llvm.sh index be0f898..837be64 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -22,16 +22,27 @@ if [ ! -d llvm ]; then git svn init https://llvm.org/svn/llvm-project/llvm/trunk git config svn-remote.svn.fetch :refs/remotes/origin/master git svn rebase -l - git checkout c8f103e52b297f3e3e0ed1756e11373c68af3566 cd tools/clang git svn init https://llvm.org/svn/llvm-project/cfe/trunk git config svn-remote.svn.fetch :refs/remotes/origin/master git svn rebase -l - git checkout fdd60aee9c0ea40fa0423d6e43821f53d07961d5 cd ../lld git svn init https://llvm.org/svn/llvm-project/lld/trunk git config svn-remote.svn.fetch :refs/remotes/origin/master git svn rebase -l + cd ../../.. + CHECKOUT=1 +fi + +if [ -n "$SYNC" ] || [ -n "$CHECKOUT" ]; then + cd llvm + [ -z "$SYNC" ] || git fetch + git checkout c8f103e52b297f3e3e0ed1756e11373c68af3566 + cd tools/clang + [ -z "$SYNC" ] || git fetch + git checkout fdd60aee9c0ea40fa0423d6e43821f53d07961d5 + cd ../lld + [ -z "$SYNC" ] || git fetch git checkout f4208caae12f685c06657aa6e2b9b1eda4adcdb4 cd ../../.. fi diff --git a/build-mingw-w64.sh b/build-mingw-w64.sh index 3949c91..79750d2 100755 --- a/build-mingw-w64.sh +++ b/build-mingw-w64.sh @@ -14,13 +14,16 @@ export PATH=$PREFIX/bin:$PATH if [ ! -d mingw-w64 ]; then git clone git://git.code.sf.net/p/mingw-w64/mingw-w64 - cd mingw-w64 - git checkout 66fab9591c250ade399e9fe91ceda239a735649c - cd .. + CHECKOUT=1 fi cd mingw-w64 +if [ -n "$SYNC" ] || [ -n "$CHECKOUT" ]; then + [ -z "$SYNC" ] || git fetch + git checkout 66fab9591c250ade399e9fe91ceda239a735649c +fi + if [ -z "$NOHEADERS" ]; then # TODO: Only install if they have changed? Otherwise this forces the CRT # to be rebuilt even if headers haven't changed. Currently set $NOHEADERS