From 0fc7f409f68cc7b5729463f5255c7e7200ff961c Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Fri, 15 May 2020 11:45:33 +0100 Subject: [PATCH 1/2] Revert "Revert "glib: annotate static inline functions with G_AVAILABLE-type macros"" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c0146be3a4e0cda7a23d7fd54cc60a0bc7ba7f7a. The revert was originally added because the original change broke gnome-build-meta. Now that the problem has been diagnosed, the original commit can be fixed — see the commit which follows this one. See: !1487 --- docs/reference/glib/glib-sections.txt | 6 ++++++ docs/reference/meson.build | 4 +++- glib/gmacros.h | 1 + glib/gmain.h | 2 ++ glib/gmem.h | 1 + glib/gthread.h | 8 ++++++++ glib/gversionmacros.h | 10 ++++++++++ 7 files changed, 31 insertions(+), 1 deletion(-) diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 30cd94a78..ecac01b5e 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -207,6 +207,11 @@ GLIB_AVAILABLE_MACRO_IN_2_60 GLIB_AVAILABLE_MACRO_IN_2_62 GLIB_AVAILABLE_MACRO_IN_2_64 GLIB_AVAILABLE_MACRO_IN_2_66 +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 +GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 +GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_AVAILABLE_TYPE_IN_2_26 GLIB_AVAILABLE_TYPE_IN_2_28 GLIB_AVAILABLE_TYPE_IN_2_30 @@ -706,6 +711,7 @@ GLIB_DEPRECATED_FOR GLIB_UNAVAILABLE GLIB_UNAVAILABLE_ENUMERATOR GLIB_UNAVAILABLE_MACRO +GLIB_UNAVAILABLE_STATIC_INLINE GLIB_UNAVAILABLE_TYPE G_ANALYZER_ANALYZING G_ANALYZER_NORETURN diff --git a/docs/reference/meson.build b/docs/reference/meson.build index 873aa6dc1..7c3e589ab 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -26,6 +26,8 @@ foreach version : stable_2_series_versions 'GLIB_DEPRECATED_IN_2_' + version + '_FOR()', 'GLIB_DEPRECATED_IN_2_' + version, + 'GLIB_AVAILABLE_STATIC_INLINE_IN_2_' + version, + 'GLIB_AVAILABLE_ENUMERATOR_IN_2_' + version, 'GLIB_DEPRECATED_ENUMERATOR_IN_2_' + version + '_FOR()', 'GLIB_DEPRECATED_ENUMERATOR_IN_2_' + version, @@ -57,4 +59,4 @@ endif subdir('gio') subdir('glib') -subdir('gobject') \ No newline at end of file +subdir('gobject') diff --git a/glib/gmacros.h b/glib/gmacros.h index 45a7874ef..7210f0247 100644 --- a/glib/gmacros.h +++ b/glib/gmacros.h @@ -982,6 +982,7 @@ #define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN #define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN #define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN +#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min) #endif #if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \ diff --git a/glib/gmain.h b/glib/gmain.h index d4776c19b..5c0e524cc 100644 --- a/glib/gmain.h +++ b/glib/gmain.h @@ -499,6 +499,7 @@ typedef void GMainContextPusher GLIB_AVAILABLE_TYPE_IN_2_64; * Since: 2.64 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 static inline GMainContextPusher * g_main_context_pusher_new (GMainContext *main_context) { @@ -520,6 +521,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS * Since: 2.64 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 static inline void g_main_context_pusher_free (GMainContextPusher *pusher) { diff --git a/glib/gmem.h b/glib/gmem.h index 953a0182d..45671073b 100644 --- a/glib/gmem.h +++ b/glib/gmem.h @@ -197,6 +197,7 @@ gpointer g_try_realloc_n (gpointer mem, * * Since: 2.44 */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 static inline gpointer g_steal_pointer (gpointer pp) { diff --git a/glib/gthread.h b/glib/gthread.h index 980522bba..96f536916 100644 --- a/glib/gthread.h +++ b/glib/gthread.h @@ -317,6 +317,7 @@ typedef void GMutexLocker; * Returns: a #GMutexLocker * Since: 2.44 */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 static inline GMutexLocker * g_mutex_locker_new (GMutex *mutex) { @@ -334,6 +335,7 @@ g_mutex_locker_new (GMutex *mutex) * * Since: 2.44 */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 static inline void g_mutex_locker_free (GMutexLocker *locker) { @@ -391,6 +393,7 @@ typedef void GRecMutexLocker; * Since: 2.60 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 static inline GRecMutexLocker * g_rec_mutex_locker_new (GRecMutex *rec_mutex) { @@ -410,6 +413,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS * Since: 2.60 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 static inline void g_rec_mutex_locker_free (GRecMutexLocker *locker) { @@ -499,6 +503,7 @@ typedef void GRWLockWriterLocker; * Since: 2.62 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 static inline GRWLockWriterLocker * g_rw_lock_writer_locker_new (GRWLock *rw_lock) { @@ -519,6 +524,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS * Since: 2.62 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 static inline void g_rw_lock_writer_locker_free (GRWLockWriterLocker *locker) { @@ -552,6 +558,7 @@ typedef void GRWLockReaderLocker; * Since: 2.62 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 static inline GRWLockReaderLocker * g_rw_lock_reader_locker_new (GRWLock *rw_lock) { @@ -572,6 +579,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS * Since: 2.62 */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 static inline void g_rw_lock_reader_locker_free (GRWLockReaderLocker *locker) { diff --git a/glib/gversionmacros.h b/glib/gversionmacros.h index fd86ade02..08bf7d042 100644 --- a/glib/gversionmacros.h +++ b/glib/gversionmacros.h @@ -646,11 +646,13 @@ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44 # define GLIB_AVAILABLE_IN_2_44 GLIB_UNAVAILABLE(2, 44) +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE(2, 44) # define GLIB_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO(2, 44) # define GLIB_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR(2, 44) # define GLIB_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE(2, 44) #else # define GLIB_AVAILABLE_IN_2_44 _GLIB_EXTERN +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 # define GLIB_AVAILABLE_MACRO_IN_2_44 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_44 # define GLIB_AVAILABLE_TYPE_IN_2_44 @@ -898,11 +900,13 @@ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60 # define GLIB_AVAILABLE_IN_2_60 GLIB_UNAVAILABLE(2, 60) +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE(2, 60) # define GLIB_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO(2, 60) # define GLIB_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR(2, 60) # define GLIB_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE(2, 60) #else # define GLIB_AVAILABLE_IN_2_60 _GLIB_EXTERN +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 # define GLIB_AVAILABLE_MACRO_IN_2_60 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_60 # define GLIB_AVAILABLE_TYPE_IN_2_60 @@ -930,11 +934,13 @@ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62 # define GLIB_AVAILABLE_IN_2_62 GLIB_UNAVAILABLE(2, 62) +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE(2, 62) # define GLIB_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO(2, 62) # define GLIB_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR(2, 62) # define GLIB_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE(2, 62) #else # define GLIB_AVAILABLE_IN_2_62 _GLIB_EXTERN +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 # define GLIB_AVAILABLE_MACRO_IN_2_62 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_62 # define GLIB_AVAILABLE_TYPE_IN_2_62 @@ -962,11 +968,13 @@ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64 # define GLIB_AVAILABLE_IN_2_64 GLIB_UNAVAILABLE(2, 64) +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE(2, 64) # define GLIB_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO(2, 64) # define GLIB_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR(2, 64) # define GLIB_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE(2, 64) #else # define GLIB_AVAILABLE_IN_2_64 _GLIB_EXTERN +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 # define GLIB_AVAILABLE_MACRO_IN_2_64 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_64 # define GLIB_AVAILABLE_TYPE_IN_2_64 @@ -994,11 +1002,13 @@ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66 # define GLIB_AVAILABLE_IN_2_66 GLIB_UNAVAILABLE(2, 66) +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE(2, 66) # define GLIB_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO(2, 66) # define GLIB_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR(2, 66) # define GLIB_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE(2, 66) #else # define GLIB_AVAILABLE_IN_2_66 _GLIB_EXTERN +# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 # define GLIB_AVAILABLE_MACRO_IN_2_66 # define GLIB_AVAILABLE_ENUMERATOR_IN_2_66 # define GLIB_AVAILABLE_TYPE_IN_2_66 From 4364c517227cd3ba1aac73783fc34024329dbf62 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Fri, 15 May 2020 11:58:23 +0100 Subject: [PATCH 2/2] gmacros: Add missing GLIB_UNAVAILABLE_STATIC_INLINE declaration This fixes building against GLib with `GLIB_DISABLE_DEPRECATION_WARNINGS` defined. Signed-off-by: Philip Withnall See: !1487 --- glib/gmacros.h | 1 + 1 file changed, 1 insertion(+) diff --git a/glib/gmacros.h b/glib/gmacros.h index 7210f0247..566461115 100644 --- a/glib/gmacros.h +++ b/glib/gmacros.h @@ -978,6 +978,7 @@ #define GLIB_DEPRECATED _GLIB_EXTERN #define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN #define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN +#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) #else #define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN #define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN