diff options
Diffstat (limited to 'sys-libs/lwp/files/lwp-2.0-amd64.patch')
-rw-r--r-- | sys-libs/lwp/files/lwp-2.0-amd64.patch | 28 |
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) |