[vlc-commits] src: check exported symbols
Rémi Denis-Courmont
git at videolan.org
Sun Nov 29 15:09:46 CET 2015
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Nov 29 12:11:57 2015 +0200| [4d1e77a4b96d4910632d32ae0783f30720165688] | committer: Rémi Denis-Courmont
src: check exported symbols
Against further dynamic linker namespace pollution.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4d1e77a4b96d4910632d32ae0783f30720165688
---
src/Makefile.am | 4 ++--
src/check_symbols | 28 ++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 2520d67..67debfe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -536,7 +536,7 @@ check_PROGRAMS = \
test_xmlent \
test_headers
-TESTS = $(check_PROGRAMS)
+TESTS = $(check_PROGRAMS) check_symbols
test_block_SOURCES = test/block_test.c
test_block_LDADD = $(LDADD) $(LIBS_libvlccore)
@@ -592,7 +592,7 @@ stamp-revision:
# Unit/regression test
###############################################################################
-dist_check_SCRIPTS = check_headers
+dist_check_SCRIPTS = check_headers check_symbols
check-local:
for h in `echo $(pkginclude_HEADERS) | sed -e s,\.\./include/,,g`; \
diff --git a/src/check_symbols b/src/check_symbols
new file mode 100755
index 0000000..9f8320a
--- /dev/null
+++ b/src/check_symbols
@@ -0,0 +1,28 @@
+#! /bin/sh
+# Copyright © 2015 Rémi Denis-Courmont
+
+cd "$(dirname "$0")" || exit $?
+test -f libvlccore.sym || exit 1
+
+# DO NOT add new entries here.
+# Do make existing ones more specific.
+# Do remove existing ones (especially near the end).
+
+echo "Looking for unprefixed exported symbols..."
+cat libvlccore.sym | grep -v \
+ -e '^vlc_' -e '^vlm_' -e '^libvlc_[A-Z]' -e '^VLC_' \
+ -e '^input_' -e '^access_' -e '^stream_' -e '^demux_' -e '^decoder_' \
+ -e '^image_' -e '^block_' -e '^picture_' -e '^subpicture_' \
+ -e '^es_format' -e '^[asv]out_' -e '^spu_' -e '^filter_' -e '^video_' \
+ -e '^playlist_' -e '^services_discovery_' -e '^intf_' \
+ -e '^dialog_' -e '^update_' -e '^addons\?_' -e '^fingerprinter_' \
+ -e '^text_style_' -e '^text_segment_' \
+ -e '^net_' -e '^httpd_' -e '^http_auth_' \
+ -e '^config_' -e '^module_' -e '^var_' \
+ -e '^date_' -e '^sdp_' -e '^plane_' \
+ -e '^us_' -e '^utf8_' -e '^xml_' -e '^str_format_' -e '^GetLang_' \
+ -e '^m[a-z]*$' -e '^[A-Z][a-z]*Charset$' -e 'MD5$' \
+ -e '^NTPtime64$' -e '^secstotimestr$' \
+ && exit 1
+
+echo "None found."
More information about the vlc-commits
mailing list