PATCH: avoid system shared memory version mismatch detected by versioning shared memory name

Noel Burton-Krahn
Fri Feb 22 05:18:00 GMT 2008

The problem is there are several installable apps built on Cygwin,
like EAC, ClamAV, and one I just found which is a
Cygwin-on-a-thumbdrive.  The problem is they can't all coexist because
they're distributed with different versions of the cygwin dlls.
Making them work with the current cygwin means hand-copying cygwin
dlls into application directories, and repeating that every time you
upgrade. People used to give Windows a hard time for DLL hell!  I
don't see the benefit of forcing users to hand-maintain cygwin dlls
across multiple applications.


On 2/21/08, Christopher Faylor
<> wrote:
> On Thu, Feb 21, 2008 at 05:01:20PM -0800, Noel Burton-Krahn wrote:
>  >This is a patch to avoid the "system shared memory version mismatch
>  >detected" problem when two applications use different versions of
>  >Cygwin.  My solution is to append the Cygwin version number to the
>  >name of the shared memory segment, so only Cygwin with the same
>  >version share a memory space.
>  >
>  >ChangeLog
>  >2008-02-21  Noel Burton-Krahn  <>
>  >
>  >    * (shared_name): always add USER_VERSION_MAGIC to the
>  >    shared memory space name so multiple versions of Cygwin keep their
>  >     own shared memory space.  No more "system shared memory version
>  >    mismatch detected"  errors.
> Thanks for the patch but the whole reason for this detection and others
>  in the DLL is to disallow multiple copies of cygwin1.dll from running at
>  the same time.  This isn't a bug, it's a feature.  That's why we have
>  the detection in the first place.
>  As you can see from other checks in the dll, the shared memory region
>  is just one of the things that are checked for.  If you need to have
>  two copies of the DLL for debugging then there are ways to do that.
>  But, in general, it is not a good idea to use two versions of the DLL
>  unless you really know what you are doing, so we are not going to
>  be making it trivially possible for everyone to do that.
>  cgf

More information about the Cygwin-patches mailing list