config/arm: replace native machine args
authorJuraj Linkeš <juraj.linkes@pantheon.tech>
Tue, 2 Feb 2021 09:05:27 +0000 (10:05 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 2 Feb 2021 09:26:14 +0000 (10:26 +0100)
commit9186e5a07f35ae74a1f7fa2d89671b5f77eae407
tree81d2024133656a1ee899cc46c26bd5565ad3ef31
parent16e5de05f525bb8dac08d2536579a0e0c706e605
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>
config/arm/meson.build