Message ID | 3EC8A7DC-C947-40DC-B8FD-60023A12B00A@windriver.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 5B3797E23; Sun, 28 Sep 2014 07:24:16 +0200 (CEST) Received: from mail.windriver.com (mail.windriver.com [147.11.1.11]) by dpdk.org (Postfix) with ESMTP id 159BB7E1B for <dev@dpdk.org>; Sun, 28 Sep 2014 07:24:14 +0200 (CEST) Received: from ALA-HCB.corp.ad.wrs.com (ala-hcb.corp.ad.wrs.com [147.11.189.41]) by mail.windriver.com (8.14.9/8.14.5) with ESMTP id s8S5UiT9007376 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <dev@dpdk.org>; Sat, 27 Sep 2014 22:30:44 -0700 (PDT) Received: from ALA-MBB.corp.ad.wrs.com ([169.254.1.18]) by ALA-HCB.corp.ad.wrs.com ([147.11.189.41]) with mapi id 14.03.0174.001; Sat, 27 Sep 2014 22:30:44 -0700 From: "Wiles, Roger Keith" <keith.wiles@windriver.com> To: "<dev@dpdk.org>" <dev@dpdk.org> Thread-Topic: [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. Thread-Index: AQHP2t1ZNXc0SjSWE0KAjVnqRh67Tg== Date: Sun, 28 Sep 2014 05:30:43 +0000 Message-ID: <3EC8A7DC-C947-40DC-B8FD-60023A12B00A@windriver.com> References: <41114A6E-08AB-4269-9E4F-9930BD04D8E2@windriver.com> In-Reply-To: <41114A6E-08AB-4269-9E4F-9930BD04D8E2@windriver.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.25.40.166] Content-Type: text/plain; charset="Windows-1252" Content-ID: <331D9696535A824CA1E8B29518022DAE@local> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Wiles, Roger Keith
Sept. 28, 2014, 5:30 a.m. UTC
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(-)
Comments
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
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
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
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