From 633134b78afc8e343ae1eb4a62b668dd6bd31164 Mon Sep 17 00:00:00 2001 From: Chris Luke Date: Mon, 2 May 2016 16:00:43 -0400 Subject: [PATCH] VPP-31 Fix linker issue with new sr-replicate Changes in gnu ld in Ubuntu 16.04 tickles an issue with the declaration pattern used for vlib_node_registration when, as is the case in sr_replicate.c, the forward declaration is seen by the linker in a module before the real declaration. This patch uses the "extern" keyword in the forward declaration to avoid this issue and removes extra forward declarations. Change-Id: I075b0cd9932404e1360c7f9aec7114003d110f60 Signed-off-by: Chris Luke --- vnet/vnet/sr/sr.h | 2 +- vnet/vnet/sr/sr_replicate.c | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/vnet/vnet/sr/sr.h b/vnet/vnet/sr/sr.h index 321f49a7321..448d29318ce 100644 --- a/vnet/vnet/sr/sr.h +++ b/vnet/vnet/sr/sr.h @@ -188,7 +188,7 @@ format_function_t format_ip6_sr_header_with_length; vlib_node_registration_t ip6_sr_input_node; #if DPDK > 0 -vlib_node_registration_t sr_replicate_node; +extern vlib_node_registration_t sr_replicate_node; #endif /* DPDK */ int ip6_sr_add_del_tunnel (ip6_sr_add_del_tunnel_args_t * a); diff --git a/vnet/vnet/sr/sr_replicate.c b/vnet/vnet/sr/sr_replicate.c index 7486d7c60a1..80d04ba6d75 100644 --- a/vnet/vnet/sr/sr_replicate.c +++ b/vnet/vnet/sr/sr_replicate.c @@ -36,8 +36,6 @@ typedef struct { sr_replicate_main_t sr_replicate_main; -vlib_node_registration_t sr_replicate_node; - typedef struct { ip6_address_t src, dst; @@ -76,8 +74,6 @@ static u8 * format_sr_replicate_trace (u8 * s, va_list * args) } -vlib_node_registration_t sr_replicate_node; - #define foreach_sr_replicate_error \ _(REPLICATED, "sr packets replicated") \ _(NO_BUFFERS, "error allocating buffers for replicas") \ -- 2.16.6