The ITS#6625 patch causes preprocessor warnings about conflicts with ldap-int.h, so I'm looking again at old ITS#5421 to kill off
#include "...libldap/ldap-int.h" These occur in librewrite, rwm, back-ldap and back-meta. The #include is for two things: Expose struct ldapmsg & LDAP_FREE, the need of which I've just removed in HEAD, and set up libldap logging. I expect the slapd components just as well can drop the #include and use slapd logging? back-*/search.c then need lber-int.h instead. librewrite still needs the #define ldap_debug in ldap-int.h. Instead we could either: (1) use liblber logging in librewrite, (2) or throw the code LDAP_INT_IN_KERNEL .. #endif /* LDAP_DEBUG */ out of ldap-int.h to a separate file, either include/ldap_log.h or something like libldap/ldap-int-log.h. This file would not expose structs with different definitions depending on LDAP_R_COMPILE & co. Since the file when not LDAP_INT_IN_KERNEL does need to refer ldap_debug to ldap_int_global_options.ldo_debug, that can be done with: /* This struct starts with the same members as ldapoptions */ struct ldapoptions_prefix { short ldo_valid; int ldo_debug; }; #define ldap_debug \ (*(int *) ((char *) &ldap_int_global_options \ + offsetof(struct ldapoptions_prefix, ldo_debug))) struct ldapoptions; LDAP_V ( struct ldapoptions ) ldap_int_global_options; Opinions? Put it in ldap-int.h, or ldap_log.h? Maybe the latter only if #defined LDAP_LIBRARY_LOGGING (defined by the user)? -- Hallvard