The branch, master has been updated via ba4c9bd script/autobuild.py: make sure --nonshared-binary=smbtorture,smbd/smbd keeps working via 86fa1d9 script/autobuild.py: test some --with-{static,shared}-modules combinations via 3b1aa7a script/autobuild.py: use -Wmissing-prototypes and --picky-developer for samba-libs* via 3030325 script/autobuild.py: split out a samba_libs_configure variable via 43d1c92 s3:wscript: make --with-{static,shared}-modules options more flexible via d830cec s3:wscript: simplify ABI matching for pdb_*_init() via bbd82b0 s3:winbindd/idmap_*: make function prototypes available via static_decl_idmap; via 7b2ff4c s3:modules/perfcount_*: make function prototypes available via static_decl_perfcount; via 37b2677 s3:modules/vfs_*: make function prototypes available via static_decl_vfs; via fd6eb8b examples/VFS: make function prototypes available via static_decl_vfs; via 4451d0a examples/pdb: fix and validate pdb_test_init() prototype via static_decl_pdb; via f8fca7d s4:ntvfs/posix: fix forward declaration of struct pvfs_state via 72e0885 s3:wscript: remove leftover from vfs_notify_fam via a184951 s3:idmap: we need to allow undefined symbols in idmap_tdb via 5134d29 s3:wscript: fix the build without any idmap module from 345ef6b smbd: Remove an unnecessary else branch
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit ba4c9bd08c09e77df5f653dc7c39be9e2908cfc0 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 10:32:46 2015 +0200 script/autobuild.py: make sure --nonshared-binary=smbtorture,smbd/smbd keeps working - It's very useful to have a static smbtorture binary that can be copied arround. - It's sometimes also useful to have a static smbd binary in order avoid runtime overhead via do_lookup_x() (in ld*.so), note that Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Thu Aug 20 19:10:19 CEST 2015 on sn-devel-104 commit 86fa1d9059f90bc62c64adeb25b9534517b9a960 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 17:38:43 2015 +0200 script/autobuild.py: test some --with-{static,shared}-modules combinations Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 3b1aa7a665215f6a95a2ee7c5caf361a4063e9c1 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Aug 14 08:40:37 2015 +0200 script/autobuild.py: use -Wmissing-prototypes and --picky-developer for samba-libs* Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 303032559d7b68d125642ea25a1ad68df3de8d6d Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 17:34:42 2015 +0200 script/autobuild.py: split out a samba_libs_configure variable The avoids too long lines. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 43d1c92e6202b27db7f8b8820c55bffb2c486d4b Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 14:22:45 2015 +0200 s3:wscript: make --with-{static,shared}-modules options more flexible '!module' disables a non-required module for a static/shared build. '!DEFAULT' disables all modules defaulting to a static/shared build. '!FORCED' disables all (non-required) modules forced to a static/shared build. 'ALL' switches the default for all non forced modules from static to shared or from shared to static. The most specific specification wins e.g. --with-static-modules='!FORCED,!DEFAULT' --with-shared-modules='!FORCED,!DEFAULT' will only build modules which are required for the compilation. Might be useful if someone only wants to use client utils. --with-static-modules=ALL will build all modules statically linked. --with-static-modules='!DEFAULT,ALL' --with-shared-modules='!DEFAULT,ALL' might be useful for testing, it reverses the default build for all modules which can be build shared or static. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit d830cecd03697c68bdcc5f8eaf325abb7f0c425e Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:57:19 2015 +0200 s3:wscript: simplify ABI matching for pdb_*_init() The init functions of all static modules should be ignored. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit bbd82b0fee4cc4b8491ce30550b9ae8539116e3c Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:16:20 2015 +0200 s3:winbindd/idmap_*: make function prototypes available via static_decl_idmap; This allows the static build of the modules. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 7b2ff4cbd31fec2cc601e349ebb63f66df004bed Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:16:20 2015 +0200 s3:modules/perfcount_*: make function prototypes available via static_decl_perfcount; This allows the static build of the modules. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 37b2677648108e35a159dcf680cc7ffb581e9643 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:16:20 2015 +0200 s3:modules/vfs_*: make function prototypes available via static_decl_vfs; This allows the static build of the modules. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit fd6eb8bd448f9e9d209ca407a494d4011b2e97f1 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:16:20 2015 +0200 examples/VFS: make function prototypes available via static_decl_vfs; Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 4451d0a5cda71b61f4d7a7529c14d831b91574bb Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:16:20 2015 +0200 examples/pdb: fix and validate pdb_test_init() prototype via static_decl_pdb; Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit f8fca7d3155e6ff92d40d9de1a3a2043aeb995ca Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:15:36 2015 +0200 s4:ntvfs/posix: fix forward declaration of struct pvfs_state Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 72e0885413d1de4206ceec2046b5e7a610116faf Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 18:15:03 2015 +0200 s3:wscript: remove leftover from vfs_notify_fam Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit a184951673ef6cd69c1356e6ea0ee4622bd01312 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 20:07:59 2015 +0200 s3:idmap: we need to allow undefined symbols in idmap_tdb When idmap_tdb is build as shared module we need to allow undefined symbols which callback into winbindd code. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 5134d29cbb2edcc2326de8896c5465afb3a0f392 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 13 15:04:14 2015 +0200 s3:wscript: fix the build without any idmap module Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> ----------------------------------------------------------------------- Summary of changes: examples/VFS/shadow_copy_test.c | 1 + examples/VFS/skel_opaque.c | 1 + examples/VFS/skel_transparent.c | 1 + examples/pdb/test.c | 4 +- script/autobuild.py | 39 +++++++-- source3/modules/perfcount_test.c | 1 + source3/modules/vfs_acl_tdb.c | 1 + source3/modules/vfs_acl_xattr.c | 1 + source3/modules/vfs_aio_linux.c | 1 + source3/modules/vfs_audit.c | 1 + source3/modules/vfs_catia.c | 1 + source3/modules/vfs_dirsort.c | 1 + source3/modules/vfs_extd_audit.c | 1 + source3/modules/vfs_full_audit.c | 1 + source3/modules/vfs_posix_eadb.c | 2 +- source3/modules/vfs_scannedonly.c | 1 + source3/modules/vfs_smb_traffic_analyzer.c | 1 + source3/modules/vfs_syncops.c | 1 + source3/modules/wscript_build | 4 - source3/winbindd/idmap_ad.c | 1 + source3/winbindd/idmap_autorid.c | 1 + source3/winbindd/idmap_hash/idmap_hash.c | 1 + source3/winbindd/idmap_rfc2307.c | 1 + source3/winbindd/idmap_rid.c | 1 + source3/winbindd/idmap_script.c | 1 + source3/winbindd/idmap_tdb2.c | 1 + source3/winbindd/wscript_build | 16 ++-- source3/wscript | 123 ++++++++++++++++++++++------- source3/wscript_build | 12 +-- source4/ntvfs/posix/posix_eadb.h | 2 +- 30 files changed, 164 insertions(+), 60 deletions(-) Changeset truncated at 500 lines: diff --git a/examples/VFS/shadow_copy_test.c b/examples/VFS/shadow_copy_test.c index b3a99ca..05d6e16 100644 --- a/examples/VFS/shadow_copy_test.c +++ b/examples/VFS/shadow_copy_test.c @@ -83,6 +83,7 @@ static struct vfs_fn_pointers vfs_test_shadow_copy_fns = { .get_shadow_copy_data_fn = test_get_shadow_copy_data }; +static_decl_vfs; NTSTATUS vfs_shadow_copy_test_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c index 7021998..29fe6f4 100644 --- a/examples/VFS/skel_opaque.c +++ b/examples/VFS/skel_opaque.c @@ -961,6 +961,7 @@ struct vfs_fn_pointers skel_opaque_fns = { .set_offline_fn = skel_set_offline }; +static_decl_vfs; NTSTATUS vfs_skel_opaque_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "skel_opaque", diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c index 6c6adea..c5a36a6 100644 --- a/examples/VFS/skel_transparent.c +++ b/examples/VFS/skel_transparent.c @@ -1070,6 +1070,7 @@ struct vfs_fn_pointers skel_transparent_fns = { .set_offline_fn = skel_set_offline }; +static_decl_vfs; NTSTATUS vfs_skel_transparent_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "skel_transparent", diff --git a/examples/pdb/test.c b/examples/pdb/test.c index 5780130..6d68d87 100644 --- a/examples/pdb/test.c +++ b/examples/pdb/test.c @@ -107,8 +107,8 @@ static NTSTATUS testsam_init(struct pdb_methods **pdb_method, const char *locati return NT_STATUS_OK; } -NTSTATUS pdb_testsam_init(void); -NTSTATUS pdb_testsam_init(void) +static_decl_pdb; +NTSTATUS pdb_test_init(void) { return smb_register_passdb(PASSDB_INTERFACE_VERSION, "testsam", testsam_init); diff --git a/script/autobuild.py b/script/autobuild.py index d2662b9..c91ff2c 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -41,6 +41,13 @@ defaulttasks = [ "ctdb", "samba", "samba-xc", "samba-ctdb", "samba-libs", "ldb", samba_configure_params = " --picky-developer ${PREFIX} --with-profiling-data" +samba_libs_envvars = "PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH" +samba_libs_envvars += " PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig" +samba_libs_envvars += " ADDITIONAL_CFLAGS='-Wmissing-prototypes'" +samba_libs_configure_base = samba_libs_envvars + " ./configure --abi-check --enable-debug --picky-developer -C ${PREFIX}" +samba_libs_configure_libs = samba_libs_configure_base + " --bundled-libraries=NONE" +samba_libs_configure_samba = samba_libs_configure_base + " --bundled-libraries=!talloc,!tdb,!pytdb,!ldb,!pyldb,!tevent,!pytevent" + tasks = { "ctdb" : [ ("random-sleep", "../script/random-sleep.sh 60 600", "text/plain"), ("configure", "./configure ${PREFIX}", "text/plain"), @@ -89,26 +96,46 @@ tasks = { "samba-libs" : [ ("random-sleep", "script/random-sleep.sh 60 600", "text/plain"), - ("talloc-configure", "cd lib/talloc && PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}", "text/plain"), + ("talloc-configure", "cd lib/talloc && " + samba_libs_configure_libs, "text/plain"), ("talloc-make", "cd lib/talloc && make", "text/plain"), ("talloc-install", "cd lib/talloc && make install", "text/plain"), - ("tdb-configure", "cd lib/tdb && PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}", "text/plain"), + ("tdb-configure", "cd lib/tdb && " + samba_libs_configure_libs, "text/plain"), ("tdb-make", "cd lib/tdb && make", "text/plain"), ("tdb-install", "cd lib/tdb && make install", "text/plain"), - ("tevent-configure", "cd lib/tevent && PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}", "text/plain"), + ("tevent-configure", "cd lib/tevent && " + samba_libs_configure_libs, "text/plain"), ("tevent-make", "cd lib/tevent && make", "text/plain"), ("tevent-install", "cd lib/tevent && make install", "text/plain"), - ("ldb-configure", "cd lib/ldb && PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}", "text/plain"), + ("ldb-configure", "cd lib/ldb && " + samba_libs_configure_libs, "text/plain"), ("ldb-make", "cd lib/ldb && make", "text/plain"), ("ldb-install", "cd lib/ldb && make install", "text/plain"), - ("configure", "PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=!talloc,!tdb,!pytdb,!ldb,!pyldb,!tevent,!pytevent --abi-check --enable-debug -C ${PREFIX}", "text/plain"), + ("configure", samba_libs_configure_samba, "text/plain"), ("make", "make", "text/plain"), ("install", "make install", "text/plain"), - ("dist", "make dist", "text/plain")], + ("dist", "make dist", "text/plain"), + + # retry with all modules shared + ("allshared-distclean", "make distclean", "text/plain"), + ("allshared-configure", samba_libs_configure_samba + " --with-shared-modules=ALL", "text/plain"), + ("allshared-make", "make", "text/plain"), + + # retry with all modules static + ("allstatic-distclean", "make distclean", "text/plain"), + ("allstatic-configure", samba_libs_configure_samba + " --with-static-modules=ALL", "text/plain"), + ("allstatic-make", "make", "text/plain"), + + # retry without any required modules + ("none-distclean", "make distclean", "text/plain"), + ("none-configure", samba_libs_configure_samba + " --with-static-modules=!FORCED,!DEFAULT --with-shared-modules=!FORCED,!DEFAULT", "text/plain"), + ("none-make", "make", "text/plain"), + + # retry with nonshared smbd and smbtorture + ("nonshared-distclean", "make distclean", "text/plain"), + ("nonshared-configure", samba_libs_configure_base + " --bundled-libraries=talloc,tdb,pytdb,ldb,pyldb,tevent,pytevent --with-static-modules=ALL --nonshared-binary=smbtorture,smbd/smbd", "text/plain"), + ("nonshared-make", "make", "text/plain")], "ldb" : [ ("random-sleep", "../../script/random-sleep.sh 60 600", "text/plain"), diff --git a/source3/modules/perfcount_test.c b/source3/modules/perfcount_test.c index 0dc073c..ccc74dd 100644 --- a/source3/modules/perfcount_test.c +++ b/source3/modules/perfcount_test.c @@ -385,6 +385,7 @@ static struct smb_perfcount_handlers perfcount_test_handlers = { perfcount_test_end }; +static_decl_perfcount; NTSTATUS perfcount_test_init(void) { return smb_register_perfcounter(SMB_PERFCOUNTER_INTERFACE_VERSION, diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c index 1537ba3..c7acf43 100644 --- a/source3/modules/vfs_acl_tdb.c +++ b/source3/modules/vfs_acl_tdb.c @@ -403,6 +403,7 @@ static struct vfs_fn_pointers vfs_acl_tdb_fns = { .sys_acl_set_fd_fn = sys_acl_set_fd_tdb }; +static_decl_vfs; NTSTATUS vfs_acl_tdb_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "acl_tdb", diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c index c1b0a60..710fbf3 100644 --- a/source3/modules/vfs_acl_xattr.c +++ b/source3/modules/vfs_acl_xattr.c @@ -214,6 +214,7 @@ static struct vfs_fn_pointers vfs_acl_xattr_fns = { .sys_acl_set_fd_fn = sys_acl_set_fd_xattr }; +static_decl_vfs; NTSTATUS vfs_acl_xattr_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "acl_xattr", diff --git a/source3/modules/vfs_aio_linux.c b/source3/modules/vfs_aio_linux.c index 5b515d8..db5f075 100644 --- a/source3/modules/vfs_aio_linux.c +++ b/source3/modules/vfs_aio_linux.c @@ -348,6 +348,7 @@ static struct vfs_fn_pointers vfs_aio_linux_fns = { .fsync_recv_fn = aio_linux_int_recv, }; +static_decl_vfs; NTSTATUS vfs_aio_linux_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c index 6963c37..02e8f35 100644 --- a/source3/modules/vfs_audit.c +++ b/source3/modules/vfs_audit.c @@ -283,6 +283,7 @@ static struct vfs_fn_pointers vfs_audit_fns = { .fchmod_acl_fn = audit_fchmod_acl }; +static_decl_vfs; NTSTATUS vfs_audit_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "audit", diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c index f455afd..c17ffa8 100644 --- a/source3/modules/vfs_catia.c +++ b/source3/modules/vfs_catia.c @@ -1005,6 +1005,7 @@ static struct vfs_fn_pointers vfs_catia_fns = { .setxattr_fn = catia_setxattr, }; +static_decl_vfs; NTSTATUS vfs_catia_init(void) { NTSTATUS ret; diff --git a/source3/modules/vfs_dirsort.c b/source3/modules/vfs_dirsort.c index 224229f..d164088 100644 --- a/source3/modules/vfs_dirsort.c +++ b/source3/modules/vfs_dirsort.c @@ -358,6 +358,7 @@ static struct vfs_fn_pointers vfs_dirsort_fns = { .closedir_fn = dirsort_closedir, }; +static_decl_vfs; NTSTATUS vfs_dirsort_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "dirsort", diff --git a/source3/modules/vfs_extd_audit.c b/source3/modules/vfs_extd_audit.c index 93ae7e6..7d6b4d3 100644 --- a/source3/modules/vfs_extd_audit.c +++ b/source3/modules/vfs_extd_audit.c @@ -360,6 +360,7 @@ static struct vfs_fn_pointers vfs_extd_audit_fns = { .fchmod_acl_fn = audit_fchmod_acl, }; +static_decl_vfs; NTSTATUS vfs_extd_audit_init(void) { NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index 6de22b1..11f5d82 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -2323,6 +2323,7 @@ static struct vfs_fn_pointers vfs_full_audit_fns = { .set_offline_fn = smb_full_audit_set_offline, }; +static_decl_vfs; NTSTATUS vfs_full_audit_init(void) { NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, diff --git a/source3/modules/vfs_posix_eadb.c b/source3/modules/vfs_posix_eadb.c index 993c919..20679e1 100644 --- a/source3/modules/vfs_posix_eadb.c +++ b/source3/modules/vfs_posix_eadb.c @@ -431,7 +431,7 @@ static struct vfs_fn_pointers vfs_posix_eadb_fns = { .connect_fn = posix_eadb_connect, }; -NTSTATUS vfs_posix_eadb_init(void); +static_decl_vfs; NTSTATUS vfs_posix_eadb_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "posix_eadb", diff --git a/source3/modules/vfs_scannedonly.c b/source3/modules/vfs_scannedonly.c index 0232a15..128374a 100644 --- a/source3/modules/vfs_scannedonly.c +++ b/source3/modules/vfs_scannedonly.c @@ -1036,6 +1036,7 @@ static struct vfs_fn_pointers vfs_scannedonly_fns = { .connect_fn = scannedonly_connect }; +static_decl_vfs; NTSTATUS vfs_scannedonly_init(void) { return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "scannedonly", diff --git a/source3/modules/vfs_smb_traffic_analyzer.c b/source3/modules/vfs_smb_traffic_analyzer.c index 4938ff7..73ebf63 100644 --- a/source3/modules/vfs_smb_traffic_analyzer.c +++ b/source3/modules/vfs_smb_traffic_analyzer.c @@ -919,6 +919,7 @@ static struct vfs_fn_pointers vfs_smb_traffic_analyzer_fns = { }; /* Module initialization */ +static_decl_vfs; NTSTATUS vfs_smb_traffic_analyzer_init(void) { NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, diff --git a/source3/modules/vfs_syncops.c b/source3/modules/vfs_syncops.c index 8ff283d..99f6178 100644 --- a/source3/modules/vfs_syncops.c +++ b/source3/modules/vfs_syncops.c @@ -291,6 +291,7 @@ static struct vfs_fn_pointers vfs_syncops_fns = { .close_fn = syncops_close, }; +static_decl_vfs; NTSTATUS vfs_syncops_init(void) { NTSTATUS ret; diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build index e618b08..e6576ac 100644 --- a/source3/modules/wscript_build +++ b/source3/modules/wscript_build @@ -281,10 +281,6 @@ bld.SAMBA3_MODULE('vfs_gpfs', enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_gpfs'), includes=bld.CONFIG_GET('CPPPATH_GPFS')) -vfs_notify_fam_deps='samba-util ' -if bld.CONFIG_SET('SAMBA_FAM_LIBS'): - vfs_notify_fam_deps += bld.CONFIG_GET('SAMBA_FAM_LIBS') - bld.SAMBA3_MODULE('vfs_readahead', subsystem='vfs', source='vfs_readahead.c', diff --git a/source3/winbindd/idmap_ad.c b/source3/winbindd/idmap_ad.c index 5f7ab63..bc9d785 100644 --- a/source3/winbindd/idmap_ad.c +++ b/source3/winbindd/idmap_ad.c @@ -962,6 +962,7 @@ static struct nss_info_methods nss_sfu20_methods = { Initialize the plugins ***********************************************************************/ +static_decl_idmap; NTSTATUS idmap_ad_init(void) { static NTSTATUS status_idmap_ad = NT_STATUS_UNSUCCESSFUL; diff --git a/source3/winbindd/idmap_autorid.c b/source3/winbindd/idmap_autorid.c index eeac2b0..76dccaa 100644 --- a/source3/winbindd/idmap_autorid.c +++ b/source3/winbindd/idmap_autorid.c @@ -824,6 +824,7 @@ static struct idmap_methods autorid_methods = { .allocate_id = idmap_autorid_allocate_id }; +static_decl_idmap; NTSTATUS idmap_autorid_init(void) { return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, diff --git a/source3/winbindd/idmap_hash/idmap_hash.c b/source3/winbindd/idmap_hash/idmap_hash.c index 1dbd300..51bbf5b 100644 --- a/source3/winbindd/idmap_hash/idmap_hash.c +++ b/source3/winbindd/idmap_hash/idmap_hash.c @@ -366,6 +366,7 @@ static struct nss_info_methods hash_nss_methods = { state. **********************************************************************/ +static_decl_idmap; NTSTATUS idmap_hash_init(void) { static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL; diff --git a/source3/winbindd/idmap_rfc2307.c b/source3/winbindd/idmap_rfc2307.c index e9d04c3..6b3ab4a 100644 --- a/source3/winbindd/idmap_rfc2307.c +++ b/source3/winbindd/idmap_rfc2307.c @@ -861,6 +861,7 @@ static struct idmap_methods rfc2307_methods = { .sids_to_unixids = idmap_rfc2307_sids_to_unixids, }; +static_decl_idmap; NTSTATUS idmap_rfc2307_init(void) { return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rfc2307", diff --git a/source3/winbindd/idmap_rid.c b/source3/winbindd/idmap_rid.c index 099f68c..d6c649b 100644 --- a/source3/winbindd/idmap_rid.c +++ b/source3/winbindd/idmap_rid.c @@ -185,6 +185,7 @@ static struct idmap_methods rid_methods = { .sids_to_unixids = idmap_rid_sids_to_unixids, }; +static_decl_idmap; NTSTATUS idmap_rid_init(void) { return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rid", &rid_methods); diff --git a/source3/winbindd/idmap_script.c b/source3/winbindd/idmap_script.c index 3a0d685..e758b4e 100644 --- a/source3/winbindd/idmap_script.c +++ b/source3/winbindd/idmap_script.c @@ -388,6 +388,7 @@ static struct idmap_methods db_methods = { .sids_to_unixids = idmap_script_sids_to_unixids, }; +static_decl_idmap; NTSTATUS idmap_script_init(void) { return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "script", &db_methods); diff --git a/source3/winbindd/idmap_tdb2.c b/source3/winbindd/idmap_tdb2.c index ddd4dbf..1b75936 100644 --- a/source3/winbindd/idmap_tdb2.c +++ b/source3/winbindd/idmap_tdb2.c @@ -609,6 +609,7 @@ static struct idmap_methods db_methods = { .allocate_id = idmap_tdb_common_get_new_id }; +static_decl_idmap; NTSTATUS idmap_tdb2_init(void) { return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "tdb2", &db_methods); diff --git a/source3/winbindd/wscript_build b/source3/winbindd/wscript_build index 2f7e74d..3ee280c 100644 --- a/source3/winbindd/wscript_build +++ b/source3/winbindd/wscript_build @@ -2,7 +2,7 @@ bld.SAMBA3_LIBRARY('idmap', source='idmap.c idmap_util.c', - deps='samba-util', + deps='samba-util pdb', allow_undefined_symbols=True, private_library=True) @@ -16,12 +16,13 @@ bld.SAMBA3_SUBSYSTEM('IDMAP_TDB_COMMON', bld.SAMBA3_SUBSYSTEM('IDMAP_HASH', source='idmap_hash/idmap_hash.c idmap_hash/mapfile.c', - deps='samba-util krb5samba') + deps='samba-util krb5samba', + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_hash')) bld.SAMBA3_SUBSYSTEM('IDMAP_AD', source='idmap_ad.c', deps='ads nss_info', - enabled=bld.CONFIG_SET("HAVE_LDAP")) + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad')) bld.SAMBA3_MODULE('idmap_ad', subsystem='idmap', @@ -30,7 +31,7 @@ bld.SAMBA3_MODULE('idmap_ad', deps='IDMAP_AD', init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('idmap_ad'), - enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad') and bld.CONFIG_SET("HAVE_LDAP")) + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad')) bld.SAMBA3_MODULE('idmap_rfc2307', subsystem='idmap', @@ -39,7 +40,7 @@ bld.SAMBA3_MODULE('idmap_rfc2307', init_function='', deps='ads', internal_module=bld.SAMBA3_IS_STATIC_MODULE('idmap_rfc2307'), - enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_rfc2307') and bld.CONFIG_SET("HAVE_LDAP")) + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_rfc2307')) bld.SAMBA3_MODULE('idmap_rid', subsystem='idmap', @@ -79,6 +80,7 @@ bld.SAMBA3_MODULE('idmap_tdb', source='idmap_tdb.c', deps='samba-util tdb IDMAP_TDB_COMMON', init_function='', + allow_undefined_symbols=True, internal_module=bld.SAMBA3_IS_STATIC_MODULE('idmap_tdb'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_tdb')) @@ -141,7 +143,7 @@ bld.SAMBA3_MODULE('nss_info_rfc2307', allow_undefined_symbols=True, init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('idmap_ad'), - enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad') and bld.CONFIG_SET("HAVE_LDAP")) + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad')) bld.SAMBA3_MODULE('nss_info_sfu20', subsystem='nss_info', @@ -150,7 +152,7 @@ bld.SAMBA3_MODULE('nss_info_sfu20', allow_undefined_symbols=True, init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('idmap_ad'), - enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad') and bld.CONFIG_SET("HAVE_LDAP")) + enabled=bld.SAMBA3_IS_ENABLED_MODULE('idmap_ad')) bld.SAMBA3_MODULE('nss_info_sfu', subsystem='nss_info', diff --git a/source3/wscript b/source3/wscript index 4e940fa..4918951 100644 --- a/source3/wscript +++ b/source3/wscript @@ -16,10 +16,24 @@ Options.default_prefix = '/usr/local/samba' def set_options(opt): opt.add_option('--with-static-modules', - help=("Comma-separated list of names of modules to statically link in"), + help=("Comma-separated list of names of modules to statically link in. "+ + "May include !module to disable 'module'. "+ + "Can be '!FORCED' to disable all non-required static only modules. "+ + "Can be '!DEFAULT' to disable all modules defaulting to a static build. "+ + "Can be 'ALL' to build all default shared modules static. "+ + "The most specific one wins, while the order is ignored "+ + "and --with-static-modules is evaluated before "+ + "--with-shared-modules"), action="store", dest='static_modules', default=None) opt.add_option('--with-shared-modules', - help=("Comma-separated list of names of modules to build shared"), + help=("Comma-separated list of names of modules to build shared. "+ + "May include !module to disable 'module'. "+ + "Can be '!FORCED' to disable all non-required shared only modules. "+ + "Can be '!DEFAULT' to disable all modules defaulting to a shared build. "+ + "Can be 'ALL' to build all default static modules shared. "+ + "The most specific one wins, while the order is ignored "+ + "and --with-static-modules is evaluated before "+ + "--with-shared-modules"), action="store", dest='shared_modules', default=None) opt.SAMBA3_ADD_OPTION('winbind') @@ -69,6 +83,9 @@ def configure(conf): default_static_modules = [] default_shared_modules = [] + required_static_modules = [] + forced_static_modules = [] + forced_shared_modules = [] if Options.options.developer: conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD') @@ -77,6 +94,9 @@ def configure(conf): if sys.platform != 'openbsd5': conf.ADD_LDFLAGS("-Wl,--export-dynamic", testflags=True) + # We crash without vfs_default + required_static_modules.extend(TO_LIST('vfs_default')) + conf.CHECK_HEADERS('execinfo.h libexc.h libunwind.h netdb.h') -- Samba Shared Repository