summaryrefslogtreecommitdiff
path: root/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch')
-rw-r--r--extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch b/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch
new file mode 100644
index 000000000..fe5a807ee
--- /dev/null
+++ b/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch
@@ -0,0 +1,43 @@
+From b43c51beeb0569a38900e1e5a78606711f987742 Mon Sep 17 00:00:00 2001
+From: Paul Khuong <pvk@pvk.ca>
+Date: Wed, 3 Aug 2011 10:20:41 -0400
+Subject: [PATCH] Fix version string parsing for Linux 3.0
+
+ Stop assuming the presence of minor and patch version numbers; missing
+ values are defaulted to 0 (e.g. 3.0.0).
+
+ Reported by a few people on IRC.
+---
+ src/runtime/linux-os.c | 14 ++++++++++----
+ 1 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c
+index db72fa6..e262f41 100644
+--- a/src/runtime/linux-os.c
++++ b/src/runtime/linux-os.c
+@@ -198,12 +198,18 @@ os_init(char *argv[], char *envp[])
+ int patch_version;
+ char *p;
+ uname(&name);
++
+ p=name.release;
+ major_version = atoi(p);
+- p=strchr(p,'.')+1;
+- minor_version = atoi(p);
+- p=strchr(p,'.')+1;
+- patch_version = atoi(p);
++ minor_version = patch_version = 0;
++ p=strchr(p,'.');
++ if (p != NULL) {
++ minor_version = atoi(++p);
++ p=strchr(p,'.');
++ if (p != NULL)
++ patch_version = atoi(++p);
++ }
++
+ if (major_version<2) {
+ lose("linux kernel version too old: major version=%d (can't run in version < 2.0.0)\n",
+ major_version);
+--
+1.7.6
+