diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2019-02-17 16:33:05 +0000 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2019-02-19 11:50:11 -0600 |
commit | b054aca50b31fc46fc736a542ec2719de2d23d30 (patch) | |
tree | 93ee452e46d1f803115f0368a183b26484aa3fb9 | |
parent | f9e7a00ba9c9b179c697fc0af83a19e923c831b0 (diff) |
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
-rwxr-xr-x | src/test/runtests.sh | 47 |
1 files changed, 0 insertions, 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 */ \ |