summaryrefslogtreecommitdiff
path: root/source3/wscript_build
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2012-08-30 19:09:14 +0300
committerAlexander Bokovoy <ab@samba.org>2012-09-07 12:31:42 +0200
commita43774a2577cd852222f4df16eb5a95aa4f11f5e (patch)
tree74bcd51ad4187ad7e0f0903c1de7d85d90362d71 /source3/wscript_build
parentdd2ab2e6793891f5a879b8f15250eb43373f015b (diff)
downloadsamba-a43774a2577cd852222f4df16eb5a95aa4f11f5e.tar.gz
samba-a43774a2577cd852222f4df16eb5a95aa4f11f5e.tar.bz2
samba-a43774a2577cd852222f4df16eb5a95aa4f11f5e.zip
s3-waf: avoid exporting init symbols from statically linked modules
WAF builds with and without AD DC affect list of statically linked modules that are added into libpdb. This makes impossible to have ABI for libpdb that does not depend on configured features. By making init functions from statically linked modules to have local scope in shared libraries, we avoid unwarranted ABI changes. Additionally, pdb_samba_dsdb imports IDMAP subsystem of source4/ as it is not a shared library. Making its symbols private as well. Finally, in order to have the filtering of symbols work, libpdb has to be public library.
Diffstat (limited to 'source3/wscript_build')
-rwxr-xr-xsource3/wscript_build18
1 files changed, 17 insertions, 1 deletions
diff --git a/source3/wscript_build b/source3/wscript_build
index 66171bfe6c..ca08ed8c42 100755
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -692,14 +692,30 @@ bld.SAMBA3_SUBSYSTEM('TLDAP',
source=TLDAP_SRC,
deps='asn1util LIBTSOCKET')
+static_pdb_modules = ['tdbsam', 'ldap', 'smbpasswd', 'wbc_sam']
+static_pdb_match = filter(lambda x: bld.SAMBA3_IS_STATIC_MODULE('pdb_%s' % x), static_pdb_modules)
+private_pdb_match = []
+if bld.SAMBA3_IS_STATIC_MODULE('pdb_samba_dsdb') and bld.AD_DC_BUILD_IS_ENABLED():
+ static_pdb_match.append('samba_dsdb')
+ private_pdb_match.append('!idmap_init')
+ private_pdb_match.append('!idmap_sids_to_xids')
+ private_pdb_match.append('!idmap_xids_to_sids')
+
+private_pdb_match = private_pdb_match + map(lambda x: '!pdb_%s_init' % x, static_pdb_match)
+
bld.SAMBA3_LIBRARY('pdb',
source=PASSDB_SRC,
deps='secrets3 GROUPDB SERVER_MUTEX wbclient LIBCLI_AUTH flag_mapping',
- private_library=True,
+ private_library=False,
+ pc_files=[],
+ public_headers_install=True,
public_headers='''
include/passdb.h
passdb/machine_sid.h
passdb/lookup_sid.h''',
+ abi_match=private_pdb_match + ['*'],
+ abi_directory='passdb/ABI',
+ vnum='0',
vars=locals())
bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX',