summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <svoj@april.(none)>2006-01-17 18:51:08 +0400
committerunknown <svoj@april.(none)>2006-01-17 18:51:08 +0400
commit91b4e6b54424d858b5521cf3299726aef94d6632 (patch)
tree78f8ebc259a954e0ecb2f91aa2ae5e9507993752
parent88061984649adc877e42c3fdec7f49c2f9e99bb7 (diff)
downloadmariadb-git-91b4e6b54424d858b5521cf3299726aef94d6632.tar.gz
BUG#3074: Unversioned symbols in shared library
libmysqlclient versioning when linked with GNU ld. BitKeeper/etc/ignore: Added libmysql/libmysql.ver to the ignore list configure.in: libmysqlclient versioning when linked with GNU ld. libmysql/Makefile.shared: libmysqlclient versioning when linked with GNU ld. libmysql/libmysql.ver.in: New BitKeeper file ``libmysql/libmysql.ver.in''
-rw-r--r--.bzrignore1
-rw-r--r--configure.in11
-rw-r--r--libmysql/Makefile.shared2
-rw-r--r--libmysql/libmysql.ver.in1
4 files changed, 13 insertions, 2 deletions
diff --git a/.bzrignore b/.bzrignore
index d8be10eacdb..414a40ef1eb 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -1057,3 +1057,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
+libmysql/libmysql.ver
diff --git a/configure.in b/configure.in
index 9afd2034796..6ac6f77b318 100644
--- a/configure.in
+++ b/configure.in
@@ -11,7 +11,8 @@ AM_CONFIG_HEADER(config.h)
PROTOCOL_VERSION=10
DOT_FRM_VERSION=6
# See the libtool docs for information on how to do shared lib versions.
-SHARED_LIB_VERSION=14:0:0
+SHARED_LIB_MAJOR_VERSION=14
+SHARED_LIB_VERSION=$SHARED_LIB_MAJOR_VERSION:0:0
# ndb version
NDB_VERSION_MAJOR=4
@@ -68,6 +69,7 @@ AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
AC_SUBST(DOT_FRM_VERSION)
AC_DEFINE_UNQUOTED([DOT_FRM_VERSION], [$DOT_FRM_VERSION],
[Version of .frm files])
+AC_SUBST(SHARED_LIB_MAJOR_VERSION)
AC_SUBST(SHARED_LIB_VERSION)
AC_SUBST(AVAILABLE_LANGUAGES)
AC_SUBST(AVAILABLE_LANGUAGES_ERRORS)
@@ -431,6 +433,13 @@ then
fi
fi
+# libmysqlclient versioning when linked with GNU ld.
+if $LD --version 2>/dev/null|grep -q GNU; then
+ LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/libmysql/libmysql.ver"
+ AC_CONFIG_FILES(libmysql/libmysql.ver)
+fi
+AC_SUBST(LD_VERSION_SCRIPT)
+
# Avoid bug in fcntl on some versions of linux
AC_MSG_CHECKING("if we should use 'skip-locking' as default for $target_os")
# Any wariation of Linux
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index bb4d252f385..3f72049bf43 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -75,7 +75,7 @@ mysysobjects2 = my_lib.lo
mysysobjects = $(mysysobjects1) $(mysysobjects2)
target_libadd = $(mysysobjects) $(mystringsobjects) $(dbugobjects) \
$(sql_cmn_objects) $(vio_objects) $(sqlobjects)
-target_ldflags = -version-info @SHARED_LIB_VERSION@
+target_ldflags = -version-info @SHARED_LIB_VERSION@ @LD_VERSION_SCRIPT@
vio_objects= vio.lo viosocket.lo viossl.lo viosslfactories.lo
CLEANFILES = $(target_libadd) $(SHLIBOBJS) \
$(target)
diff --git a/libmysql/libmysql.ver.in b/libmysql/libmysql.ver.in
new file mode 100644
index 00000000000..20eb0fd41bb
--- /dev/null
+++ b/libmysql/libmysql.ver.in
@@ -0,0 +1 @@
+libmysqlclient_@SHARED_LIB_MAJOR_VERSION@ { global: *; };