Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/lib (libpthread)
Geoff Wing <mason%primenet.com.au@localhost> typed:
: Chuck Silvers <chs%netbsd.org@localhost> typed:
:: cvs rdiff -r1.12 -r1.13 src/lib/libpthread/pthread_stack.c
It's this change that's causing a problem. In pthread__stackid_setup():
/* Set up an initial ucontext pointer to a "safe" area */
- t->pt_uc =(ucontext_t *)(void *)((char *)t->pt_stack.ss_sp +
- t->pt_stack.ss_size - (pagesize/2));
-#ifdef _UC_UCONTEXT_ALIGN
- t->pt_uc = (ucontext_t *)((uintptr_t)t->pt_uc & _UC_UCONTEXT_ALIGN);
-#endif
+ t->pt_uc = (ucontext_t *)
+ STACK_ALIGN(STACK_GROW(t->pt_stack.ss_sp, pagesize / 2),
+ ~_UC_UCONTEXT_ALIGN);
Guess fix needs something like:
--- pthread_stack.c.org 2004-07-19 11:25:25.000000000 +1000
+++ pthread_stack.c 2004-07-19 16:16:11.000000000 +1000
@@ -181,7 +181,8 @@
/* Set up an initial ucontext pointer to a "safe" area */
t->pt_uc = (ucontext_t *)
- STACK_ALIGN(STACK_GROW(t->pt_stack.ss_sp, pagesize / 2),
+ STACK_ALIGN(STACK_GROW(t->pt_stack.ss_sp,
+ (pagesize / 2) - t->pt_stack.ss_size),
~_UC_UCONTEXT_ALIGN);
/* Protect the next-to-bottom stack page as a red zone. */
Regards,
Geoff
Home |
Main Index |
Thread Index |
Old Index