GCC 3.4 and higher treats __FUNCTION__ and similar special compiler symbols as variables instead of macros. This means they no longer can be concatenated directly with string literals. Unfortunately, GLIB uses them in this way, so we have to disable this use with GCC 3.4 or higher. Index: glib.h --- glib.h.orig 2001-02-27 04:44:38.000000000 +0100 +++ glib.h 2004-04-28 10:24:56.000000000 +0200 @@ -272,7 +272,7 @@ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with * macros, so we can refer to them as strings unconditionally. */ -#ifdef __GNUC__ +#if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ < 4) #define G_GNUC_FUNCTION __FUNCTION__ #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__ #else /* !__GNUC__ */