diff options
author | rsc <devnull@localhost> | 2005-07-27 13:06:50 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-07-27 13:06:50 +0000 |
commit | d08f40666b32fd5bce69f1b40ea18d2e52e97a26 (patch) | |
tree | 1f5f6155ec020049aefedaae4edfa738cef64433 | |
parent | 0e4068e8c46ae0b45616fe13ac01a449b68fbc06 (diff) | |
download | plan9port-d08f40666b32fd5bce69f1b40ea18d2e52e97a26.tar.gz plan9port-d08f40666b32fd5bce69f1b40ea18d2e52e97a26.tar.bz2 plan9port-d08f40666b32fd5bce69f1b40ea18d2e52e97a26.zip |
sun
-rw-r--r-- | include/u.h | 10 | ||||
-rw-r--r-- | src/libthread/thread.c | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/include/u.h b/include/u.h index c5f5dcd0..59446be8 100644 --- a/include/u.h +++ b/include/u.h @@ -5,8 +5,14 @@ extern "C" { #endif #define __BSD_VISIBLE 1 /* FreeBSD 5.x */ -#define __EXTENSIONS__ 1 /* SunOS */ -/* NOT USING #define __MAKECONTEXT_V2_SOURCE 1 / * SunOS */ +#if defined(__sun__) +# 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 _NETBSD_SOURCE 1 /* NetBSD */ #define _SVID_SOURCE 1 diff --git a/src/libthread/thread.c b/src/libthread/thread.c index 387b6400..4d55b06f 100644 --- a/src/libthread/thread.c +++ b/src/libthread/thread.c @@ -126,7 +126,7 @@ threadalloc(void (*fn)(void*), void *arg, uint stack) /* leave a few words open on both ends */ t->context.uc.uc_stack.ss_sp = t->stk+8; 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 */ t->context.uc.uc_stack.ss_sp = (char*)t->context.uc.uc_stack.ss_sp |