]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
glibcompat: remove obsolete clang workaround
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 12 Aug 2024 09:53:19 +0000 (10:53 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Mon, 12 Aug 2024 10:52:57 +0000 (11:52 +0100)
This mostly reverts commit 65491a2dfe00bfcf9f09a8d6eab60234b56c8cc4.

There was a bug introduced in glib 2.67.0 which impacted libvirt with
clang causing -Wincompatible-pointer-types-discards-qualifiers warnings.

This was actually fixed quite quickly in 2.67.1 with

 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Our workaround was then broken with glib 2.81.1 due to commit
14b3d5da9019150d821f6178a075d85044b4c255 changing the signature of the
(private) macro we were overriding.

Since odd-number glib releases are development snapshots, and the
original problem was only present in 2.67.0 and no other releases,
just drop the workaround entirely.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
src/util/glibcompat.h

index 3518023a41a448bfabcc331f3d806ca2c8528472..474ff95bc5265e7c792b6406c4cfd08a8c382dad 100644 (file)
 #include <glib/gstdio.h>
 #include <glib-object.h>
 
-#if GLIB_CHECK_VERSION(2, 67, 0)
-
-# if defined(__clang__)
-
-/*
- * Clang detects (valid) issue in G_DEFINE_TYPE and derivatives starting with
- * glib >= 2.67.0.  See https://gitlab.gnome.org/GNOME/glib/-/issues/600
- *
- * For that we need to disable the one check that produces an error in our
- * builds when using any G_DEFINE_TYPE* macro.  Thankfully all those macros end
- * up using _G_DEFINE_TYPE_EXTENDED_BEGIN.  Because with that we can redefine
- * this one macro to cover all use cases.  The macro is defined the same way it
- * is defined in glib (with a very low probability of being changed thanks to a
- * comment above it).
- */
-#  undef _G_DEFINE_TYPE_EXTENDED_BEGIN
-
-#  define _G_DEFINE_TYPE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PARENT, flags) \
-    _Pragma("GCC diagnostic push") \
-    _Pragma("GCC diagnostic ignored \"-Wincompatible-pointer-types-discards-qualifiers\"") \
-    _G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \
-    _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
-    _Pragma("GCC diagnostic pop")
-
-# endif /* __clang__ */
-
-#else /* GLib < 2.67.0 */
+#if !GLIB_CHECK_VERSION(2, 67, 0)
 
 /*
  * ...meanwhile GCC >= 11 has started issuing warnings about volatile