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