diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-12-14 10:06:18 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-12-14 15:39:44 +0100 |
commit | 01885f533de81ff73e9da1519a4b5f2316b49f86 (patch) | |
tree | 940b95075ddd4b7411b7ca877883f37ae97080da /newlib | |
parent | c39ad27d9e76636527c37d030d7f7d651744a8f3 (diff) | |
download | cygnal-01885f533de81ff73e9da1519a4b5f2316b49f86.tar.gz cygnal-01885f533de81ff73e9da1519a4b5f2316b49f86.tar.bz2 cygnal-01885f533de81ff73e9da1519a4b5f2316b49f86.zip |
FreeBSD compatibility for <sys/select.h>
* 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.
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/ChangeLog | 12 | ||||
-rw-r--r-- | newlib/libc/include/sys/_sigset.h | 43 | ||||
-rw-r--r-- | newlib/libc/include/sys/select.h | 15 | ||||
-rw-r--r-- | newlib/libc/include/sys/signal.h | 7 | ||||
-rw-r--r-- | newlib/libc/include/sys/time.h | 6 | ||||
-rw-r--r-- | newlib/libc/include/sys/types.h | 2 |
6 files changed, 70 insertions, 15 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 85e869363..681a57300 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,15 @@ +2015-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * 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. + 2015-12-12 Freddie Chopin <freddie.chopin@gmail.com> * libc/stdlib/__atexit.c (__register_exitproc): Always release diff --git a/newlib/libc/include/sys/_sigset.h b/newlib/libc/include/sys/_sigset.h new file mode 100644 index 000000000..a9c0d2d4e --- /dev/null +++ b/newlib/libc/include/sys/_sigset.h @@ -0,0 +1,43 @@ +/*- + * 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_ + +typedef unsigned long __sigset_t; + +#endif /* !_SYS__SIGSET_H_ */ diff --git a/newlib/libc/include/sys/select.h b/newlib/libc/include/sys/select.h index ffe890049..de779e61a 100644 --- a/newlib/libc/include/sys/select.h +++ b/newlib/libc/include/sys/select.h @@ -23,15 +23,14 @@ details. */ #include <sys/cdefs.h> -/* Get fd_set, and macros like FD_SET */ -#include <sys/types.h> +#include <sys/_sigset.h> +#include <sys/_timeval.h> +#include <sys/timespec.h> -/* Get definition of timeval. */ -#include <sys/time.h> -#include <time.h> - -/* Get definition of sigset_t. */ -#include <signal.h> +#if !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 09f0778e1..3ff0eb73c 100644 --- a/newlib/libc/include/sys/signal.h +++ b/newlib/libc/include/sys/signal.h @@ -10,13 +10,14 @@ 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(_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 7e7205bd8..521be68db 100644 --- a/newlib/libc/include/sys/time.h +++ b/newlib/libc/include/sys/time.h @@ -43,11 +43,9 @@ #include <sys/types.h> #include <sys/timespec.h> -/* 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 __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 5dd6c75fe..207c8f87a 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 |