64 bit Cygwin target and _WIN64

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Wed Jul 18 20:11:00 GMT 2012


On 2012-07-18 06:47, Corinna Vinschen wrote:
> On Jul 18 06:17, Yaakov (Cygwin/X) wrote:
>> On 2012-07-18 06:03, Corinna Vinschen wrote:
>>> 1. Replace all
>>>
>>>      #ifdef _WIN64
>>>
>>>     with
>>>
>>>      #if defined (_WIN64) || defined (__CYGWIN64__)
>>
>> Can't that just be #ifdef __x86_64__?
>
> Nope.  Think Itanium.

Oh, right, I forgot about Itanium.  Hmm, I wonder why? :-)

>> Also, I would suggest avoiding __CYGWIN64__:  IIRC we used to use
>> __CYGWIN32__ until M$ trademarked "Win32", leaving us with just
>> __CYGWIN__;  what happens if they decide to trademark "Win64"?
>
> I don't see the issue here.  Cygwin is also a trademark and 32 bitg
> gcc still defines __CYGWIN32__.  We just discouraged the use of it.
> I think the __CYGWIN__ and __CYGWIN32__ defines on 32 bit and the
> __CYGWIN__ and __CYGWIN64__ defines on a 64 bit system make sense
> and are an easy way to distinguish the platforms.

BTW, __CYGWIN32__ will still be defined on x64, right?

>>> 4. Let the Cygwin 64 bit gcc define _WIN64 by default.
>>
>> No way, for the same reason we don't define _WIN32.
>
> But what about 2 and 3?

AFAICS 3 is the status quo; iff you #include <windows.h>, you get _WIN32 
(and have to deal with the consequences), otherwise not.  That's worked 
pretty well so far, so let's stick with it.


Yaakov



More information about the Cygwin-developers mailing list