From 37f4615e91bedc139f60cb2bb771327a39ed9d8d Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 5 Dec 2016 14:29:35 -0800 Subject: [PATCH] acinclude: Fix -Wstrict-prototypes and -Wold-style-definition detection. AC_LANG_PROGRAM(,) uses a program like this: int main() { return 0; } but that triggers warnings for -Wstrict-prototypes and for -Wold-style-definition, since this definition of main() lacks a prototype and is therefore old-style. This meant that -Wstrict-prototypes and -Wold-style-definition weren't being turned on for new-enough GCC. This commit fixes the problem by changing the program that is test-compiled to: int x; which doesn't make any compilers mad, as far as I know. I recently upgraded to GCC 6.1 and just now noticed the issue, so I think that GCC somewhere between version 4.9 and version 6.1 must have started warning about main() when it's declared this way. Also, fix a few functions that lacked prototypes. Signed-off-by: Ben Pfaff Acked-by: Andy Zhou --- acinclude.m4 | 12 ++++++++++-- lib/perf-counter.c | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 866e4373b..8b9297ae7 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,6 +1,6 @@ # -*- autoconf -*- -# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc. +# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -784,7 +784,15 @@ AC_DEFUN([_OVS_CHECK_CC_OPTION], [dnl dnl 0 dnl % CFLAGS="$CFLAGS $WERROR $1" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,)], [if test -s conftest.err && grep "unrecognized option" conftest.err; then ovs_cv_name[]=no; else ovs_cv_name[]=yes; fi], [ovs_cv_name[]=no]) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([int x;])], + [if test -s conftest.err && grep "unrecognized option" conftest.err + then + ovs_cv_name[]=no + else + ovs_cv_name[]=yes + fi], + [ovs_cv_name[]=no]) CFLAGS="$ovs_save_CFLAGS"]) if test $ovs_cv_name = yes; then m4_if([$2], [], [:], [$2]) diff --git a/lib/perf-counter.c b/lib/perf-counter.c index da60df7e7..c4458d2f5 100644 --- a/lib/perf-counter.c +++ b/lib/perf-counter.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Nicira, Inc. + * Copyright (c) 2015, 2016 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -146,7 +146,7 @@ perf_counters_to_ds(struct ds *ds) * Caller is responsible for free memory. */ char * -perf_counters_to_string() +perf_counters_to_string(void) { struct ds ds; @@ -176,7 +176,7 @@ perf_counters_clear(void) } void -perf_counters_destroy() +perf_counters_destroy(void) { struct shash_node *node, *next; -- 2.39.2