summaryrefslogtreecommitdiff
path: root/net-nds/openldap/files/libldap-symbol-versions.diff
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-12-03 21:11:10 +0100
committerKarel Kočí <cynerd@email.cz>2018-12-03 21:11:10 +0100
commitef94ef33fc2729b6340fa22abbd500b4728049da (patch)
tree07f28dfd766993308e0de766eaa1207dc1a81f10 /net-nds/openldap/files/libldap-symbol-versions.diff
parent677325bac4c11638cd75b37fffcf846544ef99b3 (diff)
downloadgentoo-personal-overlay-ef94ef33fc2729b6340fa22abbd500b4728049da.tar.gz
gentoo-personal-overlay-ef94ef33fc2729b6340fa22abbd500b4728049da.tar.bz2
gentoo-personal-overlay-ef94ef33fc2729b6340fa22abbd500b4728049da.zip
openldap: try to add symbol versions
Diffstat (limited to 'net-nds/openldap/files/libldap-symbol-versions.diff')
-rw-r--r--net-nds/openldap/files/libldap-symbol-versions.diff164
1 files changed, 164 insertions, 0 deletions
diff --git a/net-nds/openldap/files/libldap-symbol-versions.diff b/net-nds/openldap/files/libldap-symbol-versions.diff
new file mode 100644
index 0000000..187ab9c
--- /dev/null
+++ b/net-nds/openldap/files/libldap-symbol-versions.diff
@@ -0,0 +1,164 @@
+--- openldap-2.4.31.orig/debian/patches/libldap-symbol-versions
++++ openldap-2.4.31/debian/patches/libldap-symbol-versions
+@@ -0,0 +1,161 @@
++Add symbol versioning to the public LDAP libraries. This is required for
++library transitions, such as the current transition from 2.1 to 2.4,
++since programs will sometimes have both libraries loaded by different
++dependency chains during the transition.
++
++Not yet contributed upstream.
++
++Upstream ITS #5365 filed requesting symbol versioning for libldap and
++libber.
++
++--- a/libraries/libldap_r/Makefile.in
+++++ b/libraries/libldap_r/Makefile.in
++@@ -61,6 +61,9 @@
++ XXXLIBS = $(LTHREAD_LIBS)
++ NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
++ UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS)
+++ifneq (,$(VERSION_OPTION))
+++ VERSION_FLAGS = "$(VERSION_OPTION)$(XXDIR)/libldap.map"
+++endif
++
++ .links : Makefile
++ @for i in $(XXSRCS); do \
++--- a/build/top.mk
+++++ b/build/top.mk
++@@ -104,6 +104,9 @@
++ # LINK_LIBS referenced in library and module link commands.
++ LINK_LIBS = $(MOD_LIBS) $(@PLAT@_LINK_LIBS)
++
+++# option to pass to $(CC) to support library symbol versioning, if any
+++VERSION_OPTION = @VERSION_OPTION@
+++
++ LTSTATIC = @LTSTATIC@
++
++ LTLINK = $(LIBTOOL) --mode=link \
++@@ -113,7 +116,7 @@
++ $(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(LIB_DEFS) -c
++
++ LTLINK_LIB = $(LIBTOOL) $(LTONLY_LIB) --mode=link \
++- $(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_LIB)
+++ $(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_LIB) $(VERSION_FLAGS)
++
++ LTCOMPILE_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=compile \
++ $(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(MOD_DEFS) -c
++--- a/build/openldap.m4
+++++ b/build/openldap.m4
++@@ -1136,3 +1136,54 @@
++ #endif
++ ], [ol_cv_ssl_crl_compat=yes], [ol_cv_ssl_crl_compat=no])])
++ ])
+++
+++dnl ====================================================================
+++dnl check for symbol versioning support
+++AC_DEFUN([OL_SYMBOL_VERSIONING],
+++[AC_CACHE_CHECK([for .symver assembler directive],
+++ [ol_cv_asm_symver_directive],[
+++cat > conftest.s <<EOF
+++${libc_cv_dot_text}
+++_sym:
+++.symver _sym,sym@VERS
+++EOF
+++if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+++ ol_cv_asm_symver_directive=yes
+++else
+++ ol_cv_asm_symver_directive=no
+++fi
+++rm -f conftest*])
+++AC_CACHE_CHECK([for ld --version-script],
+++ [ol_cv_ld_version_script_option],[
+++if test $ol_cv_asm_symver_directive = yes; then
+++ cat > conftest.s <<EOF
+++${libc_cv_dot_text}
+++_sym:
+++.symver _sym,sym@VERS
+++EOF
+++ cat > conftest.map <<EOF
+++VERS_1 {
+++ global: sym;
+++};
+++
+++VERS_2 {
+++ global: sym;
+++} VERS_1;
+++EOF
+++ if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+++ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
+++ -o conftest.so conftest.o
+++ -Wl,--version-script,conftest.map
+++ 1>&AS_MESSAGE_LOG_FD]);
+++ then
+++ ol_cv_ld_version_script_option=yes
+++ else
+++ ol_cv_ld_version_script_option=no
+++ fi
+++ else
+++ ol_cv_ld_version_script_option=no
+++ fi
+++else
+++ ol_cv_ld_version_script_option=no
+++fi
+++rm -f conftest*])])
++--- a/configure.in
+++++ b/configure.in
++@@ -1901,6 +1901,13 @@
++ fi
++ AC_SUBST(LTSTATIC)dnl
++
+++VERSION_OPTION=""
+++OL_SYMBOL_VERSIONING
+++if test $ol_cv_ld_version_script_option = yes ; then
+++ VERSION_OPTION="-Wl,--version-script="
+++fi
+++AC_SUBST(VERSION_OPTION)
+++
++ dnl ----------------------------------------------------------------
++ if test $ol_enable_wrappers != no ; then
++ AC_CHECK_HEADERS(tcpd.h,[
++--- /dev/null
+++++ b/libraries/libldap/libldap.map
++@@ -0,0 +1,7 @@
+++OPENLDAP_2.4_2 {
+++ global:
+++ ldap_*;
+++ ldif_*;
+++ local:
+++ *;
+++};
++--- a/libraries/libldap/Makefile.in
+++++ b/libraries/libldap/Makefile.in
++@@ -52,6 +52,9 @@
++ XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS)
++ NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
++ UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
+++ifneq (,$(VERSION_OPTION))
+++ VERSION_FLAGS = $(VERSION_OPTION)$(srcdir)/libldap.map
+++endif
++
++ apitest: $(XLIBS) apitest.o
++ $(LTLINK) -o $@ apitest.o $(LIBS)
++--- a/libraries/liblber/Makefile.in
+++++ b/libraries/liblber/Makefile.in
++@@ -38,6 +38,9 @@
++ XXLIBS =
++ NT_LINK_LIBS = $(AC_LIBS)
++ UNIX_LINK_LIBS = $(AC_LIBS)
+++ifneq (,$(VERSION_OPTION))
+++ VERSION_FLAGS = "$(VERSION_OPTION)$(srcdir)/liblber.map"
+++endif
++
++ dtest: $(XLIBS) dtest.o
++ $(LTLINK) -o $@ dtest.o $(LIBS)
++--- /dev/null
+++++ b/libraries/liblber/liblber.map
++@@ -0,0 +1,8 @@
+++OPENLDAP_2.4_2 {
+++ global:
+++ ber_*;
+++ der_alloc;
+++ lutil_*;
+++ local:
+++ *;
+++};