diff options
author | Christopher Faylor <me@cgf.cx> | 2005-12-03 04:23:35 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-12-03 04:23:35 +0000 |
commit | f153e6b2804f06315d748bd1c8cad9f76798db09 (patch) | |
tree | 0ca55fa4e5dbf0332d9a3d587104236d51b1fb59 /winsup/cygwin/dcrt0.cc | |
parent | e7f6a31bb07e96eed5ffb7b8d137051292532930 (diff) | |
download | cygnal-f153e6b2804f06315d748bd1c8cad9f76798db09.tar.gz cygnal-f153e6b2804f06315d748bd1c8cad9f76798db09.tar.bz2 cygnal-f153e6b2804f06315d748bd1c8cad9f76798db09.zip |
* cygtls.h (_cygtls::el): New field.
(_cygtls::handle_exceptions): New function declaration.
(_cygtls::handle_threadlist_exception): Ditto.
(_cygtls::init_exception_handler): Ditto.
(_cygtls::init_threadlist_exceptions): Remove arg from declaration.
* cygtls.cc (_cygtls::call2): Don't initialize exceptions here.
(_cygtls::init_thread): Do it here instead and use member function.
(_cygtls::handle_threadlist_exception): Move into _cygtls class.
(_cygtls::init_exception_handler): Ditto. Rely on existence of 'el' memmber in
_cygtls.
(_cygtls::init_threadlist_exceptions): Ditto.
* dcrt0.cc (dll_crt0_1): Remove exception_list definition and setting since it
now commonly resides in the tls.
* exceptions.cc (init_exception_handler): Move to cygtls.cc.
(init_exceptions): Ditto.
(rtl_unwind): New, safe wrapper function for RtlUnwind.
(_cygtls::handle_exceptions): Move to _cygtls. Call rtl_unwind to unwind
frames and eliminate copying of structures. Put address of failing instruction
in si_addr, not the address on the stack. Return 0 to indicate that we've
handled this exception.
* external.cc (cygwin_internal): Make CW_INIT_EXCEPTIONS a no-op.
* sigproc.cc (wait_sig): Accommodate argument change to
_cygtls::init_threadlist_exceptions.
* tlsoffsets.h: Regenerate.
* include/exceptions.h (exception_list): Add more stuff to the exception list.
Apparently windows needs this?
(init_exceptions): Remove bogus declaration.
* include/cygwin/signal.h (SI_USER): Redefine as zero as per SUSv3.
* thread.cc (pthread_kill): Set si_pid and si_uid.
* timer.cc (timer_thread): Set si_code to SI_TIMER.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index dd5731a3e..8df5e6e4f 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -730,11 +730,6 @@ dll_crt0_0 () static void dll_crt0_1 (char *) { - /* According to onno@stack.urc.tue.nl, the exception handler record must - be on the stack. */ - /* FIXME: Verify forked children get their exception handler set up ok. */ - exception_list cygwin_except_entry; - check_sanity_and_sync (user_data); malloc_init (); #ifdef CGF @@ -744,9 +739,6 @@ dll_crt0_1 (char *) small_printf ("cmalloc returns %p\n", cmalloc (HEAP_STR, n)); #endif - /* Initialize SIGSEGV handling, etc. */ - init_exceptions (&cygwin_except_entry); - user_data->resourcelocks->Init (); user_data->threadinterface->Init (); ProtectHandle (hMainProc); |