From Debian, this one is needed for gcc < 4.1...

--- glib-2.10.0/glib/gatomic.c	2006-02-24 14:02:51.000000000 +0000
+++ glib-2.10.0/glib/gatomic.c	2006-03-06 18:12:06.000000000 +0000
@@ -414,14 +414,14 @@
 g_atomic_int_exchange_and_add (volatile gint *atomic,
 			       gint           val)
 {
-  return __sync_fetch_and_add (atomic, val);
+  return __sync_fetch_and_add_si (atomic, val);
 }
  
 void
 g_atomic_int_add (volatile gint *atomic, 
 		  gint val)
 {
-  __sync_fetch_and_add (atomic, val);
+  __sync_fetch_and_add_si (atomic, val);
 }
 
 gboolean
@@ -429,7 +429,7 @@
 				   gint           oldval, 
 				   gint           newval)
 {
-  return __sync_bool_compare_and_swap (atomic, oldval, newval);
+  return __sync_bool_compare_and_swap_si (atomic, oldval, newval);
 }
 
 gboolean
@@ -437,7 +437,7 @@
 				       gpointer           oldval, 
 				       gpointer           newval)
 {
-  return __sync_bool_compare_and_swap ((long *)atomic, 
+  return __sync_bool_compare_and_swap_di ((long *)atomic, 
 				       (long)oldval, (long)newval);
 }
 
