[dpdk-dev] [PATCH] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.

Wiles, Roger Keith keith.wiles at windriver.com
Sun Sep 28 03:08:11 CEST 2014


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



More information about the dev mailing list