* libc/include/sys/_sigset.h: New. * libc/include/sys/select.h: Do not include <sys/types.h> and <sys/time.h> to avoid cyclic header file dependencies. Include specialized header files instead. (sigset_t): Conditionally define. * libc/include/sys/signal.h (sigset_t): Likewise. * libc/include/sys/time.h: Include <sys/select.h> if __BSD_VISIBLE. * libc/include/sys/types.h: Likewise. --- newlib/libc/include/sys/_sigset.h | 45 +++++++++++++++++++++++++++++++++++++++ newlib/libc/include/sys/select.h | 18 ++++++++-------- newlib/libc/include/sys/signal.h | 6 ++++-- newlib/libc/include/sys/time.h | 4 ++-- newlib/libc/include/sys/types.h | 2 ++ 5 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 newlib/libc/include/sys/_sigset.h
diff --git a/newlib/libc/include/sys/_sigset.h b/newlib/libc/include/sys/_sigset.h new file mode 100644 index 0000000..38ff1f1 --- /dev/null +++ b/newlib/libc/include/sys/_sigset.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 1982, 1986, 1989, 1991, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)signal.h 8.4 (Berkeley) 5/4/95 + * $FreeBSD$ + */ + +#ifndef _SYS__SIGSET_H_ +#define _SYS__SIGSET_H_ + +#ifndef __CYGWIN__ +typedef unsigned long __sigset_t; +#endif + +#endif /* !_SYS__SIGSET_H_ */ diff --git a/newlib/libc/include/sys/select.h b/newlib/libc/include/sys/select.h index ffe8900..2412ff6 100644 --- a/newlib/libc/include/sys/select.h +++ b/newlib/libc/include/sys/select.h @@ -23,15 +23,15 @@ details. */ #include <sys/cdefs.h> -/* Get fd_set, and macros like FD_SET */ -#include <sys/types.h> - -/* Get definition of timeval. */ -#include <sys/time.h> -#include <time.h> - -/* Get definition of sigset_t. */ -#include <signal.h> +#include <sys/_sigset.h> +#include <sys/_timeval.h> +#include <sys/timespec.h> + +/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */ +#if !defined(__CYGWIN__) && !defined(_SIGSET_T_DECLARED) +#define _SIGSET_T_DECLARED +typedef __sigset_t sigset_t; +#endif # define _SYS_TYPES_FD_SET /* diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h index 09f0778..e423fb8 100644 --- a/newlib/libc/include/sys/signal.h +++ b/newlib/libc/include/sys/signal.h @@ -10,13 +10,15 @@ extern "C" { #include <sys/cdefs.h> #include <sys/features.h> #include <sys/types.h> +#include <sys/_sigset.h> #include <sys/_timespec.h> /* #ifndef __STRICT_ANSI__*/ /* Cygwin defines it's own sigset_t in include/cygwin/signal.h */ -#ifndef __CYGWIN__ -typedef unsigned long sigset_t; +#if !defined(__CYGWIN__) && !defined(_SIGSET_T_DECLARED) +#define _SIGSET_T_DECLARED +typedef __sigset_t sigset_t; #endif #if defined(__rtems__) diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h index 7e7205b..3b41f81 100644 --- a/newlib/libc/include/sys/time.h +++ b/newlib/libc/include/sys/time.h @@ -45,9 +45,9 @@ /* Cygwin exposes sys/select.h to users of sys/time.h for a couple of years so we have to maintain that. Note that this is in accordance with POSIX. */ -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || __BSD_VISIBLE #include <sys/select.h> -#endif /* __CYGWIN__ */ +#endif struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h index 5dd6c75..207c8f8 100644 --- a/newlib/libc/include/sys/types.h +++ b/newlib/libc/include/sys/types.h @@ -86,6 +86,8 @@ typedef quad_t * qaddr_t; # if __BSD_VISIBLE +#include <sys/select.h> + # define physadr physadr_t # define quad quad_t -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel