[dpdk-dev] common/rte_memcpy: Fix x86intrin.h missed

Message ID 1426230179-1891-1-git-send-email-michael.qiu@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Michael Qiu March 13, 2015, 7:02 a.m. UTC
  rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"

For icc and old gcc, this header is not included.

Signed-off-by: Michael Qiu <michael.qiu@intel.com>
---
 lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
  

Comments

Zhihong Wang March 13, 2015, 7:08 a.m. UTC | #1
> -----Original Message-----
> From: Qiu, Michael
> Sent: Friday, March 13, 2015 3:03 PM
> To: dev@dpdk.org
> Cc: Wang, Zhihong; Qiu, Michael
> Subject: [PATCH] common/rte_memcpy: Fix x86intrin.h missed
> 
> rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"
> 
> For icc and old gcc, this header is not included.
> 
> Signed-off-by: Michael Qiu <michael.qiu@intel.com>
> ---
>  lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20
> ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> index ac72069..bd10d36 100644
> --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> @@ -43,7 +43,27 @@
>  #include <stdio.h>
>  #include <stdint.h>
>  #include <string.h>
> +#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
> +
> +#ifdef __SSE__
> +#include <xmmintrin.h>
> +#endif
> +
> +#ifdef __SSE2__
> +#include <emmintrin.h>
> +#endif
> +
> +#if defined(__SSE4_2__) || defined(__SSE4_1__) #include <smmintrin.h>
> +#endif
> +
> +#if defined(__AVX__)
> +#include <immintrin.h>
> +#endif
> +
> +#else
>  #include <x86intrin.h>
> +#endif
> 
>  #ifdef __cplusplus
>  extern "C" {
> --
> 1.9.3

Acked-by:  Wang, Zhihong <zhihong.wang@intel.com>
  
Ananyev, Konstantin March 13, 2015, 9:44 a.m. UTC | #2
Hi Michael,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
> Sent: Friday, March 13, 2015 7:03 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] common/rte_memcpy: Fix x86intrin.h missed
> 
> rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"
> 
> For icc and old gcc, this header is not included.
> 
> Signed-off-by: Michael Qiu <michael.qiu@intel.com>
> ---
>  lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> index ac72069..bd10d36 100644
> --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> @@ -43,7 +43,27 @@
>  #include <stdio.h>
>  #include <stdint.h>
>  #include <string.h>
> +#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
> +
> +#ifdef __SSE__
> +#include <xmmintrin.h>
> +#endif
> +
> +#ifdef __SSE2__
> +#include <emmintrin.h>
> +#endif
> +
> +#if defined(__SSE4_2__) || defined(__SSE4_1__)
> +#include <smmintrin.h>
> +#endif
> +
> +#if defined(__AVX__)
> +#include <immintrin.h>
> +#endif
> +
> +#else
>  #include <x86intrin.h>
> +#endif
> 
>  #ifdef __cplusplus
>  extern "C" {
> --
> 1.9.3

Wonder why to spread this thing over?
Why not just #include <rte_common_vec.h>?

Konstantin
  
John McNamara March 13, 2015, 2:25 p.m. UTC | #3
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
> Sent: Friday, March 13, 2015 7:03 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] common/rte_memcpy: Fix x86intrin.h missed
> 
> rte_memcpy.h(46): catastrophic error: cannot open source file
> "x86intrin.h"


Hi Michael,

How are you generating that error?

John
  
Michael Qiu March 16, 2015, 4:44 a.m. UTC | #4
On 3/13/2015 10:25 PM, Mcnamara, John wrote:
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
>> Sent: Friday, March 13, 2015 7:03 AM
>> To: dev@dpdk.org
>> Subject: [dpdk-dev] [PATCH] common/rte_memcpy: Fix x86intrin.h missed
>>
>> rte_memcpy.h(46): catastrophic error: cannot open source file
>> "x86intrin.h"
>
> Hi Michael,
>
> How are you generating that error?

For ICC compile, it will report this error, also in suse11sp2 i686
platform, also have this issue as internal report.

Thanks,
Michael
> John
>
  
