* libc/include/sys/features.h: Add appropriate defines for Cygwin pthread

support.
* libc/include/sys/signal.h: Remove unneeded __CYGWIN__ protection.
* libc/include/sys/types.h: Protect __CYGWIN__ from the rtems pthreads types.
Include <cygwin/types.h> for the cygwin specific typedefs.
This commit is contained in:
Christopher Faylor 2001-04-12 00:05:57 +00:00
parent fc672fb26c
commit 74f8cc634a
4 changed files with 28 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2001-04-12 Robert Collins <rbtcollins@hotmail.com>
* libc/include/sys/features.h: Add appropriate defines for Cygwin
pthread support.
* libc/include/sys/signal.h: Remove unneeded __CYGWIN__ protection.
* libc/include/sys/types.h: Protect __CYGWIN__ from the rtems pthreads
types. Include <cygwin/types.h> for the cygwin specific typedefs.
2001-04-04 Richard Sandiford <rsandifo@redhat.com> 2001-04-04 Richard Sandiford <rsandifo@redhat.com>
* libc/include/machine/ieeefp.h: Comment about new configuration * libc/include/machine/ieeefp.h: Comment about new configuration

View File

@ -81,6 +81,11 @@ extern "C" {
# define _POSIX_JOB_CONTROL 1 # define _POSIX_JOB_CONTROL 1
# define _POSIX_SAVED_IDS 0 # define _POSIX_SAVED_IDS 0
# define _POSIX_VERSION 199009L # define _POSIX_VERSION 199009L
# define _POSIX_THREADS 1
# define _POSIX_THREAD_PROCESS_SHARED 1
# define _POSIX_THREAD_SAFE_FUNCTIONS 1
# define _POSIX_THREAD_PRIORITY_SCHEDULING 1
# define _POSIX_THREAD_ATTR_STACKSIZE 1
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -12,7 +12,7 @@ extern "C" {
/* #ifndef __STRICT_ANSI__*/ /* #ifndef __STRICT_ANSI__*/
#if defined(_POSIX_THREADS) || defined(__CYGWIN__) #if defined(_POSIX_THREADS)
#include <sys/types.h> /* for pthread data types */ #include <sys/types.h> /* for pthread data types */
#endif #endif

View File

@ -206,7 +206,7 @@ typedef struct _types_fd_set {
condition variables, and keys. But since RTEMS is currently the only condition variables, and keys. But since RTEMS is currently the only
newlib user of these, the ifdef is just on RTEMS. */ newlib user of these, the ifdef is just on RTEMS. */
#if defined(__rtems__) #if defined(__rtems__) || defined(__CYGWIN__)
#ifndef __clockid_t_defined #ifndef __clockid_t_defined
typedef _CLOCKID_T_ clockid_t; typedef _CLOCKID_T_ clockid_t;
@ -220,7 +220,15 @@ typedef _TIMER_T_ timer_t;
#include <sys/features.h> #include <sys/features.h>
#if defined(_POSIX_THREADS)
/* Cygwin will probably never have full posix compliance due to little things
* like an inability to set the stackaddress. Cygwin is also using void *
* pointers rather than structs to ensure maximum binary compatability with
* previous releases.
* This means that we don't use the types defined here, but rather in
* <cygwin/types.h>
*/
#if defined(_POSIX_THREADS) && !defined(__CYGWIN__)
#include <sys/sched.h> #include <sys/sched.h>
@ -313,7 +321,10 @@ typedef struct {
int is_initialized; /* is this structure initialized? */ int is_initialized; /* is this structure initialized? */
int init_executed; /* has the initialization routine been run? */ int init_executed; /* has the initialization routine been run? */
} pthread_once_t; /* dynamic package initialization */ } pthread_once_t; /* dynamic package initialization */
#else
#if defined (__CYGWIN__)
#include <cygwin/types.h>
#endif
#endif /* defined(_POSIX_THREADS) */ #endif /* defined(_POSIX_THREADS) */
#endif /* defined(__rtems__) */ #endif /* defined(__rtems__) */