[newlib-cygwin] Fix sys/time.h build problem due to inconsistent macro usage

Corinna Vinschen corinna@sourceware.org
Mon Jul 6 12:08:00 GMT 2015


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=f9b87aaf109366342777521fe93fe9f795e8f1fa

commit f9b87aaf109366342777521fe93fe9f795e8f1fa
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Mon Jul 6 14:08:30 2015 +0200

    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>

Diff:
---
 newlib/ChangeLog                | 6 ++++++
 newlib/libc/include/sys/time.h  | 1 +
 newlib/libc/include/sys/types.h | 5 +++--
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 9ada9de..994f1ca 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -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>
 
 	* libc/stdio/fputs.c (_puts_r): Add missing CHECK_INIT().
diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h
index e95240e..7e7205b 100644
--- a/newlib/libc/include/sys/time.h
+++ b/newlib/libc/include/sys/time.h
@@ -38,6 +38,7 @@
 #define	_SYS_TIME_H_
 
 #include <_ansi.h>
+#include <sys/cdefs.h>
 #include <sys/_timeval.h>
 #include <sys/types.h>
 #include <sys/timespec.h>
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index 9fe2f5d..d8d6fdc 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -18,6 +18,7 @@
 #ifndef _SYS_TYPES_H
 
 #include <_ansi.h>
+# include <sys/cdefs.h>
 
 #ifndef __INTTYPES_DEFINED__
 #define __INTTYPES_DEFINED__
@@ -83,7 +84,7 @@ typedef	quad_t *	qaddr_t;
 #define _ST_INT32
 #endif
 
-# ifndef	_POSIX_SOURCE
+# if	__BSD_VISIBLE
 
 #  define	physadr		physadr_t
 #  define	quad		quad_t
@@ -112,7 +113,7 @@ typedef	unsigned long	u_long;
 typedef	unsigned short	ushort;		/* System V compatibility */
 typedef	unsigned int	uint;		/* System V compatibility */
 typedef	unsigned long	ulong;		/* System V compatibility */
-# endif	/*!_POSIX_SOURCE */
+# endif	/*__BSD_VISIBLE */
 
 #ifndef __clock_t_defined
 typedef _CLOCK_T_ clock_t;



More information about the Newlib-cvs mailing list