DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
@ 2014-09-27  5:53 Wiles, Roger Keith
  2014-09-28  1:08 ` Wiles, Roger Keith
  2014-09-28  5:30 ` [dpdk-dev] [PATCH v2] " Wiles, Roger Keith
  0 siblings, 2 replies; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-09-27  5:53 UTC (permalink / raw)
  To: <dev@dpdk.org>

When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
compiler an error occurs, because ifdefed code now includes GCC pragmas.

Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
---
 lib/librte_mempool/rte_mempool.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 95f19f9..299d4d7 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -312,7 +312,7 @@ static inline void __mempool_write_trailer_cookie(void *obj)
  *   - 2: just check that cookie is valid (free or allocated)
  */
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
-#ifndef __INTEL_COMPILER
+#ifdef __GCC__
 #pragma GCC push_options
 #pragma GCC diagnostic ignored "-Wcast-qual"
 #endif
@@ -379,7 +379,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp,
 		}
 	}
 }
-#ifndef __INTEL_COMPILER
+#ifdef __GCC__
 #pragma GCC pop_options
 #endif
 #else
—
2.1.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-09-27  5:53 [dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled Wiles, Roger Keith
@ 2014-09-28  1:08 ` Wiles, Roger Keith
  2014-09-28  5:30 ` [dpdk-dev] [PATCH v2] " Wiles, Roger Keith
  1 sibling, 0 replies; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-09-28  1:08 UTC (permalink / raw)
  To: <dev@dpdk.org>

Self nack this one :-(. It looks like the code should be something like this instead:

#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
#pragma GCC push_options
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif

GCC 4.4 is when push_options and pop_options showed up in GCC. I will post a new patch, but I wanted to ask if this was the best solution for these ifdefs? If someone sees a better solution please let me know.

Thanks
++Keith

On Sep 27, 2014, at 12:53 AM, Wiles, Roger Keith <keith.wiles@windriver.com> wrote:

> When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
> compiler an error occurs, because ifdefed code now includes GCC pragmas.
> 
> Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
> ---
> lib/librte_mempool/rte_mempool.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
> index 95f19f9..299d4d7 100644
> --- a/lib/librte_mempool/rte_mempool.h
> +++ b/lib/librte_mempool/rte_mempool.h
> @@ -312,7 +312,7 @@ static inline void __mempool_write_trailer_cookie(void *obj)
>  *   - 2: just check that cookie is valid (free or allocated)
>  */
> #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
> -#ifndef __INTEL_COMPILER
> +#ifdef __GCC__
> #pragma GCC push_options
> #pragma GCC diagnostic ignored "-Wcast-qual"
> #endif
> @@ -379,7 +379,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp,
> 		}
> 	}
> }
> -#ifndef __INTEL_COMPILER
> +#ifdef __GCC__
> #pragma GCC pop_options
> #endif
> #else
> —
> 2.1.0
> 

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-09-27  5:53 [dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled Wiles, Roger Keith
  2014-09-28  1:08 ` Wiles, Roger Keith
@ 2014-09-28  5:30 ` Wiles, Roger Keith
  2014-10-01 12:58   ` Thomas Monjalon
  1 sibling, 1 reply; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-09-28  5:30 UTC (permalink / raw)
  To: <dev@dpdk.org>


When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
compiler an error occurs, because ifdefed code now includes GCC pragmas.

GCC 4.4 is when push_options and pop_options pragma show up.

Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
---
 lib/librte_mempool/rte_mempool.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 95f19f9..558931a 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -312,7 +312,7 @@ static inline void __mempool_write_trailer_cookie(void *obj)
  *   - 2: just check that cookie is valid (free or allocated)
  */
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
-#ifndef __INTEL_COMPILER
+#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
 #pragma GCC push_options
 #pragma GCC diagnostic ignored "-Wcast-qual"
 #endif
@@ -379,7 +379,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp,
        }
    }
 }
-#ifndef __INTEL_COMPILER
+#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
 #pragma GCC pop_options
 #endif
 #else
-- 
2.1.0

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-09-28  5:30 ` [dpdk-dev] [PATCH v2] " Wiles, Roger Keith
@ 2014-10-01 12:58   ` Thomas Monjalon
  2014-10-01 14:57     ` Wiles, Roger Keith
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2014-10-01 12:58 UTC (permalink / raw)
  To: Wiles, Roger Keith; +Cc: dev

2014-09-28 05:30, Wiles, Roger Keith:
> When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
> compiler an error occurs, because ifdefed code now includes GCC pragmas.
> 
> GCC 4.4 is when push_options and pop_options pragma show up.
> 
> Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
[...]
> -#ifndef __INTEL_COMPILER
> +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
>  #pragma GCC push_options
>  #pragma GCC diagnostic ignored "-Wcast-qual"
>  #endif

Does clang accept const casting with -Wcast-qual?

I'd prefer to use the same logic as in rte_mempool.c:
	#pragma GCC diagnostic ignored "-Wcast-qual"
	#pragma GCC diagnostic error "-Wcast-qual"
without using push/pop.
Or if push/pop is really needed, it is implemented in clang:
	http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas

-- 
Thomas

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-10-01 12:58   ` Thomas Monjalon
@ 2014-10-01 14:57     ` Wiles, Roger Keith
  2014-10-01 17:06       ` Wiles, Roger Keith
  2014-10-01 17:11       ` [dpdk-dev] [PATCH v3] " Wiles, Roger Keith
  0 siblings, 2 replies; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-10-01 14:57 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

Changing the macros to:

#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
.
.
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic error "-Wcast-qual"
#endif

Works and is a good solution. I normally do not like negative ‘ifndef’ but it works :-)

