From 346b6c5db8529e329f3ab4e161a75d8a3ddefdef Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Thu, 16 Dec 1999 21:53:39 +0000 Subject: [PATCH] Move POSIX feature constants from pthread.h to unistd.h, as required by 1003.1c-1995. Undefine _POSIX_THREAD_SAFE_FUNCTIONS, since we do not implement all of the necessary interfaces. At least getgrgid_r(), getrnam_r(), getpwuid_r(), getpwnam_r(), getc_unlocked(), getchar_unlocked(), putc_unlocked(), and putchar_unlocked() are missing. Due to a likely typo in 1003.1c-1995, we are not technically allowed to define _POSIX_THREADS without defining _POSIX_THREAD_SAFE_FUNCTIONS, but either way we're non-compliant, so I'm leaving _POSIX_THREADS defined. PR: bin/8281 --- include/pthread.h | 17 ----------------- sys/sys/unistd.h | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/include/pthread.h b/include/pthread.h index f4c8220f1d18..f67720dada29 100644 --- a/include/pthread.h +++ b/include/pthread.h @@ -53,21 +53,6 @@ #define PTHREAD_STACK_MIN 1024 #define PTHREAD_THREADS_MAX ULONG_MAX -/* - * Compile time symbolic constants for portability specifications: - * - * Note that those commented out are not currently supported by the - * implementation. - */ -#define _POSIX_THREADS -#define _POSIX_THREAD_ATTR_STACKADDR -#define _POSIX_THREAD_ATTR_STACKSIZE -#define _POSIX_THREAD_PRIORITY_SCHEDULING -#define _POSIX_THREAD_PRIO_INHERIT -#define _POSIX_THREAD_PRIO_PROTECT -/* #define _POSIX_THREAD_PROCESS_SHARED */ -#define _POSIX_THREAD_SAFE_FUNCTIONS - /* * Flags for threads and thread attributes. */ @@ -174,10 +159,8 @@ struct pthread_once { #endif #define PTHREAD_PRIO_NONE 0 -#ifdef _POSIX_THREAD_PRIO_PROTECT #define PTHREAD_PRIO_INHERIT 1 #define PTHREAD_PRIO_PROTECT 2 -#endif /* * Mutex types (Single UNIX Specification, Version 2, 1997). diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h index 7503cddf2574..5776bc5425a0 100644 --- a/sys/sys/unistd.h +++ b/sys/sys/unistd.h @@ -62,6 +62,30 @@ /* may disable terminal special characters */ #define _POSIX_VDISABLE 0xff +/* + * Threads features: + * + * Note that those commented out are not currently supported by the + * implementation. + */ +#define _POSIX_THREADS +#define _POSIX_THREAD_ATTR_STACKADDR +#define _POSIX_THREAD_ATTR_STACKSIZE +#define _POSIX_THREAD_PRIORITY_SCHEDULING +#define _POSIX_THREAD_PRIO_INHERIT +#define _POSIX_THREAD_PRIO_PROTECT +/* #define _POSIX_THREAD_PROCESS_SHARED */ +/* + * 1003.1c-1995 says on page 38 (2.9.3, paragraph 3) that if _POSIX_THREADS is + * defined, then _POSIX_THREAD_SAFE_FUNCTIONS must also be defined. (This is + * likely a typo (reversed dependency), in which case we would be compliant if + * the typo were officially acknowledged.) However, we do not support all of + * the required _r() interfaces, which means we cannot legitimately define + * _POSIX_THREAD_SAFE_FUNCTIONS. Therefore, we are non-compliant here in two + * ways. + */ +/* #define _POSIX_THREAD_SAFE_FUNCTIONS */ + /* access function */ #define F_OK 0 /* test for existence of file */ #define X_OK 0x01 /* test for execute or search permission */