X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_00,RCVD_NUMERIC_HELO,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Heiko Elger Subject: rebaseall/peflagsall/perlrebase - which is the recommended way using CPAN modules Date: Thu, 2 Feb 2012 12:44:02 +0000 (UTC) Lines: 73 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit User-Agent: Loom/3.14 (http://gmane.org/) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hello, I'm using latest snapshot and all installed cygwin packages are up to date. All categories except KDE, GNOME, AUDIO and GAMES are installed. $ uname -a CYGWIN_NT-6.1-WOW64 PCFX061 1.7.10s(0.259/5/3) 20120201 05:28:17 i686 Cygwin And I've installed an build some CPAN modules. rebaseall and peflagsall are run - cause of other fork failures nad runing WIN7/64. But there are still some fork errors (not reproducabale) - perhaps of not using perlrebase. In posting http://thread.gmane.org/gmane.os.cygwin/130879/focus=130884 I've found an information that all perl modules have to be rebased together with perlrebase on top of rebaseall. So I take a deeper look into the perl rebase script and read some postings regarding having problems with fork error. perlrebase will rebase all releated perl5 DLLs together to a address range. This address range should be below the address range used by rebaseall and there has to be free memory space below the perlrebase address range. This is cause of cygwin perl internals (http://thread.gmane.org/gmane.os.cygwin/130879/focus=130884) whil eusing CPAN XS modules. So far so good. Another thing which is done by perlrebase is the following: all DLLs are set to be not to have a dynamicbase (--dynamicbase=0) flag set! On the other hand peflagsall will set the opposite: --dynamicbase=1 for all dlls including perl5 dll. So for me it's really not clear - what to do exactly - to possible resolve fork errors. Another interesting thing is that the default address of perlrebase will conflict with my address range of rebase all. The rebaseall address range will use addresses from 0x70000000 .. 0x479c0000! And the default address range of perlrebase is 0x57000000 (I know I can override it) - so both ranges will overlap ... Overriding the address range will break the rebase database which is used since rebase 4.x. So I cannot easily figure out address ranges which will overlap with "rebase - s -i". Can anyone give me a hint - what is correct way in rebaseall/peflags/perreabe cygwin DLLs, perl5 DLLS and perl5 CPAN DLLs. I know that a new perlrebase is under developement - but it's not released yet cause of other problems. The new perlrebase addresses will address more problems (adding more and more CPAN modules, .... ). But my system is really static - no more CPAN modules will be added - so adding other modules is not the problem. Perhaps this si already solved with the new perlrebase script? So - what is the recommended memory layout (DLLS) on such a system. Any help is welcome. best regards heiko -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple