[19.11,3/4] build: enable extra warnings for meson build

Message ID 20190725143831.25116-4-bruce.richardson@intel.com
State New
Delegated to: Thomas Monjalon
Headers show
Series
  • synchronise meson warnings with make
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Bruce Richardson July 25, 2019, 2:38 p.m.
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>
---
 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(-)

Patch

diff --git a/config/meson.build b/config/meson.build
index 2bafea530..6918a9ecc 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -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!!
diff --git a/drivers/bus/dpaa/meson.build b/drivers/bus/dpaa/meson.build
index 19daaa5b5..c9c3b2415 100644
--- a/drivers/bus/dpaa/meson.build
+++ b/drivers/bus/dpaa/meson.build
@@ -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')
diff --git a/drivers/event/dsw/meson.build b/drivers/event/dsw/meson.build
index a3d09eef3..60ab13d90 100644
--- a/drivers/event/dsw/meson.build
+++ b/drivers/event/dsw/meson.build
@@ -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')
diff --git a/drivers/net/dpaa/meson.build b/drivers/net/dpaa/meson.build
index 94c0e22c5..542b44af4 100644
--- a/drivers/net/dpaa/meson.build
+++ b/drivers/net/dpaa/meson.build
@@ -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')
diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
index 13d16b08d..3dee8c975 100644
--- a/drivers/net/i40e/base/meson.build
+++ b/drivers/net/i40e/base/meson.build
@@ -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',
 ]