Ok, I was wrong about ash (not) using cygwin1.dll.

Running ldd on rebase and peflags reveals that they use it
too, which pretty much says that they are cygwin apps.

However, it also shows that the preferred load address, on
my system anyway, for cygwin1.dll is 0x61000000. That
explains the starting point for my -d rebasing -- to go
below cygwin1.dll.

cygwin1.dll has its base set when it is built. There may be
some way to rebase it, but I don't know what it is, though I
expect that there is a Windows tools for doing it if it
matters.

It was not necessary for me.

Checking my scripts, I eliminate cygwin1.dll from the list of
dlls, and ash.exe and peflags.exe from the list of exes. Could
probably remove rebase.exe as well, but it did not seem to
matter.

It *is* important that ash does *not* load some other big
dlls related to C libraries, which bash tends to want.
These in particular:

 cygintl-8.dll => /usr/bin/cygintl-8.dll (0x58f70000)
 cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x59060000)
 cygreadline7.dll => /usr/bin/cygreadline7.dll (0x57320000)
 cygncurses-9.dll => /usr/bin/cygncurses-9.dll (0x6db80000)
 cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x5c1e0000)

(Part of the output from ldd /bin/bash.)

Hope there's something here that helps ... Eliot

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

Reply via email to