The branch, master has been updated via 734ea27 uid_wrapper: Be strict when checking __attribute__ features via c220e31 resolv_wrapper: Be strict when checking __attribute__ features via 65b0746 pam_wrapper: Be strict when checking __attribute__ features via 9a670bd nss_wrapper: Be strict when checking __attribute__ features via 59dfd2d replace: Be strict when checking __attribute__ features via 77cdfe3 socket_wrapper: Be strict when checking __attribute__ features via a9775c2 wafsamba: Be strict when checking __attribute__ features via c08d65c wafsamba: Add strict option to CHECK_CODE via 271407a ctdb-daemon: Set environment variable if running in interactive mode via a4393dd ctdb-daemon: Avoid closing stdin when running in interactive mode via af69700 ctdb-tests: Avoid segfault by initializing logging via b977ded ctdb-common: Use correct return type for tevent_queue_add_entry from 9f28d30 s3:winbind: Do not lookup local system accounts in AD
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 734ea271ab01e74d0694f3fbc9acdf980d866b30 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:45:39 2018 +1000 uid_wrapper: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Martin Schwenke <mart...@samba.org> Autobuild-Date(master): Thu Jul 5 03:01:33 CEST 2018 on sn-devel-144 commit c220e310b40c67b73248141b3af544bad19fd39d Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:45:24 2018 +1000 resolv_wrapper: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit 65b0746694a0cbd8f40c5e89dc9a680044f7a1a9 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:45:04 2018 +1000 pam_wrapper: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit 9a670bde563b269587c051c655a7b3778c008c87 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:44:48 2018 +1000 nss_wrapper: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit 59dfd2d797b7fa1610610ad1db2f31d5dfae4f06 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:36:33 2018 +1000 replace: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit 77cdfe3ecc06a9aef9ea4201a1a76a9a7b47a73f Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:36:16 2018 +1000 socket_wrapper: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit a9775c2429554e029164ad9b98dc8c8c749c50fe Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:34:29 2018 +1000 wafsamba: Be strict when checking __attribute__ features BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit c08d65c3eea997d52e311f027d84bdc3f9c93059 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 13:56:13 2018 +1000 wafsamba: Add strict option to CHECK_CODE Some compilers (e.g. xlc) ignores unsupported features, generates a warning, but does not fail compilation. This ensures that any compiler warnings are treated as errors and the feature support is correctly identified. This adds equivalent compiler option to -Werror for xlc. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Andreas Schneider <a...@samba.org> commit 271407ab16f17282b3e63b6459d5511ec00c6d2d Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jun 26 18:39:09 2018 +1000 ctdb-daemon: Set environment variable if running in interactive mode CTDB_INTERACTIVE will be used to tell the other daemons if the ctdb daemon is started in interactive mode. This is primarily used only for testing. Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Martin Schwenke <mar...@meltin.net> commit a4393ddef763382ae0315792421cae0638949f29 Author: Amitay Isaacs <ami...@gmail.com> Date: Thu Jun 21 17:57:02 2018 +1000 ctdb-daemon: Avoid closing stdin when running in interactive mode Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Martin Schwenke <mar...@meltin.net> commit af697008531bd74546656841dd3a1ed92522fc57 Author: Amitay Isaacs <ami...@gmail.com> Date: Thu Jun 21 20:00:41 2018 +1000 ctdb-tests: Avoid segfault by initializing logging Setting DEBUGLEVEL before calling debug_init() causes segmentation violation with gcc8. DEBUGLEVEL_CLASS is statically initialized to debug_class_list_initial which is defined as const. Only after debug_init() is called, DEBUGLEVEL_CLASS becomes a talloc'd array. So before modifying DEBUGLEVEL, ensure debug_init() is called via setup_logging(). (debug_init is a static function.) Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Martin Schwenke <mar...@meltin.net> commit b977ded38a79e1eadd6965e8b7fd49f86322b4d6 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Jul 3 14:08:22 2018 +1000 ctdb-common: Use correct return type for tevent_queue_add_entry BUG: https://bugzilla.samba.org/show_bug.cgi?id=13493 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Martin Schwenke <mar...@meltin.net> ----------------------------------------------------------------------- Summary of changes: buildtools/wafsamba/samba_autoconf.py | 12 +++++++++++- buildtools/wafsamba/wscript | 4 ++++ ctdb/common/sock_io.c | 6 +++--- ctdb/server/ctdb_daemon.c | 2 +- ctdb/server/ctdbd.c | 1 + ctdb/tests/src/fetch_loop.c | 3 +++ ctdb/tests/src/fetch_loop_key.c | 3 +++ ctdb/tests/src/fetch_readonly.c | 3 +++ ctdb/tests/src/fetch_readonly_loop.c | 3 +++ ctdb/tests/src/fetch_ring.c | 3 +++ ctdb/tests/src/g_lock_loop.c | 4 ++-- ctdb/tests/src/message_ring.c | 3 +++ ctdb/tests/src/transaction_loop.c | 3 +++ ctdb/tests/src/tunnel_test.c | 3 +++ ctdb/tests/src/update_record.c | 3 +++ ctdb/tests/src/update_record_persistent.c | 3 +++ ctdb/wscript | 2 +- lib/replace/wscript | 2 +- third_party/nss_wrapper/wscript | 2 ++ third_party/pam_wrapper/wscript | 2 ++ third_party/resolv_wrapper/wscript | 2 ++ third_party/socket_wrapper/wscript | 2 ++ third_party/uid_wrapper/wscript | 4 +++- 23 files changed, 65 insertions(+), 10 deletions(-) Changeset truncated at 500 lines: diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index bdd7c8b..c4391d0 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -365,7 +365,7 @@ def CHECK_CODE(conf, code, define, headers=None, msg=None, cflags='', includes='# .', local_include=True, lib=None, link=True, define_ret=False, quote=False, - on_target=True): + on_target=True, strict=False): '''check if some code compiles and/or runs''' if CONFIG_SET(conf, define): @@ -395,6 +395,16 @@ def CHECK_CODE(conf, code, define, cflags = TO_LIST(cflags) + # Be strict when relying on a compiler check + # Some compilers (e.g. xlc) ignore non-supported features as warnings + if strict: + extra_cflags = None + if conf.env["CC_NAME"] == "gcc": + extra_cflags = "-Werror" + elif conf.env["CC_NAME"] == "xlc": + extra_cflags = "-qhalt=w" + cflags.append(extra_cflags) + if local_include: cflags.append('-I%s' % conf.curdir) diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index 3b36b57..1567c4b 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -374,6 +374,7 @@ def configure(conf): conf.CHECK_CODE('''int main(void) { return 0; } __attribute__((visibility("default"))) void vis_foo2(void) {}''', cflags=conf.env.VISIBILITY_CFLAGS, + strict=True, define='HAVE_VISIBILITY_ATTR', addmain=False) # check HAVE_CONSTRUCTOR_ATTRIBUTE @@ -391,6 +392,7 @@ def configure(conf): ''', 'HAVE_CONSTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library constructor support') # check HAVE_DESTRUCTOR_ATTRIBUTE @@ -408,6 +410,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') conf.CHECK_CODE(''' @@ -424,6 +427,7 @@ def configure(conf): ''', 'HAVE___ATTRIBUTE__', addmain=False, + strict=True, msg='Checking for __attribute__') if sys.platform.startswith('aix'): diff --git a/ctdb/common/sock_io.c b/ctdb/common/sock_io.c index 51341ce..b5c9332 100644 --- a/ctdb/common/sock_io.c +++ b/ctdb/common/sock_io.c @@ -278,7 +278,7 @@ int sock_queue_write(struct sock_queue *queue, uint8_t *buf, size_t buflen) { struct tevent_req *req; struct sock_queue_write_state *state; - bool status; + struct tevent_queue_entry *qentry; if (buflen >= INT32_MAX) { return -1; @@ -292,9 +292,9 @@ int sock_queue_write(struct sock_queue *queue, uint8_t *buf, size_t buflen) state->pkt = buf; state->pkt_size = (uint32_t)buflen; - status = tevent_queue_add_entry(queue->queue, queue->ev, req, + qentry = tevent_queue_add_entry(queue->queue, queue->ev, req, sock_queue_trigger, queue); - if (! status) { + if (qentry == NULL) { talloc_free(req); return -1; } diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c index 3b06972..8247859 100644 --- a/ctdb/server/ctdb_daemon.c +++ b/ctdb/server/ctdb_daemon.c @@ -1230,7 +1230,7 @@ int ctdb_start_daemon(struct ctdb_context *ctdb, bool do_fork) int res, ret = -1; struct tevent_fd *fde; - become_daemon(do_fork, false, false); + become_daemon(do_fork, !do_fork, !do_fork); ignore_signal(SIGPIPE); ignore_signal(SIGUSR1); diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c index 146524d..49e5b30 100644 --- a/ctdb/server/ctdbd.c +++ b/ctdb/server/ctdbd.c @@ -234,6 +234,7 @@ int main(int argc, const char *argv[]) /* Log to stderr (ignoring configuration) when running as interactive */ if (interactive) { logging_location = "file:"; + setenv("CTDB_INTERACTIVE", "true", 1); } else { logging_location = logging_conf_location(conf); } diff --git a/ctdb/tests/src/fetch_loop.c b/ctdb/tests/src/fetch_loop.c index 6767f71..0e1d9da 100644 --- a/ctdb/tests/src/fetch_loop.c +++ b/ctdb/tests/src/fetch_loop.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "client/client.h" @@ -230,6 +231,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("fetch_loop", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/fetch_loop_key.c b/ctdb/tests/src/fetch_loop_key.c index b137842..3f41ca7 100644 --- a/ctdb/tests/src/fetch_loop_key.c +++ b/ctdb/tests/src/fetch_loop_key.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "client/client.h" @@ -155,6 +156,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("fetch_loop_key", DEBUG_STDERR); + status = process_options_database(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/fetch_readonly.c b/ctdb/tests/src/fetch_readonly.c index 5d2972a..ff126bd 100644 --- a/ctdb/tests/src/fetch_readonly.c +++ b/ctdb/tests/src/fetch_readonly.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "client/client.h" @@ -107,6 +108,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("fetch_readonly", DEBUG_STDERR); + status = process_options_database(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/fetch_readonly_loop.c b/ctdb/tests/src/fetch_readonly_loop.c index 9d5d22e..08cf476 100644 --- a/ctdb/tests/src/fetch_readonly_loop.c +++ b/ctdb/tests/src/fetch_readonly_loop.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "client/client.h" @@ -214,6 +215,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("fetch_readonly_loop", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/fetch_ring.c b/ctdb/tests/src/fetch_ring.c index eb64648..f746e78 100644 --- a/ctdb/tests/src/fetch_ring.c +++ b/ctdb/tests/src/fetch_ring.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/time.h" #include "lib/util/tevent_unix.h" @@ -331,6 +332,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("fetch_ring", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/g_lock_loop.c b/ctdb/tests/src/g_lock_loop.c index f29d0f1..3b84241 100644 --- a/ctdb/tests/src/g_lock_loop.c +++ b/ctdb/tests/src/g_lock_loop.c @@ -213,6 +213,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("glock_loop", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); @@ -230,8 +232,6 @@ int main(int argc, const char *argv[]) exit(1); } - setup_logging("glock_loop", DEBUG_STDERR); - ret = ctdb_client_init(mem_ctx, ev, opts->socket, &client); if (ret != 0) { fprintf(stderr, "Failed to initialize client, ret=%d\n", ret); diff --git a/ctdb/tests/src/message_ring.c b/ctdb/tests/src/message_ring.c index dabae65..d1fcee4 100644 --- a/ctdb/tests/src/message_ring.c +++ b/ctdb/tests/src/message_ring.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/time.h" #include "lib/util/tevent_unix.h" @@ -317,6 +318,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("message_ring", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/transaction_loop.c b/ctdb/tests/src/transaction_loop.c index 6623751..a423d68 100644 --- a/ctdb/tests/src/transaction_loop.c +++ b/ctdb/tests/src/transaction_loop.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "client/client.h" @@ -342,6 +343,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("transaction_loop", DEBUG_STDERR); + status = process_options_database(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/tunnel_test.c b/ctdb/tests/src/tunnel_test.c index 53ad830..a6d44ba 100644 --- a/ctdb/tests/src/tunnel_test.c +++ b/ctdb/tests/src/tunnel_test.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "protocol/protocol_private.h" @@ -429,6 +430,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("tunnel_test", DEBUG_STDERR); + status = process_options_basic(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/update_record.c b/ctdb/tests/src/update_record.c index 78291d7..11b6050 100644 --- a/ctdb/tests/src/update_record.c +++ b/ctdb/tests/src/update_record.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "protocol/protocol_api.h" @@ -177,6 +178,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("update_record", DEBUG_STDERR); + status = process_options_database(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/tests/src/update_record_persistent.c b/ctdb/tests/src/update_record_persistent.c index 9323e37..2d6d21e 100644 --- a/ctdb/tests/src/update_record_persistent.c +++ b/ctdb/tests/src/update_record_persistent.c @@ -20,6 +20,7 @@ #include "replace.h" #include "system/network.h" +#include "lib/util/debug.h" #include "lib/util/tevent_unix.h" #include "protocol/protocol_api.h" @@ -153,6 +154,8 @@ int main(int argc, const char *argv[]) int ret; bool status; + setup_logging("update_record_persistene", DEBUG_STDERR); + status = process_options_database(argc, argv, &opts); if (! status) { exit(1); diff --git a/ctdb/wscript b/ctdb/wscript index fb3f277..c6883d8 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -865,7 +865,7 @@ def build(bld): source=bld.SUBDIR('tests/src', 'cluster_wait.c test_options.c'), includes='include', - deps='replace popt talloc tevent tdb') + deps='samba-util replace popt talloc tevent tdb') # Test binaries ctdb_tests = [ diff --git a/lib/replace/wscript b/lib/replace/wscript index 66694f7..fd00a42 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -293,7 +293,7 @@ def configure(conf): ''', 'HAVE_FALLTHROUGH_ATTRIBUTE', addmain=False, - cflags='-Werror', + strict=True, msg='Checking for fallthrough attribute') # these may be builtins, so we need the link=False strategy diff --git a/third_party/nss_wrapper/wscript b/third_party/nss_wrapper/wscript index 90c6e71..d50dd5c 100644 --- a/third_party/nss_wrapper/wscript +++ b/third_party/nss_wrapper/wscript @@ -38,6 +38,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') # check HAVE_ATTRIBUTE_PRINTF_FORMAT @@ -50,6 +51,7 @@ def configure(conf): ''', 'HAVE_ATTRIBUTE_PRINTF_FORMAT', addmain=False, + strict=True, msg='Checking for printf format validation support') conf.CHECK_FUNCS('gethostbyaddr_r gethostbyname_r') diff --git a/third_party/pam_wrapper/wscript b/third_party/pam_wrapper/wscript index f70fc66..7d4a790 100644 --- a/third_party/pam_wrapper/wscript +++ b/third_party/pam_wrapper/wscript @@ -44,6 +44,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') # check HAVE_FUNCTION_ATTRIBUTE_FORMAT @@ -56,6 +57,7 @@ def configure(conf): ''', 'HAVE_FUNCTION_ATTRIBUTE_FORMAT', addmain=False, + strict=True, msg='Checking for printf format validation support') conf.CHECK_HEADERS('security/pam_appl.h') diff --git a/third_party/resolv_wrapper/wscript b/third_party/resolv_wrapper/wscript index be3e82b..bb7722e 100644 --- a/third_party/resolv_wrapper/wscript +++ b/third_party/resolv_wrapper/wscript @@ -36,6 +36,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') # check HAVE_ATTRIBUTE_PRINTF_FORMAT @@ -48,6 +49,7 @@ def configure(conf): ''', 'HAVE_ATTRIBUTE_PRINTF_FORMAT', addmain=False, + strict=True, msg='Checking for printf format validation support') conf.CHECK_HEADERS('resolv.h') diff --git a/third_party/socket_wrapper/wscript b/third_party/socket_wrapper/wscript index 86c9b3b..f48debe 100644 --- a/third_party/socket_wrapper/wscript +++ b/third_party/socket_wrapper/wscript @@ -36,6 +36,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') # check HAVE_FUNCTION_ATTRIBUTE_FORMAT @@ -48,6 +49,7 @@ def configure(conf): ''', 'HAVE_FUNCTION_ATTRIBUTE_FORMAT', addmain=False, + strict=True, msg='Checking for printf format validation support') conf.CHECK_HEADERS('sys/signalfd.h') diff --git a/third_party/uid_wrapper/wscript b/third_party/uid_wrapper/wscript index 6e1540f..6344ebf 100644 --- a/third_party/uid_wrapper/wscript +++ b/third_party/uid_wrapper/wscript @@ -51,7 +51,8 @@ def configure(conf): ''', 'HAVE_ADDRESS_SANITIZER_ATTRIBUTE', addmain=False, - cflags='-Wall -Wextra -Werror', + cflags='-Wall -Wextra', + strict=True, msg='Checking for address sanitizer attribute') # check HAVE_FUNCTION_ATTRIBUTE_FORMAT @@ -64,6 +65,7 @@ def configure(conf): ''', 'HAVE_FUNCTION_ATTRIBUTE_FORMAT', addmain=False, + strict=True, msg='Checking for printf format validation support') # Prototype checks conf.CHECK_C_PROTOTYPE('setgroups', -- Samba Shared Repository