RFC: Cygwin 64 bit?

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Jun 27 07:56:00 GMT 2011

On Jun 27 02:19, Yaakov (Cygwin/X) wrote:
> On Sun, 2011-06-26 at 13:45 +0200, Corinna Vinschen wrote:
> > I'm not sure if you agree, but as far as I can see, 32 bit systems are
> > more and more reduced to a niche market, namely Netbooks and other very
> > small systems.  On the Desktop, 32 bit is declining fast, in the server
> > segment it's practically dead.
> > 
> > Given this, I'm wondering how much future Cygwin has if we stick to
> > 32 bit.  I think it will be pretty limited.  In fact, we're probably
> > rather late in the game.
> Compared to whom?  I run very little Windows-native software anymore,
> but when I look at the large open-source projects, such as Mozilla,
> Google Chrome, or LibreOffice, they still don't provide 64-bit Windows
> binaries.  True, that's all desktop software, but I'll admit that
> desktop software is my focus.

Server software is mostly 64 bit now.  Latest MSFT products require
a 64 bit system (Exchange Server, for instance).  Cygwin is not only
used on the desktop.

> >   - What defines should a 64 bit Cygwin compiler define?
> __CYGWIN__ and __X86_64__.  I think we want to avoid __CYGWIN64__ in
> case MS trademarks "Win64", if they haven't already.

Good point.

> >   - What Windows headers and link libs do we use?
> Good question.  mingw.org headers do not currently support x64, but
> using MinGW-w64's headers would require a lot of changes.  (Trying to
> build setup.exe with mingw64 certainly did.)  Unless the two communities
> merge or it is apparent that only one will continue long term, then I
> think we choose whichever would be easier, and use those headers/implibs
> for both x86 and x64.

Maybe we can use the current w32api with only a few changes.  After all,
Cygwin only needs the kernel and socket bits and just a teenty little
bit on top of that.  Shaking this out of w32api shouldn't be too hard.

> Another question: which version of Windows x64 would we start with,
> Vista or 7?  Yes, there was a 64-bit XP but that was a long time ago and
> AFAIK never widely adopted.  Starting support from a later version would
> allow us to #ifndef a fair bit of code (and autoloads) needed only for
> 2K/XP.

Good question.  From my POV, the Cygwin code should be ported in a way
which allows to use the sources to build both versions, only depending
on which compiler you use.  If we do that, there's no reason to exclude
XP 64 or Windows 2003 64 bit, since the code is in Cygwin anyway.  If we
ever drop XP or 2K3 support (years from now), we drop it for 32 and 64.

> > - Decide how we can integrate 64 bit stuff into the distro.  Will we have
> >   a 32 bit and a distinct 64 bit distro?  Or, should we stick to a single
> >   distro?  If so, how do we separate 64 and 32 bit stuff?
> Linux distros with which I am familiar provide separate repos for 32-
> and 64-bit systems (i686 and x86_64/amd64), with the 64-bit repo adding
> 32-bit builds of certain libraries for running x86 binaries downloaded
> from elsewhere.  Since that use case doesn't really apply to Cygwin,
> multilib support shouldn't be necessary.

I'm not so sure.  We have a 32 bit distro but we have nothing 64
bit-wise so far.  Not all package maintainers are running 64 bit systems
and/or might be interested to support two packages in parallel.  As far
as I can see we will need the 32 bit parts of the distro for a long time.

> >   What is the best package layout?
> One factor is that we would have to completely change how packages are
> maintained.  Currently, maintainers are responsible for building their
> own packages, but what if a maintainer only has a 32-bit system?  I
> think we would need a buildbot-type system for building the actual
> packages.

Who's going to maintain a build system?  We don't have the man power of

> > This is a big project which can only work if we have help and support
> > from the community.
> True, but $ome $upport from RH wouldn't hurt. :-)


> > - What part of the project would most interest you to help?  Coding
> >   Cygwin?  Documentation?  Setup?  Toolchain?  You name it.
> Toolchain, bootstrapping, and porting packages.


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