]> Pileus Git - ~andy/gtk/blobdiff - gtk-engine-check-abi.sh
Add a little script
[~andy/gtk] / gtk-engine-check-abi.sh
diff --git a/gtk-engine-check-abi.sh b/gtk-engine-check-abi.sh
new file mode 100755 (executable)
index 0000000..5cade63
--- /dev/null
@@ -0,0 +1,30 @@
+#! /bin/sh
+
+# Check that a theme engine does not export any 
+# functions that may interfere with symbol resolution
+
+cat >expected-abi <<EOF
+theme_create_rc_style
+theme_exit
+theme_init
+EOF
+
+cat >optional-abi <<EOF
+__bss_start
+_edata
+_end
+_fini
+_init
+g_module_check_init
+g_module_unload
+EOF
+
+nm -D -g --defined-only $1 | cut -d ' ' -f 3 > actual-abi
+
+cat optional-abi >>expected-abi
+sort expected-abi | uniq >expected-abi2
+
+cat optional-abi >>actual-abi
+sort actual-abi | uniq >actual-abi2
+
+diff -u expected-abi2 actual-abi2 && rm expected-abi optional-abi actual-abi expected-abi2 actual-abi2