This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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

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

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]