This commit is contained in:
rsc 2005-07-27 13:06:50 +00:00
parent 0e4068e8c4
commit d08f40666b
2 changed files with 9 additions and 3 deletions

View file

@ -5,8 +5,14 @@ extern "C" {
#endif #endif
#define __BSD_VISIBLE 1 /* FreeBSD 5.x */ #define __BSD_VISIBLE 1 /* FreeBSD 5.x */
#define __EXTENSIONS__ 1 /* SunOS */ #if defined(__sun__)
/* NOT USING #define __MAKECONTEXT_V2_SOURCE 1 / * SunOS */ # define __EXTENSIONS__ 1 /* SunOS */
# if defined(__SunOS5_6__) || defined(__SunOS5_7__) || defined(__SunOS5_8__)
/* NOT USING #define __MAKECONTEXT_V2_SOURCE 1 / * SunOS */
# else
# define __MAKECONTEXT_V2_SOURCE 1
# endif
#endif
#define _BSD_SOURCE 1 #define _BSD_SOURCE 1
#define _NETBSD_SOURCE 1 /* NetBSD */ #define _NETBSD_SOURCE 1 /* NetBSD */
#define _SVID_SOURCE 1 #define _SVID_SOURCE 1

View file

@ -126,7 +126,7 @@ threadalloc(void (*fn)(void*), void *arg, uint stack)
/* leave a few words open on both ends */ /* leave a few words open on both ends */
t->context.uc.uc_stack.ss_sp = t->stk+8; t->context.uc.uc_stack.ss_sp = t->stk+8;
t->context.uc.uc_stack.ss_size = t->stksize-64; t->context.uc.uc_stack.ss_size = t->stksize-64;
#ifdef __sun__ /* sigh */ #if defined(__sun__) && !defined(__MAKECONTEXT_V2_SOURCE) /* sigh */
/* can avoid this with __MAKECONTEXT_V2_SOURCE but only on SunOS 5.9 */ /* can avoid this with __MAKECONTEXT_V2_SOURCE but only on SunOS 5.9 */
t->context.uc.uc_stack.ss_sp = t->context.uc.uc_stack.ss_sp =
(char*)t->context.uc.uc_stack.ss_sp (char*)t->context.uc.uc_stack.ss_sp