Mail Archives: cygwin/2010/10/05/09:06:56
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
- Raw text -