Blame SOURCES/gcc34-gnuc-rh-release.patch

4e62ec
2004-10-18  Jakub Jelinek  <jakub@redhat.com>
4e62ec
4e62ec
	* c-cppbuiltin.c (define__GNUC__): Also define __GNUC_RH_RELEASE__.
4e62ec
4e62ec
--- gcc/c-cppbuiltin.c.jj	2004-03-08 18:48:58.000000000 +0100
4e62ec
+++ gcc/c-cppbuiltin.c	2004-10-18 16:40:14.450009521 +0200
4e62ec
@@ -254,14 +254,14 @@ define__GNUC__ (void)
4e62ec
 {
4e62ec
   /* The format of the version string, enforced below, is
4e62ec
      ([^0-9]*-)?[0-9]+[.][0-9]+([.][0-9]+)?([- ].*)?  */
4e62ec
-  const char *q, *v = version_string;
4e62ec
+  const char *q, *v = version_string, *vstart, *vend;
4e62ec
 
4e62ec
   while (*v && ! ISDIGIT (*v))
4e62ec
     v++;
4e62ec
   if (!*v || (v > version_string && v[-1] != '-'))
4e62ec
     abort ();
4e62ec
 
4e62ec
-  q = v;
4e62ec
+  vstart = q = v;
4e62ec
   while (ISDIGIT (*v))
4e62ec
     v++;
4e62ec
   builtin_define_with_value_n ("__GNUC__", q, v - q);
4e62ec
@@ -289,6 +289,30 @@ define__GNUC__ (void)
4e62ec
 
4e62ec
   if (*v && *v != ' ' && *v != '-')
4e62ec
     abort ();
4e62ec
+
4e62ec
+  vend = v;
4e62ec
+  v = strchr (v, '(');
4e62ec
+  if (v != NULL && strncmp (v + 1, "Red Hat ", 8) == 0)
4e62ec
+    {
4e62ec
+      v += 9;
4e62ec
+      if (strncmp (v, "Linux ", 6) == 0)
4e62ec
+	v += 6;
4e62ec
+
4e62ec
+      if (strncmp (v, vstart, vend - vstart) != 0
4e62ec
+	  || v[vend - vstart] != '-')
4e62ec
+	abort ();
4e62ec
+
4e62ec
+      v += vend - vstart + 1;
4e62ec
+      q = v;
4e62ec
+      if (!ISDIGIT (*v))
4e62ec
+	abort ();
4e62ec
+      while (ISDIGIT (*v))
4e62ec
+	v++;
4e62ec
+      builtin_define_with_value_n ("__GNUC_RH_RELEASE__", q, v - q);
4e62ec
+
4e62ec
+      if (*v && *v != ')' && *v != '.')
4e62ec
+	abort ();
4e62ec
+    }
4e62ec
 }
4e62ec
 
4e62ec
 /* Hook that registers front end and target-specific built-ins.  */