built-llvm: Add options for doing a stage2 build, and for building with LTO
This commit is contained in:
1 parent
84fc501cf8
commit
4012843f3e
1 file changed
+31
-4
+31
-4
@@ -18,18 +18,31 @@ set -e
|
|||||||
|
|
||||||
: ${LLVM_VERSION:=llvmorg-11.0.0}
|
: ${LLVM_VERSION:=llvmorg-11.0.0}
|
||||||
ASSERTS=OFF
|
ASSERTS=OFF
|
||||||
BUILDDIR=build
|
|
||||||
unset HOST
|
unset HOST
|
||||||
|
BUILDDIR="build"
|
||||||
|
ASSERTSSUFFIX=""
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--disable-asserts)
|
--disable-asserts)
|
||||||
ASSERTS=OFF
|
ASSERTS=OFF
|
||||||
BUILDDIR=build
|
ASSERTSSUFFIX=""
|
||||||
;;
|
;;
|
||||||
--enable-asserts)
|
--enable-asserts)
|
||||||
ASSERTS=ON
|
ASSERTS=ON
|
||||||
BUILDDIR=build-asserts
|
ASSERTSSUFFIX="-asserts"
|
||||||
|
;;
|
||||||
|
--stage2)
|
||||||
|
STAGE2=1
|
||||||
|
BUILDDIR="$BUILDDIR-stage2"
|
||||||
|
;;
|
||||||
|
--thinlto)
|
||||||
|
LTO="thin"
|
||||||
|
BUILDDIR="$BUILDDIR-thinlto"
|
||||||
|
;;
|
||||||
|
--lto)
|
||||||
|
LTO="full"
|
||||||
|
BUILDDIR="$BUILDDIR-lto"
|
||||||
;;
|
;;
|
||||||
--full-llvm)
|
--full-llvm)
|
||||||
FULL_LLVM=1
|
FULL_LLVM=1
|
||||||
@@ -43,9 +56,10 @@ while [ $# -gt 0 ]; do
|
|||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
BUILDDIR="$BUILDDIR$ASSERTSSUFFIX"
|
||||||
if [ -z "$CHECKOUT_ONLY" ]; then
|
if [ -z "$CHECKOUT_ONLY" ]; then
|
||||||
if [ -z "$PREFIX" ]; then
|
if [ -z "$PREFIX" ]; then
|
||||||
echo $0 [--enable-asserts] [--full-llvm] [--host=triple] dest
|
echo $0 [--enable-asserts] [--stage2] [--thinlto] [--lto] [--full-llvm] [--host=triple] dest
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -131,6 +145,19 @@ if [ -n "$HOST" ]; then
|
|||||||
CMAKEFLAGS="$CMAKEFLAGS -DCLANG_DEFAULT_CXX_STDLIB=libc++"
|
CMAKEFLAGS="$CMAKEFLAGS -DCLANG_DEFAULT_CXX_STDLIB=libc++"
|
||||||
CMAKEFLAGS="$CMAKEFLAGS -DCLANG_DEFAULT_LINKER=lld"
|
CMAKEFLAGS="$CMAKEFLAGS -DCLANG_DEFAULT_LINKER=lld"
|
||||||
BUILDDIR=$BUILDDIR-$HOST
|
BUILDDIR=$BUILDDIR-$HOST
|
||||||
|
elif [ -n "$STAGE2" ]; then
|
||||||
|
# Build using an earlier built and installed clang in the target directory
|
||||||
|
export PATH="$PREFIX/bin:$PATH"
|
||||||
|
CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_C_COMPILER=clang"
|
||||||
|
CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_CXX_COMPILER=clang++"
|
||||||
|
if [ "$(uname)" != "Darwin" ]; then
|
||||||
|
# Current lld isn't yet properly usable on macOS
|
||||||
|
CMAKEFLAGS="$CMAKEFLAGS -DLLVM_USE_LINKER=lld"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$LTO" ]; then
|
||||||
|
CMAKEFLAGS="$CMAKEFLAGS -DLLVM_ENABLE_LTO=$LTO"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TOOLCHAIN_ONLY=ON
|
TOOLCHAIN_ONLY=ON
|
||||||
|
|||||||
Reference in new issue
Block a user