Static build under Cygwin?

Chris Rapier rapier at psc.edu
Fri Apr 6 03:23:16 EST 2007



Corinna Vinschen wrote:
> On Apr  5 19:06, Peter Stuge wrote:
>> On Thu, Apr 05, 2007 at 12:29:14PM -0400, Chris Rapier wrote:
>>> Peter Stuge wrote:
>>>> On Thu, Apr 05, 2007 at 11:08:36AM -0400, Chris Rapier wrote:
>>>>> I was wondering if anyone has statically built OpenSSH under
>>>>> cygwin?
>>>>> Mostly I'm just trying to avoid the need to require a specific
>>>>> user to install cygwin in order to use the client. Does it
>>>>> involve mingw?
>>>> Yes, it would, but MinGW != Cygwin and I don't think OpenSSH likes it
>>>> very much in Win32 land.
>>>>
>>>> Cygwin is a POSIX compatibility layer for Win32.
>>>>
>>>> MinGW is gcc+friends for Win32 with little or no built-in
>>>> compatibility.
>>> So basically it would require voodoo. How many goats?
>>> ;)
>> 42.
>>
>> Back to the original question:
>>
>> http://www.sourceware.org/ml/cygwin/2000-12/msg01162.html
>> http://www.cygwin.com/ml/cygwin/2000-06/msg00756.html
> 
> You can't build statically against Cygwin and it's not intended to work.

Just curious, is this by specific design or did it just work out that way?

>> Seems it's not doable. But perhaps it's OK to distribute cygwin1.dll
>> along with ssh.exe ?

Heh. I was just in the middle of writing some mail about how much the 
cygwin people don't like this :)

> 
> http://cygwin.com/acronyms/#3PP.
> 
> Please don't. 

Which is pretty much why I was looking for a way to build openssh 
against cygwin statically. I'll probably just end up trying to port the 
hpn patch over to putty (convincing people to move the globus patch as 
well might be tough though :) )

> There should be only exactly one Cygwin DLL installed on
> a machine and that should ideally be the Cygwin DLL installed from the
> Cygwin net distribution.  Having two Cygwin DLLs with different version
> numbers on a machine is bound to result in trouble.  It's roughly
> equivalent to trying to run two Linux kernels on the same machine in
> parallel without virtualization layer.

I have seen this happen in the past actually. Usually its really not a 
problem though as the vast majority of people that can benefit from SSH 
(eg, all the people that only need the client) don't have a need for the 
rest of cygwin. However, in the cases where it is a problem its 
intensely annoying. As such, I wouldn't do it for a externally 
distributed product.


More information about the openssh-unix-dev mailing list