On Mar 21 09:03, Alexey Sokolov wrote: > Hello, > If the same DLL is dlopen()ed several times, dlclose() will actually > unload the DLL only after the same number of calls to dlclose(). > > This works fine in cygwin, until we add fork(). > > It looks like in the child process the counters of inherited DLLs are > set to 1, so the first dlclose() unloads it, causing segfault for > subsequent access to the unloaded code. > https://github.com/znc/znc/issues/1385#issuecomment-288014319 has a > working minimal example of this behavior.
dlopen/dlclose reference counting was broken. I applied a fix and uploaded new dev snapshots to https://cygwin.com/snapshots/ I'm just building a 2.8.0-0.2 test release as well. Please test. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
signature.asc
Description: PGP signature