--- dev-libs/glib-2.12.4-r1/work/glib-2.12.4/glib/gutils.h 2006-01-24 04:51:06.000000000 +1300 +++ dev-libs/glib-2.12.4-r1/work/glib-2.12.4/glib/gutils.h 2006-11-29 04:56:19.000000000 +1300 @@ -69,6 +69,20 @@ # endif /* va_list is a pointer */ #endif /* !G_VA_COPY */ +/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + * inline semantics. */ +#if __GNUC_PREREQ (4,3) && defined (__STDC_VERSION__) \ + && __STDC_VERSION__ >= 199901L +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# define __extern_always_inline \ + extern __always_inline __inline __attribute__ ((__gnu_inline__)) +#else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +#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'. @@ -96,8 +110,8 @@ #ifdef G_IMPLEMENT_INLINES # define G_INLINE_FUNC # undef G_CAN_INLINE -#elif defined (__GNUC__) -# define G_INLINE_FUNC extern inline +#elif defined (__GNUC__) +# define G_INLINE_FUNC __extern_inline #elif defined (G_CAN_INLINE) # define G_INLINE_FUNC static inline #else /* can't inline */