summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Giles <giles@xiph.org>2007-07-23 22:35:47 +0000
committerRalph Giles <giles@xiph.org>2007-07-23 22:35:47 +0000
commite4241cfb73bf3aa544f010eb1dec46255b298e86 (patch)
tree5b021dc03ef45820f86ab7420231f68de11016b8
parent007453d4bd3bfc1eeb340d309e5680fa56f9877c (diff)
downloadtremor-e4241cfb73bf3aa544f010eb1dec46255b298e86.tar.gz
Only export symbols explicitly listed in Version_script.in when the
linker supports it (GNU ld on linux or solaris) to avoid conflicts from internal symbols, most specifically the ogg implementation. git-svn-id: https://svn.xiph.org/trunk/Tremor@13291 0101bb08-14d6-0310-b084-bc0e0c8e3800
-rw-r--r--Version_script.in49
-rw-r--r--configure.in20
2 files changed, 68 insertions, 1 deletions
diff --git a/Version_script.in b/Version_script.in
new file mode 100644
index 0000000..2eb1d87
--- /dev/null
+++ b/Version_script.in
@@ -0,0 +1,49 @@
+#
+# Export file for libvorbisidec
+#
+# Only the symbols listed in the global section will be callable from
+# applications linking to libvorbisidec.
+#
+
+@PACKAGE@.so.1
+{
+ global:
+ ov_clear;
+ ov_open;
+ ov_open_callbacks;
+ ov_test;
+ ov_test_callbacks;
+ ov_test_open;
+ ov_bitrate;
+ ov_bitrate_instant;
+ ov_streams;
+ ov_seekable;
+ ov_serialnumber;
+ ov_raw_total;
+ ov_pcm_total;
+ ov_time_total;
+ ov_raw_seek;
+ ov_pcm_seek;
+ ov_pcm_seek_page;
+ ov_time_seek;
+ ov_time_seek_page;
+ ov_raw_tell;
+ ov_pcm_tell;
+ ov_time_tell;
+ ov_info;
+ ov_comment;
+ ov_read;
+
+ vorbis_info_init;
+ vorbis_info_clear;
+ vorbis_info_blocksize;
+ vorbis_comment_init;
+ vorbis_comment_add;
+ vorbis_comment_add_tag;
+ vorbis_comment_query;
+ vorbis_comment_query_count;
+ vorbis_comment_clear;
+
+ local:
+ *;
+};
diff --git a/configure.in b/configure.in
index 5e81f99..2b44ee4 100644
--- a/configure.in
+++ b/configure.in
@@ -71,6 +71,24 @@ fi
CFLAGS="$CFLAGS $cflags_save -D_REENTRANT"
LDFLAGS="$LDFLAGS $ldflags_save"
+
+# Test whenever ld supports -version-script
+AC_PROG_LD
+AC_PROG_LD_GNU
+if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
+ SHLIB_VERSION_ARG="Wl,--version-script=Version_script"
+
+ dnl Set extra linker options
+ case "$target_os" in
+ linux* | solaris* )
+ SHLIB_VERSION_ARG="-Wl,--version-script=Version_script"
+ ;;
+ *)
+ ;;
+ esac
+ LDFLAGS="$LDFLAGS $SHLIB_VERSION_ARG"
+fi
+
dnl --------------------------------------------------
dnl Options
dnl --------------------------------------------------
@@ -110,4 +128,4 @@ AC_SUBST(LIBS)
AC_SUBST(DEBUG)
AC_SUBST(PROFILE)
-AC_OUTPUT(Makefile)
+AC_OUTPUT(Makefile Version_script)