qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 2/2] Compile time checks for newer glib


From: Dr. David Alan Gilbert (git)
Subject: [Qemu-devel] [PATCH 2/2] Compile time checks for newer glib
Date: Fri, 29 May 2015 16:01:48 +0100

From: "Dr. David Alan Gilbert" <address@hidden>

Newer glib has support for checking that applications aren't
using newer glib calls than they should be.

The support for the check only went into glib 2.32 and it only
has macros for version 2.26 upwards; although we only insist
on 2.22 at the moment, I set the glib checks to the earliest of 2.26,
it wont cause problems on anything <2.32 since the checks aren't
there.

While mainly we're interested in the check from GLIB_VERSION_MAX_ALLOWED
which checks we're not using anything too recent, the glib macros
require that if we set that then we must also define
GLIB_VERSION_MIN_REQUIRED which checks we're not using anything
deprecated too long ago.

Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
 configure                      | 5 +++++
 include/glib-compat.h          | 6 ++++++
 tests/test-qdev-global-props.c | 2 +-
 tests/vhost-user-test.c        | 2 ++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 24ee0a4..5c6230a 100755
--- a/configure
+++ b/configure
@@ -2781,6 +2781,11 @@ fi
 
 glib_req_ver=2.22
 glib_modules=gthread-2.0
+# Force warnings over use of newer glib features; 2.26 is the earliest
+# version macro that is defined; eventually we should match
+# glib_req_ver above
+QEMU_CFLAGS="-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 $QEMU_CFLAGS"
+QEMU_CFLAGS="-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_26 $QEMU_CFLAGS"
 if test "$modules" = yes; then
     glib_modules="$glib_modules gmodule-2.0"
 fi
diff --git a/include/glib-compat.h b/include/glib-compat.h
index 318e000..cbd660c 100644
--- a/include/glib-compat.h
+++ b/include/glib-compat.h
@@ -16,6 +16,12 @@
 #ifndef QEMU_GLIB_COMPAT_H
 #define QEMU_GLIB_COMPAT_H
 
+/*
+ * The source file including this compat header knows it's using newer glib
+ * functions than we generally allow, so don't warn about it.
+ */
+#undef GLIB_VERSION_MIN_REQUIRED
+#undef GLIB_VERSION_MAX_ALLOWED
 #include <glib.h>
 
 /* GLIB version compatibility flags */
diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
index 0be9835..896e6bf 100644
--- a/tests/test-qdev-global-props.c
+++ b/tests/test-qdev-global-props.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include <glib.h>
+#include "glib-compat.h"
 #include <stdint.h>
 
 #include "hw/qdev.h"
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 75fedf0..7aeb927 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -8,6 +8,8 @@
  *
  */
 
+#undef GLIB_VERSION_MIN_REQUIRED
+#undef GLIB_VERSION_MAX_ALLOWED
 #define QEMU_GLIB_COMPAT_H
 #include <glib.h>
 
-- 
2.4.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]