Porting to 64 bit Cygwin (was Re: Difference in 32/64-bit curl.)

Erwin Waterlander waterlan@xs4all.nl
Wed Apr 24 19:41:00 GMT 2013


Op 24-4-2013 20:30, Corinna Vinschen schreef:
> On Apr 24 20:25, Erwin Waterlander wrote:
>> Op 24-4-2013 15:47, Corinna Vinschen schreef:
>>> On Apr 24 14:59, Corinna Vinschen wrote:
>>>> On Apr 23 23:56, Christian Franke wrote:
>>>>> Possibly a __builtin_va_list related gcc bug.
>>>> This is rather unlikely.  That code is shared between Cygwin and
>>>> Mingw, and chances are that the bug would have been found already.
>>>>
>>>> What about a type issue?  int vs. long?
>>> For clearness I decided to add a quick lecture.  Hope that's ok.
>>>
>>> The Cygwin x86_64 toolchain is using the LP64(*) data model.  That means,
>>> in contrast to Windows, which uses an LLP64(*) data model, sizeof(long)
>>> != sizeof(int), just as on Linux.
>>>
>>> For comparison:
>>>
>>>                   Cygwin   Windows  Cygwin
>>> 		 Linux    x86_64   Linux
>>> 		 Windows           x86_64
>>> 		 i686
>>>
>>> sizeof(int)         4        4        4
>>> sizeof(long)        4        4        8
>>> sizeof(size_t)      4        8        8
>>> sizeof(void*)       4        8        8
>> And these. Interesting for people handling Unicode (wide) text:
>>
>> sizeof(wchar_t)       2        2        2
>> sizeof(wint_t)          2        2        4
> No, that's not correct:
>
>    sizeof(wint_t)          4        4        4
>
> This is very important because of WEOF.
>
>

We are both incorrect. I tried and got these results.

sizeof(wint_t) will give:

Cygwin i686:     4
MinGW32 :        2
MinGW-w64:    2
Cygwin x86_64:   4

-- 
Erwin Waterlander
http://waterlan.home.xs4all.nl/


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list