ITS#9739 Let configure options influence the symbol version map

This commit is contained in:
Ondřej Kuzník 2025-10-16 17:23:57 +01:00 committed by Quanah Gibson-Mount
parent 32c2e5a451
commit 8651f98a08
12 changed files with 335 additions and 216 deletions

View file

@ -23,7 +23,7 @@ MKDEPFLAG = -l
.c.lo:
$(LTCOMPILE_LIB) $<
$(LIBRARY): version.lo
$(LIBRARY): version.lo $(SYMBOL_VERSION_SCRIPT)
$(LTLINK_LIB) -o $@ $(OBJS) version.lo $(LINK_LIBS)
Makefile: $(top_srcdir)/build/lib-shared.mk

View file

@ -40,7 +40,7 @@ lint5: lint5-local FORCE
clean-common: FORCE
$(RM) $(LIBRARY) ../$(LIBRARY) $(XLIBRARY) \
$(PROGRAMS) $(XPROGRAMS) $(XSRCS) $(XXSRCS) \
*.o *.lo a.out *.exe core version.c .libs/*
*.o *.lo a.out *.exe core version.c .libs/* *.map
depend-common: FORCE
$(MKDEP) $(DEFS) $(DEFINES) $(SRCS) $(XXSRCS)

View file

@ -193,6 +193,8 @@ AH_BOTTOM([
AC_CONFIG_HEADERS([include/portable.h:include/portable.hin:include/slapd-modules.hin])
AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
AC_CONFIG_HEADERS([include/liblber-config.h:include/liblber-config.hin])
AC_CONFIG_HEADERS([include/libldap-config.h:include/libldap-config.hin])
dnl ================================================================
dnl Start Args

View file

@ -590,7 +590,9 @@ LBER_V( Sockbuf_IO ) ber_sockbuf_io_tcp;
LBER_V( Sockbuf_IO ) ber_sockbuf_io_readahead;
LBER_V( Sockbuf_IO ) ber_sockbuf_io_fd;
LBER_V( Sockbuf_IO ) ber_sockbuf_io_debug;
#ifdef LDAP_CONNECTIONLESS
LBER_V( Sockbuf_IO ) ber_sockbuf_io_udp;
#endif
/*
* LBER memory.c

View file

@ -0,0 +1,26 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2025 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/*
* liblber optional components
*/
#ifndef _LBER_LIBCONFIG_H
#define _LBER_LIBCONFIG_H 1
/* ldapc:// support */
#undef LDAP_CONNECTIONLESS
#endif /* LBER_LIBCONFIG */

View file

@ -0,0 +1,43 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2025 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/*
* libldap optional components
*/
#ifndef _LDAP_LIBCONFIG_H
#define _LDAP_LIBCONFIG_H 1
#include "liblber-config.h"
/* deprecated functions */
#define LDAP_DEPRECATED 1
#ifndef NO_THREADS
#define LDAP_R_COMPILE 1
#endif
/* Do not duplicate work in portable.h so we can import this from ldap-int.h */
#ifndef HAVE_CYRUS_SASL
#undef HAVE_CYRUS_SASL
#endif /* HAVE_CYRUS_SASL */
#ifndef HAVE_GMTIME_R
#undef HAVE_GMTIME_R
#endif /* HAVE_GMTIME_R */
#ifndef HAVE_LOCALTIME_R
#undef HAVE_LOCALTIME_R
#endif /* HAVE_LOCALTIME_R */
#endif /* LDAP_LIBCONFIG */

View file

@ -38,7 +38,12 @@ XLIBS = $(LIBRARY) $(LDAP_LIBLUTIL_A)
XXLIBS =
NT_LINK_LIBS = $(AC_LIBS)
UNIX_LINK_LIBS = $(AC_LIBS)
@DO_VERSIONED_SYMBOLS@SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(srcdir)/lber.map
SYMBOL_VERSION_SCRIPT=lber.map
@DO_VERSIONED_SYMBOLS@SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(SYMBOL_VERSION_SCRIPT)
$(SYMBOL_VERSION_SCRIPT): $(srcdir)/$(SYMBOL_VERSION_SCRIPT).in $(LDAP_INCDIR)/liblber-config.h
$(CPP) -x c -o $@ $(LT_CPPFLAGS) $(srcdir)/$(SYMBOL_VERSION_SCRIPT).in
dtest: $(XLIBS) dtest.o
$(LTLINK) -o $@ dtest.o $(LIBS)

