[glib] gobject: fix compilation with gcc <= 4.7



commit b93788ac133ee20e916547a32dbfe0801f770827
Author: Fabrice Fontaine <fontaine fabrice gmail com>
Date:   Tue Apr 10 19:18:57 2018 +0200

    gobject: fix compilation with gcc <= 4.7
    
    On gcc 4.7, we got the following error:
    
    i686-nptl-linux-gnu-gcc --version
    > i686-nptl-linux-gnu-gcc (crosstool-NG 1.20.0) 4.7.4
    > $ echo '#include <glib-object.h>' | i686-nptl-linux-gnu-gcc -x c -I
    staging/usr/include/glib-2.0 -I staging/usr/lib/glib-2.0/include -Wall
    -Werror -c - -o /tmp/foo.o
    > In file included from
    staging/usr/include/glib-2.0/gobject/gbinding.h:29:0,
    >                  from staging/usr/include/glib-2.0/glib-object.h:23,
    >                  from <stdin>:1:
    > staging/usr/include/glib-2.0/gobject/gobject.h: In function
    'g_set_object':
    > staging/usr/include/glib-2.0/gobject/gobject.h:725:5: error: value
    computed is not used [-Werror=unused-value]
    > cc1: all warnings being treated as errors
    
    This error has been added by commit 3fae39a5d742afe73741f5fd7aa24e3ae8182f06
    So enable the new g_set_object definition only if gcc >= 4.8
    
    Fixes:
     - http://autobuild.buildroot.net/results/b29a2f868438a2210873ea72f491db63175848be
    
    Signed-off-by: Fabrice Fontaine <fontaine fabrice gmail com>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=795138

 gobject/gobject.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/gobject/gobject.h b/gobject/gobject.h
index 9830663ce..838046fe0 100644
--- a/gobject/gobject.h
+++ b/gobject/gobject.h
@@ -507,7 +507,7 @@ GLIB_AVAILABLE_IN_ALL
 void        g_object_remove_weak_pointer      (GObject        *object, 
                                                gpointer       *weak_pointer_location);
 
-#if defined(__GNUC__) && !defined(__cplusplus) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && !defined(__cplusplus) && 
GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56
 /* Make reference APIs type safe with macros */
 #define g_object_ref(Obj)      ((__typeof__(Obj)) (g_object_ref) (Obj))
 #define g_object_ref_sink(Obj) ((__typeof__(Obj)) (g_object_ref_sink) (Obj))


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