X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=scripts%2Fcommon%2Fscan-build.sh;h=478fff1f5045b7d37728ec324621e7bb12f709ea;hb=97ec8412e4b985a0118c8ec42b71f152ce07dd1b;hp=3b14ea7805f5aa8737f4c5d0d6928871cc25347e;hpb=fa43a231fd428b7bcfcb4c27801d53eff04fd074;p=lttng-ci.git diff --git a/scripts/common/scan-build.sh b/scripts/common/scan-build.sh index 3b14ea7..478fff1 100755 --- a/scripts/common/scan-build.sh +++ b/scripts/common/scan-build.sh @@ -1,4 +1,4 @@ -#!/bin/bash -exu +#!/bin/bash # # Copyright (C) 2015 Jonathan Rajotte-Julien # Copyright (C) 2019 Michael Jeanson @@ -16,15 +16,28 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +set -exu -# do not exit immediately if any command fails -set +e +# Required variables +WORKSPACE=${WORKSPACE:-} + +DEPS_INC="$WORKSPACE/deps/build/include" +DEPS_LIB="$WORKSPACE/deps/build/lib" +DEPS_PKGCONFIG="$DEPS_LIB/pkgconfig" +DEPS_BIN="$WORKSPACE/deps/build/bin" + +export PATH="$DEPS_BIN:$PATH" +export LD_LIBRARY_PATH="$DEPS_LIB:${LD_LIBRARY_PATH:-}" +export PKG_CONFIG_PATH="$DEPS_PKGCONFIG" +export CPPFLAGS="-I$DEPS_INC" +export LDFLAGS="-L$DEPS_LIB" SRCDIR="$WORKSPACE/src/$PROJECT_NAME" TMPDIR="$WORKSPACE/tmp" NPROC=$(nproc) -export CFLAGS="-O0 -g -DDEBUG" +export CFLAGS="-O0 -g" +export CXXFLAGS="-O0 -g" # Directory to archive the scan-build report SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive" @@ -35,8 +48,12 @@ mkdir -p "$TMPDIR" export TMPDIR +# Builds configured with '-Werror=missing-include-dirs' if this directory +# doesn't exist +mkdir -p "$DEPS_INC" + # temp directory to store the scan-build report -SCAN_BUILD_TMPDIR=$( mktemp -d ) +SCAN_BUILD_TMPDIR=$(mktemp -d) case "$PROJECT_NAME" in babeltrace) @@ -61,11 +78,7 @@ lttng-tools) lttng-ust) CONF_OPTS="--enable-java-agent-all --enable-python-agent" BUILD_TYPE="autotools" - export CLASSPATH="/usr/share/java/log4j-1.2.jar" - ;; -linux-rseq) - CONF_OPTS="" - BUILD_TYPE="linux-rseq" + export CLASSPATH="/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar" ;; *) echo "Generic project, no configure options." @@ -74,27 +87,6 @@ linux-rseq) ;; esac -# liburcu dependency -if [ -d "$WORKSPACE/deps/liburcu" ]; then - URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" - URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" - - export CPPFLAGS="-I$URCU_INCS ${CPPFLAGS:-}" - export LDFLAGS="-L$URCU_LIBS ${LDFLAGS:-}" - export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}" -fi - - -# lttng-ust dependency -if [ -d "$WORKSPACE/deps/lttng-ust" ]; then - UST_INCS="$WORKSPACE/deps/lttng-ust/build/include/" - UST_LIBS="$WORKSPACE/deps/lttng-ust/build/lib/" - - export CPPFLAGS="-I$UST_INCS ${CPPFLAGS:-}" - export LDFLAGS="-L$UST_LIBS ${LDFLAGS:-}" - export LD_LIBRARY_PATH="$UST_LIBS:${LD_LIBRARY_PATH:-}" -fi - if [ -d "$WORKSPACE/src/linux" ]; then export KERNELDIR="$WORKSPACE/src/linux" fi @@ -103,7 +95,6 @@ fi cd "$SRCDIR" # Build -echo -e "\033[33;1mRunning Coverity Scan Analysis Tool...\033[0m" case "$BUILD_TYPE" in autotools) # Prepare build dir for autotools based projects @@ -114,11 +105,6 @@ autotools) scan-build -k -o "${SCAN_BUILD_TMPDIR}" make -j"$NPROC" V=1 ;; -linux-rseq) - make defconfig - make -j"$NPROC" prepare - scan-build -k -o "${SCAN_BUILD_TMPDIR}" make -j"$NPROC" kernel/rseq.o kernel/do_on_cpu/core.o kernel/do_on_cpu/interpreter.o kernel/do_on_cpu/validate.o V=1 - ;; *) echo "Unsupported build type: $BUILD_TYPE" exit 1