From: Thomas Monjalon Date: Wed, 20 May 2020 07:59:35 +0000 (+0200) Subject: examples/vm_power: fix build with -fno-common X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=96d3d532f9f2e42cf8b620ad3ba9da1f04ccb3f0 examples/vm_power: fix build with -fno-common The variables of the same name are merged together if compiled with -fcommon. It used to be the default. This default behaviour allows to declare a variable in a header file and share the variable in every .o binaries thanks to merge at link-time. If compiling with -fno-common (default in GCC 10), the variable must be shared as extern to avoid multiple re-definitions. Fixes: dff22404aaad ("examples/vm_power_mgr: add VCPU to PCPU mapping") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon Acked-by: David Marchand Acked-by: Kevin Traynor --- diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c index 4ac21f02c1..4d13697208 100644 --- a/examples/vm_power_manager/channel_manager.c +++ b/examples/vm_power_manager/channel_manager.c @@ -35,6 +35,8 @@ #define RTE_LOGTYPE_CHANNEL_MANAGER RTE_LOGTYPE_USER1 +struct libvirt_vm_info lvm_info[MAX_CLIENTS]; + /* Global pointer to libvirt connection */ static virConnectPtr global_vir_conn_ptr; diff --git a/examples/vm_power_manager/channel_manager.h b/examples/vm_power_manager/channel_manager.h index 8284be0a18..a2a2f2bba0 100644 --- a/examples/vm_power_manager/channel_manager.h +++ b/examples/vm_power_manager/channel_manager.h @@ -41,7 +41,7 @@ struct libvirt_vm_info { uint8_t num_cpus; }; -struct libvirt_vm_info lvm_info[MAX_CLIENTS]; +extern struct libvirt_vm_info lvm_info[MAX_CLIENTS]; /* Communication Channel Status */ enum channel_status { CHANNEL_MGR_CHANNEL_DISCONNECTED = 0, CHANNEL_MGR_CHANNEL_CONNECTED,