From 81010d21e6d40a76e9cdee849f21c90da5f54bec Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 22 Mar 2006 16:42:45 +0000 Subject: * 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. --- winsup/cygwin/dcrt0.cc | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'winsup/cygwin/dcrt0.cc') diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 5f7f2708b..971954fb3 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -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]; -- cgit v1.2.3