* dll_init.cc (dll_dllcrt0): Don't try to initialize dll data if we're
dynamically loaded since fork() doesn't work in that scenario anyway. (dll_dllcrt0_1): Don't accommodate dynamically loaded dlls. * exceptions.cc (ctrl_c_handler): Don't lock the process; there's too much risk of deadlock. * sigproc.cc (_cygtls::remove_wq): Don't try to remove anything from the waitq if there is obviously nothing there. * strace.cc (strace::activate): Allow stracing dynamically loaded cygwin1.dll.
This commit is contained in:
parent
069e637c0e
commit
5025bf330b
|
@ -1,3 +1,15 @@
|
|||
2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx>
|
||||
|
||||
* dll_init.cc (dll_dllcrt0): Don't try to initialize dll data if we're
|
||||
dynamically loaded since fork() doesn't work in that scenario anyway.
|
||||
(dll_dllcrt0_1): Don't accommodate dynamically loaded dlls.
|
||||
* exceptions.cc (ctrl_c_handler): Don't lock the process; there's too
|
||||
much risk of deadlock.
|
||||
* sigproc.cc (_cygtls::remove_wq): Don't try to remove anything from
|
||||
the waitq if there is obviously nothing there.
|
||||
* strace.cc (strace::activate): Allow stracing dynamically loaded
|
||||
cygwin1.dll.
|
||||
|
||||
2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx>
|
||||
|
||||
* fhandler_termios.cc (tty_min::kill_pgrp): Don't send __SIGSETPGRP
|
||||
|
|
|
@ -546,12 +546,10 @@ struct dllcrt0_info
|
|||
extern "C" int
|
||||
dll_dllcrt0 (HMODULE h, per_process *p)
|
||||
{
|
||||
if (dynamically_loaded)
|
||||
return 1;
|
||||
dllcrt0_info x (h, p);
|
||||
|
||||
if (_my_tls.isinitialized ())
|
||||
dll_dllcrt0_1 (&x);
|
||||
else
|
||||
_my_tls.call ((DWORD (*) (void *, void *)) dll_dllcrt0_1, &x);
|
||||
dll_dllcrt0_1 (&x);
|
||||
return x.res;
|
||||
}
|
||||
|
||||
|
@ -592,11 +590,7 @@ dll_dllcrt0_1 (VOID *x)
|
|||
However, that's just a note for the record; at the moment, we can't
|
||||
see any need to worry about this happening. */
|
||||
|
||||
/* Partially initialize Cygwin guts for non-cygwin apps. */
|
||||
if (dynamically_loaded && user_data->magic_biscuit == 0)
|
||||
dll_crt0 (p);
|
||||
else
|
||||
check_sanity_and_sync (p);
|
||||
check_sanity_and_sync (p);
|
||||
|
||||
dll_type type;
|
||||
|
||||
|
|
|
@ -927,7 +927,6 @@ static BOOL WINAPI
|
|||
ctrl_c_handler (DWORD type)
|
||||
{
|
||||
static bool saw_close;
|
||||
lock_process now;
|
||||
|
||||
if (!cygwin_finished_initializing)
|
||||
{
|
||||
|
|
|
@ -346,7 +346,7 @@ out1:
|
|||
void
|
||||
_cygtls::remove_wq (DWORD wait)
|
||||
{
|
||||
if (exit_state < ES_FINAL && sync_proc_subproc
|
||||
if (exit_state < ES_FINAL && waitq_head.next && sync_proc_subproc
|
||||
&& sync_proc_subproc.acquire (wait))
|
||||
{
|
||||
for (waitq *w = &waitq_head; w->next != NULL; w = w->next)
|
||||
|
|
|
@ -34,7 +34,7 @@ class strace NO_COPY strace;
|
|||
void
|
||||
strace::activate (bool isfork)
|
||||
{
|
||||
if (!dynamically_loaded && !_active && being_debugged ())
|
||||
if (!_active && being_debugged ())
|
||||
{
|
||||
char buf[30];
|
||||
__small_sprintf (buf, "cYg%8x %x %d", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active, isfork);
|
||||
|
|
Loading…
Reference in New Issue