dpdk_conf.set('RTE_ARCH_64', cc.sizeof('void *') == 8)
add_project_link_arguments('-Wl,--no-as-needed', language: 'c')
-dpdk_extra_ldflags += '-Wl,--no-as-needed'
# use pthreads
add_project_link_arguments('-pthread', language: 'c')
dpdk_extra_ldflags += '-lnuma'
endif
-# check for strlcpy
-if is_linux
- libbsd = dependency('libbsd', required: false)
- if libbsd.found()
- dpdk_conf.set('RTE_USE_LIBBSD', 1)
- endif
+# check for libbsd
+libbsd = dependency('libbsd', required: false)
+if libbsd.found()
+ dpdk_conf.set('RTE_USE_LIBBSD', 1)
endif
# add -include rte_config to cflags
# enable extra warnings and disable any unwanted warnings
warning_flags = [
- '-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!!
# enable VFIO only if it is linux OS
dpdk_conf.set('RTE_EAL_VFIO', is_linux)
+
+# specify -D_GNU_SOURCE unconditionally
+add_project_arguments('-D_GNU_SOURCE', language: 'c')
+
+# specify -D__BSD_VISIBLE for FreeBSD
+if is_freebsd
+ add_project_arguments('-D__BSD_VISIBLE', language: 'c')
+endif