summaryrefslogtreecommitdiff
path: root/sys-libs/lwp/files/lwp-2.0-amd64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/lwp/files/lwp-2.0-amd64.patch')
-rw-r--r--sys-libs/lwp/files/lwp-2.0-amd64.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys-libs/lwp/files/lwp-2.0-amd64.patch b/sys-libs/lwp/files/lwp-2.0-amd64.patch
new file mode 100644
index 000000000000..64a1576f0894
--- /dev/null
+++ b/sys-libs/lwp/files/lwp-2.0-amd64.patch
@@ -0,0 +1,28 @@
+diff -ruN lwp-2.0/src/lwp.c lwp-2.0-fixed/src/lwp.c
+--- lwp-2.0/src/lwp.c 2005-03-25 17:50:56.000000000 +0100
++++ lwp-2.0-fixed/src/lwp.c 2005-05-05 14:32:56.580753096 +0200
+@@ -463,6 +463,16 @@
+ #ifndef MMAP_LWP_STACKS
+ stackptr = (char *) malloc(stacksize);
+ #else
++ pagesize = getpagesize();
++
++#if defined(__x86_64__)
++ /* [gb] Ensure minimal stack size. Heuristically determined
++ through tdb test that 2048 is too small when printf() et al. come
++ into action. */
++ if (stacksize < pagesize)
++ stacksize = pagesize;
++#endif
++
+ #ifdef MAP_ANON
+ stackptr = mmap(lwp_stackbase, stacksize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANON, -1, 0);
+@@ -483,7 +493,6 @@
+ perror("stack: ");
+ assert(0);
+ }
+- pagesize = getpagesize();
+ lwp_stackbase += ((stacksize/pagesize) + 2) * pagesize;
+ #endif
+ if (!stackptr)