aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cmake/cpu.cmake2
-rw-r--r--src/cmake/library.cmake2
-rw-r--r--src/plugins/acl/fa_node.h2
-rw-r--r--src/plugins/avf/avf.h2
-rw-r--r--src/plugins/memif/private.h2
-rw-r--r--src/vcl/vcl_private.h2
-rw-r--r--src/vnet/bfd/bfd_main.h2
-rw-r--r--src/vnet/bier/bier_fmask.h2
-rw-r--r--src/vnet/bonding/node.c2
-rw-r--r--src/vnet/bonding/node.h2
-rw-r--r--src/vnet/devices/pipe/pipe_api.c2
-rw-r--r--src/vnet/devices/virtio/vhost_user_input.c2
-rw-r--r--src/vnet/devices/virtio/vhost_user_output.c2
-rw-r--r--src/vnet/dpo/dvr_dpo.c2
-rw-r--r--src/vnet/dpo/dvr_dpo.h2
-rw-r--r--src/vnet/dpo/interface_rx_dpo.c2
-rw-r--r--src/vnet/dpo/interface_rx_dpo.h2
-rw-r--r--src/vnet/dpo/l3_proxy_dpo.h2
-rw-r--r--src/vnet/dpo/receive_dpo.h2
-rw-r--r--src/vnet/ip/ip4_forward.c2
-rw-r--r--src/vnet/ip/ip6_forward.c4
-rw-r--r--src/vnet/ipsec/esp_encrypt.c2
-rw-r--r--src/vnet/l2/l2_learn.h2
-rw-r--r--src/vnet/l2/l2_patch.c2
-rw-r--r--src/vnet/lldp/lldp_node.h2
-rw-r--r--src/vnet/mpls/mpls_lookup.h2
-rw-r--r--src/vnet/session/session_lookup.h2
27 files changed, 34 insertions, 22 deletions
diff --git a/src/cmake/cpu.cmake b/src/cmake/cpu.cmake
index b2af1aa0926..60cf3b9dcf0 100644
--- a/src/cmake/cpu.cmake
+++ b/src/cmake/cpu.cmake
@@ -93,7 +93,7 @@ macro(vpp_library_set_multiarch_sources lib)
set(l ${lib}_${VARIANT})
add_library(${l} OBJECT ${ARGN})
set_target_properties(${l} PROPERTIES POSITION_INDEPENDENT_CODE ON)
- target_compile_options(${l} PUBLIC "-DCLIB_MARCH_VARIANT=${VARIANT}")
+ target_compile_options(${l} PUBLIC "-DCLIB_MARCH_VARIANT=${VARIANT}" -Wall -fno-common)
separate_arguments(VARIANT_FLAGS)
target_compile_options(${l} PUBLIC ${VARIANT_FLAGS})
target_sources(${lib} PRIVATE $<TARGET_OBJECTS:${l}>)
diff --git a/src/cmake/library.cmake b/src/cmake/library.cmake
index 984d6eb8d75..747aeb4705f 100644
--- a/src/cmake/library.cmake
+++ b/src/cmake/library.cmake
@@ -20,7 +20,7 @@ macro(add_vpp_library lib)
)
add_library(${lib} SHARED ${ARG_SOURCES})
- target_compile_options(${lib} PRIVATE -Wall)
+ target_compile_options(${lib} PRIVATE -Wall -fno-common)
if(VPP_LIB_VERSION)
set_target_properties(${lib} PROPERTIES SOVERSION ${VPP_LIB_VERSION})
endif()
diff --git a/src/plugins/acl/fa_node.h b/src/plugins/acl/fa_node.h
index 83a1984c22f..c969377ded7 100644
--- a/src/plugins/acl/fa_node.h
+++ b/src/plugins/acl/fa_node.h
@@ -241,7 +241,7 @@ typedef enum {
} acl_fa_next_t;
-enum
+typedef enum
{
ACL_FA_CLEANER_RESCHEDULE = 1,
ACL_FA_CLEANER_DELETE_BY_SW_IF_INDEX,
diff --git a/src/plugins/avf/avf.h b/src/plugins/avf/avf.h
index b79a22b073f..9836451e012 100644
--- a/src/plugins/avf/avf.h
+++ b/src/plugins/avf/avf.h
@@ -168,7 +168,7 @@ typedef struct
#define AVF_RX_VECTOR_SZ VLIB_FRAME_SIZE
-enum
+typedef enum
{
AVF_PROCESS_EVENT_START = 1,
AVF_PROCESS_EVENT_STOP = 2,
diff --git a/src/plugins/memif/private.h b/src/plugins/memif/private.h
index 2aa1f5a0cdc..4613512041d 100644
--- a/src/plugins/memif/private.h
+++ b/src/plugins/memif/private.h
@@ -255,7 +255,7 @@ extern memif_main_t memif_main;
extern vnet_device_class_t memif_device_class;
extern vlib_node_registration_t memif_input_node;
-enum
+typedef enum
{
MEMIF_PROCESS_EVENT_START = 1,
MEMIF_PROCESS_EVENT_STOP = 2,
diff --git a/src/vcl/vcl_private.h b/src/vcl/vcl_private.h
index d55ecd4c72d..f77d4479e41 100644
--- a/src/vcl/vcl_private.h
+++ b/src/vcl/vcl_private.h
@@ -115,7 +115,7 @@ typedef struct vcl_session_msg
u32 flags;
} vcl_session_msg_t;
-enum
+typedef enum
{
VCL_SESS_ATTR_SERVER,
VCL_SESS_ATTR_CUT_THRU,
diff --git a/src/vnet/bfd/bfd_main.h b/src/vnet/bfd/bfd_main.h
index c587c86801f..9f072e11837 100644
--- a/src/vnet/bfd/bfd_main.h
+++ b/src/vnet/bfd/bfd_main.h
@@ -345,7 +345,7 @@ typedef struct
u8 data[400];
} bfd_input_trace_t;
-enum
+typedef enum
{
BFD_EVENT_RESCHEDULE = 1,
BFD_EVENT_NEW_SESSION,
diff --git a/src/vnet/bier/bier_fmask.h b/src/vnet/bier/bier_fmask.h
index 0666605c23f..2317a5094aa 100644
--- a/src/vnet/bier/bier_fmask.h
+++ b/src/vnet/bier/bier_fmask.h
@@ -171,7 +171,7 @@ extern void bier_fmask_encode (index_t bfmi,
/*
* provided for fast data-path access
*/
-bier_fmask_t *bier_fmask_pool;
+extern bier_fmask_t *bier_fmask_pool;
static inline bier_fmask_t *
bier_fmask_get (u32 index)
diff --git a/src/vnet/bonding/node.c b/src/vnet/bonding/node.c
index 80013428101..636146f8449 100644
--- a/src/vnet/bonding/node.c
+++ b/src/vnet/bonding/node.c
@@ -21,7 +21,9 @@
#include <vnet/snap/snap.h>
#include <vnet/bonding/node.h>
+#ifndef CLIB_MARCH_VARIANT
bond_main_t bond_main;
+#endif /* CLIB_MARCH_VARIANT */
#define foreach_bond_input_error \
_(NONE, "no error") \
diff --git a/src/vnet/bonding/node.h b/src/vnet/bonding/node.h
index 15640071aa8..9a194b8db0b 100644
--- a/src/vnet/bonding/node.h
+++ b/src/vnet/bonding/node.h
@@ -70,7 +70,7 @@ typedef enum
#undef _
} bond_load_balance_t;
-enum
+typedef enum
{
BOND_SEND_GARP_NA = 1,
} bond_send_garp_na_process_event_t;
diff --git a/src/vnet/devices/pipe/pipe_api.c b/src/vnet/devices/pipe/pipe_api.c
index cb67d1f0404..1dcb8bc76c6 100644
--- a/src/vnet/devices/pipe/pipe_api.c
+++ b/src/vnet/devices/pipe/pipe_api.c
@@ -36,7 +36,7 @@
#undef vl_printfun
#include <vlibapi/api_helper_macros.h>
-vpe_api_main_t vpe_api_main;
+extern vpe_api_main_t vpe_api_main;
#define foreach_vpe_api_msg \
_(PIPE_CREATE, pipe_create) \
diff --git a/src/vnet/devices/virtio/vhost_user_input.c b/src/vnet/devices/virtio/vhost_user_input.c
index 3c3d48e9ef4..286fa7ed744 100644
--- a/src/vnet/devices/virtio/vhost_user_input.c
+++ b/src/vnet/devices/virtio/vhost_user_input.c
@@ -65,7 +65,7 @@
*/
#define VHOST_USER_RX_COPY_THRESHOLD 64
-vlib_node_registration_t vhost_user_input_node;
+extern vlib_node_registration_t vhost_user_input_node;
#define foreach_vhost_user_input_func_error \
_(NO_ERROR, "no error") \
diff --git a/src/vnet/devices/virtio/vhost_user_output.c b/src/vnet/devices/virtio/vhost_user_output.c
index 4fbd63ea708..c0c54d1b13a 100644
--- a/src/vnet/devices/virtio/vhost_user_output.c
+++ b/src/vnet/devices/virtio/vhost_user_output.c
@@ -53,7 +53,7 @@
*/
#define VHOST_USER_TX_COPY_THRESHOLD (VHOST_USER_COPY_ARRAY_N - 40)
-vnet_device_class_t vhost_user_device_class;
+extern vnet_device_class_t vhost_user_device_class;
#define foreach_vhost_user_tx_func_error \
_(NONE, "no error") \
diff --git a/src/vnet/dpo/dvr_dpo.c b/src/vnet/dpo/dvr_dpo.c
index 4b440f81c59..a362d23e890 100644
--- a/src/vnet/dpo/dvr_dpo.c
+++ b/src/vnet/dpo/dvr_dpo.c
@@ -18,6 +18,8 @@
#include <vnet/ip/ip.h>
#include <vnet/ethernet/ethernet.h>
+dvr_dpo_t *dvr_dpo_pool;
+
/**
* The 'DB' of DVR DPOs.
* There is one per-interface per-L3 proto, so this is a per-interface vector
diff --git a/src/vnet/dpo/dvr_dpo.h b/src/vnet/dpo/dvr_dpo.h
index 15fe113c596..669c49201c8 100644
--- a/src/vnet/dpo/dvr_dpo.h
+++ b/src/vnet/dpo/dvr_dpo.h
@@ -54,7 +54,7 @@ extern void dvr_dpo_module_init(void);
/**
* @brief pool of all interface DPOs
*/
-dvr_dpo_t *dvr_dpo_pool;
+extern dvr_dpo_t *dvr_dpo_pool;
static inline dvr_dpo_t *
dvr_dpo_get (index_t index)
diff --git a/src/vnet/dpo/interface_rx_dpo.c b/src/vnet/dpo/interface_rx_dpo.c
index 82767e73fc7..90868b953ca 100644
--- a/src/vnet/dpo/interface_rx_dpo.c
+++ b/src/vnet/dpo/interface_rx_dpo.c
@@ -17,6 +17,8 @@
#include <vnet/fib/fib_node.h>
#include <vnet/l2/l2_input.h>
+interface_rx_dpo_t *interface_rx_dpo_pool;
+
/*
* The 'DB' of interface DPOs.
* There is only one per-interface per-protocol, so this is a per-interface
diff --git a/src/vnet/dpo/interface_rx_dpo.h b/src/vnet/dpo/interface_rx_dpo.h
index edecce08675..d3406a22387 100644
--- a/src/vnet/dpo/interface_rx_dpo.h
+++ b/src/vnet/dpo/interface_rx_dpo.h
@@ -58,7 +58,7 @@ extern void interface_rx_dpo_module_init(void);
/**
* @brief pool of all interface DPOs
*/
-interface_rx_dpo_t *interface_rx_dpo_pool;
+extern interface_rx_dpo_t *interface_rx_dpo_pool;
static inline interface_rx_dpo_t *
interface_rx_dpo_get (index_t index)
diff --git a/src/vnet/dpo/l3_proxy_dpo.h b/src/vnet/dpo/l3_proxy_dpo.h
index fcc28b3bf97..3a578e29924 100644
--- a/src/vnet/dpo/l3_proxy_dpo.h
+++ b/src/vnet/dpo/l3_proxy_dpo.h
@@ -52,7 +52,7 @@ extern void l3_proxy_dpo_module_init(void);
/**
* @brief pool of all l3_proxy DPOs
*/
-l3_proxy_dpo_t *l3_proxy_dpo_pool;
+extern l3_proxy_dpo_t *l3_proxy_dpo_pool;
static inline l3_proxy_dpo_t *
l3_proxy_dpo_get (index_t index)
diff --git a/src/vnet/dpo/receive_dpo.h b/src/vnet/dpo/receive_dpo.h
index ee3c7836aff..9459fbcc279 100644
--- a/src/vnet/dpo/receive_dpo.h
+++ b/src/vnet/dpo/receive_dpo.h
@@ -59,7 +59,7 @@ extern void receive_dpo_module_init(void);
/**
* @brief pool of all receive DPOs
*/
-receive_dpo_t *receive_dpo_pool;
+extern receive_dpo_t *receive_dpo_pool;
static inline receive_dpo_t *
receive_dpo_get (index_t index)
diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c
index 5fc2552f5ca..b3ae29a2790 100644
--- a/src/vnet/ip/ip4_forward.c
+++ b/src/vnet/ip/ip4_forward.c
@@ -900,7 +900,9 @@ ip4_sw_interface_add_del (vnet_main_t * vnm, u32 sw_if_index, u32 is_add)
VNET_SW_INTERFACE_ADD_DEL_FUNCTION (ip4_sw_interface_add_del);
/* Global IP4 main. */
+#ifndef CLIB_MARCH_VARIANT
ip4_main_t ip4_main;
+#endif /* CLIB_MARCH_VARIANT */
static clib_error_t *
ip4_lookup_init (vlib_main_t * vm)
diff --git a/src/vnet/ip/ip6_forward.c b/src/vnet/ip/ip6_forward.c
index 57fd6081af5..2c3879b13d1 100644
--- a/src/vnet/ip/ip6_forward.c
+++ b/src/vnet/ip/ip6_forward.c
@@ -2074,7 +2074,9 @@ VLIB_REGISTER_NODE (ip6_mcast_midchain_node) =
/*
* Hop-by-Hop handling
*/
+#ifndef CLIB_MARCH_VARIANT
ip6_hop_by_hop_main_t ip6_hop_by_hop_main;
+#endif /* CLIB_MARCH_VARIANT */
#define foreach_ip6_hop_by_hop_error \
_(PROCESSED, "pkts with ip6 hop-by-hop options") \
@@ -2102,7 +2104,7 @@ typedef struct
u8 option_data[256];
} ip6_hop_by_hop_trace_t;
-vlib_node_registration_t ip6_hop_by_hop_node;
+extern vlib_node_registration_t ip6_hop_by_hop_node;
static char *ip6_hop_by_hop_error_strings[] = {
#define _(sym,string) string,
diff --git a/src/vnet/ipsec/esp_encrypt.c b/src/vnet/ipsec/esp_encrypt.c
index 4b325e08b5f..e1690439c88 100644
--- a/src/vnet/ipsec/esp_encrypt.c
+++ b/src/vnet/ipsec/esp_encrypt.c
@@ -23,7 +23,9 @@
#include <vnet/ipsec/ipsec.h>
#include <vnet/ipsec/esp.h>
+#ifndef CLIB_MARCH_VARIANT
ipsec_proto_main_t ipsec_proto_main;
+#endif /* CLIB_MARCH_VARIANT */
#define foreach_esp_encrypt_next \
_(DROP, "error-drop") \
diff --git a/src/vnet/l2/l2_learn.h b/src/vnet/l2/l2_learn.h
index c1071450852..58e19babc6e 100644
--- a/src/vnet/l2/l2_learn.h
+++ b/src/vnet/l2/l2_learn.h
@@ -52,7 +52,7 @@ extern l2learn_main_t l2learn_main;
extern vlib_node_registration_t l2fib_mac_age_scanner_process_node;
-enum
+typedef enum
{
L2_MAC_AGE_PROCESS_EVENT_START = 1,
L2_MAC_AGE_PROCESS_EVENT_STOP = 2,
diff --git a/src/vnet/l2/l2_patch.c b/src/vnet/l2/l2_patch.c
index e2d2a679662..54286c23d72 100644
--- a/src/vnet/l2/l2_patch.c
+++ b/src/vnet/l2/l2_patch.c
@@ -49,7 +49,7 @@ format_l2_patch_trace (u8 * s, va_list * args)
return s;
}
-l2_patch_main_t l2_patch_main;
+static l2_patch_main_t l2_patch_main;
static vlib_node_registration_t l2_patch_node;
diff --git a/src/vnet/lldp/lldp_node.h b/src/vnet/lldp/lldp_node.h
index eca1d12e169..f9bc9599827 100644
--- a/src/vnet/lldp/lldp_node.h
+++ b/src/vnet/lldp/lldp_node.h
@@ -131,7 +131,7 @@ typedef struct
u8 data[400];
} lldp_input_trace_t;
-enum
+typedef enum
{
LLDP_EVENT_RESCHEDULE = 1,
} lldp_process_event_t;
diff --git a/src/vnet/mpls/mpls_lookup.h b/src/vnet/mpls/mpls_lookup.h
index 95558e05a4e..17f9468f0ac 100644
--- a/src/vnet/mpls/mpls_lookup.h
+++ b/src/vnet/mpls/mpls_lookup.h
@@ -23,7 +23,7 @@
/**
* The arc/edge from the MPLS lookup node to the MPLS replicate node
*/
-u32 mpls_lookup_to_replicate_edge;
+extern u32 mpls_lookup_to_replicate_edge;
/**
* Enum of statically configred MPLS lookup next nodes
diff --git a/src/vnet/session/session_lookup.h b/src/vnet/session/session_lookup.h
index c45794dfe71..8d7701da19e 100644
--- a/src/vnet/session/session_lookup.h
+++ b/src/vnet/session/session_lookup.h
@@ -96,7 +96,7 @@ void session_lookup_dump_rules_table (u32 fib_index, u8 fib_proto,
void session_lookup_dump_local_rules_table (u32 fib_index, u8 fib_proto,
u8 transport_proto);
-enum _session_rule_scope
+typedef enum _session_rule_scope
{
SESSION_RULE_SCOPE_GLOBAL = 1,
SESSION_RULE_SCOPE_LOCAL = 2,