> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Tuesday, February 16, 2016 6:46 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> x86_64 without SSE4.2
> 
> The compiler cannot use _mm_crc32_u64:
> 
> examples/ip_pipeline/pipeline/hash_func.h:165:9:
> error: implicit declaration of function '_mm_crc32_u64' is invalid in C99
> 
> Fixes: 947024a26df7 ("examples/ip_pipeline: rework passthrough pipeline")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> ---
>  examples/ip_pipeline/pipeline/hash_func.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/examples/ip_pipeline/pipeline/hash_func.h
> b/examples/ip_pipeline/pipeline/hash_func.h
> index 7846300..1953ad4 100644
> --- a/examples/ip_pipeline/pipeline/hash_func.h
> +++ b/examples/ip_pipeline/pipeline/hash_func.h
> @@ -152,7 +152,7 @@ hash_xor_key64(void *key, __rte_unused uint32_t
> key_size, uint64_t seed)
>       return (xor0 >> 32) ^ xor0;
>  }
> 
> -#if defined(__x86_64__)
> +#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
> 
>  #include <x86intrin.h>
> 
> --
> 2.7.0

Hi Thomas,

This is not the correct fix, as RTE_CPUFLAG_SSE4_2 is a flag that can only be 
tested at run-time (as result of calling function rte_cpu_get_flag_enabled()), 
not at build-time.

The reason it appears to fix the build issue you are mentioning is the fact 
that this change results in disabling the  __x86_64__ code branch.

We need to revert this patch and look for a better option.

What is the compiler that generates the build issue you are mentioning? We 
could not reproduce it with gcc 5 (gcc 5.3.1).

Thanks,
Cristian

Reply via email to