From 78ef780d2943b1bf223940bbb8c3a921a1e68dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Mon, 3 Dec 2018 21:30:49 +0100 Subject: openldap: try to fix versions patch --- .../openldap/files/libldap-symbol-versions.diff | 164 --------------------- .../openldap/files/libldap-symbol-versions.patch | 161 ++++++++++++++++++++ 2 files changed, 161 insertions(+), 164 deletions(-) delete mode 100644 net-nds/openldap/files/libldap-symbol-versions.diff create mode 100644 net-nds/openldap/files/libldap-symbol-versions.patch (limited to 'net-nds') diff --git a/net-nds/openldap/files/libldap-symbol-versions.diff b/net-nds/openldap/files/libldap-symbol-versions.diff deleted file mode 100644 index 187ab9c..0000000 --- a/net-nds/openldap/files/libldap-symbol-versions.diff +++ /dev/null @@ -1,164 +0,0 @@ ---- 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 <&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 < conftest.map <&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: -++ *; -++}; diff --git a/net-nds/openldap/files/libldap-symbol-versions.patch b/net-nds/openldap/files/libldap-symbol-versions.patch new file mode 100644 index 0000000..769693e --- /dev/null +++ b/net-nds/openldap/files/libldap-symbol-versions.patch @@ -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 <&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 < conftest.map <&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: ++ *; ++}; -- cgit v1.2.3