2005-01-13 Christopher Faylor * init.cc (dll_entry): Nuke attempt to set exit code since parent will use windows exit code if needed. * pinfo.cc (pinfo::exit): Move release() here to minimize pid creation race (suggested by Pierre Humblet). 2005-01-12 Christopher Faylor Reorganize header file inclusion throughout so that cygerrno.h comes first. * fhandler.h (select_record::thread_errno): Save any encountered errno here. (select_record::set_select_errno): New function. (select_record::saw_error): New function. (select_record::select_record): Initialize thread_errno to zero. * select.cc (set_handle_or_return_if_not_open): Set thread_errno on failure. (select_stuff::wait): Record errno for later resurrection in calling thread. (peek_serial): Ditto. 2005-01-12 Christopher Faylor * syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3. 2005-01-12 Christopher Faylor * pinfo.cc (pinfo::exit): Don't assume that this == myself. 2005-01-11 Christopher Faylor * pinfo.cc (pinfo::init): Don't close input handle on temporary (?) failure. 2005-01-11 Christopher Faylor * pinfo.h (_pinfo::set_exit_state): Declare new function. (pinfo::exit): Move here from _pinfo::exit. * sigproc.cc (child_info::sync): Use new function to set exitcode and process_state. * pinfo.cc (_pinfo::exit): Ditto. (proc_waiter): Ditto. (_pinfo::set_exit_state): Define new function. (_pinfo::dup_proc_pipe): Close handle when there is no parent process around to care about the exit value. * dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to make sure that myself is still mapped in parent. (do_exit): Reflect movement to pinfo::exit. (__api_fatal): Ditto. * exceptions.cc (signal_exit): Ditto. * errno.cc (errmap): Map PROC_NOT_FOUND. * init.cc (dll_entry): Release myself before exiting. * sigproc.cc (proc_can_be_signalled): Set errno appropriately. (sig_send): Ditto. Also remove ill-advised test for !myself->sendsig since this is an indication of a process which is still initializating -- it is not an error. (child_info::sync): Don't set exitcode here. Assume that will happen in proc_waiter, if necessary. * spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later. Don't wait at all if the process has already exited. Reflect movement to pinfo::exit. 2005-01-11 Corinna Vinschen * environ.cc (build_env): Disallow empty strings and strings starting with '=' in Win32 environment. 2005-01-08 Pierre Humblet * syscalls.cc (seteuid32): Only change the default dacl when seteuid succeeds. Do not close HKCU. 2005-01-06 Corinna Vinschen * fhandler_process.cc: Use strcasematch instead of strcasecmp throughout. 2005-01-06 Corinna Vinschen * syscalls.cc (rename): Fix behaviour in case of renaming directories according to SUSv3. 2005-01-06 Corinna Vinschen * fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow opening directories for writing. 2005-01-06 Christopher Faylor * timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather than pointer to sigev. 2005-01-05 Christopher Faylor * dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not always talk about a "version" when it's not a version. (dll_crt0_0): Change info passed to multiple_cygwin_problem to be a little more precise. * shared.cc (user_shared_initialize): Ditto. (shared_info::initialize): Ditto. 2005-01-03 Christopher Faylor * pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing or we will suffer an exit code race. 2005-01-03 Corinna Vinschen * signal.cc (abort): Call _GLOBAL_REENT's __cleanup. 2005-01-03 Corinna Vinschen * syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT. 2005-01-01 Christopher Faylor * cygthread.cc (cygthread::stub): Set inuse to false when exiting. (cygthread::cygthread): Actually pass name as argument to debugging output to avoid SEGV when strace'ing. (cygthread::release): Don't set stack_ptr to NULL, since it is only set once on first entry to a stub not on each stub iteration. (cygthead::exit_thread): Remove obsolete function. * cygthread.h (cygthread::exit_thread): Ditto. 2005-01-01 Christopher Faylor * shared.cc (open_shared): Don't attempt VirtualAlloc magic if first attempt to map memory fails.