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__ */ Index: glib.m4 --- glib.m4.orig 1998-12-31 21:58:03 +0100 +++ glib.m4 2007-06-11 17:26:21 +0200 @@ -5,7 +5,7 @@ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or dnl gthread is specified in MODULES, pass to glib-config dnl -AC_DEFUN(AM_PATH_GLIB, +AC_DEFUN([AM_PATH_GLIB], [dnl dnl Get the cflags and libraries from the glib-config script dnl