ensure_space( (lispobj *)READ_ONLY_SPACE_START, READ_ONLY_SPACE_SIZE);
ensure_space( (lispobj *)STATIC_SPACE_START , STATIC_SPACE_SIZE);
-#ifdef GENCGC
+#ifdef LISP_FEATURE_GENCGC
ensure_space( (lispobj *)DYNAMIC_SPACE_START , DYNAMIC_SPACE_SIZE);
#else
ensure_space( (lispobj *)DYNAMIC_0_SPACE_START , DYNAMIC_SPACE_SIZE);
#endif
ensure_space( (lispobj *)CONTROL_STACK_START , CONTROL_STACK_SIZE);
ensure_space( (lispobj *)BINDING_STACK_START , BINDING_STACK_SIZE);
+#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
+ ensure_space( (lispobj *) ALTERNATE_SIGNAL_STACK_START, SIGSTKSZ);
+#endif
#ifdef HOLES
make_holes();
#endif
-#ifndef GENCGC
- current_dynamic_space = DYNAMIC_0_SPACE_START;
-#endif
-
+
#ifdef PRINTNOISE
printf(" done.\n");
#endif
+ protect_control_stack_guard_page(1);
}
+
+void protect_control_stack_guard_page(int protect_p) {
+ os_protect(CONTROL_STACK_GUARD_PAGE,
+ os_vm_page_size,protect_p ?
+ (OS_VM_PROT_READ|OS_VM_PROT_EXECUTE) : OS_VM_PROT_ALL);
+}
+