* fhandler.cc (fcntl): Print flags in hex.

* dcrt0.cc (dll_crt0_0): Semi-revert 2006-03-14 change which moved pinfo_init
and uinfo_init here.
(dll_crt0_1): Ditto.
(__dll_crt0): Ditto.  Don't call update_envptrs here.
(dll_crt0_1): Ditto.  Move wait_for_sigthread call here from dll_crt0_0.
* environ.cc (environ_init): Call it here instead.
* sigproc.cc (my_readsig): New static variable.
(wait_for_sigthread): Set up read pipe here since we are assured that we have
the proper privileges when this is called.
(talktome): Eliminate second argument since it is available as a global now.
(wait_sig): Reflect use of my_readsig.
This commit is contained in:
Christopher Faylor
2006-03-22 16:42:45 +00:00
parent 69769b7cb5
commit 81010d21e6
6 changed files with 59 additions and 39 deletions

View File

@@ -754,12 +754,6 @@ dll_crt0_0 ()
user_data->resourcelocks->Init ();
user_data->threadinterface->Init ();
if (!in_forkee)
{
pinfo_init (envp, envc);
uinfo_init (); /* initialize user info */
}
_cygtls::init ();
/* Initialize events */
@@ -838,6 +832,7 @@ dll_crt0_1 (char *)
fork_init ();
}
#endif
pinfo_init (envp, envc);
/* Can be set only after environment has been initialized. */
if (wincap.has_security ())
@@ -849,6 +844,14 @@ dll_crt0_1 (char *)
/* Allocate cygheap->fdtab */
dtable_init ();
uinfo_init (); /* initialize user info */
wait_for_sigthread ();
extern DWORD threadfunc_ix;
if (!threadfunc_ix)
system_printf ("internal error: couldn't determine location of thread function on stack. Expect signal problems.");
/* Connect to tty. */
tty_init ();
@@ -960,13 +963,7 @@ initialize_main_tls (char *padding)
extern "C" void __stdcall
_dll_crt0 ()
{
extern DWORD threadfunc_ix;
wait_for_sigthread ();
if (!threadfunc_ix)
system_printf ("internal error: couldn't determine location of thread function on stack. Expect signal problems.");
main_environ = user_data->envptr;
update_envptrs ();
char padding[CYGTLS_PADSIZE];