Can you make that change if everyone agrees, as would have to remove other changes to that file I want to do in the future to resend this patch. If not I can try and figure it out :-)

Thanks
++Keith

On Oct 1, 2014, at 7:58 AM, Thomas Monjalon <thomas.monjalon@6wind.com> wrote:

> 2014-09-28 05:30, Wiles, Roger Keith:
>> When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
>> compiler an error occurs, because ifdefed code now includes GCC pragmas.
>> 
>> GCC 4.4 is when push_options and pop_options pragma show up.
>> 
>> Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
> [...]
>> -#ifndef __INTEL_COMPILER
>> +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
>> #pragma GCC push_options
>> #pragma GCC diagnostic ignored "-Wcast-qual"
>> #endif
> 
> Does clang accept const casting with -Wcast-qual?
> 
> I'd prefer to use the same logic as in rte_mempool.c:
> 	#pragma GCC diagnostic ignored "-Wcast-qual"
> 	#pragma GCC diagnostic error "-Wcast-qual"
> without using push/pop.
> Or if push/pop is really needed, it is implemented in clang:
> 	http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
> 
> -- 
> Thomas

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-10-01 14:57     ` Wiles, Roger Keith
@ 2014-10-01 17:06       ` Wiles, Roger Keith
  2014-10-01 17:11       ` [dpdk-dev] [PATCH v3] " Wiles, Roger Keith
  1 sibling, 0 replies; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-10-01 17:06 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Thomas, I will submit a v3 patch in a few minutes.

On Oct 1, 2014, at 9:57 AM, Wiles, Roger Keith <keith.wiles@windriver.com> wrote:

> Hi Thomas,
> 
> Changing the macros to:
> 
> #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
> #ifndef __INTEL_COMPILER
> #pragma GCC diagnostic ignored "-Wcast-qual"
> #endif
> .
> .
> #ifndef __INTEL_COMPILER
> #pragma GCC diagnostic error "-Wcast-qual"
> #endif
> 
> Works and is a good solution. I normally do not like negative ‘ifndef’ but it works :-)
> 
> Can you make that change if everyone agrees, as would have to remove other changes to that file I want to do in the future to resend this patch. If not I can try and figure it out :-)
> 
> Thanks
> ++Keith
> 
> On Oct 1, 2014, at 7:58 AM, Thomas Monjalon <thomas.monjalon@6wind.com> wrote:
> 
>> 2014-09-28 05:30, Wiles, Roger Keith:
>>> When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
>>> compiler an error occurs, because ifdefed code now includes GCC pragmas.
>>> 
>>> GCC 4.4 is when push_options and pop_options pragma show up.
>>> 
>>> Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
>> [...]
>>> -#ifndef __INTEL_COMPILER
>>> +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
>>> #pragma GCC push_options
>>> #pragma GCC diagnostic ignored "-Wcast-qual"
>>> #endif
>> 
>> Does clang accept const casting with -Wcast-qual?
>> 
>> I'd prefer to use the same logic as in rte_mempool.c:
>> 	#pragma GCC diagnostic ignored "-Wcast-qual"
>> 	#pragma GCC diagnostic error "-Wcast-qual"
>> without using push/pop.
>> Or if push/pop is really needed, it is implemented in clang:
>> 	http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
>> 
>> -- 
>> Thomas
> 
> Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533
> 

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH v3] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-10-01 14:57     ` Wiles, Roger Keith
  2014-10-01 17:06       ` Wiles, Roger Keith
@ 2014-10-01 17:11       ` Wiles, Roger Keith
  2014-10-02 22:22         ` Wiles, Roger Keith
  1 sibling, 1 reply; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-10-01 17:11 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev


When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
compiler an error occurs, because ifdefed code now includes GCC pragmas.

GCC 4.4 is when push_options and pop_options pragma show up.

Rework to include Thomas’s suggestion to drop push/pop pragma directives for
ignore/error directives.

Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
---
 lib/librte_mempool/rte_mempool.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 95f19f9..163de86 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -313,7 +313,6 @@ static inline void __mempool_write_trailer_cookie(void *obj)
  */
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
 #ifndef __INTEL_COMPILER
-#pragma GCC push_options
 #pragma GCC diagnostic ignored "-Wcast-qual"
 #endif
 static inline void __mempool_check_cookies(const struct rte_mempool *mp,
@@ -380,7 +379,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp,
    }
 }
 #ifndef __INTEL_COMPILER
-#pragma GCC pop_options
+#pragma GCC diagnostic error "-Wcast-qual"
 #endif
 #else
 #define __mempool_check_cookies(mp, obj_table_const, n, free) do {} while(0)
-- 
2.1.0

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH v3] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
  2014-10-01 17:11       ` [dpdk-dev] [PATCH v3] " Wiles, Roger Keith
@ 2014-10-02 22:22         ` Wiles, Roger Keith
  0 siblings, 0 replies; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-10-02 22:22 UTC (permalink / raw)
  To: <dev@dpdk.org>

Resend as it is missing in patchwork.

When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
compiler an error occurs, because ifdefed code now includes GCC pragmas.

GCC 4.4 is when push_options and pop_options pragma show up.

Rework to include Thomas’s suggestion to drop push/pop pragma directives for
ignore/error directives.

Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
---
lib/librte_mempool/rte_mempool.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 95f19f9..163de86 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -313,7 +313,6 @@ static inline void __mempool_write_trailer_cookie(void *obj)
 */
#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
#ifndef __INTEL_COMPILER
-#pragma GCC push_options
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
static inline void __mempool_check_cookies(const struct rte_mempool *mp,
@@ -380,7 +379,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp,
   }
}
#ifndef __INTEL_COMPILER
-#pragma GCC pop_options
+#pragma GCC diagnostic error "-Wcast-qual"
#endif
#else
#define __mempool_check_cookies(mp, obj_table_const, n, free) do {} while(0)
-- 
2.1.0

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-10-02 22:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-27  5:53 [dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled Wiles, Roger Keith
2014-09-28  1:08 ` Wiles, Roger Keith
2014-09-28  5:30 ` [dpdk-dev] [PATCH v2] " Wiles, Roger Keith
2014-10-01 12:58   ` Thomas Monjalon
2014-10-01 14:57     ` Wiles, Roger Keith
2014-10-01 17:06       ` Wiles, Roger Keith
2014-10-01 17:11       ` [dpdk-dev] [PATCH v3] " Wiles, Roger Keith
2014-10-02 22:22         ` Wiles, Roger Keith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).