summaryrefslogtreecommitdiff
path: root/tcwg-llvm-release.sh
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2019-07-23 12:52:29 +0200
committerDiana Picus <diana.picus@linaro.org>2019-08-01 12:06:56 +0000
commitf805415bad08bc25fd0c05775c4109ea0b6cb550 (patch)
tree798cceac1e23bf7a781d54d092662789ee0a7ee9 /tcwg-llvm-release.sh
parent9f1f21fc5dff273cd0ec16487f03c12fa6107940 (diff)
tcwg-llvm-release.sh: Use ninja by default
Make it possible to use ninja for the release and make it the default. Add a command line parameter --use-ninja that we can set to false for older releases (< 9.0.0) that can't be built with ninja. Also limit the number of link jobs so we don't end up using too much memory on ARM. This uses the LINKJOBS value computed by tcwg-llvm-common.sh and is the main reason why we wanted to use ninja in the release job. Change-Id: I7f4f0f3c67c44490159cbd7894c6c511cd11bf79
Diffstat (limited to 'tcwg-llvm-release.sh')
-rwxr-xr-xtcwg-llvm-release.sh15
1 files changed, 13 insertions, 2 deletions
diff --git a/tcwg-llvm-release.sh b/tcwg-llvm-release.sh
index 5fe79141..7aa0e310 100755
--- a/tcwg-llvm-release.sh
+++ b/tcwg-llvm-release.sh
@@ -19,7 +19,8 @@ SYN_BUILDJOBS="--buildjobs=N (def. CPUS)"
SYN_TOOLCHAIN="--toolchain=http://url/for/tarball"
SYN_TOOLCHAIN_FILE="--toolchain-file=<file-name> (file name to copy the produced toolchain file name)"
SYN_COMPILER="--compiler=clang|gcc"
-SYNTAX="$0 $SYN_WORKSPACE $SYN_RELEASE $SYN_CANDIDATE $SYN_TOOLCHAIN $SYN_TOOLCHAIN_FILE $SYN_COMPILER"
+SYN_USENINJA="--use-ninja=true|false"
+SYNTAX="$0 $SYN_WORKSPACE $SYN_RELEASE $SYN_CANDIDATE $SYN_TOOLCHAIN $SYN_TOOLCHAIN_FILE $SYN_COMPILER $SYN_USENINJA"
# Environment Variables and default values
WORKSPACE=$(pwd)
@@ -32,6 +33,7 @@ CPUS=$(nproc --all)
BUILDJOBS=$CPUS
TOOLCHAIN=""
TOOLCHAIN_FILE=""
+USENINJA="-use-ninja"
# Command line parsing
while [ "$#" -gt 0 ]; do
@@ -107,6 +109,11 @@ while [ "$#" -gt 0 ]; do
exit 1
fi
shift ;;
+ --use-ninja)
+ if [ "$VAL" == "false" ]; then
+ USENINJA=""
+ fi
+ shift ;;
*)
echo "ERROR: Invalid argument '$1'"
echo "Syntax: $SYNTAX"
@@ -136,9 +143,13 @@ fi
PLATFORM=$(uname -m)
OPENMP=""
TARGET="$PLATFORM-linux-gnu"
+LIMITLINKJOBS=""
if echo "$PLATFORM" | grep -qi "armv7"; then
TARGET="armv7a-linux-gnueabihf"
OPENMP="-no-openmp"
+ if [ x"$USENINJA" != x"" ]; then
+ LIMITLINKJOBS="-configure-flags -DLLVM_PARALLEL_LINK_JOBS=$LINKJOBS"
+ fi
elif ! echo "$PLATFORM" | grep -qi "aarch64" && \
! echo "$PLATFORM" | grep -qi "x86_64"; then
echo "ERROR: Don't recognise PLATFORM $PLATFORM"
@@ -173,7 +184,7 @@ cd "$WORKSPACE" && chmod +x $RELEASE_SCRIPT
# - we want to push the binary public on success or failre
result=0
(
- cd "$WORKSPACE" && LC_ALL=C ./$RELEASE_SCRIPT -release $RELEASE $RCCALL -triple $TARGET -j$BUILDJOBS $OPENMP |& tee "$LOGBASE-release.$LOGEXT"
+ cd "$WORKSPACE" && LC_ALL=C ./$RELEASE_SCRIPT -release $RELEASE $RCCALL -triple $TARGET -j$BUILDJOBS $OPENMP $USENINJA $LIMITLINKJOBS |& tee "$LOGBASE-release.$LOGEXT"
) &
wait $! || result=$?