From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: [PATCH v2 2/5] lpm: fix compilation on ARM BE Date: Mon, 18 Dec 2017 13:20:12 +0530 Message-ID: References: <1509617335-6354-1-git-send-email-hemant.agrawal@nxp.com> <1513169578-28440-1-git-send-email-hemant.agrawal@nxp.com> <1513169578-28440-2-git-send-email-hemant.agrawal@nxp.com> <20171213132253.GA10724@bricha3-MOBL3.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Cc: , , Michal Kobylinski , , Jun Yang To: Bruce Richardson Return-path: In-Reply-To: <20171213132253.GA10724@bricha3-MOBL3.ger.corp.intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/13/2017 6:52 PM, Bruce Richardson wrote: > On Wed, Dec 13, 2017 at 06:22:55PM +0530, Hemant Agrawal wrote: >> Compiling on ARM BE using Linaro toolchain caused following >> error/warnings. >> >> rte_lpm.c: In function ‘add_depth_big_v20’: >> rte_lpm.c:911:4: error: braces around scalar initializer [-Werror] >> { .group_idx = (uint8_t)tbl8_group_index, }, >> ^ >> rte_lpm.c:911:4: note: (near initialization for >> ‘new_tbl24_entry.depth’) >> rte_lpm.c:911:6:error: field name not in record or union initializer >> { .group_idx = (uint8_t)tbl8_group_index, }, >> ^ >> rte_lpm.c:911:6: note: (near initialization for >> ‘new_tbl24_entry.depth’) >> rte_lpm.c:914:13: error: initialized field overwritten >> [-Werror=override-init] >> .depth = 0, >> >> Fixes: dc81ebbacaeb ("lpm: extend IPv4 next hop field") >> Cc: Michal Kobylinski >> Cc: stable@dpdk.org >> >> Signed-off-by: Jun Yang >> Signed-off-by: Hemant Agrawal >> Acked-by: Bruce Richardson >> --- >> v2: added endianess check in the assignments >> >> lib/librte_lpm/rte_lpm.c | 29 +++++++++++++++++++++++++++++ >> 1 file changed, 29 insertions(+) >> >> diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c >> index e1f1fad..a47c04f 100644 >> --- a/lib/librte_lpm/rte_lpm.c >> +++ b/lib/librte_lpm/rte_lpm.c >> @@ -912,10 +912,17 @@ add_depth_big_v20(struct rte_lpm_v20 *lpm, uint32_t ip_masked, uint8_t depth, >> */ >> >> struct rte_lpm_tbl_entry_v20 new_tbl24_entry = { >> +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN >> { .group_idx = (uint8_t)tbl8_group_index, }, >> .valid = VALID, >> .valid_group = 1, >> .depth = 0, >> +#else >> + .depth = 0, >> + .valid_group = 1, >> + .valid = VALID, >> + { .group_idx = (uint8_t)tbl8_group_index, }, >> +#endif >> }; >> > I'm not I'd agree with this as a "better" fix. Were the issues with the > previous version of just removing the braces. All the ifdefs are rather > ugly. > Ok. I will revert.