From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 4110E93C0 for ; Fri, 8 Jul 2016 16:45:56 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 08 Jul 2016 07:45:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,330,1464678000"; d="scan'208";a="1018061301" Received: from lcteoh-mobl2.gar.corp.intel.com (HELO [10.255.150.176]) ([10.255.150.176]) by fmsmga002.fm.intel.com with ESMTP; 08 Jul 2016 07:45:53 -0700 To: "Wiles, Keith" , "dev@dpdk.org" References: <10B01822-557C-400A-A6BE-DBFF60AF90E4@intel.com> <20160708080543.GB7621@6wind.com> <577F78E9.8020705@intel.com> <20160708143512.GG7621@6wind.com> From: Ferruh Yigit Message-ID: <577FBC9E.30604@intel.com> Date: Fri, 8 Jul 2016 15:45:50 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <20160708143512.GG7621@6wind.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v3 00/11] Fix build errors related to exported headers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Jul 2016 14:45:57 -0000 On 7/8/2016 3:35 PM, Adrien Mazarguil wrote: > 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. Correct, I just wonder why not getting this same compiler warning before your changes. ... > Is that the only issue you saw? > Yes. >>>> 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. >