From 4d3382ce5185cae94564f81ad6ada81ffb228c94 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> Date: Wed, 13 Jul 2022 15:43:14 +0200 Subject: [PATCH] Update CI scripts on Breeze: fix and extend the overlinking check. --- .ci/bb/breeze-mpim/test.all.nv | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/.ci/bb/breeze-mpim/test.all.nv b/.ci/bb/breeze-mpim/test.all.nv index 4b9330c66..b52d55bab 100755 --- a/.ci/bb/breeze-mpim/test.all.nv +++ b/.ci/bb/breeze-mpim/test.all.nv @@ -6,12 +6,20 @@ set -o pipefail script_dir=$(cd "$(dirname "$0")"; pwd) top_srcdir=$(cd "${script_dir}/../../.."; pwd) +# We want to check with the Debian version of Libtool, which is patched to avoid +# overlinking: +export PATH="/usr/bin:${PATH-}" + . "${script_dir}/utils.sh" init_nv2130 -# We want to check with the Debian version of Libtool, which is patched to -# avoid overlinking. Therefore, we regenerate the Autotools files even if they -# are already available: +libtoolize=$(which libtoolize) +test "x${libtoolize}" = 'x/usr/bin/libtoolize' || { + echo "ERROR: '${libtoolize}' is not a Debian-provided system libtoolize" >&2 + exit 1 +} + +# Regenerate the Autotools files even if they are already available: "${top_srcdir}/autogen.sh" "${top_srcdir}/configure" \ @@ -32,6 +40,20 @@ PKG_CONFIG_PATH="${YAXT_ROOT}/lib/pkgconfig:${PPM_ROOT}/lib/pkgconfig" make -j8 +# Check that an executable is not overlinked to libscalesppmcore.so: +tested_file='examples/pio/.libs/collectData.parallel' +invalid_needed=`readelf -d "${tested_file}" | sed -E -n '/\(NEEDED\).*libscalesppmcore\.so/p'` || { + echo "ERROR: failed to check '${tested_file}' for ELF NEEDED entries" >&2 + exit 1 +} +if test -n "${invalid_needed}"; then + { + echo "ERROR: '${tested_file}' has excessive ELF NEEDED entries:" >&2 + echo "${invalid_needed}" >&2 + } >&2 + exit 1 +fi + make -j8 check || { cat tests/test-suite.log; exit 1; } check_all_tests_passed tests/test-suite.log -- GitLab