build: fix for host clang and cross gcc
The following error hits if host cc compiler is clang(default one in most
linux distributions) and the cross compiler is gcc.
The root cause is: the hybride compilers add the warning options to the
meson project as project arguments, which apply for both host compiling and
cross compiling. But some options such as '-Wno-format-truncation' are not
supported nor recognized by clang, so they have to be removed from the
project arguments for the host compiler to run smoothily and added back as
cflags for the cross compiler to compile for cross source files.
The fix is remove unrecognized warning options from the meson project
arguments shared by gcc and clang, as add them specifically for gcc or
clang as cflags.
[265/893] Compiling C object
'buildtools/pmdinfogen/pmdinfogen@exe/pmdinfogen.c.o'. warning: unknown
warning option '-Wno-format-truncation' [-Wunknown-warning-option]
Fixes: a55277a788
("devtools: add test script for meson builds")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
c0d022070f
commit
d292a42fc8
@ -57,8 +57,7 @@ add_project_arguments('-include', 'rte_config.h', language: 'c')
|
||||
warning_flags = [
|
||||
'-Wsign-compare',
|
||||
'-Wcast-qual',
|
||||
'-Wno-address-of-packed-member',
|
||||
'-Wno-format-truncation'
|
||||
'-Wno-address-of-packed-member'
|
||||
]
|
||||
foreach arg: warning_flags
|
||||
if cc.has_argument(arg)
|
||||
|
@ -32,6 +32,9 @@ foreach class:driver_classes
|
||||
sources = []
|
||||
objs = []
|
||||
cflags = machine_args
|
||||
if cc.has_argument('-Wno-format-truncation')
|
||||
cflags += '-Wno-format-truncation'
|
||||
endif
|
||||
includes = [include_directories(drv_path)]
|
||||
# set up internal deps. Drivers can append/override as necessary
|
||||
deps = std_deps
|
||||
|
@ -24,6 +24,10 @@ foreach example: examples
|
||||
sources = []
|
||||
allow_experimental_apis = false
|
||||
cflags = machine_args
|
||||
if cc.has_argument('-Wno-format-truncation')
|
||||
cflags += '-Wno-format-truncation'
|
||||
endif
|
||||
|
||||
ext_deps = [execinfo]
|
||||
includes = [include_directories(example)]
|
||||
deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
|
||||
|
@ -34,6 +34,10 @@ foreach l:libraries
|
||||
headers = []
|
||||
includes = []
|
||||
cflags = machine_args
|
||||
if cc.has_argument('-Wno-format-truncation')
|
||||
cflags += '-Wno-format-truncation'
|
||||
endif
|
||||
|
||||
objs = [] # other object files to link against, used e.g. for
|
||||
# instruction-set optimized versions of code
|
||||
|
||||
|
@ -237,6 +237,11 @@ if dpdk_conf.has('RTE_LIBRTE_KNI')
|
||||
test_deps += 'kni'
|
||||
endif
|
||||
|
||||
cflags = machine_args
|
||||
if cc.has_argument('-Wno-format-truncation')
|
||||
cflags += '-Wno-format-truncation'
|
||||
endif
|
||||
|
||||
test_dep_objs = []
|
||||
compress_test_dep = dependency('zlib', required: false)
|
||||
if compress_test_dep.found()
|
||||
@ -262,7 +267,7 @@ if get_option('tests')
|
||||
test_sources,
|
||||
link_whole: link_libs,
|
||||
dependencies: test_dep_objs,
|
||||
c_args: [machine_args, '-DALLOW_EXPERIMENTAL_API'],
|
||||
c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'],
|
||||
install_rpath: driver_install_path,
|
||||
install: false)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user