?? changelog-1997
字號:
* spawn.cc (spawn_guts): save the path of the script itself, use the saved path while building the command line to execute.Thu Nov 20 22:58:23 1997 Geoffrey Noer <noer@cygnus.com> * stubs.cc: delete file, move unimplemented stubs to the files in which they would normally belong. * grp.cc (setgrent): implement (was in stubs.cc) * syscalls.cc: move regfree, mknod, setgid, set(e)uid, sync, crypt, and PPC __chkstk/_alloca/dll_entry stubs here from stubs.cc (sync): just return zero for now instead of -1 (crypt): return -1 instead of 0Thu Nov 20 22:41:57 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * spawn.cc (spawn_guts): A premature close of the spawned filehandle was possible when reparenting an exited process. Fix this. * dcrt0.cc (do_exit): Only do minimal cleanup if "pid focus" has moved to another windows process or the other process will become confused. patch from sos@prospect.com.ru (Sergey Okhapkin): * sigproc.cc (getsem): set errno to EPERM if existing semaphore cannot be opened. (wait_subproc): allow access to signal semaphores to process's owner only except for SIGCHLD (needed for SIGCHLD delivery after sexecXX calls).Thu Nov 20 00:52:58 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * syscalls.cc (hash_path_name): Ignore trailing backslash when calculating pathname hash. * hinfo.cc (hinfo_vec::de_linearize_fd_array): Set use_tty if /dev/ttyn is detected in the shared_fd_table. Before this change, executing "set CYGWIN_TTY=1", "bash", "unset CYGWIN_TTY", "/bin/pwd" would result in pwd printing nothing because the de_linearize code would use the wrong fhandler_xxx when reading from the buffer inherited from the parent process. * cygwin.din: Add new ctermid function for export. * syscalls.cc (ctermid): New function * exceptions.cc (call_handler): If called during a P_OVERLAY spawn, merely set appropriate flags and return. The spawn code will then clean up and exit. * sigproc.cc (proc_exists): Reorganize to better detect defunct processes. Don't clean up pinfo if process has a parent since the parent should clean up eventually. * spawn.cc: New global exec_exit. Set by signal handler to value which should be used on exit from aborted spawn. (spawn_guts): Try harder to let the child terminate (if it is going to) before exiting on a signal. Remove obsolete code. patch from sos@prospect.com.ru (Sergey Okhapkin): * exec.cc (file_exists): Removed * spawn.cc (spawn_guts): call perhaps_suffix to convert filename to win32 form and to check file existance; prog variable removed, all references changed to real_path variable. Do not inherit parent's window station/desktop on sexecXX calls. They are no longer needed with the new signal handling. (_spawnve): extra file existance check removed * winsup.h: file_exists prototype removedWed Nov 19 16:23:47 1997 Geoffrey Noer <noer@cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * cygwin.din: add missing exports for random -- initstate and setstate (accessed by gawk among others?)Tue Nov 18 22:27:10 1997 Geoffrey Noer <noer@cygnus.com> * Makefile.in: Add spaces after colons in rules for makeMon Nov 17 22:35:25 1997 Geoffrey Noer <noer@cygnus.com> patch from proven@cygnus.com (Chris Provenzano): * Makefile.in: set SHELL = @SHELL@, set VPATH to only @srcdir@. Remove mingw from directories to build for now, adapt rules for building sysdef files without fancy VPATH * configure: regenerate * config/i386/makefrag: add rules to build setjmp/longjmp * regexp/Makefile.in: set SHELL = @SHELL@ * regexp/configure: regenerate * utils/Makefile.in: set SHELL = @SHELL@ * utils/configure: regenerateMon Nov 17 18:36:50 1997 Geoffrey Noer <noer@rtl.cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * fhandler.cc (fhandler_disk_file::open): calls to symlink_XXX replaced with path_conv class calls. * path.cc (path_conv::path_conv): comments added, O_NOSYMLINK case added. * path.h (class path_conv): symlink_p, exec_p - new class members. * spawn.cc (spawn_guts): call path_conv instead of symlink_follow.Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> patch from cgf@bbc.com (Chris Faylor): * dcrt0.cc (do_exit): Use new pinfo element in debug statement. * pinfo.cc (pinfo_init): Eliminate use of "PID" environment variable in favor of scanning the process table for a SpawnedProcessId field matching current windows process id. Should speed up spawned process startup slightly. Delay setting of dwProcessId until process is capable of processing signals since this field is used to build signal semaphores. * signal.cc (kill_worker): Perform a `proc_exists' on the pid in question if signal == 0. This will verify that the process actually exists and was not abnormally terminated. * sigproc.cc (sigproc_init): Initialize dwProcessId field after signal processing has been initialized. (sigproc_terminate): Remove events[0] close. (getsem): Use GetCurrentProcessId to find the windows pid since this dwProcessId field is not yet set up. Use proc_exists to determine if error should be printed on OpenSemaphore error. (proc_exists): New function. Makes more exhaustive test of process existence. Determines if process died without going through normal shutdown. (wait_subproc): Close wakeup event only on thread exit. * spawn.cc: Remove pExeced. Use new field in pinfo. (spawn_guts): Initialize dwSpawnedProcessId field. * utils/ps.cc (main): Perform a kill(pid, 0) on any pids that appear to be active. This will clear out pids that have died abnormally. 'ps -f' bypasses this. * winsup.h (class pinfo): Add dwSpawnedProcessId field. Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * pinfo.cc ((pinfo_init): use dwProcessId for execed/spawned check, set subproc_ready event only if the process is exec'ed. * spawn.cc (spawn_guts): initialize hProcess and dwProcessId fields of pinfo on exec, keep progname field on spawn.Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * dcrt0.cc: remove commented out code * spawn.cc: fix misapplied patch problemSun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * fhandler.cc (fhandler_dev_null::open): Open Windows 'nul' device rather than "faking" a real open. (fhandler_dev_null::close): delete. (fhandler_dev_null::fstat): delete. (fhandler_dev_null::ioctl): delete. (fhandler_dev_null::read): delete. (fhandler_dev_null::write): delete. (fhandler_dev_null::lseek): delete. (fhandler_dev_null::dup): delete. * fhandler.h (class fhandler_base): delete above methods from class. * hinfo.cc (hinfo_vec::build_fhandler): Use new fhandler_dev_null class which opens 'nul' device. Treat /dev/null similarly to other Windows devices. This allows redirection of /dev/null to non-cygwin processes.Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * dcrt0.cc (do_exit): Use EXIT_* flags to determine how exit should proceed. Honor new EXIT_NOCLOSEALL to avoid close_all_files. * exceptions.cc (__cygwin32_exception_handler): Use new EXIT_SIGNAL define to indicate exiting due to signal. * signal.cc (sigprocmask): Slightly more defensive check against being called prior to complete cygwin setup. (_raise): Defensive check to guard against being called prior to complete cygwin setup. * sigproc.cc (stopped_or_terminated): Use new EXIT_SIGNAL define to detect exiting due to signal. * sigproc.h: Define flags to be used during exit process as EXIT_*. * spawn.cc (spawn_guts): Use EXIT_* constants to control how do_exit proceeds after _P_OVERLAY.Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> * sysconf.cc (sysconf): return 1048576 for ARG_MAX until we figure out the right value (_POSIX_ARG_MAX is only 4K which is too small).Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * dcrt0.cc (dll_crt0_1): call winsock_init if neccesary. * fhandler.cc ((fhandler_socket::fhandler_socket): moved to net.cc * fhandler.h (class fhandler_socket): destructor prototype added. * fork.cc (cygwin_fork_helper1): set PID_SOCKETS_USED in the child's pinfo if parent has open socket descriptors; call winsock_init in child code if necessary. * net.cc: static variable winsock_init_p removed; number_of_sockets is new global variable containing number of opened sockets. (winsock_init): made global, save "winsock inited" flag in process state field. (cygwin32_winsock calls): condition for winsock initialisation changed (fhandler_socket::fhandler_socket): new, moved from fhandler.cc; increment number_of_sockets on constructor call. (fhandler_socket::~fhandler_socket): new. Decrement number_of_sockets on destructor call, check for negative value. (fhandler_socket::ioctl): check for winsock initialisation added. * spawn.cc (spawn_guts): handle PID_SOCKETS_USED in child's pinfo. * winsup.h: PID_SOCKETS_USED - new enum value; number_of_sockets and winsock_init() prototypes added.Wed Nov 12 23:02:34 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * exceptions.cc: Substitute do_exit for _exit as appropriate. do_exit allows full 32 bits of exit value. The upper 16 bits are used for special cygwin operations. * winsup.h: Change definition of do_exit to allow calling from signal handler. * dcrt0.cc (do_exit): Change to allow calling from signal handler in place of _exit. This is necessary to ensure that only cygwin internal applications can exit with the upper order 16 bits set to non-zero.Wed Nov 12 23:02:34 1997 Geoffrey Noer <noer@cygnus.com> patch from cgf@bbc.com (Chris Faylor): * dcrt0.cc (do_exit): New function. Subsumes functionality of _exit but takes a DWORD argument. Changed to avoid some shutdown activities when called with REPARENTING bit set in argument. Also explicitly kills any executing non-cygwin subprocess from a spawn(P_OVERLAY)... (_exit): Use do_exit for exiting. Ensure that only low order 1 bits of status are used or confusion will result if exiting with some higher order bits set. * exceptions.cc (set_process_mask): Reflect new method for sig_send to send signals to self. (handle_sigsuspend): Reflect new method for sig_send to send signals to self. * fork.cc: A handle name was changed in the pinfo structure to be more reflective of its use. Change forkee_stopped to subproc_ready everywhere. * pinfo.cc (pinfo::clearout): Change forkee_stopped to subproc_ready. (pinfo_init): Use PID_EXECED flag to determine if this process has been execed. If so, signal the remaining stub in the process which invoked us so that the stub can terminate and let us take over as this pid. * sigproc.cc (sig_send): Change method for determining if sending signals to myself. A NULL pointer means communicate with my signal handler. This is necessary to allow communication with our own signal processors after reparenting an execed process. Also, add an additional test to detect if a process goes away in the middle of attempting to send it a signal. (allow_sig_dispatch): Reflect new method for sig_send to send signals to self. (getsem): Use dwProcessId in names for signal semaphores. Allows communicating with both parts of a process that is temporarily "split in two" while execing. (sig_proc): Avoid printing an error if WAIT_FAILED and exiting anyway. Process requests even if loop_wait == 0. (proc_subproc): Defensive check for manipulating processes prior to initialization or after terminating sigproc. Use different check for subprocesses that have been reparented. Hopefully this will eliminate WFSO, error 6 problems. (wait_subproc): Only exit when loop_wait == 0 and not dealing with a process. * spawn.cc: Set up two global variables, used on exit when execing a non-cygwin process: hExeced - handle of non-cygwin process which is being waited for by a stub, pExeced - windows pid of the process. (spawn_guts): Reorganize to always (temporarily) wait for the new process when P_OVERLAY. If a cygwin process is invoked, then the wait will return when an event is signalled and the new process will be "reparented" in the ppid. If a non-cygwin process is invoked, wait until the process exits or a signal is received which terminates the process. In this case, the do_exit function will terminate the non-cygwin process. * winsup.h: Rename forkee_stopped to subproc_ready since this event now has a dual role which is better defined by this new name. Add a new flag (PID_EXECED) for process_state. Define a new function `do_exit' which operates similarly to _exit but takes > 16 quantities with the high order bit signifying different exit actions.Mon Nov 10 17:11:08 1997 Geoffrey Noer <noer@cygnus.com> * include/utime.h: remove (moved to newlib/libc/sys/cygwin32/sys) so as not to conflict with the one in newlib/libc/include.Mon Nov 10 15:11:42 1997 Geoffrey Noer <noer@cygnus.com> patch from sos@prospect.com.ru (Sergey Okhapkin): * exceptions.cc (__cygwin32_exception_handler): exit with "core dumped" exit code after writing "core" file.Mon Nov 10 15:11:42 1997 Geoffrey Noer <noer@cygnus.com>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -