* [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).