From: Charles W. <cwi...@us...> - 2010-05-10 04:49:30
|
rebase provides various utilities that can assist with the dreaded DLL initialization problem, whose primary symptom is error messages of the form: "sync_with_child: *** child state waiting for longjmp" or "fork_child: *** recreate_mmaps_after_fork_failed". This "rebase problem" is due to fork() failing to reload DLLs in the child at the same address as in the parent. This is caused by DLLs which have conflicting base addresses. The rebase tool and the associated rebaseall script allow to change those base addresses for every DLL in an MSYS installation, so that they hopefully do not conflict. While the "rebase problem" has always been present in MSYS (and Cygwin), it is somewhat more pronounced in the modern era for two reasons: (1) recent versions of Windows play additional games with memory layout, and (2) msys executables are now more often dynamically linked, to more msys dll libraries. Perl is particularly problematic, as it loads a number of extension modules as DLLs; autogen also makes extensive use of mmap() across fork(), which is another "triggering" mechanism. Use the rebaseall script if you encounter errors of this type. ----- rebase-3.0.1_1-2 -- 2010-05-08 ----- * Fix a few oversights in rebaseall and peflagsall (dash != ash, don't rebase msys debug dll) ----- rebase-3.0.1_1-1 -- 2010-01-23 ----- * Initial msys packaging (unreleased) rebase-3.0.1_1-2-msys.RELEASE_NOTES.txt rebase-3.0.1_1-2-msys-1.0.15-bin.tar.lzma rebase-3.0.1_1-2-msys-1.0.15-doc.tar.lzma rebase-3.0.1_1-2-msys-1.0.15-lic.tar.lzma rebase-3.0.1_1-2-msys-1.0.15-src.tar.lzma http://mingw.cvs.sourceforge.net/viewvc/mingw/mingw-dist/msys/msys-rebase.xml?view=markup |