summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPhilip Withnall <pwithnall@endlessos.org>2022-05-11 13:06:22 +0100
committerPhilip Withnall <pwithnall@endlessos.org>2022-05-11 13:06:22 +0100
commit7a569f675a8253185f919345d984097397b74172 (patch)
tree69dcae2559fc8f1a9623af2822c1ff14a884d4b6 /tools
parent8a3583ac5c7826d899a41e33c2360aac1344171b (diff)
downloadglib-7a569f675a8253185f919345d984097397b74172.tar.gz
tools: Move check-abis.sh from top-level to tools directory
This tidies up the root directory a bit. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/check-abis.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/check-abis.sh b/tools/check-abis.sh
new file mode 100755
index 000000000..5340f317d
--- /dev/null
+++ b/tools/check-abis.sh
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+
+list_leaked_symbols () {
+ nm -D "$1" | grep ' T ' | cut -f 3 -d ' ' | grep -E -v "$2"
+}
+
+check_symbols () {
+ if [ "$(list_leaked_symbols "$1" "$2" | wc -l)" -ne 0 ]; then
+ echo File "$1" possibly leaking symbols:
+ list_leaked_symbols "$1" "$2"
+ exit 1
+ fi
+}
+
+allowed="^_init$|^_fini$|^_ftext$|^g_"
+allowed_in_libglib="${allowed}|^glib__private__$|^glib_gettext$|^glib_pgettext$|^glib_check_version$"
+allowed_in_libgthread='^_init$|^_fini$|^_ftext$|^g_thread_init$|^g_thread_init_with_errorcheck_mutexes$'
+
+check_symbols glib/.libs/libglib-2.0.so "$allowed_in_libglib"
+check_symbols gthread/.libs/libgthread-2.0.so "$allowed_in_libgthread"
+for file in gmodule/.libs/libgmodule-2.0.so gobject/.libs/libgobject-2.0.so gio/.libs/libgio-2.0.so; do
+ check_symbols "$file" "$allowed"
+done