Thomas Monjalon March 16, 2015, 4:05 p.m. UTC | #5
2015-03-13 09:44, Ananyev, Konstantin:
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
> > 
> > rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"
> > 
> > For icc and old gcc, this header is not included.
> > 
> > Signed-off-by: Michael Qiu <michael.qiu@intel.com>
> > ---
> >  lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> > 
> > diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > index ac72069..bd10d36 100644
> > --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > @@ -43,7 +43,27 @@
> >  #include <stdio.h>
> >  #include <stdint.h>
> >  #include <string.h>
> > +#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
> > +
> > +#ifdef __SSE__
> > +#include <xmmintrin.h>
> > +#endif
> > +
> > +#ifdef __SSE2__
> > +#include <emmintrin.h>
> > +#endif
> > +
> > +#if defined(__SSE4_2__) || defined(__SSE4_1__)
> > +#include <smmintrin.h>
> > +#endif
> > +
> > +#if defined(__AVX__)
> > +#include <immintrin.h>
> > +#endif
> > +
> > +#else
> >  #include <x86intrin.h>
> > +#endif
> > 
> >  #ifdef __cplusplus
> >  extern "C" {
> > --
> > 1.9.3
> 
> Wonder why to spread this thing over?
> Why not just #include <rte_common_vec.h>?

I agree to use rte_common_vec.h.
I pushed this approach to check every tested compilers:
	http://dpdk.org/browse/dpdk/commit/?id=9a01c31b94e54384

I think that rte_common_vec.h should be moved into
lib/librte_eal/common/include/arch/x86/rte_vec.h as it's x86-specific.
  
Ananyev, Konstantin March 16, 2015, 5:39 p.m. UTC | #6
Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Monday, March 16, 2015 4:05 PM
> To: Ananyev, Konstantin
> Cc: dev@dpdk.org; Qiu, Michael
> Subject: Re: [dpdk-dev] [PATCH] common/rte_memcpy: Fix x86intrin.h missed
> 
> 2015-03-13 09:44, Ananyev, Konstantin:
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
> > >
> > > rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"
> > >
> > > For icc and old gcc, this header is not included.
> > >
> > > Signed-off-by: Michael Qiu <michael.qiu@intel.com>
> > > ---
> > >  lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20 ++++++++++++++++++++
> > >  1 file changed, 20 insertions(+)
> > >
> > > diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > > index ac72069..bd10d36 100644
> > > --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > > +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
> > > @@ -43,7 +43,27 @@
> > >  #include <stdio.h>
> > >  #include <stdint.h>
> > >  #include <string.h>
> > > +#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
> > > +
> > > +#ifdef __SSE__
> > > +#include <xmmintrin.h>
> > > +#endif
> > > +
> > > +#ifdef __SSE2__
> > > +#include <emmintrin.h>
> > > +#endif
> > > +
> > > +#if defined(__SSE4_2__) || defined(__SSE4_1__)
> > > +#include <smmintrin.h>
> > > +#endif
> > > +
> > > +#if defined(__AVX__)
> > > +#include <immintrin.h>
> > > +#endif
> > > +
> > > +#else
> > >  #include <x86intrin.h>
> > > +#endif
> > >
> > >  #ifdef __cplusplus
> > >  extern "C" {
> > > --
> > > 1.9.3
> >
> > Wonder why to spread this thing over?
> > Why not just #include <rte_common_vec.h>?
> 
> I agree to use rte_common_vec.h.
> I pushed this approach to check every tested compilers:
> 	http://dpdk.org/browse/dpdk/commit/?id=9a01c31b94e54384
> 
> I think that rte_common_vec.h should be moved into
> lib/librte_eal/common/include/arch/x86/rte_vec.h as it's x86-specific.

Seems like a good thing to do.
Do you want me to submit a patch for 2.0 for that?

Konstantin
  
Thomas Monjalon March 17, 2015, 8:46 a.m. UTC | #7
2015-03-16 17:39, Ananyev, Konstantin:
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > I think that rte_common_vec.h should be moved into
> > lib/librte_eal/common/include/arch/x86/rte_vec.h as it's x86-specific.
> 
> Seems like a good thing to do.
> Do you want me to submit a patch for 2.0 for that?

It would be nice yes.
Thanks
  
Michael Qiu March 18, 2015, 4:48 a.m. UTC | #8
On 3/13/2015 5:45 PM, Ananyev, Konstantin wrote:
> Hi Michael,
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michael Qiu
>> Sent: Friday, March 13, 2015 7:03 AM
>> To: dev@dpdk.org
>> Subject: [dpdk-dev] [PATCH] common/rte_memcpy: Fix x86intrin.h missed
>>
>> rte_memcpy.h(46): catastrophic error: cannot open source file "x86intrin.h"
>>
>> For icc and old gcc, this header is not included.
>>
>> Signed-off-by: Michael Qiu <michael.qiu@intel.com>
>> ---
>>  lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 20 ++++++++++++++++++++
>>  1 file changed, 20 insertions(+)
>>
>> diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
>> index ac72069..bd10d36 100644
>> --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
>> +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
>> @@ -43,7 +43,27 @@
>>  #include <stdio.h>
>>  #include <stdint.h>
>>  #include <string.h>
>> +#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
>> +
>> +#ifdef __SSE__
>> +#include <xmmintrin.h>
>> +#endif
>> +
>> +#ifdef __SSE2__
>> +#include <emmintrin.h>
>> +#endif
>> +
>> +#if defined(__SSE4_2__) || defined(__SSE4_1__)
>> +#include <smmintrin.h>
>> +#endif
>> +
>> +#if defined(__AVX__)
>> +#include <immintrin.h>
>> +#endif
>> +
>> +#else
>>  #include <x86intrin.h>
>> +#endif
>>
>>  #ifdef __cplusplus
>>  extern "C" {
>> --
>> 1.9.3
> Wonder why to spread this thing over?
> Why not just #include <rte_common_vec.h>?

Yes, I will send other patch to fix this,

Thanks,
Michael
> Konstantin
>
>
>
>
  

Patch

diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
index ac72069..bd10d36 100644
--- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
@@ -43,7 +43,27 @@ 
 #include <stdio.h>
 #include <stdint.h>
 #include <string.h>
+#if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
+
+#ifdef __SSE__
+#include <xmmintrin.h>
+#endif
+
+#ifdef __SSE2__
+#include <emmintrin.h>
+#endif
+
+#if defined(__SSE4_2__) || defined(__SSE4_1__)
+#include <smmintrin.h>
+#endif
+
+#if defined(__AVX__)
+#include <immintrin.h>
+#endif
+
+#else
 #include <x86intrin.h>
+#endif
 
 #ifdef __cplusplus
 extern "C" {