This is the mail archive of the cygwin-developers 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: RFC: Cygwin 64 bit?


On 6/27/2011 09:45, Chiheng Xu wrote:
> On Sun, Jun 26, 2011 at 7:45 PM, Corinna Vinschen
>> As far as I can see what we have to do in about this order is
>>
>> - Discuss certain basics.  This is probably the most crucial step.
>>  For instance:
>>
>>  - What name should the 64 bit DLL have?
>>  - Where should 64 bit binaries and libs go?
>>  - Do we define "long" as 32 bit or 64 bit type?
>>  - What defines should a 64 bit Cygwin compiler define?
>>  - What Windows headers and link libs do we use?
>>
>> - Create a x86_64-pc-cygwin cross toolchain.
> 
> Perhaps, you can use mingw64 cross toolchain directly, but with
> cygwin/cygwin64 's own headers and libs.
> 
> mingw64 cross toolchain(32 bits and 64 bits) can be built and tested
> in Cygwin environment.
> 
> Have you tried to use mingw64 cross toolchain(32 bits) to build Cygwin DLL ?
> 
> There is a problem. MinGW.org 's  win32api and mingw-runtime are 2
> seperate packages, but mingw64 has no seperate win32api or win64api
> packages. Cygwin DLL depend on win32api or win64api packages.  You
> want to modify the w32api to win64api or extract win64api(the headers
> , libs) from mingw64 ?
> 

Yes, using only the win32api headers is possible, see the --disable-crt
option in the mingw-w64-headers configure. The headers are very much
LLP64 though.

Though mingw-w64-crt doesn't have this facility yet, it is possible to
use only dlltool to build the stub w32api equivalent link libraries for
win64 linking, but without mingw bits like libmingwex.

>>
>> - Create x86_64 replacements for x86 code and in general try to make the
>>  Cygwin code 64 bit clean where it isn't so far.
> 
> Cygwin source code should really be more clean.  Using some tools like
> Source Insight(http://www.sourceinsight.com/) may be helpful.
> 
> Maybe you can't  start Cygwin64 project untill Cygwin source code 's
> cleanness reach some criteria.
> 
> If Cygwin source code is extremely clean, then it would be easy to
> make it 64bit clean, I think.
> 

The hairy parts would be the LP64/LLP64 ABI difference. For now we need
to decide which ABI to go with, the rest of the work will rest on this
decision.

>>
>> - 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?  What is the
>>  best package layout?
> 
> I think single distro but with seperate bin/include/lib directories is good.
> 
> In 64bit system, 64bit bin directory can precede 32bit  bin directory in PATH.
> 
> This may be implemented as Cygwin64.bat, in parallel with Cygwin.bat.
> 
> 32bit Cygwin will be a self sustained system,  in very long time, say,
>  5~10 years.  32bit Cygwin known nothing about 64bit things.
> But 64bit Cygwin can use 32bit Cygwin(the tools) to bootstrap itself
> at its baby stage.
> 

I was thinking that 64bit Cygwin will be installed in a completely
separate directory so there is no chance in clobbering 32bit Cygwin
DLLs, like a parallel 1.5/1.7 install.

You also don't really need 32bit Cygwin around once 64bit Cygwin is working.

Attachment: 0xED74C077.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature


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