X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=3.8 required=5.0 tests=BAYES_00,BOTNET,RCVD_IN_DNSWL_NONE,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Date: Tue, 05 Oct 2010 09:08:24 -0400 From: Jason Tishler To: cygwin AT cygwin DOT com Subject: Re: rebaseall on [1.7] : first glitch for ages Message-id: <20101005130824.GA3224@tishler.net> Mail-followup-to: cygwin AT cygwin DOT com References: <4CAB15A6 DOT 1020007 AT bonhard DOT uklinux DOT net> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline In-reply-to: <4CAB15A6.1020007@bonhard.uklinux.net> User-Agent: Mutt/1.4.2.1i X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 Fergus, On Tue, Oct 05, 2010 at 01:10:14PM +0100, Fergus wrote: > For the first time for months on my system rebaseall is reporting an > error as follows: > > M:\>bin\dash > $ /bin/rebaseall > << whirr away for ages >> What precisely does "for ages" mean? Note you can use the "-v" option to make rebaseall verbose. Maybe this will help you debug. > FixImage > (/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll) > failed with last error = 13 > << halt immediately >> > $ FWIW, we have the following: $ fgrep 13L /usr/include/w32api/winerror.h | head -1 #define ERROR_INVALID_DATA 13L It seems like rebase cannot handle 64-bit DLLs? > Q1: OS is XP Pro SP3, 32 bit. I always install everything. Can I > recover from this rebaseall error by fixing something or should I > simply un-install all 64-related packages (and never have installed > them in the first place)? If you install all Cygwin packages, then you will likely run out of rebase address space. > Q2: rebaseall appears not to "skip and move on" when it encounters an > error. In this case the whole thing simply halted as soon as this > report came up. Can you tell me what actually happens in this kind of > circumstance: does it skip-and-move-on or oh-dear-screech-to-a-halt? rebase will skip some errors (e.g., when a DLL is not writable), but will exit if FixImage() fails. Maybe rebase should skip this error too? > Q3: does rebaseall have a tasklist somewhere, that it reads? Or does > it simply work its way through bin/ lib/ [and others] looking for > executables and .dlls, and do stuff to them? rebaseall uses the former approach. It creates a list of files to rebase from setup.exe's "package database" and an optional user supplied file list. From the rebaseall script, we have the following: # Create rebase list find /etc/setup -name '*.lst.gz' | xargs gzip -d -c | grep -E "\.($Suffixes)\$" | sed -e '/cygwin1\.dll$/d' -e '/cyglsa.*\.dll$/d' -e 's/^/\//' >"$TmpFile" # Append user supplied file list, if any if [ -n "$FileList" ] then cat "$FileList" >>"$TmpFile" fi Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 -- 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