2010/5/26 Eric Blake <ebl...@redhat.com>:
> Didn't have time to fix this today; virVirtualPortProfileFormat is
> conditionally implemented based on PROXY, but unconditionally called.
> Throwing it out there in case someone else wants to beat me to the fix.
>
> cc1: warnings being treated as errors
> ../src/conf/domain_conf.c: In function 'virDomainNetDefFormat':
> ../src/conf/domain_conf.c:5343: error: implicit declaration of function
> 'virVirtualPortProfileFormat' [-Wimplicit-function-declaration]
> ../src/conf/domain_conf.c:5343: error: nested extern declaration of
> 'virVirtualPortProfileFormat' [-Wnested-externs]
>

The virVirtualPortProfileFormat just went below the
virVirtualPortProfileParamsParseXML function and got inside the
#ifndef PROXY block this way. But it doesn't belong there.

The attached patch moves virVirtualPortProfileFormat below the #ifndef
PROXY block.

Matthias
From 03af9fa300eea633bde36b7c12f15a472b8feaf9 Mon Sep 17 00:00:00 2001
From: Matthias Bolte <matthias.bo...@googlemail.com>
Date: Wed, 26 May 2010 12:26:25 +0200
Subject: [PATCH] Fix xen-proxy build

Move virVirtualPortProfileFormat below the #ifndef PROXY block,
because it's called unconditional by virDomainNetDefFormat.

Reported by Eric Blake.
---
 src/conf/domain_conf.c |   89 +++++++++++++++++++++++------------------------
 1 files changed, 44 insertions(+), 45 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f155f96..dfdb0d8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1952,50 +1952,6 @@ err_exit:
 }
 
 
-static void
-virVirtualPortProfileFormat(virBufferPtr buf,
-                            virVirtualPortProfileParamsPtr virtPort,
-                            const char *indent)
-{
-    char uuidstr[VIR_UUID_STRING_BUFLEN];
-
-    if (virtPort->virtPortType == VIR_VIRTUALPORT_NONE)
-        return;
-
-    virBufferVSprintf(buf, "%s<virtualport type='%s'>\n",
-                      indent,
-                      virVirtualPortTypeToString(virtPort->virtPortType));
-
-    switch (virtPort->virtPortType) {
-    case VIR_VIRTUALPORT_NONE:
-    case VIR_VIRTUALPORT_TYPE_LAST:
-        break;
-
-    case VIR_VIRTUALPORT_8021QBG:
-        virUUIDFormat(virtPort->u.virtPort8021Qbg.instanceID,
-                      uuidstr);
-        virBufferVSprintf(buf,
-                          "%s  <parameters managerid='%d' typeid='%d' "
-                          "typeidversion='%d' instanceid='%s'/>\n",
-                          indent,
-                          virtPort->u.virtPort8021Qbg.managerID,
-                          virtPort->u.virtPort8021Qbg.typeID,
-                          virtPort->u.virtPort8021Qbg.typeIDVersion,
-                          uuidstr);
-        break;
-
-    case VIR_VIRTUALPORT_8021QBH:
-        virBufferVSprintf(buf,
-                          "%s  <parameters profileid='%s'/>\n",
-                          indent,
-                          virtPort->u.virtPort8021Qbh.profileID);
-        break;
-    }
-
-    virBufferVSprintf(buf, "%s</virtualport>\n", indent);
-}
-
-
 /* Parse the XML definition for a network interface
  * @param node XML nodeset to parse for net definition
  * @return 0 on success, -1 on failure
@@ -3774,8 +3730,51 @@ virDomainDeviceDefPtr virDomainDeviceDefParse(virCapsPtr caps,
     VIR_FREE(dev);
     return NULL;
 }
-#endif
+#endif /* !PROXY */
+
+
+static void
+virVirtualPortProfileFormat(virBufferPtr buf,
+                            virVirtualPortProfileParamsPtr virtPort,
+                            const char *indent)
+{
+    char uuidstr[VIR_UUID_STRING_BUFLEN];
+
+    if (virtPort->virtPortType == VIR_VIRTUALPORT_NONE)
+        return;
+
+    virBufferVSprintf(buf, "%s<virtualport type='%s'>\n",
+                      indent,
+                      virVirtualPortTypeToString(virtPort->virtPortType));
+
+    switch (virtPort->virtPortType) {
+    case VIR_VIRTUALPORT_NONE:
+    case VIR_VIRTUALPORT_TYPE_LAST:
+        break;
+
+    case VIR_VIRTUALPORT_8021QBG:
+        virUUIDFormat(virtPort->u.virtPort8021Qbg.instanceID,
+                      uuidstr);
+        virBufferVSprintf(buf,
+                          "%s  <parameters managerid='%d' typeid='%d' "
+                          "typeidversion='%d' instanceid='%s'/>\n",
+                          indent,
+                          virtPort->u.virtPort8021Qbg.managerID,
+                          virtPort->u.virtPort8021Qbg.typeID,
+                          virtPort->u.virtPort8021Qbg.typeIDVersion,
+                          uuidstr);
+        break;
 
+    case VIR_VIRTUALPORT_8021QBH:
+        virBufferVSprintf(buf,
+                          "%s  <parameters profileid='%s'/>\n",
+                          indent,
+                          virtPort->u.virtPort8021Qbh.profileID);
+        break;
+    }
+
+    virBufferVSprintf(buf, "%s</virtualport>\n", indent);
+}
 
 int virDomainDiskInsert(virDomainDefPtr def,
                         virDomainDiskDefPtr disk)
-- 
1.7.0.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to