summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_exec.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-04-05 01:57:45 +0000
committerpeter <peter@FreeBSD.org>2002-04-05 01:57:45 +0000
commit293815b90a63bfb4b51aa0aaa0d1d8fc6967f574 (patch)
tree83854483aaaba7cf34c995d96d9fb1123b4fc7fa /sys/kern/kern_exec.c
parent9e2934e66aa0d2777132c11f67c358f69550f30e (diff)
downloadFreeBSD-src-293815b90a63bfb4b51aa0aaa0d1d8fc6967f574.zip
FreeBSD-src-293815b90a63bfb4b51aa0aaa0d1d8fc6967f574.tar.gz
Increase the size of the register stack storage on ia64 from 32K to 2MB so
that we can compile gcc. This is a hack because it adds a fixed 2MB to each process's VSIZE regardless of how much is really being used since there is no grow-up stack support. At least it isn't physical memory. Sigh. Add a sysctl to enable tweaking it for new processes.
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r--sys/kern/kern_exec.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index 36003c6..1b32699 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -95,6 +95,12 @@ SYSCTL_ULONG(_kern, OID_AUTO, ps_arg_cache_limit, CTLFLAG_RW,
int ps_argsopen = 1;
SYSCTL_INT(_kern, OID_AUTO, ps_argsopen, CTLFLAG_RW, &ps_argsopen, 0, "");
+#ifdef __ia64__
+/* XXX HACK */
+static int regstkpages = 256;
+SYSCTL_INT(_machdep, OID_AUTO, regstkpages, CTLFLAG_RW, &regstkpages, 0, "");
+#endif
+
/*
* Each of the items is a pointer to a `const struct execsw', hence the
* double pointer here.
@@ -622,7 +628,7 @@ exec_new_vmspace(imgp)
vm_offset_t bsaddr;
bsaddr = USRSTACK - 2*maxssiz;
error = vm_map_find(&vmspace->vm_map, 0, 0, &bsaddr,
- 4*PAGE_SIZE, 0,
+ regstkpages * PAGE_SIZE, 0,
VM_PROT_ALL, VM_PROT_ALL, 0);
FIRST_THREAD_IN_PROC(p)->td_md.md_bspstore = bsaddr;
}
OpenPOWER on IntegriCloud