summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/ldb-samba/wscript_build14
-rw-r--r--source4/lib/ldb/wscript9
2 files changed, 16 insertions, 7 deletions
diff --git a/source4/lib/ldb-samba/wscript_build b/source4/lib/ldb-samba/wscript_build
index 717a8465a7..970f495eca 100644
--- a/source4/lib/ldb-samba/wscript_build
+++ b/source4/lib/ldb-samba/wscript_build
@@ -1,11 +1,15 @@
#!/usr/bin/env python
+# LDBSAMBA gets included in the ldb build when we are building ldb_ildap
+# as a built-in module and this delutes the symbols in the ldb library with
+# the symbols of all of ldb_ildap's dependencies.
-# It is important that this is a library!
-# Otherwise samba specific symbols end up in
-# 'ldb' and we fail the ABI check, when not using
-# a system 'ldb'.
-bld.SAMBA_LIBRARY('LDBSAMBA',
+# However, LDBSAMBA has to be a subsystem, otherwise we end up with an unusable
+# build when building against the system ldb.
+
+# When adding/modifying public symbols in LDBSAMBA, please make sure that
+# lib/ldb/ABI/ldb-samba-X.sigs gets updated.
+bld.SAMBA_SUBSYSTEM('LDBSAMBA',
source='ldif_handlers.c ldb_wrap.c',
autoproto='ldif_handlers_proto.h',
public_deps='ldb',
diff --git a/source4/lib/ldb/wscript b/source4/lib/ldb/wscript
index 6f6c9a1f9e..df2245f674 100644
--- a/source4/lib/ldb/wscript
+++ b/source4/lib/ldb/wscript
@@ -74,13 +74,15 @@ def build(bld):
ldb_attributes.c attrib_handlers.c ldb_controls.c qsort.c''')
if s4_build:
+ builtin_ildap = not bld.CONFIG_SET('USING_SYSTEM_LDB')
# this is only in the s4 build
bld.SAMBA_MODULE('ldb_ildap', 'ldb_ildap/ldb_ildap.c',
init_function='LDB_BACKEND(ldapi),LDB_BACKEND(ldaps),LDB_BACKEND(ldap)',
deps='talloc LIBCLI_LDAP CREDENTIALS',
- internal_module=not bld.CONFIG_SET('USING_SYSTEM_LDB'),
+ internal_module=builtin_ildap,
subsystem='ldb')
else:
+ builtin_ildap = False
# this is not included in the s4 build
bld.SAMBA_MODULE('ldb_ldap', 'ldb_ldap/ldb_ldap.c',
init_function='LDB_BACKEND(ldapi),LDB_BACKEND(ldaps),LDB_BACKEND(ldap)',
@@ -96,7 +98,10 @@ def build(bld):
bld.env.PACKAGE_VERSION = VERSION
bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
- abi_file = 'ABI/ldb-%s.sigs' % VERSION
+ if builtin_ildap:
+ abi_file = 'ABI/ldb-ildap-%s.sigs' % VERSION
+ else:
+ abi_file = 'ABI/ldb-%s.sigs' % VERSION
bld.SAMBA_SUBSYSTEM('pyldb_util', deps='ldb',
source='pyldb_util.c', needs_python=True)