Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Reply-To: From: "Norman Vine" To: "'Jason Tishler'" , "'Michael Hudson'" , Cc: "'Cygwin'" , "'Python-List'" Subject: RE: Cygwin fork() rebase solution (was Re: dll_list::load_after_fork() blues ...) Date: Wed, 19 Dec 2001 21:28:07 -0500 Message-ID: <001801c188fd$f7ad07a0$a300a8c0@nhv> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2232.26 In-Reply-To: <20011218211235.GA2476@dothill.com> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal Jason Tishler writes: > >I believe that I have found a rebase solution to the Cygwin fork() >problem that has been causing Cygwin Python some grief lately. I added >an offset option to the attached rebase tool. If I spread the DLLs out >by an extra 0x10000, then the fork() problem seems to be mitigate. > >After rebasing the necessary Cygwin and Python DLLs: >I can run the full regression test without any failures *even though* >_socket is a shared module. > If my findings are corroborated, then I will work with the Cygwin team > to integrate rebase into setup.exe so that rebasing automatically occurs > every time that setup.exe is run. HI Jason 'Rebase'ing appears to work :-) Following report on a Win98 box with a 'fresh' Cygwin install Let me know if you need more testing done Cheers Norman ========== bash-2.05a$ uname -a CYGWIN_98-4.10 NHV 1.3.6(0.47/3/2) 2001-12-08 17:02 i686 unknown ========== bash-2.05a$ ./rebase.sh cygcrypto.dll: new base = 67f40000, new size = c0000 cygform5.dll: new base = 67f20000, new size = 20000 cygform6.dll: new base = 67f00000, new size = 20000 cyggdbm.dll: new base = 67ee0000, new size = 20000 cyghistory4.dll: new base = 67ec0000, new size = 20000 cyghistory5.dll: new base = 67ea0000, new size = 20000 cygmenu5.dll: new base = 67e80000, new size = 20000 cygmenu6.dll: new base = 67e60000, new size = 20000 cygncurses++5.dll: new base = 67e20000, new size = 40000 cygncurses++6.dll: new base = 67de0000, new size = 40000 cygncurses5.dll: new base = 67d90000, new size = 50000 cygncurses6.dll: new base = 67d40000, new size = 50000 cygpanel5.dll: new base = 67d20000, new size = 20000 cygpanel6.dll: new base = 67d00000, new size = 20000 cygreadline4.dll: new base = 67cd0000, new size = 30000 cygreadline5.dll: new base = 67c90000, new size = 40000 cygregex.dll: new base = 67c60000, new size = 30000 cygz.dll: new base = 67c30000, new size = 30000 cygssl.dll: new base = 67bf0000, new size = 40000 ======== bash-2.05a$ python regrtest.py Python 2.1.1 (#34, Dec 19 2001, 20:24:16) [GCC 2.95.3-5 (cygwin special)] on cygwin ....... 15 tests skipped: test_al test_bsddb test_cd test_cl test_dbm test_dl test_gl test_imgfile test_largefile test_linuxaudiodev test_locale test_nis test_socketserver test_sunaudiodev test_sundry ========= Cygwin DLL version info: DLL version: 1.3.6 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 47 Shared data: 3 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Sat Dec 8 17:02:30 EST 2001 CVS tag: cygwin-1-3-6-6 Shared id: cygwin1S3 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/