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

Igor Peshansky
Fri Feb 22 16:12:00 GMT 2008

Ugh, top-posting...  Reformatted.

On Thu, 21 Feb 2008, Noel Burton-Krahn wrote:

> On 2/21/08, Christopher Faylor
> <cgf-use-the-mailinglist-please@XXXXXX.XXX> wrote:

<>.  Thanks.

> > 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.

FYI, you get that automatically when you build a debug version of the DLL.

> > 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.
> 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.

Don't copy DLLs -- that will only compound the problem.  Put c:\cygwin\bin
(or wherever you installed Cygwin to) in the system PATH, and let those
apps find the latest cygwin1.dll from there.

Besides, even if this patch were accepted (which it won't), you still
would not have fixed *those* versions of cygwin1.dll, so those apps would
still conflict with each other.

And this discussion is no longer pertinent to cygwin-patches.  If you wish
to continue, let's move to the main list, <cygwin at cygwin dot com>.
      |\      _,,,---,,_ |
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"That which is hateful to you, do not do to your neighbor.  That is the whole
Torah; the rest is commentary.  Go and study it." -- Rabbi Hillel

More information about the Cygwin-patches mailing list