config/arm: replace native machine args
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 output> # 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") Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
This commit is contained in:
parent
16e5de05f5
commit
9186e5a07f
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user