> -----Original Message----- > From: Dumitrescu, Cristian > Sent: Wednesday, March 30, 2016 2:24 PM > To: 'Thomas Monjalon' <thomas.monjalon at 6wind.com>; dev at dpdk.org > Cc: Singh, Jasvinder <jasvinder.singh at intel.com>; Zhang, Roy Fan > <roy.fan.zhang at intel.com>; Hunt, David <david.hunt at intel.com> > Subject: RE: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for > x86_64 without SSE4.2 > Importance: High > > > > > -----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
I think the correct fix is: #if defined(__x86_64__) && (defined(RTE_MACHINE_CPUFLAG_SSE4_2) || defined(RTE_MACHINE_CPUFLAG_CRC32)) We'll test it and send a patch asap. Thanks, Cristian