This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ITA] _autorebase


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]