diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7bb939797..4dc50372a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2010-08-30 Christopher Faylor + + * dcrt0.cc (dll_crt0_0): Move sigproc_init later, after cygheap + initialization since it relies on the cygheap existing (even if + it shouldn't matter do to dll initialization serialization). + 2010-08-30 Corinna Vinschen * posix.sgml (std-notes): Fix typos and incorrectnesses. diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 12e84f42e..4ab39afaa 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -702,12 +702,6 @@ dll_crt0_0 () SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); - /* Initialize signal processing here, early, in the hopes that the creation - of a thread early in the process will cause more predictability in memory - layout for the main thread. */ - if (!dynamically_loaded) - sigproc_init (); - lock_process::init (); _impure_ptr = _GLOBAL_REENT; _impure_ptr->_stdin = &_impure_ptr->__sf[0]; @@ -746,6 +740,12 @@ dll_crt0_0 () } } + /* Initialize signal processing here, early, in the hopes that the creation + of a thread early in the process will cause more predictability in memory + layout for the main thread. */ + if (!dynamically_loaded) + sigproc_init (); + user_data->threadinterface->Init (); _cygtls::init ();