[newlib-cygwin] Feature test macros overhaul: sys/types.h

Yaakov Selkowitz yselkowitz@sourceware.org
Fri Mar 18 02:12:00 GMT 2016


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

commit 396942b0b59da602797ab63a502fe315b14fed84
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date:   Mon Mar 14 21:20:02 2016 -0500

    Feature test macros overhaul: sys/types.h
    
    The u_int/u_char/etc. BSD types are needed by Cygwin's netinet/*.h
    headers, so they always need to be available.
    
    Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>

Diff:
---
 newlib/libc/include/sys/types.h | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index c9f0fc7..c09866b 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -84,13 +84,14 @@ typedef	quad_t *	qaddr_t;
 #define _ST_INT32
 #endif
 
-# if	__BSD_VISIBLE
-
+#if __BSD_VISIBLE
 #include <sys/select.h>
-
 #  define	physadr		physadr_t
 #  define	quad		quad_t
+#endif
 
+/* These types are required by netinet/*.h on Cygwin */
+#if __BSD_VISIBLE || defined(__CYGWIN__)
 #ifndef _BSDTYPES_DEFINED
 /* also defined in mingw/gmon.h and in w32api/winsock[2].h */
 #ifndef __u_char_defined
@@ -111,11 +112,13 @@ typedef	unsigned long	u_long;
 #endif
 #define _BSDTYPES_DEFINED
 #endif
+#endif	/*__BSD_VISIBLE || __CYGWIN__ */
 
+#if __MISC_VISIBLE
 typedef	unsigned short	ushort;		/* System V compatibility */
 typedef	unsigned int	uint;		/* System V compatibility */
 typedef	unsigned long	ulong;		/* System V compatibility */
-# endif	/*__BSD_VISIBLE */
+#endif
 
 #ifndef __clock_t_defined
 typedef _CLOCK_T_ clock_t;



More information about the Newlib-cvs mailing list