mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-03-02 13:05:42 +08:00
* 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>
|
2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx>
|
||||||
|
|
||||||
* fhandler_termios.cc (tty_min::kill_pgrp): Don't send __SIGSETPGRP
|
* fhandler_termios.cc (tty_min::kill_pgrp): Don't send __SIGSETPGRP
|
||||||
|
@ -546,12 +546,10 @@ struct dllcrt0_info
|
|||||||
extern "C" int
|
extern "C" int
|
||||||
dll_dllcrt0 (HMODULE h, per_process *p)
|
dll_dllcrt0 (HMODULE h, per_process *p)
|
||||||
{
|
{
|
||||||
|
if (dynamically_loaded)
|
||||||
|
return 1;
|
||||||
dllcrt0_info x (h, p);
|
dllcrt0_info x (h, p);
|
||||||
|
|
||||||
if (_my_tls.isinitialized ())
|
|
||||||
dll_dllcrt0_1 (&x);
|
dll_dllcrt0_1 (&x);
|
||||||
else
|
|
||||||
_my_tls.call ((DWORD (*) (void *, void *)) dll_dllcrt0_1, &x);
|
|
||||||
return x.res;
|
return x.res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,10 +590,6 @@ dll_dllcrt0_1 (VOID *x)
|
|||||||
However, that's just a note for the record; at the moment, we can't
|
However, that's just a note for the record; at the moment, we can't
|
||||||
see any need to worry about this happening. */
|
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;
|
dll_type type;
|
||||||
|
@ -927,7 +927,6 @@ static BOOL WINAPI
|
|||||||
ctrl_c_handler (DWORD type)
|
ctrl_c_handler (DWORD type)
|
||||||
{
|
{
|
||||||
static bool saw_close;
|
static bool saw_close;
|
||||||
lock_process now;
|
|
||||||
|
|
||||||
if (!cygwin_finished_initializing)
|
if (!cygwin_finished_initializing)
|
||||||
{
|
{
|
||||||
|
@ -346,7 +346,7 @@ out1:
|
|||||||
void
|
void
|
||||||
_cygtls::remove_wq (DWORD wait)
|
_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))
|
&& sync_proc_subproc.acquire (wait))
|
||||||
{
|
{
|
||||||
for (waitq *w = &waitq_head; w->next != NULL; w = w->next)
|
for (waitq *w = &waitq_head; w->next != NULL; w = w->next)
|
||||||
|
@ -34,7 +34,7 @@ class strace NO_COPY strace;
|
|||||||
void
|
void
|
||||||
strace::activate (bool isfork)
|
strace::activate (bool isfork)
|
||||||
{
|
{
|
||||||
if (!dynamically_loaded && !_active && being_debugged ())
|
if (!_active && being_debugged ())
|
||||||
{
|
{
|
||||||
char buf[30];
|
char buf[30];
|
||||||
__small_sprintf (buf, "cYg%8x %x %d", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active, isfork);
|
__small_sprintf (buf, "cYg%8x %x %d", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active, isfork);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user