Check out llvm sources using the new llvm git monorepo
This updates compiler-rt, libunwind, libcxxabi and libcxx to a newer version, matching the compiler. This will be the official, canonical repo in the future. For the non-dev Dockerfile build, this means that all the llvm based subprojects need to be built in one RUN to avoid storing the llvm checkout in the docker layers.
This commit is contained in:
1 parent
51da9d154c
commit
0f9d9f1986
5 files changed
+34
-105
No files matched your search
+15
-39
@@ -31,46 +31,21 @@ PREFIX="$(cd "$PREFIX" && pwd)"
|
||||
: ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
|
||||
: ${CORES:=4}
|
||||
|
||||
if [ ! -d llvm ]; then
|
||||
if [ ! -d llvm-project ]; then
|
||||
# When cloning master and checking out a pinned old hash, we can't use --depth=1.
|
||||
git clone -b master https://github.com/llvm-mirror/llvm.git
|
||||
cd llvm/tools
|
||||
git clone -b master https://github.com/llvm-mirror/clang.git
|
||||
git clone -b master https://github.com/llvm-mirror/lld.git
|
||||
cd ..
|
||||
set +e
|
||||
# Do the git-svn rebase to populate git-svn information, to make
|
||||
# "clang --version" produce SVN based version numbers.
|
||||
# This is optional - don't error out here if git-svn is unavailable.
|
||||
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
|
||||
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
|
||||
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 ../../..
|
||||
set -e
|
||||
git clone -b master https://github.com/llvm/llvm-project.git
|
||||
CHECKOUT=1
|
||||
fi
|
||||
|
||||
if [ -n "$SYNC" ] || [ -n "$CHECKOUT" ]; then
|
||||
cd llvm
|
||||
cd llvm-project
|
||||
[ -z "$SYNC" ] || git fetch
|
||||
git checkout 66495492c0af53c4597cace26c50f0dce44033fc
|
||||
cd tools/clang
|
||||
[ -z "$SYNC" ] || git fetch
|
||||
git checkout 6fddf7789c74ae74d695dd571024915ad319db1b
|
||||
cd ../lld
|
||||
[ -z "$SYNC" ] || git fetch
|
||||
git checkout 1e90cb9d20d4fcdb5d1448853370e969035d8014
|
||||
cd ../../..
|
||||
git checkout e698958ad8031e0f17202e06f5de53989852bb66
|
||||
cd ..
|
||||
fi
|
||||
|
||||
[ -z "$CHECKOUT_ONLY" ] || exit 0
|
||||
|
||||
if [ -n "$(which ninja)" ]; then
|
||||
CMAKE_GENERATOR="Ninja"
|
||||
NINJA=1
|
||||
@@ -86,12 +61,12 @@ fi
|
||||
|
||||
if [ -n "$HOST" ]; then
|
||||
find_native_tools() {
|
||||
if [ -d llvm/build/bin ]; then
|
||||
echo $(pwd)/llvm/build/bin
|
||||
elif [ -d llvm/build-asserts/bin ]; then
|
||||
echo $(pwd)/llvm/build-asserts/bin
|
||||
elif [ -d llvm/build-noasserts/bin ]; then
|
||||
echo $(pwd)/llvm/build-noasserts/bin
|
||||
if [ -d llvm-project/llvm/build/bin ]; then
|
||||
echo $(pwd)/llvm-project/llvm/build/bin
|
||||
elif [ -d llvm-project/llvm/build-asserts/bin ]; then
|
||||
echo $(pwd)/llvm-project/llvm/build-asserts/bin
|
||||
elif [ -d llvm-project/llvm/build-noasserts/bin ]; then
|
||||
echo $(pwd)/llvm-project/llvm/build-noasserts/bin
|
||||
elif [ -n "$(which llvm-tblgen)" ]; then
|
||||
echo $(dirname $(which llvm-tblgen))
|
||||
fi
|
||||
@@ -130,7 +105,7 @@ if [ -n "$FULL_LLVM" ]; then
|
||||
TOOLCHAIN_ONLY=OFF
|
||||
fi
|
||||
|
||||
cd llvm
|
||||
cd llvm-project/llvm
|
||||
mkdir -p $BUILDDIR
|
||||
cd $BUILDDIR
|
||||
cmake \
|
||||
@@ -138,6 +113,7 @@ cmake \
|
||||
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_ENABLE_ASSERTIONS=$ASSERTS \
|
||||
-DLLVM_ENABLE_PROJECTS="clang;lld" \
|
||||
-DLLVM_TARGETS_TO_BUILD="ARM;AArch64;X86" \
|
||||
-DLLVM_INSTALL_TOOLCHAIN_ONLY=$TOOLCHAIN_ONLY \
|
||||
-DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;llvm-profdata;llvm-addr2line" \
|
||||
|
||||
Reference in new issue
Block a user