From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5DDB1A052A; Tue, 2 Feb 2021 10:05:33 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0F6762402F2; Tue, 2 Feb 2021 10:05:33 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 62E5D2402E4 for ; Tue, 2 Feb 2021 10:05:31 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id 56876C05A5; Tue, 2 Feb 2021 10:05:30 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QwircwAEB4oL; Tue, 2 Feb 2021 10:05:28 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 90FC8BF47F; Tue, 2 Feb 2021 10:05:27 +0100 (CET) From: =?UTF-8?q?Juraj=20Linke=C5=A1?= To: bruce.richardson@intel.com, thomas@monjalon.net, Ruifeng.Wang@arm.com, Honnappa.Nagarahalli@arm.com, jerinjacobk@gmail.com, ferruh.yigit@intel.com Cc: dev@dpdk.org, =?UTF-8?q?Juraj=20Linke=C5=A1?= Date: Tue, 2 Feb 2021 10:05:27 +0100 Message-Id: <1612256727-9724-1-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1612191313-7654-1-git-send-email-juraj.linkes@pantheon.tech> References: <1612191313-7654-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [RFC PATCH v2] config/arm: replace native machine args X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" There are compiler issues when building with -mcpu=native with popular compilers, such as GCC-8.4: In file included from ../lib/librte_eal/arm/include/rte_vect.h:11, from ../lib/librte_net/net_crc_neon.c:10: ../lib/librte_net/net_crc_neon.c: In function ‘crcr32_folding_round’: /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: error: inlining failed in call to always_inline ‘vmull_p64’: target specific option mismatch vmull_p64 (poly64_t a, poly64_t b) ^~~~~~~~~ ../lib/librte_net/net_crc_neon.c:50:20: note: called from here uint64x2_t tmp1 = vreinterpretq_u64_p128(vmull_p64( ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ and clang: gcc -E -dM -mcpu="native" - < /dev/null | grep __ARM_FEATURE_ATOMICS clang-9 -E -dM -mcpu="native" - < /dev/null | grep __ARM_FEATURE_ATOMICS # no clang support Fix this by always specifying the proper machine args and never using the native flags. Fixes: 78ac8eac7e8a ("config/arm: use native machine build arguments") Cc: juraj.linkes@pantheon.tech Signed-off-by: Juraj Linkeš --- config/arm/meson.build | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/config/arm/meson.build b/config/arm/meson.build index f207e5a288..f948768578 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -24,7 +24,6 @@ flags_common = [ ['RTE_ARCH_ARM64', true], ['RTE_CACHE_LINE_SIZE', 128] ] -native_machine_args = ['-mcpu=native'] ## Part numbers are specific to Arm implementers # implementer specific aarch64 flags have middle priority @@ -193,7 +192,6 @@ if dpdk_conf.get('RTE_ARCH_32') machine_args += '-mfpu=neon' else # aarch64 build - use_native_machine_args = false if not meson.is_cross_build() if machine == 'default' # default build @@ -213,7 +211,6 @@ else else error('Error when getting Arm Implementer ID and part number.') endif - use_native_machine_args = true endif else # cross build @@ -249,12 +246,7 @@ else # apply supported machine args machine_args = [] # Clear previous machine args - if use_native_machine_args - candidate_machine_args = native_machine_args - else - candidate_machine_args = part_number_config['machine_args'] - endif - foreach flag: candidate_machine_args + foreach flag: part_number_config['machine_args'] if cc.has_argument(flag) machine_args += flag endif -- 2.20.1