recommendations for 3rd party distributors?

Dick Repasky
Mon Feb 14 21:22:00 GMT 2005

Every so often a query surfaces about cygwin dll version compatibility.
What would be useful is a set of recommendations that can be used by 3rd 
party distributors of the cygwin dll to minimize the chance of version 
collisions with installed instances of cygwin and with other 3rd party 
software that is distributed with cygwin dlls.  Everyone should benefit 
from a set of recommendations: cygwin users will have fewer problems,
3rd party distributors will have fewer problems, and cygwin mailing list 
subscribers will have less mail.

After searching the mailing list archives and finding Igor Pechtchanski's 
post (, reading the 
source code, tinkering and testing, I've come up with a list.  I ask 
readers of the cygwin mailing list for comments and suggestions.  Are 
there errors in the list that I do not see?  Do you have suggestions for 
improving the list?

The recommendations are:

   1) Use a distinctly named shared memory area in the cygwin dll.
   2) Use a distinctly named registry key for storing cygwin file system
      mount points.
   3) Identify the origin of the cygwin dll in the cygwin dll.

These recommendations require that the cygwin dll code be modified and that
the dll be recompiled.

   1) The name of the shared memory area is set in
       winsup/cygwin/include/cygwin/version.h. Change the value of the
       constant CYGWIN_VERSION_DLL_IDENTIFIER to something unique.
       Currently, it is "cygwin1".  You might change it to "acmeapp1".
       It is best to follow cygwin naming conventions: retain the number
       that is at the end of the current cygwin name.

   2) The name of the registry key tree that is used to store information
      about cygwin is also set in
      winsup/cygwin/include/cygwin/version.h. Change the value of
      the constant CYGWIN_INFO_CYGNUS_REGISTRY_NAME to something unique.
      Currently, it is "Cygnus Solutions". You might change it to
      "ACME Inc".

   3) Identifying information is included in the dll from constants
      that are defined in winsup/cygwin/include/cygwin/version.h.
      Identify your organization as the origin of the cygwin dll
      by adding a line that defines the constant
      CYGWIN_INFO_DLL_ORIGIN.  An appropriate define might be:
      #define CYGWIN_INFO_DLL_ORIGIN ""
      . Don't use the form "" because it won't
      survive internal editing.

These changes work under the conditions that I have tested them. Comments? 


Dick Repasky


Dick Repasky
Bioinformatics Support
UITS Cubicle 101.08
Indiana University

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list