TMPDIR="$WORKSPACE/tmp"
PREFIX="/build"
+function use_ccache()
+{
+ case "$platform" in
+ macos-*)
+ return 1
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+}
+
# Create tmp directory
rm -rf "$TMPDIR"
mkdir -p "$TMPDIR"
export TMPDIR
-export CFLAGS="-O2 -fsanitize=address"
-export CXXFLAGS="-O2 -fsanitize=address -D_GLIBCXX_DEBUG=1"
+export CFLAGS="-O2 -g -fsanitize=address"
+export CXXFLAGS="-O2 -g -fsanitize=address -D_GLIBCXX_DEBUG=1"
export LDFLAGS="-fsanitize=address"
-export CC="ccache cc"
-export CXX="ccache c++"
+export CC="cc"
+export CXX="c++"
+
+if use_ccache; then
+ CC="ccache $CC"
+ CXX="ccache $CXX"
+fi
+
+# To make GDB find libcc1.so
+export LD_LIBRARY_PATH="/usr/lib/gcc/x86_64-linux-gnu/11:${LD_LIBRARY_PATH:-}"
# Set platform variables
+export TAR=tar
+export MAKE=make
+
case "$platform" in
+macos-*)
+ export NPROC="getconf _NPROCESSORS_ONLN"
+ export PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
+ export CPPFLAGS="-I/opt/local/include"
+ export LDFLAGS="-L/opt/local/lib"
+ export PYTHON="python3.9"
+ export PYTHON_CONFIG="python3.9-config"
+ ;;
*)
- export MAKE=make
- export TAR=tar
export NPROC=nproc
;;
esac
ccache -c
fi
+# This job has been seen generating cores in /tmp, filling and and causing
+# problems. Remove any leftover core from a previous job.
+rm /tmp/core.* || true
+
# Enter the source directory
cd "$SRCDIR"
;;
esac
+case "$platform" in
+macos-*)
+ CONF_OPTS+=("--disable-werror")
+ ;;
+esac
+
# Build type
# oot : out-of-tree build
# dist : build via make dist
# We are now inside a configured build directory
# BUILD!
-$MAKE -j "$($NPROC)" V=1 MAKEINFO=/bin/true
+$MAKE -j "$($NPROC)" V=1 MAKEINFO=true
# Install in the workspace
-$MAKE install DESTDIR="$WORKSPACE"
+$MAKE install DESTDIR="$WORKSPACE" MAKEINFO=true
+
+case "$platform" in
+macos-*)
+ # Stop there, don't run tests on macOS.
+ exit 0
+ ;;
+esac
case "$target_board" in
unix | native-gdbserver | native-extended-gdbserver)
# Run tests, don't fail now, we know that "make check" is going to fail,
# since some tests don't pass.
+$MAKE -C gdb/testsuite site.exp
+# shellcheck disable=SC2016
+echo 'set gdb_test_timeout [expr 5 * $timeout]' >> gdb/testsuite/site.exp
$MAKE -C gdb --keep-going check -j "$($NPROC)" RUNTESTFLAGS="$RUNTESTFLAGS" FORCE_PARALLEL="1" || true
# Copy the dejagnu test results for archiving before cleaning the build dir
# For informational purposes: check if some known failure lines did not appear
# in the gdb.sum.
echo "Known failures that don't appear in gdb.sum:"
-while read line; do
+while read -r line; do
if ! grep --silent --fixed-strings "$line" "${WORKSPACE}/results/gdb.sum"; then
echo "$line"
fi