RFC: Cygwin 64 bit?

Charles Wilson cygwin@cwilson.fastmail.fm
Tue Jun 28 17:20:00 GMT 2011

On 2:59 PM, Yaakov (Cygwin/X) wrote:
> On Mon, 2011-06-27 at 17:58 -0700, Daniel Colascione wrote:
>> Today, Cygwin DLLs all have the form cyg$SONAME.dll. In a 64-bit Cygwin,
>> 32-bit DLLs would retain this naming convention and 64-bit DLLs would be
>> named cyg64$SONAME.dll.
> 1) A similar naming scheme for mingw64 was already rejected.

And I think that decision was a mistake.  It means that you can't have
32bit applications and 64bit applications coexist in the same
installation tree -- and until the entire universe of applications is
ported to 64bit, you're stuck with two separate installations, one which
is "complete" but 32bit only, and one which is crippled by missing apps
and libs but -- hey, it's 64bit!

> 2) Accomodating the "cyg" prefix is hard enough; using different naming
> schemes for x86 and x64 would be a disaster.

You've already made the necessary changes so that DLLPREFIX takes on the
correct #defined value based on $host.  This is a relatively simple
addition since you've already done all the hard work.

> I still don't see a pressing need for multilib in the first place.
> Linux distros do it only with a handful of libraries needed for running
> third-party binaries; that use case doesn't really apply to Cygwin, so
> why would we need it? 

Because (a) they didn't launch the 64bit version until they had
recompiled the entire distro for the new platform -- having the manpower
to do that in a relatively short time span. We don't have that luxury;
we'll be stuck without 64bit versions of lots of our distro for quite
some time.  While the 64bit distro is crippled, nobody will use it, so
it will get less testing...and thus, even SLOWER development/deployment.

(b) If you DO allow multilib, we have to ensure that the correct bitness
DLLs are loaded by the exes.  There are only two ways to do this: (1)
$PATH separation *and* installation separation -- /bin64/*.exe +
/bin64/*.dll, or (2) different DLL names (e.g. the cyg64 prefix thing).

One or the other. Choose. (I realize you want to pick option #3: don't
choose, by pushing a complete break from 32bit via 'no multilib' -- I
don't think that's realistic, given the inevitable long crippleness
period it will create for the new 64bit platform).


More information about the Cygwin-developers mailing list