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: Resurrect discussion: Mixing 32 and 64 bit distro


On Feb 13 00:02, Christopher Faylor wrote:
> On Tue, Feb 12, 2013 at 11:49:58PM -0500, Tom Honermann wrote:
> >On 02/12/2013 11:26 AM, Christopher Faylor wrote:
> >>[...]
> >> I think two distinct distros with no explicit understanding between the
> >> 32-bit and 64-bit is the sanest approach.  I hate the thought of lots of
> >> code in 64-bit Cygwin to specifically deal with 32-bit aps.
> >>
> >> Would it be possible to write some kind of "shim" 64-bit application
> >> which "did something" to run a 32-bit Cygwin for people who can't
> >> wait to have their favorite package ported to 64-bit?
> >
> >Sounds like a suggestion towards a Cygwin-On-Cygwin64 analog to WOW64. 
> >Ie, a cygwin1.dll as a thunk/wrapper into cyg64w1.dll similar to what 
> >wow64.dll does for WOW64 processes.
> 
> Yep.  That's what I was thinking.  I doubt that it's worth the effort
> though.

On second thought, I have no idea how to do that in a performant way.
Such a wrapper 32 bit DLL has the problem that it's a 32 bit executable
and as such, it won't be able to load a 64 bit DLL into its address
space.

Therefore you'd need a shim 64 bit application which interfaces with the
64 bit DLL on behalf of the 32 bit process.  The 32 bit wrapper DLL has
to start the shim and open a communication channel between itself and
the shim, for instance, a pipe.  Then all 32 bit calls would be
serialized and sent to the 64 bit shim via the pipe.  The shim calls the
function in the 64 bit DLL and then it has to send back the results over
the pipe.  That's funny if buffers are written by the function, like in
case of stat, or readlink.

Did I just hear a "Cygwin is slow" from the auditorium?


Corinna

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


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