p=strchr(p,'.')+1;
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)",
+ lose("linux kernel version too old: major version=%d (can't run in version < 2.0.0)\n",
major_version);
}
if (!(major_version>2 || minor_version >= 4)) {
#ifdef LISP_FEATURE_SB_THREAD
futex_wait(futex,-1);
if(errno==ENOSYS) {
- lose("This version of SBCL is compiled with threading support, but your kernel is too old to support this.\n\
-Please use a more recent kernel or a version of SBCL without threading support.\n");
+ lose("This version of SBCL is compiled with threading support, but your kernel\n"
+ "is too old to support this. Please use a more recent kernel or\n"
+ "a version of SBCL without threading support.\n");
}
if(! isnptl()) {
- lose("This version of SBCL only works correctly with the NPTL threading library. Please use a newer glibc, use an older SBCL, or stop using LD_ASSUME_KERNEL");
+ lose("This version of SBCL only works correctly with the NPTL threading\n"
+ "library. Please use a newer glibc, use an older SBCL, or stop using\n"
+ "LD_ASSUME_KERNEL\n");
}
#endif
os_vm_page_size = getpagesize();
fprintf(stderr, "WARNING: Couldn't re-execute SBCL with the proper personality flags (maybe /proc isn't mounted?). Trying to continue anyway.\n");
}
}
+ /* Use SSE detector. Recent versions of Linux enable SSE support
+ * on SSE capable CPUs. */
+ /* FIXME: Are there any old versions that does not support SSE? */
+ fast_bzero_pointer = fast_bzero_detect;
#endif
}
fd, (off_t) offset);
if (actual == MAP_FAILED || (addr && (addr != actual))) {
perror("mmap");
- lose("unexpected mmap(..) failure");
+ lose("unexpected mmap(..) failure\n");
}
return actual;
sig_stop_for_gc_handler);
#endif
}
+
+char *
+os_get_runtime_executable_path()
+{
+ char path[PATH_MAX + 1];
+ int size;
+
+ size = readlink("/proc/self/exe", path, sizeof(path));
+ if (size < 0)
+ return NULL;
+ else
+ path[size] = '\0';
+
+ return copied_string(path);
+}