[libvirt] [PATCH] fix failure when building with --disable-debug

Hu Tao hutao at cn.fujitsu.com
Wed Jul 11 09:05:24 UTC 2012


When building with --disable-debug, VIR_DEBUG expands to a nop.
But parameters to VIR_DEBUG can be variables that are passed only
to VIR_DEBUG. In the case the building system complains about unused
variables.
---
 src/libvirt_private.syms |    1 +
 src/util/logging.c       |   15 +++++++++++++++
 src/util/logging.h       |    3 ++-
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b173590..48c4df7 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -739,6 +739,7 @@ virLockManagerRelease;
 
 
 # logging.h
+virEatParam;
 virLogDefineFilter;
 virLogDefineOutput;
 virLogEmergencyDumpAll;
diff --git a/src/util/logging.c b/src/util/logging.c
index f8233cd..999dd01 100644
--- a/src/util/logging.c
+++ b/src/util/logging.c
@@ -1262,3 +1262,18 @@ void virLogSetFromEnv(void) {
     if (debugEnv && *debugEnv)
         virLogParseOutputs(debugEnv);
 }
+
+/**
+ * virEatParam:
+ *
+ * Do nothing but eat parameters. See VIR_DEBUG_INT.
+ *
+ * Currently only VIR_DEBUG_INT uses this function, which could
+ * have been defined right before VIR_DEBUG_INT, but it makes
+ * `make syntax-check' unhappy about ATTRIBUTE_UNUSED appearing
+ * in .h file.
+ */
+void virEatParam(void *unused ATTRIBUTE_UNUSED, ...)
+{
+    /* do nothing */
+}
diff --git a/src/util/logging.h b/src/util/logging.h
index 70318d0..b96a115 100644
--- a/src/util/logging.h
+++ b/src/util/logging.h
@@ -35,7 +35,7 @@
     virLogMessage(category, VIR_LOG_DEBUG, f, l, 0, __VA_ARGS__)
 # else
 #  define VIR_DEBUG_INT(category, f, l, ...)    \
-    do { } while (0)
+    virEatParam((void*)category, f, l, __VA_ARGS__)
 # endif /* !ENABLE_DEBUG */
 
 # define VIR_INFO_INT(category, f, l, ...)                              \
@@ -142,4 +142,5 @@ extern void virLogVMessage(const char *category, int priority,
                            va_list vargs) ATTRIBUTE_FMT_PRINTF(6, 0);
 extern int virLogSetBufferSize(int size);
 extern void virLogEmergencyDumpAll(int signum);
+void virEatParam(void *unused, ...);
 #endif
-- 
1.7.10.2




More information about the libvir-list mailing list