[dpdk-stable] [PATCH 18.11 1/2] examples/vm_power: fix build with -fno-common
Kevin Traynor
ktraynor at redhat.com
Tue Jun 16 17:17:12 CEST 2020
From: Thomas Monjalon <thomas at monjalon.net>
[ upstream commit 96d3d532f9f2e42cf8b620ad3ba9da1f04ccb3f0 ]
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")
Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
Acked-by: David Marchand <david.marchand at redhat.com>
Acked-by: Kevin Traynor <ktraynor at redhat.com>
---
examples/vm_power_manager/channel_manager.c | 2 ++
examples/vm_power_manager/channel_manager.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c
index 8aabd69c40..c53ad4bf1b 100644
--- a/examples/vm_power_manager/channel_manager.c
+++ b/examples/vm_power_manager/channel_manager.c
@@ -37,4 +37,6 @@
if ((mask_u64b >> i) & 1) \
+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 22905266f8..3c48d6ae66 100644
--- a/examples/vm_power_manager/channel_manager.h
+++ b/examples/vm_power_manager/channel_manager.h
@@ -44,5 +44,5 @@ struct libvirt_vm_info {
};
-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,
--
2.21.3
More information about the stable
mailing list