summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/internal.h12
-rw-r--r--src/util/glibcompat.h9
2 files changed, 9 insertions, 12 deletions
diff --git a/src/internal.h b/src/internal.h
index 4cfb022b41..1e8e2908bf 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -110,18 +110,6 @@
#endif
/**
- * G_GNUC_NO_INLINE:
- *
- * Force compiler not to inline a method. Should be used if
- * the method need to be overridable by test mocks.
- *
- * TODO: Remove after upgrading to GLib >= 2.58
- */
-#ifndef G_GNUC_NO_INLINE
-# define G_GNUC_NO_INLINE __attribute__((__noinline__))
-#endif
-
-/**
* ATTRIBUTE_PACKED
*
* force a structure to be packed, i.e. not following architecture and
diff --git a/src/util/glibcompat.h b/src/util/glibcompat.h
index 1f3a6f728f..e3a8b9f6b3 100644
--- a/src/util/glibcompat.h
+++ b/src/util/glibcompat.h
@@ -94,3 +94,12 @@ char *vir_g_strdup_vprintf(const char *msg, va_list args)
#define g_fsync vir_g_fsync
void vir_g_source_unref(GSource *src, GMainContext *ctx);
+
+/* Intentionally redefine macro so that it's not marked as available in 2.58
+ * and newer. Drop when bumping to 2.58 or newer. */
+#undef G_GNUC_NO_INLINE
+#if g_macro__has_attribute(__noinline__)
+# define G_GNUC_NO_INLINE __attribute__ ((__noinline__))
+#else
+# define G_GNUC_NO_INLINE
+#endif