glibcompat: remove obsolete clang workaround

This mostly reverts commit 65491a2dfe.

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>
This commit is contained in:
Daniel P. Berrangé 2024-08-12 10:53:19 +01:00
parent 71f14351f9
commit cd9709a6ab

View File

@ -22,33 +22,7 @@
#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