- struct utsname name;
- int major_version;
- int minor_version;
-
- uname(&name);
- major_version = atoi(name.release);
- if (major_version != 5) {
- lose("sunos major version=%d (which isn't 5!)", major_version);
- }
- minor_version = atoi(name.release+2);
- if (minor_version == 8) {
- KLUDGE_MAYBE_MAP_ANON = 0x100;
- } else if (minor_version > 8) {
- FSHOW((stderr, "os_init: Solaris version greater than 8?\nUnknown MAP_ANON behaviour.\n"));
- lose("Unknown mmap() interaction with MAP_ANON");
- } else { /* minor_version < 8 */
- kludge_mmap_fd = open("/dev/zero",O_RDONLY);
- if (kludge_mmap_fd < 0) {
- perror("open");
- lose("Error in open(..)");
- }
- }
-
- /* I do not understand this at all. FIXME. */
- os_vm_page_size = os_real_page_size = sysconf(_SC_PAGESIZE);
-
- if(os_vm_page_size>OS_VM_DEFAULT_PAGESIZE){
- fprintf(stderr,"os_init: Pagesize too large (%d > %d)\n",
- os_vm_page_size,OS_VM_DEFAULT_PAGESIZE);
- exit(1);
- } else {
- /*
- * we do this because there are apparently dependencies on
- * the pagesize being OS_VM_DEFAULT_PAGESIZE somewhere...
- * but since the OS doesn't know we're using this restriction,
- * we have to grovel around a bit to enforce it, thus anything
- * that uses real_page_size_difference.
- */
- /* FIXME: Is this still true? */
- real_page_size_difference=OS_VM_DEFAULT_PAGESIZE-os_vm_page_size;
- os_vm_page_size=OS_VM_DEFAULT_PAGESIZE;
- }
+ /*
+ * historically, this used sysconf to select the runtime page size
+ * per recent changes on other arches and discussion on sbcl-devel,
+ * however, this is not necessary -- the VM page size need not match
+ * the OS page size (and the default backend page size has been
+ * ramped up accordingly for efficiency reasons).
+ */
+ os_vm_page_size = BACKEND_PAGE_BYTES;