[ITA] _autorebase

Ken Brown kbrown@cornell.edu
Sun Dec 14 19:28:00 GMT 2014


On 12/14/2014 12:52 PM, Achim Gratz wrote:
> Ken Brown writes:
>> I just noticed a couple of things about the base address.  First, you
>> have a typo in line 4 of rebaselst (missing 'd').
>
> I'll fix that before the actual release.  Unless someone defines
> BaseAddress in the environment this doesn't poase a problem, though.
>
>> Second, you use a default base address of 0x70000000 on both arches,
>> but rebaseall uses 0x400000000 on x86_64.
>
> I haven't really seen why I'd need a different base address for x86_64
> and the past two years of me using that base address locally provide at
> least some justification.  I don't know where the values used in
> rebaseall came from, though, but I'm reasonably sure that they've been
> added to rebaseall after I've switched to rebaselst.  I don't mind
> changing it to the same value as rebaseall, based on the the
> architecture.  If anything that makes it easier to change the values
> should the need arise.
>
>> I also just noticed that rebaseall passes the --no-dynamicbase option
>> to rebase. Maybe you should do the same, and then you could forget
>> about the --noaslr option and unconditionally remove the call to
>> peflags from rebase_do.
>
> I'll have to see if I can dig out my notes from that time, but I think
> it was both the ASLR and the TSAware flag that were creating problems
> with some libraries (they are not supposed to have that latter flag set
> anyway, but a handful of them did for whatever reason).  Adding
> --no-dynamicbase is a good idea in any case since the code doesn't run
> the peflags unconditionally anymore.
>
>> Sorry about the constant nitpicking, but I only just thought of
>> comparing your script to rebaseall.
>
> No, actually it's good to have someone look at the code in depth and
> thank you for doing this.
>
>> I'm going to test this now, but I've already tested earlier versions,
>> so I don't expect to find any problems.
>
> I've replaced the packages with new versions having those fixes, please
> have another look.

The changes look good, and it works fine on an existing installation.  But 
there's a problem with a new installation.  The autorebase postinstall script 
seems to hang in one of the calls to "find", which I finally killed through the 
Task Manager.  /var/log/setup.log.full is full of error messages like

find: 
'./proc/registry/HKEY_CLASSES_ROOT/VirtualStore/MACHINE/SOFTWARE/Wow6432Node/Microsoft/DirectDraw/MostRecentApplication': 
Permission denied
./proc/registry/HKEY_CLASSES_ROOT/.dll: skipped because not rebaseable
./proc/registry/HKEY_CLASSES_ROOT/AppID/LocationApi.dll: skipped because not 
rebaseable
./proc/registry/HKEY_CLASSES_ROOT/AppID/MhegVM.dll: skipped because not rebaseable
./proc/registry/HKEY_CLASSES_ROOT/AppID/TOSHIBAMediaControllerIE.dll: skipped 
because not rebaseable
[...]

I don't have time to look at this more carefully today, but I wonder if the 
problem is that 000-cygwin-post-install.sh needs to run first in a new
installation.

Ken



More information about the Cygwin-apps mailing list