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 at 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 at 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