This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH] Fix "/*" within comment warning
- From: Yaakov Selkowitz <yselkowitz at cygwin dot com>
- To: newlib at sourceware dot org
- Date: Tue, 22 Mar 2016 11:10:01 -0500
- Subject: Re: [PATCH] Fix "/*" within comment warning
- Authentication-results: sourceware.org; auth=none
- References: <1458558472-24672-1-git-send-email-sebastian dot huber at embedded-brains dot de> <20160321114442 dot GS3422 at calimero dot vinschen dot de> <56F0011B dot 6030603 at redhat dot com> <20160321145015 dot GA7179 at calimero dot vinschen dot de> <56F00EB8 dot 5010300 at cygwin dot com> <20160321151937 dot GC7179 at calimero dot vinschen dot de> <20160321152710 dot GD7179 at calimero dot vinschen dot de> <20160322094924 dot GI7179 at calimero dot vinschen dot de>
On 2016-03-22 04:49, Corinna Vinschen wrote:
On Mar 21 16:27, Corinna Vinschen wrote:
I mean, that was the whole point of asking this question. If you read
https://sourceware.org/ml/newlib/2016/msg00282.html you see that I
specificially refer to these types, u_char, u_short, etc. grep for them
on Linux and you'll see more then hundred header files using these
types. They are guarded with __USE_MISC in sys/types.h and there's no
explicit enabling invocation in any of the files using these types.
Due to the incompatibility in licences between glibc and newlib/cygwin,
I have been avoiding looking at the headers directly.
So my proposal is this:
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index 52530c5..8ab8670 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -90,8 +90,7 @@ typedef quad_t * qaddr_t;
# define quad quad_t
#endif
-/* These types are required by netinet/*.h on Cygwin */
-#if __BSD_VISIBLE || defined(__CYGWIN__)
+#if __MISC_VISIBLE
#ifndef _BSDTYPES_DEFINED
/* also defined in mingw/gmon.h and in w32api/winsock[2].h */
#ifndef __u_char_defined
That only works if the parts of our netinet/*.h which use these are
similarly guarded, or their struct members converted to the u_intN_t
types (as in netinet/ip6.h). Unfortunately these headers are not well
documented.
Could you tell me how the following are guarded:
netinet/ip.h:
* struct ip;
* struct ip_timestamp;
* IP_MAKE_VHL, IP_VHL_*
* IP_MAXPACKET
* IPTOS_*
* IPOPT_*, MAX_IPOPTLEN
* MAXTTL, IPDEFTTL, IPFRAGTTL, IPTTLDEC
netinet/tcp.h:
* struct tcphdr;
* TCPOPT_*, TCPOLEN_*
* TCP_NODELAY, TCP_MAXSEG, TCP_NOPUSH, TCP_NOOPT
netinet/udp.h:
* struct udphdr;
--
Yaakov