]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9739 Let configure options influence the symbol version map 797/head
authorOndřej Kuzník <ondra@mistotebe.net>
Thu, 16 Oct 2025 16:23:57 +0000 (17:23 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 4 Nov 2025 16:23:58 +0000 (16:23 +0000)
12 files changed:
build/lib-shared.mk
build/lib.mk
configure.ac
include/lber.h
include/liblber-config.hin [new file with mode: 0644]
include/libldap-config.hin [new file with mode: 0644]
libraries/liblber/Makefile.in
libraries/liblber/lber-int.h
libraries/liblber/lber.map.in [moved from libraries/liblber/lber.map with 94% similarity]
libraries/libldap/Makefile.in
libraries/libldap/ldap-int.h
libraries/libldap/ldap.map.in [moved from libraries/libldap/ldap.map with 95% similarity]

index ab71f6ab0d3d11c6bc9214325cef175b43e05f95..40f622a092bc7ea04dca84cd1c2cd5830e3d924a 100644 (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
index 01b837ac45478e0e63f285687fb2c9cadf5d972b..91855e3f9a54094d407e88ef8e18ae11f6fc11f5 100644 (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)
index be79344c88df9c1cdb7fd7f22c066092258afdce..bead4d2b9c0cf129879460d16e2a6f0045741acd 100644 (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
index 530359dc92f60dd30d40a8c804d87690b53c1819..fd4957ddcd304a4fcb8bed1f10dddd40d8ceae44 100644 (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
diff --git a/include/liblber-config.hin b/include/liblber-config.hin
new file mode 100644 (file)
index 0000000..c5f9d64
--- /dev/null
@@ -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 */
diff --git a/include/libldap-config.hin b/include/libldap-config.hin
new file mode 100644 (file)
index 0000000..729a842
--- /dev/null
@@ -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 */
index 0be5c01f8529310bf5ee36299bdbedbb19b416ef..ae8751639801075a008111c7152bd93d5942434e 100644 (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)
index 7eaabdedb7067d2cc27924d4a86ec96bc67fb75f..9357ef71dabef1b03a43a6f3a8be6ee4761377ef 100644 (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"
similarity index 94%
rename from libraries/liblber/lber.map
rename to libraries/liblber/lber.map.in
index 9a4094b0fe7321d71193a793684626f0a4562da9..6509aed46f46e731be1d97586587cc9e4548849e 100644 (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;
index 18c724fda6fcf6a2837e164a3ba11c107977ff8a..3799eccb9be608cf54ad7509d8b406c461255000 100644 (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)
index 435b8590663a2d70bba587c55e873d4f60433311..78e1f806a26fc87dfc9d07fe49ce4ef6bbe62377 100644 (file)
 #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"
 
 #endif /* LDAP_DEBUG */
 
-#define LDAP_DEPRECATED 1
 #include "ldap.h"
 
 #include "ldap_pvt.h"
similarity index 95%
rename from libraries/libldap/ldap.map
rename to libraries/libldap/ldap.map.in
index b28c9c21e7917ca2b009f6a90548d2db01c32592..5e8a6ef0cdd4c37487380d127d9cd0865e964a79 100644 (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,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:
     *;
 };