- /* NetBSD counts mmap()ed space against the process's data size limit,
- * so yank it up. This might be a nasty thing to do? */
- getrlimit (RLIMIT_DATA, &rl);
- rl.rlim_cur = 1073741824;
- if (setrlimit (RLIMIT_DATA, &rl) < 0) {
- fprintf (stderr, "RUNTIME WARNING: unable to raise process data size limit to 1GB (%s). The system may fail to start.\n",
- strerror(errno));
- }
+ len = sizeof(osrev);
+ sysctl(mib, 2, &osrev, &len, NULL, 0);
+
+ /* If we're older than 2.0... */
+ if (osrev < 200000000) {
+ fprintf(stderr, "osrev = %d (needed at least 200000000).\n", osrev);
+ lose("NetBSD kernel too old to run sbcl.\n");
+ }
+
+ /* NetBSD counts mmap()ed space against the process's data size limit,
+ * so yank it up. This might be a nasty thing to do? */
+ getrlimit (RLIMIT_DATA, &rl);
+ /* Amazingly for such a new port, the provenance and meaning of
+ this number are unknown. It might just mean REALLY_BIG_LIMIT,
+ or possibly it should be calculated from dynamic space size.
+ -- CSR, 2004-04-08 */
+ rl.rlim_cur = 1073741824;
+ if (setrlimit (RLIMIT_DATA, &rl) < 0) {
+ fprintf (stderr,
+ "RUNTIME WARNING: unable to raise process data size limit:\n\
+ %s.\n\
+The system may fail to start.\n",
+ strerror(errno));
+ }