summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-03-21 12:23:51 -0500
committerDan Williams <dcbw@redhat.com>2011-03-21 12:23:51 -0500
commit235f96d2fd8cb78daa9db1728a0d38d1fd05d45a (patch)
tree04ac0d0ada4599c4dbad4cb641a73cf5d3cc70a0 /tools
parenta1fac30e6b5f6afadbb4ef23b3d07f905bb297f4 (diff)
downloadNetworkManager-235f96d2fd8cb78daa9db1728a0d38d1fd05d45a.tar.gz
tools: add script to check library exports against .ver files
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am2
-rwxr-xr-xtools/check-exports.sh25
2 files changed, 26 insertions, 1 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 17dc61466f..09a3f0edde 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1 +1 @@
-EXTRA_DIST = doc-generator.xsl
+EXTRA_DIST = doc-generator.xsl check-exports.sh
diff --git a/tools/check-exports.sh b/tools/check-exports.sh
new file mode 100755
index 0000000000..1415e14480
--- /dev/null
+++ b/tools/check-exports.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+LC_ALL=C
+export LC_ALL
+
+stat=0
+so=$1
+def=$2
+
+# Have to prefix with a tab and suffix with a ';' to match .ver file format
+get_syms='( objdump -t "$so" | grep "^[^ ]* [^l.*]*[.]"; objdump -t "$so" | grep "[.]hidden.*"; ) | sed "s/.* //" | sed "s/^/\t/" | sed "s/$/;/"'
+
+echo $so: checking exported symbols against $def
+
+{
+ echo "{"
+ echo "global:"
+ eval $get_syms | sort -u
+ echo "local:"
+ echo " *;"
+ echo "};"
+} | diff -u "$def" - >&2 || stat=1
+
+exit $stat
+