From 474b1c1487828a17fe9e1025901334d9820ea350 Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Wed, 1 Dec 2010 15:43:40 +0100 Subject: [PATCH] Fix undefined symbol errors when macvtap support is disabled Use macvtap specific functions depending on WITH_MACVTAP. Use #if instead of #ifdef to check for WITH_MACVTAP, because WITH_MACVTAP is always defined with value 0 or 1. Also export virVMOperationType{To|From}String unconditional, because they are used unconditional in the domain config code. --- src/libvirt_macvtap.syms | 5 +++-- src/libvirt_private.syms | 5 +++++ src/qemu/qemu_driver.c | 5 +++++ src/util/macvtap.h | 19 +++++++++---------- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/libvirt_macvtap.syms b/src/libvirt_macvtap.syms index 107b7da05f..b48565b9cf 100644 --- a/src/libvirt_macvtap.syms +++ b/src/libvirt_macvtap.syms @@ -1,9 +1,10 @@ # +# These symbols are dependent on WITH_MACVTAP. +# + # macvtap.h delMacvtap; openMacvtapTap; -virVMOperationTypeFromString; -virVMOperationTypeToString; vpAssociatePortProfileId; vpDisassociatePortProfileId; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 310d8f415e..3c1c823d44 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -504,6 +504,11 @@ virLogStartup; virLogUnlock; +# macvtap.h +virVMOperationTypeFromString; +virVMOperationTypeToString; + + # memory.h virAlloc; virAllocN; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index fcb90a3635..73b1e3ff81 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -11879,6 +11879,7 @@ cleanup: return ret; } +#if WITH_MACVTAP static void qemudVPAssociatePortProfiles(virDomainDefPtr def) { int i; @@ -11913,6 +11914,10 @@ err_exit: } } } +#else /* !WITH_MACVTAP */ +static void +qemudVPAssociatePortProfiles(virDomainDefPtr def ATTRIBUTE_UNUSED) { } +#endif /* WITH_MACVTAP */ /* Finish is the third and final step, and it runs on the destination host. */ static virDomainPtr diff --git a/src/util/macvtap.h b/src/util/macvtap.h index 389d1fd35e..3ae2c24029 100644 --- a/src/util/macvtap.h +++ b/src/util/macvtap.h @@ -57,11 +57,6 @@ struct _virVirtualPortProfileParams { } u; }; - -# if defined(WITH_MACVTAP) - -# include "internal.h" - enum virVMOperationType { VIR_VM_OP_CREATE, VIR_VM_OP_SAVE, @@ -75,6 +70,10 @@ enum virVMOperationType { VIR_VM_OP_LAST }; +# if WITH_MACVTAP + +# include "internal.h" + int openMacvtapTap(const char *ifname, const unsigned char *macaddress, const char *linkdev, @@ -90,11 +89,9 @@ void delMacvtap(const char *ifname, const char *linkdev, virVirtualPortProfileParamsPtr virtPortProfile); -# endif /* WITH_MACVTAP */ - -# define MACVTAP_MODE_PRIVATE_STR "private" -# define MACVTAP_MODE_VEPA_STR "vepa" -# define MACVTAP_MODE_BRIDGE_STR "bridge" +# define MACVTAP_MODE_PRIVATE_STR "private" +# define MACVTAP_MODE_VEPA_STR "vepa" +# define MACVTAP_MODE_BRIDGE_STR "bridge" int vpAssociatePortProfileId(const char *macvtap_ifname, const unsigned char *macvtap_macaddr, @@ -109,6 +106,8 @@ int vpDisassociatePortProfileId(const char *macvtap_ifname, const virVirtualPortProfileParamsPtr virtPort, enum virVMOperationType vmOp); +# endif /* WITH_MACVTAP */ + VIR_ENUM_DECL(virVirtualPort) VIR_ENUM_DECL(virVMOperation) -- GitLab