From b054aca50b31fc46fc736a542ec2719de2d23d30 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 17 Feb 2019 16:33:05 +0000 Subject: [PATCH] src/test/runtests.sh: drop 'readelf'-based tests The 'readelf'-based tests cover a few situations: 1. undefined symbols in shared libraries 2. unexpected exports in shared libraries Bug #575958 shows that [2.] implementation is too simplistic in assuming that presence of relocation equals to export presence. It is incorrect for PLT stubs and local symbols. Let's just drop these tests. If one needs to cover [1.] it is better to use LDFLAGS=-Wl,--no-undefined. This closes #292. X-Reported-by: Benda Xu X-Gentoo-Bug: https://bugs.gentoo.org/575958 X-Gentoo-Bug-URL: https://bugs.gentoo.org/575958 --- src/test/runtests.sh | 47 -------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/src/test/runtests.sh b/src/test/runtests.sh index 79c9a9b2..269f26f1 100755 --- a/src/test/runtests.sh +++ b/src/test/runtests.sh @@ -27,53 +27,6 @@ fail_on_out() { fi } -ebegin "Checking exported symbols in libeinfo.so (data)" -checkit einfo.data $( -readelf -Ws ${libeinfo_builddir}/libeinfo.so \ - | awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ - | LC_ALL=C sort -u -) - -ebegin "Checking exported symbols in libeinfo.so (functions)" -checkit einfo.funcs $( -readelf -Ws ${libeinfo_builddir}/libeinfo.so \ - | awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ - | LC_ALL=C sort -u \ - | egrep -v \ - -e '^_(init|fini)$' -) - -ebegin "Checking exported symbols in librc.so (data)" -checkit rc.data $( -readelf -Ws ${librc_builddir}/librc.so \ - | awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ - | LC_ALL=C sort -u -) - -ebegin "Checking exported symbols in librc.so (functions)" -checkit rc.funcs $( -readelf -Ws ${librc_builddir}/librc.so \ - | awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ - | LC_ALL=C sort -u \ - | egrep -v \ - -e '^_(init|fini)$' -) - -ebegin "Checking hidden functions in librc.so" -sed -n '/^librc_hidden_proto/s:.*(\(.*\))$:\1:p' ${librc_srcdir}/librc.h \ - | LC_ALL=C sort -u \ - > librc.funcs.hidden.list -readelf -Wr $(grep -l '#include[[:space:]]"librc\.h"' ${librc_srcdir}/*.c | sed 's:\.c$:.o:') \ - | egrep -v -e 'R_PARISC_(DP|SEG)REL' \ - | awk '$5 ~ /^rc_/ {print $5}' \ - | LC_ALL=C sort -u \ - | egrep -v '^rc_environ_fd$' \ - > librc.funcs.hidden.out -syms=$(diff -u librc.funcs.hidden.list librc.funcs.hidden.out | sed -n '/^+[^+]/s:^+::p') -[ -z "${syms}" ] -eend $? "Missing hidden defs:"$'\n'"${syms}" -: $(( ret += $? )) - ebegin "Checking trailing whitespace in code" # XXX: Should we check man pages too ? out=$(cd ${top_srcdir}; find */ \