summaryrefslogtreecommitdiff
path: root/src/check-plt.sh
blob: c69813b62ab4f5d330fd671be948eb1986997588 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

LANG=C

if ! which readelf 2>/dev/null >/dev/null; then
	echo "'readelf' not found; skipping test"
	exit 0
fi

test -z "$srcdir" && srcdir=.
test -z "$MAKE" && MAKE=make
status=0

$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
	echo "Compiler doesn't support symbol visibility; skipping test"
	exit 0
fi

for so in .libs/lib*.so; do
	echo Checking "$so" for local PLT entries
	readelf -W -r "$so" | grep 'JU\?MP_SLO' | grep 'cairo' && status=1
done

exit $status