2008-01-06 Matthias Clasen <mclasen@redhat.com>
+ * glib/gutils.h: Cope with gcc 4.3 changed 'extern inline'
+ semantics. (#315437, patch by Loïc Minier)
+
+2008-01-06 Matthias Clasen <mclasen@redhat.com>
+
* glib/gspawn.c (fdwalk): Don't set open_max to
RLIM_INFINITY. (#495589, Tommi Komulainen)
# endif /* va_list is a pointer */
#endif /* !G_VA_COPY */
+/* need this utility macro, but it's not always present in system headers
+ * copy it from linux features.h for those who need it
+ */
+#ifndef __GNUC_PREREQ
+#if defined __GNUC__ && defined __GNUC_MINOR__
+# define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+# define __GNUC_PREREQ(maj, min) 0
+#endif
+#endif
+
/* inlining hassle. for compilers that don't allow the `inline' keyword,
* mostly because of strict ANSI C compliance or dumbness, we try to fall
* back to either `__inline__' or `__inline'.
# define G_INLINE_FUNC
# undef G_CAN_INLINE
#elif defined (__GNUC__)
-# define G_INLINE_FUNC extern inline
+# if __GNUC_PREREQ (4,2) && defined (__STDC_VERSION__) \
+ && __STDC_VERSION__ >= 199901L
+# define G_INLINE_FUNC extern __inline __attribute__ ((__gnu_inline__))
+# else
+# define G_INLINE_FUNC extern __inline
+# endif
#elif defined (G_CAN_INLINE)
# define G_INLINE_FUNC static inline
#else /* can't inline */