strace/ci/run-build-and-tests.sh
Dmitry V. Levin 92e347b556 Add copyright headers to some files that lack them
We do our best to keep copyright headers up to date, yet
git history provides better information on this subject
and is more accurate than copyright headers.
2018-12-24 23:46:43 +00:00

118 lines
2.8 KiB
Bash
Executable File

#!/bin/sh -ex
#
# Copyright (c) 2018 The strace developers.
# All rights reserved.
#
# SPDX-License-Identifier: GPL-2.0-or-later
DISTCHECK_CONFIGURE_FLAGS='--disable-dependency-tracking'
export DISTCHECK_CONFIGURE_FLAGS
case "$CC" in
gcc*)
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-gcc-Werror"
;;
clang-*)
# clang -mx32 fails with the following error:
# clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
export st_cv_mx32_runtime=no
;;
esac
case "${TARGET-}" in
x32)
CC="$CC -mx32"
;;
x86)
CC="$CC -m32"
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --build=i686-pc-linux-gnu --target=i686-pc-linux-gnu"
;;
esac
case "${STACKTRACE-}" in
libdw|libunwind)
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-$STACKTRACE"
;;
no)
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --disable-stacktrace"
;;
esac
CPPFLAGS=
case "$KHEADERS" in
*/*)
CPPFLAGS='-isystem /opt/kernel/include'
export CPPFLAGS
;;
esac
case "${CHECK-}" in
coverage)
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-code-coverage"
CFLAGS='-g -O0'
CFLAGS_FOR_BUILD="$CFLAGS"
export CFLAGS CFLAGS_FOR_BUILD
;;
valgrind)
DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-valgrind"
;;
esac
echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION'
uname -a |head -1
libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)"
$libc |head -1
file -L /bin/sh
$CC --version |head -1
$CC -print-multi-lib ||:
make --version |head -1
autoconf --version |head -1
automake --version |head -1
kver="$(printf '%s\n%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' | $CC $CPPFLAGS -E -P -)"
printf 'kernel-headers %s.%s.%s\n' $(($kver/65536)) $(($kver/256%256)) $(($kver%256))
echo 'END OF BUILD ENVIRONMENT INFORMATION'
export CC_FOR_BUILD="$CC"
./git-set-file-times
./bootstrap
./configure --enable-maintainer-mode \
${DISTCHECK_CONFIGURE_FLAGS-} \
|| {
rc=$?
cat config.log
echo "$CC -dumpspecs follows"
$CC -dumpspecs
exit $rc
}
j=-j`getconf _NPROCESSORS_ONLN 2> /dev/null` || j=
case "${CHECK-}" in
coverage)
make -k $j all VERBOSE=${VERBOSE-}
make -k $j check VERBOSE=${VERBOSE-}
codecov --gcov-args=-abcp ||:
echo 'BEGIN OF TEST SUITE INFORMATION'
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log
echo 'END OF TEST SUITE INFORMATION'
;;
valgrind)
make -k $j all VERBOSE=${VERBOSE-}
rc=$?
for n in ${VALGRIND_TOOLS:-memcheck helgrind drd}; do
make -k $j -C "${VALGRIND_TESTDIR:-.}" \
check-valgrind-$n VERBOSE=${VERBOSE-} ||
rc=$?
done
echo 'BEGIN OF TEST SUITE INFORMATION'
tail -n 99999 -- tests*/test-suite*.log tests*/ksysent.log ||
rc=$?
echo 'END OF TEST SUITE INFORMATION'
[ "$rc" -eq 0 ]
;;
*)
make -k $j distcheck VERBOSE=${VERBOSE-}
;;
esac