rebaseall on [1.7] : first glitch for ages

Charles Wilson
Tue Oct 5 14:11:00 GMT 2010

On 10/5/2010 9:08 AM, Jason Tishler wrote:
> On Tue, Oct 05, 2010 at 01:10:14PM +0100, Fergus wrote:
>> 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?

This is correct.  Until the mingw64-* toolchain was added to the distro,
the only 64bit dll was the 64bit cyglsa one -- which was specifically
excluded anyway.

Now that we have a few others...rebase should probably be extended.  Do
we have more "free" address space to play with on a 64bit OS?  Can
rebase maintain two separate regions to rebase 64bit and 32bit 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.

Hence my question above, at least with regards to 64bit DLLs.

>> 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?

I don't think so -- what if the DLL was "partially" written, and some
other failure occurred?  I'd want to know right away.  FixImage should
probably, for now, just return without error if the image is 64bit.


Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list