From 8651f98a08c37bea6ee9be78acececd52bac66a0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 16 Oct 2025 17:23:57 +0100 Subject: [PATCH] ITS#9739 Let configure options influence the symbol version map --- build/lib-shared.mk | 2 +- build/lib.mk | 2 +- configure.ac | 2 + include/lber.h | 2 + include/liblber-config.hin | 26 ++ include/libldap-config.hin | 43 ++++ libraries/liblber/Makefile.in | 7 +- libraries/liblber/lber-int.h | 1 + libraries/liblber/{lber.map => lber.map.in} | 8 + libraries/libldap/Makefile.in | 9 +- libraries/libldap/ldap-int.h | 6 +- libraries/libldap/{ldap.map => ldap.map.in} | 263 +++++++++++--------- 12 files changed, 245 insertions(+), 126 deletions(-) create mode 100644 include/liblber-config.hin create mode 100644 include/libldap-config.hin rename libraries/liblber/{lber.map => lber.map.in} (94%) rename libraries/libldap/{ldap.map => ldap.map.in} (95%) diff --git a/build/lib-shared.mk b/build/lib-shared.mk index ab71f6ab0d..40f622a092 100644 --- a/build/lib-shared.mk +++ b/build/lib-shared.mk @@ -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 diff --git a/build/lib.mk b/build/lib.mk index 01b837ac45..91855e3f9a 100644 --- a/build/lib.mk +++ b/build/lib.mk @@ -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) diff --git a/configure.ac b/configure.ac index be79344c88..bead4d2b9c 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/include/lber.h b/include/lber.h index 530359dc92..fd4957ddcd 100644 --- a/include/lber.h +++ b/include/lber.h @@ -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 diff --git a/include/liblber-config.hin b/include/liblber-config.hin new file mode 100644 index 0000000000..c5f9d642e1 --- /dev/null +++ b/include/liblber-config.hin @@ -0,0 +1,26 @@ +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . + * + * 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 + * . + */ + +/* + * liblber optional components + */ + +#ifndef _LBER_LIBCONFIG_H +#define _LBER_LIBCONFIG_H 1 + +/* ldapc:// support */ +#undef LDAP_CONNECTIONLESS + +#endif /* LBER_LIBCONFIG */ diff --git a/include/libldap-config.hin b/include/libldap-config.hin new file mode 100644 index 0000000000..729a8428d8 --- /dev/null +++ b/include/libldap-config.hin @@ -0,0 +1,43 @@ +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . + * + * 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 + * . + */ + +/* + * 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 */ diff --git a/libraries/liblber/Makefile.in b/libraries/liblber/Makefile.in index 0be5c01f85..ae87516398 100644 --- a/libraries/liblber/Makefile.in +++ b/libraries/liblber/Makefile.in @@ -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) diff --git a/libraries/liblber/lber-int.h b/libraries/liblber/lber-int.h index 7eaabdedb7..9357ef71da 100644 --- a/libraries/liblber/lber-int.h +++ b/libraries/liblber/lber-int.h @@ -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" diff --git a/libraries/liblber/lber.map b/libraries/liblber/lber.map.in similarity index 94% rename from libraries/liblber/lber.map rename to libraries/liblber/lber.map.in index 9a4094b0fe..6509aed46f 100644 --- a/libraries/liblber/lber.map +++ b/libraries/liblber/lber.map.in @@ -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; diff --git a/libraries/libldap/Makefile.in b/libraries/libldap/Makefile.in index 18c724fda6..3799eccb9b 100644 --- a/libraries/libldap/Makefile.in +++ b/libraries/libldap/Makefile.in @@ -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) diff --git a/libraries/libldap/ldap-int.h b/libraries/libldap/ldap-int.h index 435b859066..78e1f806a2 100644 --- a/libraries/libldap/ldap-int.h +++ b/libraries/libldap/ldap-int.h @@ -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" diff --git a/libraries/libldap/ldap.map b/libraries/libldap/ldap.map.in similarity index 95% rename from libraries/libldap/ldap.map rename to libraries/libldap/ldap.map.in index b28c9c21e7..5e8a6ef0cd 100644 --- a/libraries/libldap/ldap.map +++ b/libraries/libldap/ldap.map.in @@ -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,67 +313,6 @@ OPENLDAP_2.200 ldap_pvt_str2upper; ldap_pvt_str2upperbv; ldap_pvt_strtok; - ldap_pvt_thread_cond_broadcast; - ldap_pvt_thread_cond_destroy; - ldap_pvt_thread_cond_init; - ldap_pvt_thread_cond_signal; - ldap_pvt_thread_cond_wait; - ldap_pvt_thread_create; - ldap_pvt_thread_destroy; - ldap_pvt_thread_exit; - ldap_pvt_thread_get_concurrency; - ldap_pvt_thread_initialize; - ldap_pvt_thread_join; - ldap_pvt_thread_key_create; - ldap_pvt_thread_key_destroy; - ldap_pvt_thread_key_getdata; - ldap_pvt_thread_key_setdata; - ldap_pvt_thread_kill; - ldap_pvt_thread_mutex_destroy; - ldap_pvt_thread_mutex_init; - ldap_pvt_thread_mutex_lock; - ldap_pvt_thread_mutex_recursive_init; - ldap_pvt_thread_mutex_trylock; - ldap_pvt_thread_mutex_unlock; - ldap_pvt_thread_pool_backload; - ldap_pvt_thread_pool_close; - ldap_pvt_thread_pool_context; - ldap_pvt_thread_pool_context_reset; - ldap_pvt_thread_pool_destroy; - ldap_pvt_thread_pool_free; - ldap_pvt_thread_pool_getkey; - ldap_pvt_thread_pool_idle; - ldap_pvt_thread_pool_init; - ldap_pvt_thread_pool_init_q; - ldap_pvt_thread_pool_maxthreads; - ldap_pvt_thread_pool_pause; - ldap_pvt_thread_pool_pausecheck_native; - ldap_pvt_thread_pool_pausequery; - ldap_pvt_thread_pool_pausewait; - ldap_pvt_thread_pool_pausing; - ldap_pvt_thread_pool_purgekey; - ldap_pvt_thread_pool_query; - ldap_pvt_thread_pool_queues; - ldap_pvt_thread_pool_resume; - ldap_pvt_thread_pool_retract; - ldap_pvt_thread_pool_setkey; - ldap_pvt_thread_pool_submit2; - ldap_pvt_thread_pool_submit; - ldap_pvt_thread_pool_tid; - ldap_pvt_thread_pool_unidle; - ldap_pvt_thread_pool_walk; - ldap_pvt_thread_rdwr_destroy; - ldap_pvt_thread_rdwr_init; - ldap_pvt_thread_rdwr_rlock; - ldap_pvt_thread_rdwr_rtrylock; - ldap_pvt_thread_rdwr_runlock; - ldap_pvt_thread_rdwr_wlock; - ldap_pvt_thread_rdwr_wtrylock; - ldap_pvt_thread_rdwr_wunlock; - ldap_pvt_thread_self; - 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; @@ -421,12 +344,9 @@ OPENLDAP_2.200 ldap_rdnfree_x; ldap_refresh; ldap_refresh_s; - ldap_rename2; - ldap_rename2_s; ldap_rename; ldap_rename_s; ldap_req_cmp; - ldap_result2error; ldap_result; ldap_return_request; ldap_sasl_bind; @@ -434,11 +354,8 @@ OPENLDAP_2.200 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; @@ -447,11 +364,6 @@ OPENLDAP_2.200 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; @@ -496,10 +408,8 @@ OPENLDAP_2.200 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; @@ -535,7 +445,6 @@ OPENLDAP_2.200 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; @@ -569,6 +478,128 @@ OPENLDAP_2.200 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; + ldap_pvt_thread_cond_signal; + ldap_pvt_thread_cond_wait; + ldap_pvt_thread_create; + ldap_pvt_thread_destroy; + ldap_pvt_thread_exit; + ldap_pvt_thread_get_concurrency; + ldap_pvt_thread_initialize; + ldap_pvt_thread_join; + ldap_pvt_thread_key_create; + ldap_pvt_thread_key_destroy; + ldap_pvt_thread_key_getdata; + ldap_pvt_thread_key_setdata; + ldap_pvt_thread_kill; + ldap_pvt_thread_mutex_destroy; + ldap_pvt_thread_mutex_init; + ldap_pvt_thread_mutex_lock; + ldap_pvt_thread_mutex_recursive_init; + ldap_pvt_thread_mutex_trylock; + ldap_pvt_thread_mutex_unlock; + ldap_pvt_thread_pool_backload; + ldap_pvt_thread_pool_close; + ldap_pvt_thread_pool_context; + ldap_pvt_thread_pool_context_reset; + ldap_pvt_thread_pool_destroy; + ldap_pvt_thread_pool_free; + ldap_pvt_thread_pool_getkey; + ldap_pvt_thread_pool_idle; + ldap_pvt_thread_pool_init; + ldap_pvt_thread_pool_init_q; + ldap_pvt_thread_pool_maxthreads; + ldap_pvt_thread_pool_pause; + ldap_pvt_thread_pool_pausecheck_native; + ldap_pvt_thread_pool_pausequery; + ldap_pvt_thread_pool_pausewait; + ldap_pvt_thread_pool_pausing; + ldap_pvt_thread_pool_purgekey; + ldap_pvt_thread_pool_query; + ldap_pvt_thread_pool_queues; + ldap_pvt_thread_pool_resume; + ldap_pvt_thread_pool_retract; + ldap_pvt_thread_pool_setkey; + ldap_pvt_thread_pool_submit2; + ldap_pvt_thread_pool_submit; + ldap_pvt_thread_pool_tid; + ldap_pvt_thread_pool_unidle; + ldap_pvt_thread_pool_walk; + ldap_pvt_thread_rdwr_destroy; + ldap_pvt_thread_rdwr_init; + ldap_pvt_thread_rdwr_rlock; + ldap_pvt_thread_rdwr_rtrylock; + ldap_pvt_thread_rdwr_runlock; + ldap_pvt_thread_rdwr_wlock; + ldap_pvt_thread_rdwr_wtrylock; + ldap_pvt_thread_rdwr_wunlock; + ldap_pvt_thread_self; + ldap_pvt_thread_set_concurrency; + ldap_pvt_thread_sleep; + ldap_pvt_thread_yield; +#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_result2error; + ldap_search; + ldap_search_s; + ldap_search_st; + ldap_simple_bind; + ldap_simple_bind_s; + ldap_sort_entries; + ldap_sort_strcasecmp; + ldap_sort_values; + ldap_unbind; + ldap_unbind_s; + ldap_value_free; +#endif /* LDAP_DEPRECATED */ local: *; }; -- 2.47.3