uint*t -> u_int*t changes
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c
index a1be2b5..678d40b 100644
--- a/src/mesa/shader/arbprogparse.c
+++ b/src/mesa/shader/arbprogparse.c
@@ -42,9 +42,12 @@
 #include "arbprogparse.h"
 #include "grammar_mesa.h"
 
-#if !defined(__GNUC__) && !defined(__extension__)
+#ifndef __extension__
+#if !defined(__GNUC__) || (__GNUC__ < 2) || \
+    ((__GNUC__ == 2) && (__GNUC_MINOR__ <= 7))
 # define __extension__
 #endif
+#endif
 
 /* TODO:
  *    Fragment Program Stuff: