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 <michalx.kobylin...@intel.com>
Cc: sta...@dpdk.org

Signed-off-by: Jun Yang <jun.y...@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com>
Acked-by: Bruce Richardson <bruce.richard...@intel.com>
---
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.

Reply via email to