From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adrien Mazarguil Subject: Re: [PATCH v3 00/11] Fix build errors related to exported headers Date: Fri, 8 Jul 2016 16:35:12 +0200 Message-ID: <20160708143512.GG7621@6wind.com> References: <10B01822-557C-400A-A6BE-DBFF60AF90E4@intel.com> <20160708080543.GB7621@6wind.com> <577F78E9.8020705@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Yigit, Ferruh" , "dev@dpdk.org" To: "Wiles, Keith" Return-path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by dpdk.org (Postfix) with ESMTP id 282F68D89 for ; Fri, 8 Jul 2016 16:35:15 +0200 (CEST) Received: by mail-wm0-f42.google.com with SMTP id n127so14180412wme.1 for ; Fri, 08 Jul 2016 07:35:15 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, Jul 08, 2016 at 02:15:37PM +0000, Wiles, Keith wrote: > > > On Jul 8, 2016, at 4:56 AM, Yigit, Ferruh wrote: > > > > On 7/8/2016 9:05 AM, Adrien Mazarguil wrote: > >> On Thu, Jul 07, 2016 at 06:33:17PM +0000, Wiles, Keith wrote: > >>> > >>>> On Jul 7, 2016, at 10:49 AM, Adrien Mazarguil wrote: > >>>> > >>>> DPDK uses GNU C language extensions in most of its code base. This is fine > >>>> for internal source files whose compilation flags are controlled by DPDK, > >>>> however user applications that use exported "public" headers may experience > >>>> compilation failures when enabling strict error/standard checks (-std and > >>>> -pedantic for instance). > >>> > >>> Do you try compiling these changes with CLANG and/or ICC compilers? > >> > >> clang/clang++ yes, works fine. I did not try with ICC however. > > > > I tested with icc, getting following error [1], compiler warning seems > > valid, but didn't investigate what in your patch cause this. > > > > [1] > > .../app/test/test_table_acl.c(487): error #2405: array of elements > > containing a flexible array member is nonstandard > > struct rte_pipeline_table_entry entries[5]; > > ^ > > > > .../app/test/test_table_acl.c(492): error #2405: array of elements > > containing a flexible array member is nonstandard > > struct rte_pipeline_table_entry entries_ptr[5]; > > I am guessing it does not like the uint8_t action_data[0] in the rte_pipeline_table_entry structure. I can see why it would be non-standard allocated on the stack in this case. Maybe a keyword like __extension__ needs to be added or pragma. Hmmm, right, a variable array cannot be embedded like that. I think a change in test_table_acl.c would be better. I guess I missed a compilation check on these tests programs. Is that the only issue you saw? > >> Note that considering "({ ... })" is a GNU extension, compilers that do > >> support this syntax also support the GNU __extension__ keyword. As a result, > >> those that do not support this keyword most likely already cannot compile > >> DPDK at all. -- Adrien Mazarguil 6WIND