View file

@ -26,6 +26,7 @@
#ifndef _LBER_INT_H
#define _LBER_INT_H
#include "liblber-config.h"
#include "lber.h"
#define LDAP_INT_DEBUG
#include "ldap_log.h"

View file

@ -1,3 +1,5 @@
#include "liblber-config.h"
OPENLDAP_2.200
{
global:
@ -102,6 +104,9 @@ OPENLDAP_2.200
ber_pvt_sb_do_write;
ber_pvt_sb_grow_buffer;
ber_pvt_socket_set_nonblock;
#ifdef _WIN32
ber_pvt_wsa_err2string;
#endif /* _WIN32 */
ber_read;
ber_realloc;
ber_remaining;
@ -121,6 +126,9 @@ OPENLDAP_2.200
ber_sockbuf_io_fd;
ber_sockbuf_io_readahead;
ber_sockbuf_io_tcp;
#ifdef LDAP_CONNECTIONLESS
ber_sockbuf_io_udp;
#endif
ber_sockbuf_remove_io;
ber_sos_dump;
ber_start;

View file

@ -49,7 +49,7 @@ OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
thr_posix.lo thr_thr.lo thr_nt.lo thr_pth.lo thr_debug.lo \
account_usability.lo avl.lo tavl.lo
LDAP_INCDIR= ../../include
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
LIB_DEFS = -DLDAP_LIBRARY
@ -58,7 +58,12 @@ XLIBS = $(LIBRARY) $(LDAP_LIBLBER_LA) $(LDAP_LIBLUTIL_A)
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) $(LTHREAD_LIBS)
@DO_VERSIONED_SYMBOLS@SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(srcdir)/ldap.map
SYMBOL_VERSION_SCRIPT=ldap.map
@DO_VERSIONED_SYMBOLS@SYMBOL_VERSION_FLAGS=$(OL_VERSIONED_SYMBOLS)$(SYMBOL_VERSION_SCRIPT)
$(SYMBOL_VERSION_SCRIPT): $(srcdir)/$(SYMBOL_VERSION_SCRIPT).in $(LDAP_INCDIR)/libldap-config.h
$(CPP) -x c -o $@ $(LT_CPPFLAGS) $(srcdir)/$(SYMBOL_VERSION_SCRIPT).in
apitest: $(XLIBS) apitest.o
$(LTLINK) -o $@ apitest.o $(LIBS)

View file

@ -20,10 +20,7 @@
#ifndef _LDAP_INT_H
#define _LDAP_INT_H 1
#ifndef NO_THREADS
#define LDAP_R_COMPILE 1
#endif
#include "libldap-config.h"
#include "../liblber/lber-int.h"
#include "lutil.h"
#include "ldap_avl.h"
@ -113,7 +110,6 @@
#endif /* LDAP_DEBUG */
#define LDAP_DEPRECATED 1
#include "ldap.h"
#include "ldap_pvt.h"

View file

