[PATCH] Fix type inconsistencies in stdint.h

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Sat Apr 4 06:25:00 GMT 2009


On Sat, Apr 04, 2009 at 05:11:09AM +0100, Dave Korn wrote:
>Christopher Faylor wrote:
>
>>>  The attached patch fixes all these by adjusting only the suffix letters.  OK
>>> for head?
>>>
>>> winsup/cygwin/ChangeLog
>>>
>>> 	* include/stdint.h (UINT32_MAX, INT_LEAST32_MIN, INT_LEAST32_MAX,
>>> 	INT_FAST16_MIN, INT_FAST32_MIN, INT_FAST16_MAX, INT_FAST32_MAX,
>>> 	INTPTR_MIN, INTPTR_MAX, SIZE_MAX):  Fix integer constant suffixes.
>> 
>>Many of the changes introduce divergence from Linux.  Why is that?
>
>Because our stdint.h types are divergent from Linux, and changing them
>instead could cause yet another ABI break.

Why would changing uint32_t from 'unsigned long' to 'unsigned int' break
anything?  It looks to me like that is a disaster waiting to happen if
we ever provide a 64-bit port.

Isn't a long 32 bits?  What would be the ABI breakage in changing that
one typedef rather than lots of #defines?  It seems like fixing the
typedefs in stdint.h is the right thing to do before Cygwin 1.7 rolls
out.

cgf



More information about the Cygwin-patches mailing list