I just committed this fix; powerpc stacks are a bit weird in that they
need access above to stack pointer; while the stack grows down. With
the more strict mmap()ed stacks that kurt@ committed recently, this
got broken.
-Otto
Index: uthread_machdep.c
===================================================================
RCS file: /cvs/src/lib/libpthread/arch/powerpc/uthread_machdep.c,v
retrieving revision 1.4
diff -u -p -r1.4 uthread_machdep.c
--- uthread_machdep.c 27 Jan 2003 21:45:24 -0000 1.4
+++ uthread_machdep.c 29 Sep 2006 14:33:06 -0000
@@ -33,7 +33,7 @@ _thread_machdep_init(statep, base, len,
struct frame *f;
/* Locate the initial frame, aligned at the top of the stack */
- f = (struct frame *)(((int)base + len - sizeof *f) & ~ALIGNBYTES);
+ f = (struct frame *)(((int)base - 16 + len - sizeof *f) & ~ALIGNBYTES);
f->r1 = (int)&f->next_r1;
f->reserved = 0;