From b06c9b941f845c4c330d66c358419d4a98375d52 Mon Sep 17 00:00:00 2001 From: Herbert Guan Date: Thu, 13 Jul 2017 10:16:42 +0800 Subject: [PATCH] eal/arm64: fix poly64/128 compilation with GCC < 4.9 Use built-in data types for unsupported poly64/128 types for GCC version lower than 4.9.0 Fixes: 3c4b4024c225 ("arch/arm: add vcopyq_laneq_u32 for old gcc") Cc: stable@dpdk.org Signed-off-by: Herbert Guan --- lib/librte_eal/common/include/arch/arm/rte_vect.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/librte_eal/common/include/arch/arm/rte_vect.h b/lib/librte_eal/common/include/arch/arm/rte_vect.h index 7fec25e534..782350d14f 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_vect.h +++ b/lib/librte_eal/common/include/arch/arm/rte_vect.h @@ -101,6 +101,13 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a, #if defined(RTE_ARCH_ARM64) #if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70000) + +#if (GCC_VERSION < 40900) +typedef uint64_t poly64_t; +typedef uint64x2_t poly64x2_t; +typedef uint8_t poly128_t __attribute__((vector_size(16), aligned(16))); +#endif + /* NEON intrinsic vreinterpretq_u64_p128() is supported since GCC version 7 */ static inline uint64x2_t vreinterpretq_u64_p128(poly128_t x) -- 2.20.1