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
This commit is contained in:
jasone 1999-12-16 21:53:39 +00:00
parent 0c82961025
commit 249fb81fa3
2 changed files with 24 additions and 17 deletions

View File

@ -53,21 +53,6 @@
#define PTHREAD_STACK_MIN 1024 #define PTHREAD_STACK_MIN 1024
#define PTHREAD_THREADS_MAX ULONG_MAX #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. * Flags for threads and thread attributes.
*/ */
@ -174,10 +159,8 @@ struct pthread_once {
#endif #endif
#define PTHREAD_PRIO_NONE 0 #define PTHREAD_PRIO_NONE 0
#ifdef _POSIX_THREAD_PRIO_PROTECT
#define PTHREAD_PRIO_INHERIT 1 #define PTHREAD_PRIO_INHERIT 1
#define PTHREAD_PRIO_PROTECT 2 #define PTHREAD_PRIO_PROTECT 2
#endif
/* /*
* Mutex types (Single UNIX Specification, Version 2, 1997). * Mutex types (Single UNIX Specification, Version 2, 1997).

View File

@ -62,6 +62,30 @@
/* may disable terminal special characters */ /* may disable terminal special characters */
#define _POSIX_VDISABLE 0xff #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 */ /* access function */
#define F_OK 0 /* test for existence of file */ #define F_OK 0 /* test for existence of file */
#define X_OK 0x01 /* test for execute or search permission */ #define X_OK 0x01 /* test for execute or search permission */