From patchwork Thu Jun 14 09:51:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gavin Hu X-Patchwork-Id: 41090 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 E4CC41E89F; Thu, 14 Jun 2018 11:51:53 +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 C329D1E46C; Thu, 14 Jun 2018 11:51:47 +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 38E64164F; Thu, 14 Jun 2018 02:51:47 -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 C07303F59D; Thu, 14 Jun 2018 02:51:46 -0700 (PDT) From: Gavin Hu To: dev@dpdk.org Cc: stable@dpdk.org Date: Thu, 14 Jun 2018 17:51:23 +0800 Message-Id: <20180614095127.16245-4-gavin.hu@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180614095127.16245-1-gavin.hu@arm.com> References: <1527590616-28299-1-git-send-email-gavin.hu@arm.com> <20180614095127.16245-1-gavin.hu@arm.com> Subject: [dpdk-dev] [PATCH v6 3/7] devtools: fix the Exec format 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" meson will natively compile and generate the sanitycheck.exe file. It will be spawned and run at the host side. Export the cross compiler is not necessary as it is already done by the cross-file, and even worse it generate the files in the wrong target format. The fix to the following compiling error is select the native compiler for the sanity test source file. Traceback (most recent call last): File "/usr/share/meson/mesonbuild/mesonmain.py", line 361, in run app.generate() File "/usr/share/meson/mesonbuild/mesonmain.py", line 150, in generate self._generate(env) File "/usr/share/meson/mesonbuild/mesonmain.py", line 189, in _generate intr = interpreter.Interpreter(b, g) File "/usr/share/meson/mesonbuild/interpreter.py", line 1444, in __init__ self.parse_project() File "/usr/share/meson/mesonbuild/interpreterbase.py", line 159, in parse_project self.evaluate_codeblock(self.ast, end=1) File "/usr/share/meson/mesonbuild/interpreterbase.py", line 195, in evaluate_codeblock raise e File "/usr/share/meson/mesonbuild/interpreterbase.py", line 189, in evaluate_codeblock self.evaluate_statement(cur) File "/usr/share/meson/mesonbuild/interpreterbase.py", line 200, in evaluate_statement return self.function_call(cur) File "/usr/share/meson/mesonbuild/interpreterbase.py", line 456, in function_call return self.funcs[func_name](node, self.flatten(posargs), kwargs) File "/usr/share/meson/mesonbuild/interpreterbase.py", line 55, in wrapped return f(self, node, args, kwargs) File "/usr/share/meson/mesonbuild/interpreterbase.py", line 79, in wrapped return f(s, node_or_state, args, kwargs) File "/usr/share/meson/mesonbuild/interpreter.py", line 1947, in func_project self.add_languages(proj_langs, True) File "/usr/share/meson/mesonbuild/interpreter.py", line 2078, in add_languages (comp, cross_comp) = self.detect_compilers(lang, need_cross_compiler) File "/usr/share/meson/mesonbuild/interpreter.py", line 2047, in detect_compilers comp.sanity_check(self.environment.get_scratch_dir(), self.environment) File "/usr/share/meson/mesonbuild/compilers/c.py", line 254, in sanity_check return self.sanity_check_impl(work_dir, environment, 'sanitycheckc.c', code) File "/usr/share/meson/mesonbuild/compilers/c.py", line 247, in sanity_check_impl pe = subprocess.Popen(cmdlist) File "/usr/lib/python3.5/subprocess.py", line 676, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.5/subprocess.py", line 1282, in _execute_child raise child_exception_type(errno_num, err_msg) OSError: [Errno 8] Exec format error Build started at 2018-06-01T12:48:46.852286 Main binary: /usr/bin/python3 Python system: Linux The Meson build system Version: 0.45.1 Build type: cross build Project name: DPDK Sanity testing C compiler: aarch64-linux-gnu-gcc Is cross compiler: False. Sanity check compiler command line: aarch64-linux-gnu-gcc dpdk/build-arm64-armv8/meson-private/sanitycheckc.c -o dpdk/build-arm64-armv8/meson-private/sanitycheckc.exe 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 --- devtools/test-meson-builds.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 9868c325b..6bce3df7f 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -1,6 +1,7 @@ #! /bin/sh -e # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +# Copyright(c) 2018 ARM Corporation # Run meson to auto-configure the various builds. # * all builds get put in a directory whose name starts with "build-" @@ -18,7 +19,6 @@ build () # options="--werror -Dexamples=all $*" echo "$MESON $options $srcdir $builddir" $MESON $options $srcdir $builddir - unset CC fi echo "ninja -C $builddir" ninja -C $builddir @@ -26,10 +26,11 @@ build () # # shared and static linked builds with gcc and clang for c in gcc clang ; do + export CC="ccache $c" for s in static shared ; do - export CC="ccache $c" build build-$c-$s --default-library=$s done + unset CC done # test compilation with minimal x86 instruction set @@ -39,8 +40,10 @@ build build-x86-default -Dmachine=nehalem for f in config/arm/arm*gcc ; do c=aarch64-linux-gnu-gcc if ! command -v $c >/dev/null 2>&1 ; then - continue + echo "## ERROR: aarch64-linux-gnu-gcc is missing..." + exit 1 fi - export CC="ccache $c" + export CC="ccache gcc" build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) --cross-file $f + unset CC done