[dpdk-dev] [PATCH 17/17] libte_acl: fix compilation issues with RTE_LIBRTE_ACL_STANDALONE=y.

Neil Horman nhorman at tuxdriver.com
Tue Dec 16 14:51:45 CET 2014


On Sun, Dec 14, 2014 at 06:10:59PM +0000, Konstantin Ananyev wrote:
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> ---
>  lib/librte_acl/rte_acl_osdep_alone.h | 47 ++++++++++++++++++++++++++++++++++--
>  1 file changed, 45 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_acl/rte_acl_osdep_alone.h b/lib/librte_acl/rte_acl_osdep_alone.h
> index a84b6f9..58c4f6a 100644
> --- a/lib/librte_acl/rte_acl_osdep_alone.h
> +++ b/lib/librte_acl/rte_acl_osdep_alone.h
> @@ -57,6 +57,10 @@
>  #include <smmintrin.h>
>  #endif
>  
> +#if defined(__AVX__)
> +#include <immintrin.h>
> +#endif
> +
>  #else
>  
>  #include <x86intrin.h>
> @@ -128,8 +132,8 @@ typedef __m128i xmm_t;
>  #define	XMM_SIZE	(sizeof(xmm_t))
>  #define	XMM_MASK	(XMM_SIZE - 1)
>  
> -typedef union rte_mmsse {
> -	xmm_t    m;
> +typedef union rte_xmm {
> +	xmm_t    x;
>  	uint8_t  u8[XMM_SIZE / sizeof(uint8_t)];
>  	uint16_t u16[XMM_SIZE / sizeof(uint16_t)];
>  	uint32_t u32[XMM_SIZE / sizeof(uint32_t)];
> @@ -137,6 +141,33 @@ typedef union rte_mmsse {
>  	double   pd[XMM_SIZE / sizeof(double)];
>  } rte_xmm_t;
>  
> +#ifdef __AVX__
> +
> +typedef __m256i ymm_t;
> +
> +#define	YMM_SIZE	(sizeof(ymm_t))
> +#define	YMM_MASK	(YMM_SIZE - 1)
> +
> +typedef union rte_ymm {
> +	ymm_t    y;
> +	xmm_t    x[YMM_SIZE / sizeof(xmm_t)];
> +	uint8_t  u8[YMM_SIZE / sizeof(uint8_t)];
> +	uint16_t u16[YMM_SIZE / sizeof(uint16_t)];
> +	uint32_t u32[YMM_SIZE / sizeof(uint32_t)];
> +	uint64_t u64[YMM_SIZE / sizeof(uint64_t)];
> +	double   pd[YMM_SIZE / sizeof(double)];
> +} rte_ymm_t;
> +
> +#endif /* __AVX__ */
> +
> +#ifdef RTE_ARCH_I686
> +#define _mm_cvtsi128_si64(a) ({ \
> +	rte_xmm_t m;            \
> +	m.x = (a);              \
> +	(m.u64[0]);             \
> +})
> +#endif
> +
>  /*
>   * rte_cycles related.
>   */
> @@ -214,6 +245,13 @@ rte_rdtsc(void)
>  /*
>   * rte_tailq related.
>   */
> +
> +struct rte_tailq_entry {
> +	TAILQ_ENTRY(rte_tailq_entry) next; /**< Pointer entries for a tailq list
> + */
> +	void *data; /**< Pointer to the data referenced by this tailq entry */
> +};
> +
>  static inline void *
>  rte_dummy_tailq(void)
>  {
> @@ -248,6 +286,7 @@ rte_zmalloc_socket(__rte_unused const char *type, size_t size, unsigned align,
>  	void *ptr;
>  	int rc;
>  
> +	align = (align != 0) ? align : RTE_CACHE_LINE_SIZE;
>  	rc = posix_memalign(&ptr, align, size);
>  	if (rc != 0) {
>  		rte_errno = rc;
> @@ -258,6 +297,8 @@ rte_zmalloc_socket(__rte_unused const char *type, size_t size, unsigned align,
>  	return ptr;
>  }
>  
> +#define	rte_zmalloc(type, sz, align)	rte_zmalloc_socket(type, sz, align, 0)
> +
>  /*
>   * rte_debug related
>   */
> @@ -271,6 +312,8 @@ rte_zmalloc_socket(__rte_unused const char *type, size_t size, unsigned align,
>  	exit(err);                           \
>  } while (0)
>  
> +#define	rte_cpu_get_flag_enabled(x)	(0)
> +
>  #ifdef __cplusplus
>  }
>  #endif
> -- 
> 1.8.5.3
> 
> 
I think you should merge these changes with patch 10 where the problem was
introduced, so that you avoid a FTBFS issue
Neil



More information about the dev mailing list