diff options
-rw-r--r-- | lib/routemap_northbound.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/routemap_northbound.c b/lib/routemap_northbound.c index 3173a708e..78f2a5a01 100644 --- a/lib/routemap_northbound.c +++ b/lib/routemap_northbound.c @@ -1224,7 +1224,32 @@ lib_route_map_entry_set_action_tag_destroy(enum nb_event event, } /* clang-format off */ +#if defined(__GNUC__) && ((__GNUC__ - 0) < 5) && !defined(__clang__) +/* + * gcc versions before 5.x miscalculate the size for structs with variable + * length arrays (they just count it as size 0) + */ +struct frr_yang_module_info_sizen { + /* YANG module name. */ + const char *name; + + /* Northbound callbacks. */ + const struct { + /* Data path of this YANG node. */ + const char *xpath; + + /* Callbacks implemented for this node. */ + struct nb_callbacks cbs; + + /* Priority - lower priorities are processed first. */ + uint32_t priority; + } nodes[28]; +}; + +const struct frr_yang_module_info_sizen frr_route_map_info_sizen asm("frr_route_map_info") = { +#else const struct frr_yang_module_info frr_route_map_info = { +#endif .name = "frr-route-map", .nodes = { { |