Fix sys/time.h build problem due to inconsistent macro usage

https://sourceware.org/ml/newlib/2015/msg00520.html describes
	how sys/time.h uses __BSD_VISIBLE while the types used in the
	affected inline functions are guarded with !_POSIX_SOURCE.
	Fix that by guarding the type with __BSD_VISIBLE as well.

        * libc/include/sys/time.h: Explicitely include sys/cdefs.h.
        * libc/include/sys/types.h: Ditto.  Guard BSD convenience base types
        with __BSD_VISIBLE rather than !_POSIX_SOURCE.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2015-07-06 14:08:30 +02:00
parent 910087f70f
commit f9b87aaf10
3 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2015-07-06 Corinna Vinschen <corinna@vinschen.de>
* libc/include/sys/time.h: Explicitely include sys/cdefs.h.
* libc/include/sys/types.h: Ditto. Guard BSD convenience base types
with __BSD_VISIBLE rather than !_POSIX_SOURCE.
2015-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de> 2015-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libc/stdio/fputs.c (_puts_r): Add missing CHECK_INIT(). * libc/stdio/fputs.c (_puts_r): Add missing CHECK_INIT().

View File

@ -38,6 +38,7 @@
#define _SYS_TIME_H_ #define _SYS_TIME_H_
#include <_ansi.h> #include <_ansi.h>
#include <sys/cdefs.h>
#include <sys/_timeval.h> #include <sys/_timeval.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/timespec.h> #include <sys/timespec.h>

View File

@ -18,6 +18,7 @@
#ifndef _SYS_TYPES_H #ifndef _SYS_TYPES_H
#include <_ansi.h> #include <_ansi.h>
# include <sys/cdefs.h>
#ifndef __INTTYPES_DEFINED__ #ifndef __INTTYPES_DEFINED__
#define __INTTYPES_DEFINED__ #define __INTTYPES_DEFINED__
@ -83,7 +84,7 @@ typedef quad_t * qaddr_t;
#define _ST_INT32 #define _ST_INT32
#endif #endif
# ifndef _POSIX_SOURCE # if __BSD_VISIBLE
# define physadr physadr_t # define physadr physadr_t
# define quad quad_t # define quad quad_t
@ -112,7 +113,7 @@ typedef unsigned long u_long;
typedef unsigned short ushort; /* System V compatibility */ typedef unsigned short ushort; /* System V compatibility */
typedef unsigned int uint; /* System V compatibility */ typedef unsigned int uint; /* System V compatibility */
typedef unsigned long ulong; /* System V compatibility */ typedef unsigned long ulong; /* System V compatibility */
# endif /*!_POSIX_SOURCE */ # endif /*__BSD_VISIBLE */
#ifndef __clock_t_defined #ifndef __clock_t_defined
typedef _CLOCK_T_ clock_t; typedef _CLOCK_T_ clock_t;