[dpdk-dev] [RFC PATCH v1] config/arm: fix native machine args

Juraj Linkeš juraj.linkes at pantheon.tech
Mon Feb 1 15:55:13 CET 2021


There are compiler issues when building with -mcpu=native with popular
compilers, such as GCC-8.4 and clang (which doesn't define
__ARM_FEATURE_ATOMIC). 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 at pantheon.tech

Signed-off-by: Juraj Linkeš <juraj.linkes at pantheon.tech>
---
 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



More information about the dev mailing list