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

