RFC: Cygwin 64 bit?

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Jun 28 18:50:00 GMT 2011


On Jun 28 13:33, Charles Wilson wrote:
> On 2:59 PM, Andy Koppe wrote:
> > On 27 June 2011 14:12, Eric Blake wrote:
> >> On 06/26/2011 06:10 AM, JonY wrote:
> >>>>   - Do we define "long" as 32 bit or 64 bit type?
> >>>
> >>> I suggest 32bit, they'll be some awkwardness accessing w32api at the
> >>> Cygwin backend if they're 64bit.
> >>
> >> I very much want LLP64 to match Linux; the _only_ software that should
> >> be accessing w32api in the cygwin backend is the cygwin dll itself,
> > 
> > Also cygutils, XWin, rxvt, mintty, and possibly more I'm not aware of.
> 
> Don't forget tcl/tk which is still kinda sorta not really cygwin.
> 
> And perl (at least, the perl-win32 extension), python, ruby(?),
> parrot(?), ... Lots of the interpreters seem to provide a binding to the
> Win32 API even when compiled "for" cygwin.

I still don't see the problem.  In how far is it valid to assume that
sizeof(long) == sizeof(LONG)?  long is a compiler intrinsic, LONG is
defined in a Windows header.  I don't see that the SDK claims that
there's a guarantee that long == LONG.  So, AFAICS, nothing speaks
against changing the w32api header to define LONG in a target dependent
way, for instance, and without gurantee for correctness:

  #ifdef __X86_64__
  typedef int LONG;
  typedef unsigned int ULONG, DWORD;
  #else
  typedef long LONG;
  typedef unsigned long ULONG, DWORD;
  #endif


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat



More information about the Cygwin-developers mailing list