X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Flinux-os.c;h=151aea0e7099c82a374412dd2f44e1794f8fa629;hb=ab5427d31da2bd95805cccc8e47b8f43d3dd606d;hp=db72fa6d98542ebac831bd856c3bcaa70f863b39;hpb=5c0a884190d6c98448d86fb05e1e99df901c9bf8;p=sbcl.git diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c index db72fa6..151aea0 100644 --- a/src/runtime/linux-os.c +++ b/src/runtime/linux-os.c @@ -64,7 +64,7 @@ int personality (unsigned long); size_t os_vm_page_size; -#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_LUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX) +#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_SB_FUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX) #include #include #include @@ -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); @@ -215,7 +221,7 @@ os_init(char *argv[], char *envp[]) #endif } #ifdef LISP_FEATURE_SB_THREAD -#if !defined(LISP_FEATURE_SB_LUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX) +#if defined(LISP_FEATURE_SB_FUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX) futex_init(); #endif if(! isnptl()) {