From b8abf877ba27098ca706281182cac67e15d7dd1e Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 14 Mar 2016 20:02:35 +0100 Subject: Declare node, hw_interface_class and device_class instances as external This fixes issue observed on Ubuntu 16.04 where dynamic loader is not finding correct instance of specific structure. Change-Id: I618d0933c7e171b8a9b40495b36894785af7790a Signed-off-by: Damjan Marion --- vnet/vnet/devices/dpdk/dpdk.h | 2 +- vnet/vnet/devices/ssvm/ssvm_eth.h | 2 +- vnet/vnet/ethernet/ethernet.h | 2 +- vnet/vnet/flow/flow_report.h | 2 +- vnet/vnet/gre/gre.h | 4 ++-- vnet/vnet/hdlc/hdlc.h | 2 +- vnet/vnet/ip/ip_frag.h | 4 ++-- vnet/vnet/mpls-gre/mpls.h | 4 ++-- vnet/vnet/ppp/ppp.h | 2 +- vppinfra/vppinfra/vector_sse2.h | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h index 1635c0a170c..656f39ea681 100644 --- a/vnet/vnet/devices/dpdk/dpdk.h +++ b/vnet/vnet/devices/dpdk/dpdk.h @@ -65,7 +65,7 @@ #define MBUF_SIZE (2048 + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM) #define NB_MBUF (32<<10) -vnet_device_class_t dpdk_device_class; +extern vnet_device_class_t dpdk_device_class; extern vlib_node_registration_t dpdk_input_node; extern vlib_node_registration_t dpdk_io_input_node; extern vlib_node_registration_t handoff_dispatch_node; diff --git a/vnet/vnet/devices/ssvm/ssvm_eth.h b/vnet/vnet/devices/ssvm/ssvm_eth.h index 618fb5ca14b..70d895b9ad4 100644 --- a/vnet/vnet/devices/ssvm/ssvm_eth.h +++ b/vnet/vnet/devices/ssvm/ssvm_eth.h @@ -31,7 +31,7 @@ #include -vnet_device_class_t ssvm_eth_device_class; +extern vnet_device_class_t ssvm_eth_device_class; extern vlib_node_registration_t ssvm_eth_input_node; #define SSVM_BUFFER_SIZE \ diff --git a/vnet/vnet/ethernet/ethernet.h b/vnet/vnet/ethernet/ethernet.h index 21257c558fa..ea01463c072 100644 --- a/vnet/vnet/ethernet/ethernet.h +++ b/vnet/vnet/ethernet/ethernet.h @@ -96,7 +96,7 @@ typedef struct ethernet_interface { u8 address[6]; } ethernet_interface_t; -vnet_hw_interface_class_t ethernet_hw_interface_class; +extern vnet_hw_interface_class_t ethernet_hw_interface_class; typedef struct { /* Name (a c string). */ diff --git a/vnet/vnet/flow/flow_report.h b/vnet/vnet/flow/flow_report.h index 14185bf6798..e4c776725f0 100644 --- a/vnet/vnet/flow/flow_report.h +++ b/vnet/vnet/flow/flow_report.h @@ -89,7 +89,7 @@ typedef struct flow_report_main { flow_report_main_t flow_report_main; -vlib_node_registration_t flow_report_process_node; +extern vlib_node_registration_t flow_report_process_node; int vnet_flow_report_enable_disable (u32 sw_if_index, u32 table_index, int enable_disable); diff --git a/vnet/vnet/gre/gre.h b/vnet/vnet/gre/gre.h index 490360d1ce1..de9db32bc8f 100644 --- a/vnet/vnet/gre/gre.h +++ b/vnet/vnet/gre/gre.h @@ -26,7 +26,7 @@ #include #include -vnet_hw_interface_class_t gre_hw_interface_class; +extern vnet_hw_interface_class_t gre_hw_interface_class; typedef enum { #define gre_error(n,s) GRE_ERROR_##n, @@ -96,7 +96,7 @@ format_function_t format_gre_header; format_function_t format_gre_header_with_length; extern vlib_node_registration_t gre_input_node; -vnet_device_class_t gre_device_class; +extern vnet_device_class_t gre_device_class; /* Parse gre protocol as 0xXXXX or protocol name. In either host or network byte order. */ diff --git a/vnet/vnet/hdlc/hdlc.h b/vnet/vnet/hdlc/hdlc.h index e5cbe62d33d..73b15c2fac7 100644 --- a/vnet/vnet/hdlc/hdlc.h +++ b/vnet/vnet/hdlc/hdlc.h @@ -44,7 +44,7 @@ #include #include -vnet_hw_interface_class_t hdlc_hw_interface_class; +extern vnet_hw_interface_class_t hdlc_hw_interface_class; typedef enum { #define hdlc_error(n,s) HDLC_ERROR_##n, diff --git a/vnet/vnet/ip/ip_frag.h b/vnet/vnet/ip/ip_frag.h index 76238655af9..118acf86bf4 100644 --- a/vnet/vnet/ip/ip_frag.h +++ b/vnet/vnet/ip/ip_frag.h @@ -43,8 +43,8 @@ #define IP4_FRAG_NODE_NAME "ip4-frag" #define IP6_FRAG_NODE_NAME "ip6-frag" -vlib_node_registration_t ip4_frag_node; -vlib_node_registration_t ip6_frag_node; +extern vlib_node_registration_t ip4_frag_node; +extern vlib_node_registration_t ip6_frag_node; typedef enum { IP4_FRAG_NEXT_IP4_LOOKUP, diff --git a/vnet/vnet/mpls-gre/mpls.h b/vnet/vnet/mpls-gre/mpls.h index c0a3531512f..e2fe42ece75 100644 --- a/vnet/vnet/mpls-gre/mpls.h +++ b/vnet/vnet/mpls-gre/mpls.h @@ -27,7 +27,7 @@ typedef CLIB_PACKED (struct { mpls_unicast_header_t labels[0]; /* 4 bytes each */ }) ip4_gre_and_mpls_header_t; -vnet_hw_interface_class_t mpls_gre_hw_interface_class; +extern vnet_hw_interface_class_t mpls_gre_hw_interface_class; typedef enum { #define mpls_error(n,s) MPLS_ERROR_##n, @@ -116,7 +116,7 @@ format_function_t format_mpls_encap_index; extern vlib_node_registration_t mpls_input_node; extern vlib_node_registration_t mpls_policy_encap_node; -vnet_device_class_t mpls_gre_device_class; +extern vnet_device_class_t mpls_gre_device_class; /* Parse mpls protocol as 0xXXXX or protocol name. In either host or network byte order. */ diff --git a/vnet/vnet/ppp/ppp.h b/vnet/vnet/ppp/ppp.h index e512df7f108..690ae4fc00d 100644 --- a/vnet/vnet/ppp/ppp.h +++ b/vnet/vnet/ppp/ppp.h @@ -44,7 +44,7 @@ #include #include -vnet_hw_interface_class_t ppp_hw_interface_class; +extern vnet_hw_interface_class_t ppp_hw_interface_class; typedef enum { #define ppp_error(n,s) PPP_ERROR_##n, diff --git a/vppinfra/vppinfra/vector_sse2.h b/vppinfra/vppinfra/vector_sse2.h index ae3f342abf8..23254fb94ee 100644 --- a/vppinfra/vppinfra/vector_sse2.h +++ b/vppinfra/vppinfra/vector_sse2.h @@ -474,7 +474,7 @@ i32x4_get0 (i32x4 x) always_inline u32 u8x16_compare_byte_mask (u8x16 x) { return _mm_movemask_epi8 ((__m128i) x); } -u8 u32x4_compare_word_mask_table[256]; +extern u8 u32x4_compare_word_mask_table[256]; always_inline u32 u32x4_compare_word_mask (u32x4 x) { -- cgit 1.2.3-korg