This is the mail archive of the
mailing list for the Cygwin project.
Re: Porting to 64 bit Cygwin (was Re: Difference in 32/64-bit curl.)
- From: Erwin Waterlander <waterlan at xs4all dot nl>
- To: cygwin at cygwin dot com
- Date: Wed, 24 Apr 2013 20:37:33 +0200
- Subject: Re: Porting to 64 bit Cygwin (was Re: Difference in 32/64-bit curl.)
- References: <51766C22 dot 10702 at bahnhof dot se> <51770372 dot 4070408 at t-online dot de> <20130424125930 dot GQ26397 at calimero dot vinschen dot de> <20130424134749 dot GR26397 at calimero dot vinschen dot de> <517823A4 dot 8060001 at xs4all dot nl> <20130424183042 dot GC26397 at calimero dot vinschen dot de>
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.
Cygwin Windows Cygwin
Linux x86_64 Linux
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
Cygwin x86_64: 4
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple