mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-21 07:09:34 -05:00
ITS#5365 - Add support for symbol versioning libldap and lilber
This commit is contained in:
parent
bc0d62db23
commit
38d1ac0449
7 changed files with 62 additions and 4 deletions
|
|
@ -104,6 +104,9 @@ LTFLAGS_MOD = $(@PLAT@_LTFLAGS_MOD)
|
||||||
# LINK_LIBS referenced in library and module link commands.
|
# LINK_LIBS referenced in library and module link commands.
|
||||||
LINK_LIBS = $(MOD_LIBS) $(@PLAT@_LINK_LIBS)
|
LINK_LIBS = $(MOD_LIBS) $(@PLAT@_LINK_LIBS)
|
||||||
|
|
||||||
|
# compiler options for versioned library symbol support
|
||||||
|
OL_VERSIONED_SYMBOLS = @OL_VERSIONED_SYMBOLS@
|
||||||
|
|
||||||
LTSTATIC = @LTSTATIC@
|
LTSTATIC = @LTSTATIC@
|
||||||
|
|
||||||
LTLINK = $(LIBTOOL) --mode=link \
|
LTLINK = $(LIBTOOL) --mode=link \
|
||||||
|
|
@ -113,7 +116,7 @@ LTCOMPILE_LIB = $(LIBTOOL) $(LTONLY_LIB) --mode=compile \
|
||||||
$(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(LIB_DEFS) -c
|
$(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(LIB_DEFS) -c
|
||||||
|
|
||||||
LTLINK_LIB = $(LIBTOOL) $(LTONLY_LIB) --mode=link \
|
LTLINK_LIB = $(LIBTOOL) $(LTONLY_LIB) --mode=link \
|
||||||
$(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_LIB)
|
$(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_LIB) $(SYMBOL_VERSION_FLAGS)
|
||||||
|
|
||||||
LTCOMPILE_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=compile \
|
LTCOMPILE_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=compile \
|
||||||
$(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(MOD_DEFS) -c
|
$(CC) $(LT_CFLAGS) $(LT_CPPFLAGS) $(MOD_DEFS) -c
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,11 @@ if test $ol_patch != X ; then
|
||||||
ol_type=Release
|
ol_type=Release
|
||||||
elif test $ol_minor != X ; then
|
elif test $ol_minor != X ; then
|
||||||
ol_version=${ol_major}.${ol_minor}.${ol_patch}
|
ol_version=${ol_major}.${ol_minor}.${ol_patch}
|
||||||
ol_api_lib_release=${ol_major}.${ol_minor}-releng
|
ol_api_lib_release=${ol_major}.${ol_minor}.releng
|
||||||
ol_type=Engineering
|
ol_type=Engineering
|
||||||
else
|
else
|
||||||
ol_version=${ol_major}.${ol_minor}
|
ol_version=${ol_major}.${ol_minor}
|
||||||
ol_api_lib_release=${ol_major}-devel
|
ol_api_lib_release=${ol_major}.devel
|
||||||
ol_type=Devel
|
ol_type=Devel
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
18
configure.ac
18
configure.ac
|
|
@ -440,7 +440,8 @@ AC_ARG_ENABLE(xxliboptions,[
|
||||||
Library Generation & Linking Options])
|
Library Generation & Linking Options])
|
||||||
AC_ENABLE_STATIC
|
AC_ENABLE_STATIC
|
||||||
AC_ENABLE_SHARED
|
AC_ENABLE_SHARED
|
||||||
|
OL_ARG_ENABLE(versioning, [AS_HELP_STRING([--enable-versioning], [Enable versioned symbols in shared library])],
|
||||||
|
auto, [no yes auto])
|
||||||
dnl ----------------------------------------------------------------
|
dnl ----------------------------------------------------------------
|
||||||
dnl Validate options
|
dnl Validate options
|
||||||
dnl ----------------------------------------------------------------
|
dnl ----------------------------------------------------------------
|
||||||
|
|
@ -3072,6 +3073,18 @@ if test "$ol_enable_slapi" != no ; then
|
||||||
SLAPD_SLAPI_DEPEND=libslapi.a
|
SLAPD_SLAPI_DEPEND=libslapi.a
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
OL_VERSIONED_SYMBOLS=""
|
||||||
|
if test $ol_enable_versioning != no; then
|
||||||
|
LDVS=`$LD --help < /dev/null 2>/dev/null | grep version-script`
|
||||||
|
if test -z "$LDVS"; then
|
||||||
|
if test $ol_enable_versioning = "yes" ; then
|
||||||
|
AC_MSG_ERROR([Library symbol versioning requested but not supported])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
OL_VERSIONED_SYMBOLS="-Wl,--version-script="
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
dnl ----------------------------------------------------------------
|
dnl ----------------------------------------------------------------
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
|
@ -3094,6 +3107,7 @@ AC_SUBST(WITH_MODULES_ENABLED)
|
||||||
AC_SUBST(WITH_ACI_ENABLED)
|
AC_SUBST(WITH_ACI_ENABLED)
|
||||||
AC_SUBST(BUILD_THREAD)
|
AC_SUBST(BUILD_THREAD)
|
||||||
AC_SUBST(BUILD_LIBS_DYNAMIC)
|
AC_SUBST(BUILD_LIBS_DYNAMIC)
|
||||||
|
AC_SUBST(OL_VERSIONED_SYMBOLS)
|
||||||
|
|
||||||
AC_SUBST(BUILD_SLAPD)
|
AC_SUBST(BUILD_SLAPD)
|
||||||
dnl slapi
|
dnl slapi
|
||||||
|
|
@ -3212,8 +3226,10 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
|
||||||
[libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
|
[libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
|
||||||
[libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
|
[libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
|
||||||
[libraries/liblber/lber.pc]
|
[libraries/liblber/lber.pc]
|
||||||
|
[libraries/liblber/liblber.vers]
|
||||||
[libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
|
[libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
|
||||||
[libraries/libldap/ldap.pc]
|
[libraries/libldap/ldap.pc]
|
||||||
|
[libraries/libldap/libldap.vers]
|
||||||
[libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
|
[libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
|
||||||
[libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
|
[libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
|
||||||
[libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
|
[libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,9 @@ XLIBS = $(LIBRARY) $(LDAP_LIBLUTIL_A)
|
||||||
XXLIBS =
|
XXLIBS =
|
||||||
NT_LINK_LIBS = $(AC_LIBS)
|
NT_LINK_LIBS = $(AC_LIBS)
|
||||||
UNIX_LINK_LIBS = $(AC_LIBS)
|
UNIX_LINK_LIBS = $(AC_LIBS)
|
||||||
|
ifneq (,$(OL_VERSIONED_SYMBOLS))
|
||||||
|
SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(LDAP_LIBDIR)/liblber/liblber.vers
|
||||||
|
endif
|
||||||
|
|
||||||
dtest: $(XLIBS) dtest.o
|
dtest: $(XLIBS) dtest.o
|
||||||
$(LTLINK) -o $@ dtest.o $(LIBS)
|
$(LTLINK) -o $@ dtest.o $(LIBS)
|
||||||
|
|
|
||||||
17
libraries/liblber/liblber.vers.in
Normal file
17
libraries/liblber/liblber.vers.in
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
HIDDEN
|
||||||
|
{
|
||||||
|
local:
|
||||||
|
__*;
|
||||||
|
_rest*;
|
||||||
|
_save*;
|
||||||
|
};
|
||||||
|
|
||||||
|
OPENLDAP_@OPENLDAP_LIBRELEASE@
|
||||||
|
{
|
||||||
|
global:
|
||||||
|
ber_*;
|
||||||
|
der_alloc*;
|
||||||
|
lutil_*;
|
||||||
|
local: *;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
@ -58,6 +58,9 @@ XLIBS = $(LIBRARY) $(LDAP_LIBLBER_LA) $(LDAP_LIBLUTIL_A)
|
||||||
XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS)
|
XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS)
|
||||||
NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
|
NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
|
||||||
UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS)
|
UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS)
|
||||||
|
ifneq (,$(OL_VERSIONED_SYMBOLS))
|
||||||
|
SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(LDAP_LIBDIR)/libldap/libldap.vers
|
||||||
|
endif
|
||||||
|
|
||||||
apitest: $(XLIBS) apitest.o
|
apitest: $(XLIBS) apitest.o
|
||||||
$(LTLINK) -o $@ apitest.o $(LIBS)
|
$(LTLINK) -o $@ apitest.o $(LIBS)
|
||||||
|
|
|
||||||
16
libraries/libldap/libldap.vers.in
Normal file
16
libraries/libldap/libldap.vers.in
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
HIDDEN
|
||||||
|
{
|
||||||
|
local:
|
||||||
|
__*;
|
||||||
|
_rest*;
|
||||||
|
_save*;
|
||||||
|
};
|
||||||
|
|
||||||
|
OPENLDAP_@OPENLDAP_LIBRELEASE@
|
||||||
|
{
|
||||||
|
global:
|
||||||
|
ldap_*;
|
||||||
|
ldif_*;
|
||||||
|
local: *;
|
||||||
|
};
|
||||||
|
|
||||||
Loading…
Reference in a new issue