summaryrefslogtreecommitdiffstats
path: root/winsup/utils/utils.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/utils/utils.sgml')
-rw-r--r--winsup/utils/utils.sgml87
1 files changed, 82 insertions, 5 deletions
diff --git a/winsup/utils/utils.sgml b/winsup/utils/utils.sgml
index 2e6e9c1c0..e255779ab 100644
--- a/winsup/utils/utils.sgml
+++ b/winsup/utils/utils.sgml
@@ -13,13 +13,18 @@ command-line utilities support the <literal>--help</literal> and
<sect2 id="cygcheck"><title>cygcheck</title>
<screen>
-Usage: cygcheck PROGRAM [ -v ] [ -h ]
- cygcheck -c [ PACKAGE ... ] [ -d ]
- cygcheck -s [ -r ] [ -v ] [ -h ]
+Usage: cygcheck [-v] [-h] PROGRAM
+ cygcheck -c [-d] [PACKAGE]
+ cygcheck -s [-r] [-v] [-h]
cygcheck -k
- cygcheck -f FILE [ FILE ... ]
- cygcheck -l [ PACKAGE ... ]
+ cygcheck -f FILE [FILE]...
+ cygcheck -l [PACKAGE]...
cygcheck -p REGEXP
+ cygcheck --delete-orphaned-installation-keys
+ cygcheck --enable-unique-object-names Cygwin-DLL
+ cygcheck --disable-unique-object-names Cygwin-DLL
+ cygcheck --show-unique-object-names Cygwin-DLL
+ cygcheck -h
List system information, check installed packages, or query package database.
At least one command option or a PROGRAM is required, as shown above.
@@ -36,6 +41,19 @@ At least one command option or a PROGRAM is required, as shown above.
-l, --list-package list contents of PACKAGE (or all packages if none given)
-p, --package-query search for REGEXP in the entire cygwin.com package
repository (requires internet connectivity)
+ --delete-orphaned-installation-keys
+ Delete installation keys of old, now unused
+ installations from the registry. Requires the right
+ to change the registry.
+ --enable-unique-object-names Cygwin-DLL
+ --disable-unique-object-names Cygwin-DLL
+ --show-unique-object-names Cygwin-DLL
+ Enable, disable, or show the setting of the
+ \"unique object names\" setting in the Cygwin DLL
+ given as argument to this option. The DLL path must
+ be given as valid Windows(!) path.
+ See the users guide for more information.
+ If you don't know what this means, don't change it.
-v, --verbose produce more verbose output
-h, --help annotate output with explanatory comments when given
with another command, otherwise print this help
@@ -184,6 +202,65 @@ for example:</para>
<prompt>$</prompt> <userinput>cygcheck -s -v -r -h &gt; cygcheck_output.txt</userinput>
</screen>
+<para>
+Each Cygwin DLL stores its path and installation key in the registry.
+This allows troubleshooting of problems which could be a result of having
+multiple concurrent Cygwin installations. However, if you're experimenting
+a lot with different Cygwin installation paths, your registry could
+accumulate a lot of old Cygwin installation entries for which the
+installation doesn't exist anymore. To get rid of these orphaned registry
+entries, use the <command>cygcheck --delete-orphaned-installation-keys</command>
+command.</para>
+
+<para>
+Each Cygwin DLL generates a key value from its installation path. This
+value is not only stored in the registry, it's also used to generate
+global object names used for interprocess communication. This keeps
+different Cygwin installations separate. Processes running under a
+Cygwin DLL installed in C:\cygwin don't see processes running under a
+Cygwin DLL installed in C:\Program Files\cygwin. This allows
+running multiple versions of Cygwin DLLs without these versions to
+interfere with each other, or to run small third-party installations
+for a specific purpose independently from a Cygwin net distribution.
+</para>
+
+<para>
+For debugging purposes it could be desired that the various Cygwin DLLs
+use the same key, independently from their installation paths. If the
+DLLs have different versions, trying to run processes under these DLLs
+concurrently will result in error messages like this one:</para>
+
+<screen>
+*** shared version mismatch detected - 0x8A88009C/0x75BE0074.
+This problem is probably due to using incompatible versions of the cygwin DLL.
+Search for cygwin1.dll using the Windows Start->Find/Search facility
+and delete all but the most recent version. The most recent version *should*
+reside in x:\\cygwin\\bin, where 'x' is the drive on which you have
+installed the cygwin distribution. Rebooting is also suggested if you
+are unable to find another cygwin DLL.
+</screen>
+
+<para>
+To disable the usage of a unique key value of a certain Cygwin DLL, use
+the <command>cygcheck --disable-unique-object-names Cygwin-DLL</command>
+command. <literal>Cygwin-DLL</literal> is the Windows path (*not* a
+Cygwin POSIX path) to the DLL for which you want to disable this feature.
+Note that you have to stop all Cygwin processes running under this DLL,
+before you're allowed to change this setting. For instance, run
+<command>cygcheck</command> from a DOS command line for this purpose.</para>
+
+<para>To re-enable the usage of a unique key, use the
+<command>cygcheck --enable-unique-object-names Cygwin-DLL</command> command.
+This option has the same characteristics as the
+<literal>--disable-unique-object-names</literal> option</para>
+
+<para>Finally, you can use
+<command>cygcheck --show-unique-object-names Cygwin-DLL</command> to find out
+if the given Cygwin DLL use unique object names or not. In contrast to the
+<literal>--disable-...</literal> and <literal>--enable-...</literal> options,
+the <literal>--show-unique-object-names</literal> option also works for
+Cygwin DLLs which are currently in use.</para>
+
</sect2>
<sect2 id="cygpath"><title>cygpath</title>