This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
Problems with: Improvements to fork handling (2/5)
- From: Christopher Faylor <cgf-use-the-mailinglist-please at cygwin dot com>
- To: cygwin-patches at cygwin dot com, Ryan Johnson <ryan dot johnson at cs dot utoronto dot ca>
- Date: Sat, 28 May 2011 16:50:00 -0400
- Subject: Problems with: Improvements to fork handling (2/5)
- References: <4DCAD609.70106@cs.utoronto.ca>
- Reply-to: cygwin-patches at cygwin dot com
On Wed, May 11, 2011 at 02:31:37PM -0400, Ryan Johnson wrote:
>This patch has the parent sort its dll list topologically by
>dependencies. Previously, attempts to load a DLL_LOAD dll risked pulling
>in dependencies automatically, and the latter would then not benefit
>from the code which "encourages" them to land in the right places. The
>dependency tracking is achieved using a simple class which allows to
>introspect a mapped dll image and pull out the dependencies it lists.
>The code currently rebuilds the dependency list at every fork rather
>than attempt to update it properly as modules are loaded and unloaded.
>Note that the topsort optimization affects only cygwin dlls, so any
>windows dlls which are pulled in dynamically (directly or indirectly)
>will still impose the usual risk of address space clobbers.
Bad news.
I applied this patch and the one after it but then noticed that zsh started
producing: "bad address: " errors.
path:4: bad address: /share/bin/dopath
term:1: bad address: /bin/tee
The errors disappear when I back this patch out.
FWIW, I was running "zsh -l". I have somewhat complicated
.zshrc/.zlogin/.zshenv files. I'll post them if needed.
Until this is fixed, this patch and the subsequent ones which rely on
it, can't go in. I did commit this fix but it has been backed out now.
cgf