* sigproc.cc (no_signals_available): Detect hwait_sig == INVALID_HANDLE_VALUE.
(wait_sig): Set hwait_sig to INVALID_HANDLE_VALUE on __SIGEXIT. * cygtls.cc (_cygtls::init_thread): Zero entire _my_tls structure and no more. * cygtls.h (_my_tls::padding): Delete. (CYGTLS_PADSIZE): Redefine concept of padding to mean padding at the end of the stack. * dcrt0.cc (initialize_main_tls): Change return to void. * gentls_offsets: Treat const specially, too. Keep going after a '}' is found. Change negative offset calculation to use CYGTLS_PADSIZE. * init.cc (_my_oldfunc): New variable. (threadfunc_fe): Use stored tls value for oldfunc rather than blindly writing to the stack. (munge_threadfunc): Set oldfunc in tls. (dll_entry): Initialize tls allocation. * tlsoffsets.h: Regenerate.
This commit is contained in:
@@ -953,7 +953,7 @@ dll_crt0_1 (char *)
|
||||
cygwin_exit (user_data->main (__argc, __argv, *user_data->envptr));
|
||||
}
|
||||
|
||||
struct _reent *
|
||||
static void
|
||||
initialize_main_tls (char *padding)
|
||||
{
|
||||
if (!_main_tls)
|
||||
@@ -961,7 +961,7 @@ initialize_main_tls (char *padding)
|
||||
_main_tls = &_my_tls;
|
||||
_main_tls->init_thread (padding, NULL);
|
||||
}
|
||||
return &_main_tls->local_clib;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Wrap the real one, otherwise gdb gets confused about
|
||||
|
Reference in New Issue
Block a user