On Jul 18 12:04, Corinna Vinschen wrote: > On Jul 17 14:54, Brian Ford wrote: > > > > On Wed, 27 Jun 2007, Corinna Vinschen wrote: > > > You could also try to eliminate any change from > > > http://cygwin.com/ml/cygwin-cvs/2007-q1/msg00139.html which is not > > > related to your problem, [...] > > > > You don't have any suggestions for how to best separate the patch into > > pieces do you? > > Look into the ChangeLog for the patch. It can be divided into two > different changes: > > - Changing the cygheap->shared_prefix handling. > [...] > > - Changing the way the user privileges are set at process startup. > > Affects dcrt0.cc, sec_helper.cc and security.h. > > Stupidly glaring at this change, I'm wondering if this is the culprit. > The change itself looks quite harmless. But the non-obvious result > is that already very early in the process initialization functions from > advapi32 are called. OTOH, Cygwin is load-time linked against advapi32. > So that shouldn't have any negative effect. Hmm.
I found an actual bug in this patch. I moved the call to set_cygwin_privileges (hProcToken); at process initialization to a point at which hProcToken wasn't even initialized. *hitting myself with a big stick* Weird that it worked at all. This *might* be the cause of the failing heap_init. The problem is that the calls to AdjustTokenPrivileges in set_privilege fail and debug_printf is called (too?) early in process initialization, which in turn results in dynamically loading user32.dll or some other Windows DLL. If this happens before the heap is initialized, there's a chance that the Windows DLL reserves space which is needed for the heap. What you could do to verify this: Apply the patch from http://cygwin.com/ml/cygwin-cvs/2007-q3/msg00039.html to Cygwin from right after the patch from http://cygwin.com/ml/cygwin-cvs/2007-q1/msg00139.html and try if the heap problem still occurs. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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/