patches/glibc/2.7/250-sh-chop-linux-version.patch
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
yann@962
     1
--- glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h.orig	2007-09-15 23:54:08.000000000 +0100
yann@962
     2
+++ glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h	2008-08-20 09:26:26.000000000 +0100
yann@962
     3
@@ -83,6 +83,10 @@
yann@962
     4
   int parts;
yann@962
     5
   char *cp;
yann@962
     6
   struct utsname uts;
yann@962
     7
+  int dotsfound = 0;
yann@962
     8
+  int versionindex = 0;
yann@962
     9
+  char *choppoint;
yann@962
    10
+
yann@962
    11
 
yann@962
    12
   /* Try the uname system call.  */
yann@962
    13
   if (__uname (&uts))
yann@962
    14
@@ -102,8 +106,34 @@
yann@962
    15
   else
yann@962
    16
     buf = uts.release;
yann@962
    17
 
yann@962
    18
+  /* We are only interested in the first three kernel numbers, so */
yann@962
    19
+  /* chop off anything past that: */
yann@962
    20
+
yann@962
    21
+  choppoint = buf;
yann@962
    22
+  while (1)
yann@962
    23
+    {
yann@962
    24
+      versionindex++;
yann@962
    25
+      if (versionindex == 63) break;
yann@962
    26
+      if (*choppoint == '.') dotsfound++;
yann@962
    27
+      choppoint++;
yann@962
    28
+      if (dotsfound == 2)
yann@962
    29
+      {
yann@962
    30
+        if (*choppoint == '0' || *choppoint == '1'
yann@962
    31
+          || *choppoint == '2' || *choppoint == '3'
yann@962
    32
+          || *choppoint == '4' || *choppoint == '5'
yann@962
    33
+          || *choppoint == '6' || *choppoint == '7'
yann@962
    34
+          || *choppoint == '8' || *choppoint == '9')
yann@962
    35
+          continue;
yann@962
    36
+        else
yann@962
    37
+          {
yann@962
    38
+            *choppoint = 0;
yann@962
    39
+            break;
yann@962
    40
+          }
yann@962
    41
+      }
yann@962
    42
+    }
yann@962
    43
+
yann@962
    44
   /* Now convert it into a number.  The string consists of at most
yann@962
    45
-     three parts.  */
yann@962
    46
+     three parts.  Now it does, anyway.  ;-)  */
yann@962
    47
   version = 0;
yann@962
    48
   parts = 0;
yann@962
    49
   cp = buf;