summaryrefslogtreecommitdiff
path: root/src/check-plt.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/check-plt.sh')
-rwxr-xr-xsrc/check-plt.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/check-plt.sh b/src/check-plt.sh
new file mode 100755
index 000000000..5a9dae126
--- /dev/null
+++ b/src/check-plt.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+LC_ALL=C
+export LC_ALL
+
+if which readelf 2>/dev/null >/dev/null; then
+ :
+else
+ echo "'readelf' not found; skipping test"
+ exit 0
+fi
+
+test -z "$srcdir" && srcdir=.
+test -z "$MAKE" && MAKE=make
+stat=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' >&2 && stat=1
+done
+
+exit $stat