* [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.
@ 2014-09-27 5:53 Wiles, Roger Keith
[not found] ` <41114A6E-08AB-4269-9E4F-9930BD04D8E2-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Wiles, Roger Keith @ 2014-09-27 5:53 UTC (permalink / raw)
To: <dev-VfR2kkLFssw@public.gmane.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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
---
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 related [flat|nested] 8+ messages in thread[parent not found: <41114A6E-08AB-4269-9E4F-9930BD04D8E2-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>]
* Re: [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <41114A6E-08AB-4269-9E4F-9930BD04D8E2-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> @ 2014-09-28 1:08 ` Wiles, Roger Keith 2014-09-28 5:30 ` [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-VfR2kkLFssw@public.gmane.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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> > --- > 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
* [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <41114A6E-08AB-4269-9E4F-9930BD04D8E2-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 2014-09-28 1:08 ` Wiles, Roger Keith @ 2014-09-28 5:30 ` Wiles, Roger Keith [not found] ` <3EC8A7DC-C947-40DC-B8FD-60023A12B00A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 1 sibling, 1 reply; 8+ messages in thread From: Wiles, Roger Keith @ 2014-09-28 5:30 UTC (permalink / raw) To: <dev-VfR2kkLFssw@public.gmane.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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> --- 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 related [flat|nested] 8+ messages in thread
[parent not found: <3EC8A7DC-C947-40DC-B8FD-60023A12B00A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>]
* Re: [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <3EC8A7DC-C947-40DC-B8FD-60023A12B00A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> @ 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-VfR2kkLFssw 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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> [...] > -#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: [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 [not found] ` <0D8AEEBE-82D7-4DD4-9FF3-E86DF6C144B8-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Wiles, Roger Keith @ 2014-10-01 14:57 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev-VfR2kkLFssw@public.gmane.org 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> > [...] >> -#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
[parent not found: <0D8AEEBE-82D7-4DD4-9FF3-E86DF6C144B8-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>]
* Re: [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <0D8AEEBE-82D7-4DD4-9FF3-E86DF6C144B8-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> @ 2014-10-01 17:06 ` Wiles, Roger Keith 2014-10-01 17:11 ` [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-VfR2kkLFssw@public.gmane.org Thomas, I will submit a v3 patch in a few minutes. On Oct 1, 2014, at 9:57 AM, Wiles, Roger Keith <keith.wiles-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> >> [...] >>> -#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
* [PATCH v3] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <0D8AEEBE-82D7-4DD4-9FF3-E86DF6C144B8-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 2014-10-01 17:06 ` Wiles, Roger Keith @ 2014-10-01 17:11 ` Wiles, Roger Keith [not found] ` <15C5CF10-E6AC-43A4-A24F-F96E878EE70A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> 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-VfR2kkLFssw@public.gmane.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. Rework to include Thomas’s suggestion to drop push/pop pragma directives for ignore/error directives. Signed-off-by: Keith Wiles <keith.wiles-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> --- 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 related [flat|nested] 8+ messages in thread
[parent not found: <15C5CF10-E6AC-43A4-A24F-F96E878EE70A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>]
* [PATCH v3] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. [not found] ` <15C5CF10-E6AC-43A4-A24F-F96E878EE70A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> @ 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-VfR2kkLFssw@public.gmane.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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> --- 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 related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-10-02 22:22 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 [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled Wiles, Roger Keith
[not found] ` <41114A6E-08AB-4269-9E4F-9930BD04D8E2-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2014-09-28 1:08 ` Wiles, Roger Keith
2014-09-28 5:30 ` [PATCH v2] " Wiles, Roger Keith
[not found] ` <3EC8A7DC-C947-40DC-B8FD-60023A12B00A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2014-10-01 12:58 ` Thomas Monjalon
2014-10-01 14:57 ` Wiles, Roger Keith
[not found] ` <0D8AEEBE-82D7-4DD4-9FF3-E86DF6C144B8-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2014-10-01 17:06 ` Wiles, Roger Keith
2014-10-01 17:11 ` [PATCH v3] " Wiles, Roger Keith
[not found] ` <15C5CF10-E6AC-43A4-A24F-F96E878EE70A-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
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).