Rebase dll.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Thu, 23 Feb 2017 21:41:59 +0200
changeset 2105 cf9f3802be19
parent 2104 6931c02bbc0e
child 2106 09eb514c7b80
Rebase dll.
cygwin.rst
--- a/cygwin.rst	Thu Feb 23 15:49:54 2017 +0200
+++ b/cygwin.rst	Thu Feb 23 21:41:59 2017 +0200
@@ -165,6 +165,34 @@
   Package              Version        Status
   cygwin               1.7.7-1        OK
 
+Rebase dll
+==========
+
+In order to Cygwin to maintain ``fork()`` syscall it should preserve same
+logical base address for dll to be able to share library between child and
+parent process. It was done via special hints in dlls.
+
+With new version of Cygwin software or external Windows libraries (AntiVirus may
+inject its their libraries into Cygwin process address space) it may happen that
+new library is overlapped with existing.
+
+There is ``rebase`` utility that changes base address hints for dll.
+
+You should finish all Cygwin processes in order to ``rebase`` to succeed.
+
+You may trigger automatic rebase of all packages in next run of ``setup.exe``
+with::
+
+  $ rebase-trigger full
+
+Read more at:
+
+* ``/usr/share/doc/rebase/README``
+* ``/usr/share/doc/Cygwin/_autorebase.README``
+
+https://chromium.googlesource.com/chromium/src/+/master/docs/cygwin_dll_remapping_failure.md
+  Handling repeated failures of rebaseall to allow cygwin remaps.
+
 Recreate /etc/passwd and /etc/groups.
 =====================================
 ::