@ -1,14 +1,13 @@
#include "libldap-config.h"
OPENLDAP_2.200
{
global:
ldap_X509dn2bv;
ldap_abandon;
ldap_abandon_ext;
ldap_add;
ldap_add_ext;
ldap_add_ext_s;
ldap_add_result_entry;
ldap_add_s;
ldap_alloc_ber_with_options;
ldap_append_referral;
ldap_attributetype2bv;
@ -27,8 +26,6 @@ OPENLDAP_2.200
ldap_avl_getnext;
ldap_avl_insert;
ldap_avl_prefixapply;
ldap_bind;
ldap_bind_s;
ldap_build_add_req;
ldap_build_bind_req;
ldap_build_compare_req;
@ -55,10 +52,8 @@ OPENLDAP_2.200
ldap_chase_referrals;
ldap_chase_v3referrals;
ldap_clear_select_write;
ldap_compare;
ldap_compare_ext;
ldap_compare_ext_s;
ldap_compare_s;
ldap_connect;
ldap_connect_to_host;
ldap_connect_to_path;
@ -75,13 +70,11 @@ OPENLDAP_2.200
ldap_count_entries;
ldap_count_messages;
ldap_count_references;
ldap_count_values;
ldap_count_values_len;
ldap_create;
ldap_create_accountusability_control;
ldap_create_assertion_control;
ldap_create_assertion_control_value;
ldap_create_control;
ldap_create_deref_control;
ldap_create_deref_control_value;
ldap_create_dirsync_control;
@ -103,11 +96,9 @@ OPENLDAP_2.200
ldap_create_vlv_control;
ldap_create_vlv_control_value;
ldap_dcedn2dn;
ldap_delete;
ldap_delete_ext;
ldap_delete_ext_s;
ldap_delete_result_entry;
ldap_delete_s;
ldap_derefresponse_free;
ldap_destroy;
ldap_dn2ad_canonical;
@ -131,7 +122,6 @@ OPENLDAP_2.200
ldap_explode_rdn;
ldap_extended_operation;
ldap_extended_operation_s;
ldap_find_control;
ldap_find_request_by_msgid;
ldap_first_attribute;
ldap_first_entry;
@ -149,10 +139,8 @@ OPENLDAP_2.200
ldap_get_entry_controls;
ldap_get_message_ber;
ldap_get_option;
ldap_get_values;
ldap_get_values_len;
ldap_host_connected_to;
ldap_init;
ldap_init_fd;
ldap_initialize;
ldap_install_tls;
@ -167,7 +155,6 @@ OPENLDAP_2.200
ldap_int_flush_request;
ldap_int_global_options;
ldap_int_hostname;
ldap_int_hostname_mutex;
ldap_int_inet4or6;
ldap_int_initialize;
ldap_int_initialize_global_options;
@ -177,7 +164,6 @@ OPENLDAP_2.200
ldap_int_parse_ruleid;
ldap_int_poll;
ldap_int_put_controls;
ldap_int_resolv_mutex;
ldap_int_sasl_bind;
ldap_int_sasl_close;
ldap_int_sasl_config;
@ -187,17 +173,15 @@ OPENLDAP_2.200
ldap_int_sasl_open;
ldap_int_sasl_set_option;
ldap_int_select;
ldap_int_stackguard;
ldap_int_thread_destroy;
ldap_int_thread_initialize;
ldap_int_thread_pool_shutdown;
ldap_int_thread_pool_startup;
ldap_int_timeval_dup;
ldap_int_tls_destroy;
ldap_int_tls_impl;
ldap_int_tls_start;
ldap_int_utils_init;
ldap_is_ldap_url;
#ifdef LDAP_CONNECTIONLESS
ldap_is_ldapc_url;
#endif
ldap_is_ldapi_url;
ldap_is_ldaps_url;
ldap_is_read_ready;
@ -221,14 +205,8 @@ OPENLDAP_2.200
ldap_memfree;
ldap_memrealloc;
ldap_memvfree;
ldap_modify;
ldap_modify_ext;
ldap_modify_ext_s;
ldap_modify_s;
ldap_modrdn2;
ldap_modrdn2_s;
ldap_modrdn;
ldap_modrdn_s;
ldap_mods_free;
ldap_msgdelete;
ldap_msgfree;
@ -248,7 +226,6 @@ OPENLDAP_2.200
ldap_objectclass2name;
ldap_objectclass2str;
ldap_objectclass_free;
ldap_open;
ldap_open_defconn;
ldap_open_internal_connection;
ldap_parse_accountusability_control;
@ -260,7 +237,6 @@ OPENLDAP_2.200
ldap_parse_intermediate;
ldap_parse_ldif_record;
ldap_parse_ldif_record_x;
ldap_parse_page_control;
ldap_parse_pageresponse_control;
ldap_parse_passwd;
ldap_parse_password_expiring_control;
@ -277,7 +253,6 @@ OPENLDAP_2.200
ldap_passwd;
ldap_passwd_s;
ldap_passwordpolicy_err2txt;
ldap_perror;
ldap_put_vrFilter;
ldap_pvt_bv2scope;
ldap_pvt_conf_option;
@ -286,37 +261,46 @@ OPENLDAP_2.200
ldap_pvt_discard;
ldap_pvt_filter_value_unescape;
ldap_pvt_find_wildcard;
#if ( defined( HAVE_GETADDRINFO ) || defined( HAVE_GETNAMEINFO ) ) \
&& !defined( HAVE_GAI_STRERROR )
ldap_pvt_gai_strerror;
#endif
ldap_pvt_get_controls;
ldap_pvt_get_fqdn;
ldap_pvt_get_hname;
ldap_pvt_gethostbyaddr_a;
ldap_pvt_gethostbyname_a;
ldap_pvt_gettime;
#ifndef HAVE_GMTIME_R
ldap_pvt_gmtime;
#endif
#if !defined( HAVE_GMTIME_R ) || !defined( HAVE_LOCALTIME_R )
ldap_pvt_gmtime_lock;
ldap_pvt_gmtime_unlock;
#endif
ldap_pvt_hex_unescape;
#ifndef HAVE_LOCALTIME_R
ldap_pvt_localtime;
#endif
ldap_pvt_put_control;
ldap_pvt_put_filter;
ldap_pvt_runqueue_find;
ldap_pvt_runqueue_insert;
ldap_pvt_runqueue_isrunning;
ldap_pvt_runqueue_next_sched;
ldap_pvt_runqueue_persistent_backload;
ldap_pvt_runqueue_remove;
ldap_pvt_runqueue_resched;
ldap_pvt_runqueue_runtask;
ldap_pvt_runqueue_stoptask;
ldap_pvt_sasl_cbinding;
ldap_pvt_sasl_cbinding_parse;
ldap_pvt_sasl_generic_install;
ldap_pvt_sasl_generic_remove;
ldap_pvt_sasl_getmechs;
#ifdef HAVE_CYRUS_SASL
ldap_pvt_sasl_cbinding;
ldap_pvt_sasl_cbinding_parse;
ldap_pvt_sasl_install;
#ifdef LDAP_R_COMPILE
ldap_pvt_sasl_mutex_dispose;
ldap_pvt_sasl_mutex_lock;
ldap_pvt_sasl_mutex_new;
ldap_pvt_sasl_mutex_unlock;
#endif /* LDAP_R_COMPILE */
ldap_pvt_sasl_remove;
ldap_pvt_sasl_secprops;
ldap_pvt_sasl_secprops_unparse;
#endif /* HAVE_CYRUS_SASL */
ldap_pvt_scope2bv;
ldap_pvt_scope2str;
ldap_pvt_search;
@ -329,6 +313,188 @@ OPENLDAP_2.200
ldap_pvt_str2upper;
ldap_pvt_str2upperbv;
ldap_pvt_strtok;
ldap_pvt_tls_accept;
ldap_pvt_tls_check_hostname;
ldap_pvt_tls_config;
ldap_pvt_tls_connect;
ldap_pvt_tls_ctx_free;
ldap_pvt_tls_destroy;
ldap_pvt_tls_get_cipher;
ldap_pvt_tls_get_endpoint;
ldap_pvt_tls_get_my_dn;
ldap_pvt_tls_get_option;
ldap_pvt_tls_get_peer_dn;
ldap_pvt_tls_get_peercert;
ldap_pvt_tls_get_strength;
ldap_pvt_tls_get_unique;
ldap_pvt_tls_get_version;
ldap_pvt_tls_init;
ldap_pvt_tls_init_def_ctx;
ldap_pvt_tls_inplace;
ldap_pvt_tls_sb_ctx;
ldap_pvt_tls_set_option;
ldap_pvt_url_scheme2proto;
ldap_pvt_url_scheme2proxied;
ldap_pvt_url_scheme2tls;
ldap_pvt_url_scheme_port;
ldap_rdn2bv;
ldap_rdn2bv_x;
ldap_rdn2str;
ldap_rdnfree;
ldap_rdnfree_x;
ldap_refresh;
ldap_refresh_s;
ldap_rename;
ldap_rename_s;
ldap_req_cmp;
ldap_result;
ldap_return_request;
ldap_sasl_bind;
ldap_sasl_bind_s;
ldap_sasl_interactive_bind;
ldap_sasl_interactive_bind_s;
ldap_scherr2str;
ldap_search_ext;
ldap_search_ext_s;
ldap_send_initial_request;
ldap_send_server_request;
ldap_send_unbind;
ldap_set_ber_options;
ldap_set_nextref_proc;
ldap_set_option;
ldap_set_rebind_proc;
ldap_set_urllist_proc;
ldap_start_tls;
ldap_start_tls_s;
ldap_str2attributetype;
ldap_str2charray;
ldap_str2contentrule;
ldap_str2dn;
ldap_str2matchingrule;
ldap_str2matchingruleuse;
ldap_str2nameform;
ldap_str2objectclass;
ldap_str2rdn;
ldap_str2structurerule;
ldap_str2syntax;
ldap_strdup;
ldap_structurerule2bv;
ldap_structurerule2name;
ldap_structurerule2str;
ldap_structurerule_free;
ldap_sync_destroy;
ldap_sync_init;
ldap_sync_init_refresh_and_persist;
ldap_sync_init_refresh_only;
ldap_sync_initialize;
ldap_sync_poll;
ldap_syntax2bv;
ldap_syntax2name;
ldap_syntax2str;
ldap_syntax_free;
ldap_tavl_delete;
ldap_tavl_end;
ldap_tavl_find2;
ldap_tavl_find3;
ldap_tavl_find;
ldap_tavl_free;
ldap_tavl_insert;
ldap_tavl_next;
ldap_tls_inplace;
ldap_turn;
ldap_turn_s;
ldap_txn_end;
ldap_txn_end_s;
ldap_txn_start;
ldap_txn_start_s;
ldap_ucs_to_utf8s;
ldap_unbind_ext;
ldap_unbind_ext_s;
ldap_url_desc2str;
ldap_url_dup;
ldap_url_duplist;
ldap_url_list2hosts;
ldap_url_list2urls;
ldap_url_parse;
ldap_url_parse_ext;
ldap_url_parsehosts;
ldap_url_parselist;
ldap_url_parselist_ext;
ldap_utf8_bytes;
ldap_utf8_charlen2;
ldap_utf8_charlen;
ldap_utf8_chars;
ldap_utf8_copy;
ldap_utf8_isalnum;
ldap_utf8_isalpha;
ldap_utf8_isascii;
ldap_utf8_isdigit;
ldap_utf8_islower;
ldap_utf8_isspace;
ldap_utf8_isupper;
ldap_utf8_isxdigit;
ldap_utf8_lentab;
ldap_utf8_mintab;
ldap_utf8_next;
ldap_utf8_offset;
ldap_utf8_prev;
ldap_utf8_strchr;
ldap_utf8_strcspn;
ldap_utf8_strpbrk;
ldap_utf8_strspn;
ldap_utf8_strtok;
ldap_validate_and_fill_sourceip;
ldap_value_dup;
ldap_value_free_len;
ldap_verify_credentials;
ldap_verify_credentials_s;
ldap_whoami;
ldap_whoami_s;
ldap_x_mb_to_utf8;
ldap_x_mbs_to_utf8s;
ldap_x_ucs4_to_utf8;
ldap_x_utf8_to_mb;
ldap_x_utf8_to_ucs4;
ldap_x_utf8_to_wc;
ldap_x_utf8s_to_mbs;
ldap_x_utf8s_to_wcs;
ldap_x_wc_to_utf8;
ldap_x_wcs_to_utf8s;
ldif_close;
ldif_countlines;
ldif_debug;
ldif_fetch_url;
ldif_getline;
ldif_is_not_printable;
ldif_must_b64_encode_register;
ldif_must_b64_encode_release;
ldif_open;
ldif_open_mem;
ldif_open_url;
ldif_parse_line2;
ldif_parse_line;
ldif_put;
ldif_put_wrap;
ldif_read_record;
ldif_sput;
ldif_sput_wrap;
#ifdef LDAP_R_COMPILE
ldap_int_hostname_mutex;
ldap_int_resolv_mutex;
ldap_int_stackguard;
ldap_int_thread_destroy;
ldap_int_thread_initialize;
ldap_int_thread_pool_shutdown;
ldap_int_thread_pool_startup;
ldap_pvt_runqueue_find;
ldap_pvt_runqueue_insert;
ldap_pvt_runqueue_isrunning;
ldap_pvt_runqueue_next_sched;
ldap_pvt_runqueue_persistent_backload;
ldap_pvt_runqueue_remove;
ldap_pvt_runqueue_resched;
ldap_pvt_runqueue_runtask;
ldap_pvt_runqueue_stoptask;
ldap_pvt_thread_cond_broadcast;
ldap_pvt_thread_cond_destroy;
ldap_pvt_thread_cond_init;
@ -390,185 +556,50 @@ OPENLDAP_2.200
ldap_pvt_thread_set_concurrency;
ldap_pvt_thread_sleep;
ldap_pvt_thread_yield;
ldap_pvt_tls_accept;
ldap_pvt_tls_check_hostname;
ldap_pvt_tls_config;
ldap_pvt_tls_connect;
ldap_pvt_tls_ctx_free;
ldap_pvt_tls_destroy;
ldap_pvt_tls_get_cipher;
ldap_pvt_tls_get_endpoint;
ldap_pvt_tls_get_my_dn;
ldap_pvt_tls_get_option;
ldap_pvt_tls_get_peer_dn;
ldap_pvt_tls_get_peercert;
ldap_pvt_tls_get_strength;
ldap_pvt_tls_get_unique;
ldap_pvt_tls_get_version;
ldap_pvt_tls_init;
ldap_pvt_tls_init_def_ctx;
ldap_pvt_tls_inplace;
ldap_pvt_tls_sb_ctx;
ldap_pvt_tls_set_option;
ldap_pvt_url_scheme2proto;
ldap_pvt_url_scheme2proxied;
ldap_pvt_url_scheme2tls;
ldap_pvt_url_scheme_port;
ldap_rdn2bv;
ldap_rdn2bv_x;
ldap_rdn2str;
ldap_rdnfree;
ldap_rdnfree_x;
ldap_refresh;
ldap_refresh_s;
#endif /* LDAP_R_COMPILE */
#ifdef _WIN32
ldap_pvt_clock_gettime;
ldap_pvt_gettimeofday;
#endif /* _WIN32 */
#ifdef LDAP_DEPRECATED
ldap_abandon;
ldap_add;
ldap_add_s;
ldap_bind;
ldap_bind_s;
ldap_compare;
ldap_compare_s;
ldap_count_values;
ldap_create_control;
ldap_delete;
ldap_delete_s;
ldap_find_control;
ldap_get_values;
ldap_init;
ldap_modify;
ldap_modify_s;
ldap_modrdn2;
ldap_modrdn2_s;
ldap_modrdn;
ldap_modrdn_s;
ldap_open;
ldap_parse_page_control;
ldap_perror;
ldap_rename2;
ldap_rename2_s;
ldap_rename;
ldap_rename_s;
ldap_req_cmp;
ldap_result2error;
ldap_result;
ldap_return_request;
ldap_sasl_bind;
ldap_sasl_bind_s;
ldap_sasl_interactive_bind;
ldap_sasl_interactive_bind_s;
ldap_scherr2str;
ldap_search;
ldap_search_ext;
ldap_search_ext_s;
ldap_search_s;
ldap_search_st;
ldap_send_initial_request;
ldap_send_server_request;
ldap_send_unbind;
ldap_set_ber_options;
ldap_set_nextref_proc;
ldap_set_option;
ldap_set_rebind_proc;
ldap_set_urllist_proc;
ldap_simple_bind;
ldap_simple_bind_s;
ldap_sort_entries;
ldap_sort_strcasecmp;
ldap_sort_values;
ldap_start_tls;
ldap_start_tls_s;
ldap_str2attributetype;
ldap_str2charray;
ldap_str2contentrule;
ldap_str2dn;
ldap_str2matchingrule;
ldap_str2matchingruleuse;
ldap_str2nameform;
ldap_str2objectclass;
ldap_str2rdn;
ldap_str2structurerule;
ldap_str2syntax;
ldap_strdup;
ldap_structurerule2bv;
ldap_structurerule2name;
ldap_structurerule2str;
ldap_structurerule_free;
ldap_sync_destroy;
ldap_sync_init;
ldap_sync_init_refresh_and_persist;
ldap_sync_init_refresh_only;
ldap_sync_initialize;
ldap_sync_poll;
ldap_syntax2bv;
ldap_syntax2name;
ldap_syntax2str;
ldap_syntax_free;
ldap_tavl_delete;
ldap_tavl_end;
ldap_tavl_find2;
ldap_tavl_find3;
ldap_tavl_find;
ldap_tavl_free;
ldap_tavl_insert;
ldap_tavl_next;
ldap_tls_inplace;
ldap_turn;
ldap_turn_s;
ldap_txn_end;
ldap_txn_end_s;
ldap_txn_start;
ldap_txn_start_s;
ldap_ucs_to_utf8s;
ldap_unbind;
ldap_unbind_ext;
ldap_unbind_ext_s;
ldap_unbind_s;
ldap_url_desc2str;
ldap_url_dup;
ldap_url_duplist;
ldap_url_list2hosts;
ldap_url_list2urls;
ldap_url_parse;
ldap_url_parse_ext;
ldap_url_parsehosts;
ldap_url_parselist;
ldap_url_parselist_ext;
ldap_utf8_bytes;
ldap_utf8_charlen2;
ldap_utf8_charlen;
ldap_utf8_chars;
ldap_utf8_copy;
ldap_utf8_isalnum;
ldap_utf8_isalpha;
ldap_utf8_isascii;
ldap_utf8_isdigit;
ldap_utf8_islower;
ldap_utf8_isspace;
ldap_utf8_isupper;
ldap_utf8_isxdigit;
ldap_utf8_lentab;
ldap_utf8_mintab;
ldap_utf8_next;
ldap_utf8_offset;
ldap_utf8_prev;
ldap_utf8_strchr;
ldap_utf8_strcspn;
ldap_utf8_strpbrk;
ldap_utf8_strspn;
ldap_utf8_strtok;
ldap_validate_and_fill_sourceip;
ldap_value_dup;
ldap_value_free;
ldap_value_free_len;
ldap_verify_credentials;
ldap_verify_credentials_s;
ldap_whoami;
ldap_whoami_s;
ldap_x_mb_to_utf8;
ldap_x_mbs_to_utf8s;
ldap_x_ucs4_to_utf8;
ldap_x_utf8_to_mb;
ldap_x_utf8_to_ucs4;
ldap_x_utf8_to_wc;
ldap_x_utf8s_to_mbs;
ldap_x_utf8s_to_wcs;
ldap_x_wc_to_utf8;
ldap_x_wcs_to_utf8s;
ldif_close;
ldif_countlines;
ldif_debug;
ldif_fetch_url;
ldif_getline;
ldif_is_not_printable;
ldif_must_b64_encode_register;
ldif_must_b64_encode_release;
ldif_open;
ldif_open_mem;
ldif_open_url;
ldif_parse_line2;
ldif_parse_line;
ldif_put;
ldif_put_wrap;
ldif_read_record;
ldif_sput;
ldif_sput_wrap;
#endif /* LDAP_DEPRECATED */
local:
*;
};