cygheap changes

Christopher Faylor me@cgf.cx
Mon May 30 18:30:00 GMT 2005


I played with the cygheap last night and I think I now have things
working so that a normal program won't necessarily be bothered by
dlls loading into the space where the cygheap wants to live.  This
means that the need to rebase dlls should be reduced.

I accomplished this by putting the beginning of the cygheap at the
bottom of the ".idata" section and continuing it into its own fixed
(unitialized) section which is 1M in size.  This should be an adequate
amount of space for most programs, I think.  So, theoretically, a
program should only rarely have to extend the heap beyond that.

In the process of doing this, I got rid of all of the shared memory
trickery that used to be used to create a child cygheap and just used
the tried-and-true fork_copy to copy the parent's heap into the child.
This got rid of a respectable amount of code so I feel good about that
(even if the code I was getting rid of was mine).

My new DLL passes the test suite but I haven't tried it on Me yet and
I haven't verified that the heap can still grow beyond 1M.  However,
I'm encouraged.

This is just a heads up that a potential destabilizing change is about
to be checked in...

cgf



More information about the Cygwin-developers mailing list