pkgsrc/devel/mit-pthreads/patches/patch-bw
explorer 7093062007 commit patches to make a try at fixing signal handling, compilation under ELF.
I'll sync these changes up to the mysql package when I test these changes
a bit more.
1999-11-05 17:13:27 +00:00

198 lines
5.9 KiB
Text

--- include/signal.h Sun Dec 24 19:03:09 1995
+++ include/signal.h Wed Nov 3 21:31:11 1999
@@ -1,3 +1,5 @@
+/* $NetBSD: patch-bw,v 1.1 1999/11/05 17:13:29 explorer Exp $ */
+
/*-
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
@@ -33,48 +35,160 @@
* @(#)signal.h 8.3 (Berkeley) 3/30/94
*/
-#ifndef _SIGNAL_H
-#define _SIGNAL_H
+#ifndef _SIGNAL_H_
+#define _SIGNAL_H_
-#include <sys/types.h>
#include <sys/cdefs.h>
-#include <sys/__signal.h>
+#include <sys/featuretest.h>
-__BEGIN_DECLS
+#if !defined(_ANSI_SOURCE)
+#include <sys/types.h>
+#endif
-int raise __P((int));
+#include <sys/signal.h>
-#ifndef _ANSI_SOURCE
+#include <sys/__signal.h>
-int sigfillset __P((sigset_t *));
-int sigemptyset __P((sigset_t *));
-int sigaddset __P((sigset_t *, int));
-int sigdelset __P((sigset_t *, int));
-int sigismember __P((const sigset_t *, int));
-int sigsuspend __P((const sigset_t *));
-int sigprocmask __P((int, const sigset_t *, sigset_t *));
+#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
+ !defined(_XOPEN_SOURCE)
+extern __const char *__const *sys_signame __RENAME(__sys_signame14);
+extern __const char *__const *sys_siglist __RENAME(__sys_siglist14);
+extern __const int sys_nsig __RENAME(__sys_nsig14);
+#endif
-/* Still need work */
+__BEGIN_DECLS
+int raise __P((int));
+#ifndef _ANSI_SOURCE
int kill __P((pid_t, int));
-int sigaction __P((int, const struct sigaction *, struct sigaction *));
-int sigpending __P((sigset_t *));
-
-#ifndef _POSIX_SOURCE
+#ifdef __LIBC12_SOURCE__
+int sigaction __P((int, const struct sigaction13 *, struct sigaction13 *));
+int __sigaction14 __P((int, const struct sigaction *, struct sigaction *));
+int sigaddset __P((sigset13_t *, int));
+int __sigaddset14 __P((sigset_t *, int));
+int sigdelset __P((sigset13_t *, int));
+int __sigdelset14 __P((sigset_t *, int));
+int sigemptyset __P((sigset13_t *));
+int __sigemptyset14 __P((sigset_t *));
+int sigfillset __P((sigset13_t *));
+int __sigfillset14 __P((sigset_t *));
+int sigismember __P((const sigset13_t *, int));
+int __sigismember14 __P((const sigset_t *, int));
+int sigpending __P((sigset13_t *));
+int __sigpending14 __P((sigset_t *));
+int sigprocmask __P((int, const sigset13_t *, sigset13_t *));
+int __sigprocmask14 __P((int, const sigset_t *, sigset_t *));
+int sigsuspend __P((const sigset13_t *));
+int __sigsuspend14 __P((const sigset_t *));
+#else /* !__LIBC12_SOURCE__ */
+int sigaction __P((int, const struct sigaction *, struct sigaction *)) __RENAME(__sigaction14);
+int sigaddset __P((sigset_t *, int)) __RENAME(__sigaddset14);
+int sigdelset __P((sigset_t *, int)) __RENAME(__sigdelset14);
+int sigemptyset __P((sigset_t *)) __RENAME(__sigemptyset14);
+int sigfillset __P((sigset_t *)) __RENAME(__sigfillset14);
+int sigismember __P((const sigset_t *, int)) __RENAME(__sigismember14);
+int sigpending __P((sigset_t *)) __RENAME(__sigpending14);
+int sigprocmask __P((int, const sigset_t *, sigset_t *)) __RENAME(__sigprocmask14);
+int sigsuspend __P((const sigset_t *)) __RENAME(__sigsuspend14);
+
+#if defined(__GNUC__) && defined(__STDC__)
+extern __inline int
+sigaddset(sigset_t *set, int signo)
+{
+#ifdef _REENTRANT
+ extern int *__errno __P((void));
+#else
+ extern int errno;
+#endif
+
+ if (signo <= 0 || signo >= _NSIG) {
+#ifdef _REENTRANT
+ *__errno() = 22; /* EINVAL */
+#else
+ errno = 22; /* EINVAL */
+#endif
+ return (-1);
+ }
+ __sigaddset(set, signo);
+ return (0);
+}
+
+extern __inline int
+sigdelset(sigset_t *set, int signo)
+{
+#ifdef _REENTRANT
+ extern int *__errno __P((void));
+#else
+ extern int errno;
+#endif
+
+ if (signo <= 0 || signo >= _NSIG) {
+#ifdef _REENTRANT
+ *__errno() = 22; /* EINVAL */
+#else
+ errno = 22; /* EINVAL */
+#endif
+ return (-1);
+ }
+ __sigdelset(set, signo);
+ return (0);
+}
+
+extern __inline int
+sigismember(const sigset_t *set, int signo)
+{
+#ifdef _REENTRANT
+ extern int *__errno __P((void));
+#else
+ extern int errno;
+#endif
+
+ if (signo <= 0 || signo >= _NSIG) {
+#ifdef _REENTRANT
+ *__errno() = 22; /* EINVAL */
+#else
+ errno = 22; /* EINVAL */
+#endif
+ return (-1);
+ }
+ return (__sigismember(set, signo));
+}
+#endif /* __GNUC__ && __STDC__ */
+
+/* List definitions after function declarations, or Reiser cpp gets upset. */
+#define sigemptyset(set) (__sigemptyset(set), /*LINTED*/0)
+#define sigfillset(set) (__sigfillset(set), /*LINTED*/ 0)
+#endif /* !__LIBC12_SOURCE__ */
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
+ (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
+ (_XOPEN_SOURCE - 0) >= 500
int killpg __P((pid_t, int));
int siginterrupt __P((int, int));
-void psignal __P((unsigned int, const char *));
+int sigpause __P((int));
+int sigstack __P((const struct sigstack *, struct sigstack *));
+#ifdef __LIBC12_SOURCE__
+int sigaltstack __P((const struct sigaltstack13 *, struct sigaltstack13 *));
+int __sigaltstack14 __P((const stack_t *, stack_t *));
+#else
+int sigaltstack __P((const stack_t *, stack_t *)) __RENAME(__sigaltstack14);
+#endif
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || ... */
-/* int sigpause __P((int)); */
-/* int sigsetmask __P((int)); */
-/* int sigblock __P((int)); */
-/* int sigreturn __P((struct sigcontext *)); */
-/* int sigvec __P((int, struct sigvec *, struct sigvec *)); */
-/* int sigstack __P((const struct sigstack *, struct sigstack *)); */
+#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
+void psignal __P((unsigned int, const char *));
+int sigblock __P((int));
+#ifdef __LIBC12_SOURCE__
+int sigreturn __P((struct sigcontext13 *));
+int __sigreturn14 __P((struct sigcontext *));
+#else
+int sigreturn __P((struct sigcontext *)) __RENAME(__sigreturn14);
+#endif
+int sigsetmask __P((int));
+int sigvec __P((int, struct sigvec *, struct sigvec *));
+#endif /* !_POSIX_C_SOURCE && !_XOPEN_SOURCE */
-#endif /* !_POSIX_SOURCE */
#endif /* !_ANSI_SOURCE */
-
__END_DECLS
-#endif /* !_USER_SIGNAL_H */
+#endif /* !_SIGNAL_H_ */