This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Question of the necessity of rebaseall
Lenik wrote:
On 2009-5-14 8:55, Larry Hall (Cygwin) wrote:
Lenik wrote:
Imagebase in PE header is something a bit of optional, that means if
two dlls with same imagebase, the OS kernel will automaticly relocate
one of them, to put them in different virtual spaces. So, rebase
should be a utility for optimizing the overall start-up speed, to
reduce avoidable relocations, rather then fix start-up errors.
Any idea?
cygwin1.dll cannot be relocated if the fork semantics are to work. So
while what you say above is true for apps in general, it's not true for
Cygwin apps.
I can't figure out how fork will break the relocation, for libraries
have been loaded, they're already relocated before invoke into fork, and
for libraries haven't been loaded, they don't need to share memory after
new processes created by fork.
You have it backwards. Forking doesn't break the relocation. Relocation
breaks forking. cygwin1.dll needs to have a very special memory layout to
implement the fork semantics in Win32. If this memory layout is disrupted,
fork breaks. Relocating cygwin1.dll disrupts the required memory layout.
'rebaseall' does its best to locate all Cygwin DLLs that it knows of
into a layout that avoids collisions. This maintains the required
memory layout so fork can do its job.
--
Larry Hall http://www.rfk.com
RFK Partners, Inc. (508) 893-9779 - RFK Office
216 Dalton Rd. (508) 893-9889 - FAX
Holliston, MA 01746
_____________________________________________________________________
A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/