From 585697536f9e5a3600d6b0b841b1eed1ce4def2b Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 5 Oct 2008 16:48:30 +0000 Subject: [PATCH] * dcrt0.cc (dll_crt0_0): Don't initialize signals early when dynamically loaded. (dll_crt0_1): Wait until this phase to initialize signals when dynamically loaded. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/dcrt0.cc | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 3bc0b074f..950130f13 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2008-10-05 Christopher Faylor + + * dcrt0.cc (dll_crt0_0): Don't initialize signals early when + dynamically loaded. + (dll_crt0_1): Wait until this phase to initialize signals when + dynamically loaded. + 2008-09-29 Christopher Faylor * thread.cc (pthread_mutex::_fixup_after_fork): Reinstate DEBUGGING diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 565d9aa25..cd9863ecb 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -697,7 +697,8 @@ 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. */ - sigproc_init (); + if (!dynamically_loaded) + sigproc_init (); lock_process::init (); _impure_ptr = _GLOBAL_REENT; @@ -759,6 +760,8 @@ dll_crt0_0 () void dll_crt0_1 (void *) { + if (dynamically_loaded) + sigproc_init (); check_sanity_and_sync (user_data); /* Initialize malloc and then call user_shared_initialize since it relies