summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2017-06-15 14:09:39 +0100
committerCorinna Vinschen <corinna@vinschen.de>2017-06-19 13:00:05 +0200
commit0c081aa62c08c6a00bbacf629e2232dfdd8ba24d (patch)
treead22be5d91e4ba813d8831ee5e7d3fc1577c46ad
parent14ea06212bc7e585024c80b6084455559da3d22f (diff)
downloadcygnal-0c081aa62c08c6a00bbacf629e2232dfdd8ba24d.tar.gz
cygnal-0c081aa62c08c6a00bbacf629e2232dfdd8ba24d.tar.bz2
cygnal-0c081aa62c08c6a00bbacf629e2232dfdd8ba24d.zip
Fix guard for siginfo_t and pthread_t definition
Commit 8a3b3bb4d7224d419cc1a4af60ccf7e70edc876b changed the guard on some functions from _POSIX_THREADS to __POSIX_VISIBLE. As a consequence, some use of siginfo_t and pthread_t became visible under configurations where _POSIX_THREADS is unset but __POSIX_VISIBLE is. Build then fails because the definition of those types are still unavailable. This commit make those type definition visible for __POSIX_VISIBLE configurations. This requires moving the siginfo_t definition out of the RTEMS specific definitions in sys/signal.h while still guarding it against cygwin case.
-rw-r--r--newlib/libc/include/sys/_pthreadtypes.h4
-rw-r--r--newlib/libc/include/sys/signal.h16
2 files changed, 12 insertions, 8 deletions
diff --git a/newlib/libc/include/sys/_pthreadtypes.h b/newlib/libc/include/sys/_pthreadtypes.h
index b29f50c27..75e9e1cbf 100644
--- a/newlib/libc/include/sys/_pthreadtypes.h
+++ b/newlib/libc/include/sys/_pthreadtypes.h
@@ -18,7 +18,7 @@
#ifndef _SYS__PTHREADTYPES_H_
#define _SYS__PTHREADTYPES_H_
-#if defined(_POSIX_THREADS)
+#if defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506
#include <sys/sched.h>
@@ -195,7 +195,7 @@ typedef struct {
} pthread_once_t; /* dynamic package initialization */
#define _PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */
-#endif /* defined(_POSIX_THREADS) */
+#endif /* defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 */
/* POSIX Barrier Types */
diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h
index da064cd5f..ab35718ae 100644
--- a/newlib/libc/include/sys/signal.h
+++ b/newlib/libc/include/sys/signal.h
@@ -18,9 +18,11 @@ extern "C" {
typedef __sigset_t sigset_t;
#endif
-#if defined(__rtems__)
+#if defined(__CYGWIN__)
+#include <cygwin/signal.h>
+#else
-#if defined(_POSIX_REALTIME_SIGNALS)
+#if defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309
/* sigev_notify values
NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. */
@@ -68,7 +70,9 @@ typedef struct {
int si_code; /* Cause of the signal */
union sigval si_value; /* Signal value */
} siginfo_t;
-#endif
+#endif /* defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 */
+
+#if defined(__rtems__)
/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */
@@ -108,9 +112,8 @@ struct sigaction {
#define sa_sigaction _signal_handlers._sigaction
#endif
-#elif defined(__CYGWIN__)
-#include <cygwin/signal.h>
-#else
+#else /* defined(__rtems__) */
+
#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */
typedef void (*_sig_func_ptr)(int);
@@ -122,6 +125,7 @@ struct sigaction
int sa_flags;
};
#endif /* defined(__rtems__) */
+#endif /* defined(__CYGWIN__) */
#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
/*