summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2018-09-08 13:55:09 -0700
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-09-09 20:57:08 +0200
commitbf7efeb16ff511779b2678bc07d0bf8bc4c48cb5 (patch)
treeb92d08833e839b6e415cf9e28c67f79d3e7a18bd /meson.build
parent5e5796e3e110d001917a3363a85a0a9dc639f949 (diff)
downloadsystemd-bf7efeb16ff511779b2678bc07d0bf8bc4c48cb5.tar.gz
build-sys: Use common gcc argument detection for negative warning flags.
Starting with meson 0.46, it is able to detect these argument correctly. See this commit in meson codebase for more details: https://github.com/mesonbuild/meson/commit/695b8f3a0377d3e2ce78ba8716adc365b18edea1 We already carry a requirement for meson_version : '>= 0.46', so we can be sure our build system will include this commit. Tested by building systemd using a cloned meson synced to the 0.46.0 tag, confirmed the warnings were detected correctly in that case. The meson messages included this snippet: > Compiler for C supports arguments -Wno-unused-parameter -Wunused-parameter: YES > Compiler for C supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES > Compiler for C supports arguments -Wno-unused-result -Wunused-result: YES > Compiler for C supports arguments -Wno-format-signedness -Wformat-signedness: YES > Compiler for C supports arguments -Wno-error=nonnull -Werror=nonnull: YES > Compiler for C supports arguments -Wno-maybe-uninitialized -Wmaybe-uninitialized: YES
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build31
1 files changed, 14 insertions, 17 deletions
diff --git a/meson.build b/meson.build
index 48a47f8103..7ffe61246a 100644
--- a/meson.build
+++ b/meson.build
@@ -321,6 +321,20 @@ possible_cc_flags = [
'-Werror=shift-overflow=2',
'-Wdate-time',
'-Wnested-externs',
+
+ # negative arguments are correctly detected starting with meson 0.46.
+ '-Wno-unused-parameter',
+ '-Wno-missing-field-initializers',
+ '-Wno-unused-result',
+ '-Wno-format-signedness',
+
+ # work-around for gcc 7.1 turning this on on its own.
+ '-Wno-error=nonnull',
+
+ # Disable -Wmaybe-uninitialized, since it's noisy on gcc 8 with
+ # optimizations enabled, producing essentially false positives.
+ '-Wno-maybe-uninitialized',
+
'-ffast-math',
'-fno-common',
'-fdiagnostics-show-option',
@@ -364,23 +378,6 @@ endif
add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c')
add_project_link_arguments(cc.get_supported_link_arguments(possible_link_flags), language : 'c')
-# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
-# arguments, just emits a warning. So test for the "positive" version instead.
-foreach arg : ['unused-parameter',
- 'missing-field-initializers',
- 'unused-result',
- 'format-signedness',
- 'error=nonnull', # work-around for gcc 7.1 turning this on on its own
-
- # Disable -Wmaybe-uninitialized, since it's noisy on gcc 8 with
- # optimizations enabled, producing essentially false positives.
- 'maybe-uninitialized',
- ]
- if cc.has_argument('-W' + arg)
- add_project_arguments('-Wno-' + arg, language : 'c')
- endif
-endforeach
-
if cc.compiles('''
#include <time.h>
#include <inttypes.h>