From patchwork Mon Jun 25 02:49:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gavin Hu X-Patchwork-Id: 41439 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 838D97ED7; Mon, 25 Jun 2018 04:49:38 +0200 (CEST) Received: from foss.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by dpdk.org (Postfix) with ESMTP id 7FD425F22; Mon, 25 Jun 2018 04:49:29 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ED2907A9; Sun, 24 Jun 2018 19:49:28 -0700 (PDT) Received: from net-debian.shanghai.arm.com (net-debian.shanghai.arm.com [10.169.36.53]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 36CC03F59C; Sun, 24 Jun 2018 19:49:28 -0700 (PDT) From: Gavin Hu To: dev@dpdk.org Cc: nd@arm.com, gavin.hu@arm.com, stable@dpdk.org Date: Mon, 25 Jun 2018 10:49:12 +0800 Message-Id: <20180625024913.17219-6-gavin.hu@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180625024913.17219-1-gavin.hu@arm.com> References: <20180619103657.19186-1-gavin.hu@arm.com> <20180625024913.17219-1-gavin.hu@arm.com> Subject: [dpdk-dev] [PATCH v13 5/6] build: fix the meson cross compile error X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Reviewed-by: Phil Yang Reviewed-by: Song Zhu Reviewed-by: Steve Capper Acked-by: Bruce Richardson --- config/meson.build | 3 +-- drivers/meson.build | 3 +++ examples/meson.build | 4 ++++ lib/meson.build | 4 ++++ test/test/meson.build | 7 ++++++- 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/config/meson.build b/config/meson.build index 50081b572..272d4a838 100644 --- a/config/meson.build +++ b/config/meson.build @@ -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) diff --git a/drivers/meson.build b/drivers/meson.build index ac6c97297..1737d86b8 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 diff --git a/examples/meson.build b/examples/meson.build index 3d1568497..e6558875a 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -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'] diff --git a/lib/meson.build b/lib/meson.build index 9d11571f9..fefb3605d 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -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 diff --git a/test/test/meson.build b/test/test/meson.build index a907fd256..dc4ba5514 100644 --- a/test/test/meson.build +++ b/test/test/meson.build @@ -235,6 +235,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() @@ -260,7 +265,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)