CVSROOT: /cvs/uberbaum Module name: winsup Changes by: c...@sourceware.org 2011-05-30 16:09:29
Modified files: cygwin : ChangeLog dll_init.cc dll_init.h fork.cc Log message: * dll_init.cc (reserve_upto): Remove. (release_upto): Ditto. (dll_list::reserve_space): New function to reserve space needed by DLL_LOAD dlls early in the fork process. (dll_list::load_after_fork): Rewrite to use recursion to track reservations it makes while trying to make dlls land where they belong. (dll_list::load_after_fork_impl): New function used by load_after_fork. (dll_list::alloc): Initialize image base field. * dll_init.h (dll_list::prefered_base): New field. (dll_list::reserve_space): Declare new function. (dll_list::load_after_fork): Declare new function. * fork.cc (frok::child): call dll_list::reserve_space early, so we can retry if it fails. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/ChangeLog.diff?cvsroot=uberbaum&r1=1.5387&r2=1.5388 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/dll_init.cc.diff?cvsroot=uberbaum&r1=1.90&r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/dll_init.h.diff?cvsroot=uberbaum&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/fork.cc.diff?cvsroot=uberbaum&r1=1.224&r2=1.225