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;

Reply via email to