While meson always adds -Wall flag to C compiles, the make build adds extra
warning flags that are not present in the meson build. This addresses that
shortcoming by adding additional warning flags to our builds. The one
omission is the -Wcast-align flag, which though present in make gcc builds,
gives a lot of warnings/errors when used with clang.
The removed warning "-Wunused-parameter" is covered by the "-Wextra"
parameter so is unnecessary.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
---
config/meson.build | 24 +++++++++++++++++++++---
drivers/bus/dpaa/meson.build | 3 +++
drivers/event/dsw/meson.build | 3 +++
drivers/net/dpaa/meson.build | 4 ++++
drivers/net/i40e/base/meson.build | 3 ++-
5 files changed, 33 insertions(+), 4 deletions(-)
@@ -143,10 +143,28 @@ add_project_arguments('-include', 'rte_config.h', language: 'c')
# enable extra warnings and disable any unwanted warnings
warning_flags = [
- '-Wunused-parameter',
- '-Wsign-compare',
+ # -Wall is added by meson by default, so add -Wextra only
+ '-Wextra',
+
+ # additional warnings in alphabetical order
'-Wcast-qual',
- '-Wno-address-of-packed-member'
+ '-Wdeprecated',
+ '-Wformat-nonliteral',
+ '-Wformat-security',
+ '-Wmissing-declarations',
+ '-Wmissing-prototypes',
+ '-Wnested-externs',
+ '-Wold-style-definition',
+ '-Wpointer-arith',
+ '-Wsign-compare',
+ '-Wstrict-prototypes',
+ '-Wundef',
+ '-Wwrite-strings',
+
+ # globally disabled warnings
+ '-Wno-address-of-packed-member',
+ '-Wno-packed-not-aligned',
+ '-Wno-missing-field-initializers'
]
if not dpdk_conf.get('RTE_ARCH_64')
# for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
@@ -27,5 +27,8 @@ allow_experimental_apis = true
if cc.has_argument('-Wno-cast-qual')
cflags += '-Wno-cast-qual'
endif
+if cc.has_argument('-Wno-pointer-arith')
+ cflags += '-Wno-pointer-arith'
+endif
includes += include_directories('include', 'base/qbman')
@@ -2,4 +2,7 @@
# Copyright(c) 2018 Ericsson AB
deps += ['bus_vdev']
+if cc.has_argument('-Wno-format-nonliteral')
+ cflags += '-Wno-format-nonliteral'
+endif
sources = files('dsw_evdev.c', 'dsw_event.c', 'dsw_xstats.c')
@@ -10,6 +10,10 @@ deps += ['mempool_dpaa']
sources = files('dpaa_ethdev.c',
'dpaa_rxtx.c')
+if cc.has_argument('-Wno-pointer-arith')
+ cflags += '-Wno-pointer-arith'
+endif
+
allow_experimental_apis = true
install_headers('rte_pmd_dpaa.h')
@@ -12,7 +12,8 @@ sources = [
]
error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
- '-Wno-format', '-Wno-error=format-security',
+ '-Wno-format', '-Wno-format-security',
+ '-Wno-format-nonliteral',
'-Wno-strict-aliasing', '-Wno-unused-but-set-variable',
'-Wno-unused-parameter',
]