From: noer AT cygnus DOT com (Geoffrey Noer) Subject: New cygwin32 development snapshot 9/29/98 29 Sep 1998 22:02:40 -0700 Message-ID: <19980929212342.54880.cygnus.cygwin32.developers@cygnus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: cygwin32-developers AT cygnus DOT com Hi all, Another snapshot is available in the usual place. Note that Windows 9x support still needs some work. I may hold B20 back until this is resolved. (Patches welcome as always!) :-) Following are the ChangeLog entries since the last snapshot. Regards, Geoffrey Noer noer AT cygnus DOT com -----------------------> snip <------------------------------ Tue Sep 29 23:33:11 1998 Christopher Faylor * fhandler_tty.cc (fhandler_pty_master::close): Make sure both sides of both pipes associated with a tty master are closed or suffer handle leaks. Tue Sep 29 16:55:00 1998 Geoffrey Noer * path.cc (mount_info::init): remove default mounts for raw devices * utils/mount.cc (reset_mounts): ditto (main, usage): new -f flag disables warning messages about missing mount point directories. Two new flags, disabled for now: -c will create missing mount point directory, -g will select adding the mount point to the global registry location. * include/sys/mount.h: add MOUNT_GLOBAL define, for future use. Tue Sep 29 14:20:30 1998 Christopher Faylor * exceptions.cc (exception): Use %p to denote some hex values. * winsup.h (read_info): Add jmp_buf to structure. Required for syscalls.cc change below. Mon Sep 28 19:36:41 1998 Syd Polk * include/{tchar.h, direct.h}: Added so that tcl8.1a2 can be compiled with cygwin. Mon Sep 28 19:36:41 1998 Christopher Faylor * syscalls.cc (thread_reset): Yet another method for handling interruptible reads. (_read): Use thread_reset to reset reads after a signal. Sun Sep 27 21:11:46 1998 Christopher Faylor * cygwin.din: New alias for __cygwin32_stack_trace. * debug.cc (find_handle): Avoid leaving function without unlocking. (newh): Ditto. * exceptions.cc (__cygwin32_stack_trace): Rename to just `stack'. Shortens stack trace output. (exception): Use %p to distinguish register values. * fhandler_console.cc (fhandler_console::init): Remove debugging sig_protect. * init.cc (dll_entry): Move definition to avoid a compiler warning. * path.cc (mount_info::conv_to_win32_path): Detect case of root directory when setting win32 relative path. (mount): Remove obsolete label. * syscalls.cc (thread_sync): New function for exiting the read helper thread. (_read): Use new method for exiting the read helper thread. Sun Sep 27 11:25:06 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * delqueue.cc (delqueue_list::process_queue): Clear queue entry if file cannot be deleted for a reason other than sharing violation. Fri Sep 25 08:52:50 1998 Christopher Faylor * debug.cc: locker variables should all be static. * syscalls.cc (_read): Call ForceCloseHandle on thread handle since it is protected. Thu Sep 24 18:59:25 1998 Geoffrey Noer * path.cc (mount): don't verify that path is an existing directory. Instead * utils/mount.cc: verify that path is an existing directory and print warning if it's not. Still do the mount. Thu Sep 24 11:45:04 1998 Christopher Faylor * debug.cc: locker class variables must be NO_COPY since they contain data that should not be precisely duplicated after a fork. This hopefully fixes a "SIGSEGV" problem. * select.cc (peek_pipe): Pipes apparently should set both "read" and "exception" flags on EOF. Wed Sep 23 18:26:31 1998 DJ Delorie * doc/doctool.c (main): typo checking for --help Wed Sep 23 17:46:06 1998 Christopher Faylor * path.cc (symlink_check_one): Try much harder to ensure that CloseHandle is called on the file which was opened to check for a symlink. Avoid obsolete check for NULL buf. Wed Sep 23 17:11:50 1998 Christopher Faylor * syscalls.cc (_read): Close thread handle or suffer a leak. * dir.cc (opendir): Simplify logic. (readdir): Ditto. Close handle explicitly when hit end of files. (rewinddir): Close directory handle or suffer leak. (closedir): Simplify logic. Wed Sep 23 14:42:12 1998 Christopher Faylor patch from DJ Delorie : * path.cc (symlink_check_one): Don't re-define res or symlinks will be undetectable. Wed Sep 23 12:02:39 1998 Christopher Faylor * Change calls to api_fatal throughout to avoid need for \n (see below). Adapt some *_printf()/ExitProcess combinations to use api_fatal. * winsup.h (SIGTOMASK): Generate signal mask correctly for programs linked with newer cygwins. * dcrt0.cc (check_sanity_and_check): Set subtract constant for signal mask calculation based on whether binary was linked with "older" or "newer" cygwin. (do_global_ctors): Accept a second argument indicating whether the ctors should always be run. Necessary in forked processes for cygwin constructors which may do more than just allocate memory. (checkout): Remove obsolete function. (dll_crt0_1): Remove obsolete function call. Call do_global_ctors with second argument TRUE. (api_fatal): Change to a print-style function, allowing arguments. Always emit a "\n" after a message. (__main): Do not force running of constructors in forked processes. * exceptions.cc (call_handler): Simplify arguments passed to this function. Eliminate potential race by setting signal masks here. (sig_handle): Just calculate current sigaction pointer once. Change call_handler arguments. * fhandler_console.cc (fhandler_console::write_normal): Output unknown characters to screen. (fhandler_console::write): Make signal protection synchronous. * fork.cc (fork): Reorganize slightly to eliminate a compiler warning. * init.cc (dll_entry): Temporarily remove freeing of waitq_storage on thread detach until a more robust scheme is developed. * signal.cc (signal): Make signal protection synchronous. (sigaction): Ditto. * sigproc.cc (get_sig_dispatch_mutex): More debug info. (release_sig_dispatch_mutex): Work around potential bug in windows with double allocation of a mutex when WaitForSingleObject is interrupted. Save errno here only if about to call sig_send where it may be changed. (wait_sig): Remove unnecessary sig_sign stuff. Add some debugging output. * termios.cc (tcflow): Signal protection. (tcgetattr): Ditto. (tcsetattr): Make signal protection synchronous. * winsup.h: Add new extern for SIGTOMASK macro. Use it in SIGTOMASK macro. Move errno stuff to end so that it can benefit from previous declarations. * configure.in: Move AC_CANONICAL_SYSTEM up a little to avoid having configure generate some code (like the check for host type) twice. * configure: Regenerate. Wed Sep 23 11:49:55 1998 Christopher Faylor * path.cc (symlink_check_one): Fix handle leak resulting from open of file to check for symlink magic. Suggested by Corinna Vinschen . Wed Sep 23 08:33:26 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * fhandler_tty.cc (process_ioctl): Use console handle for ioctl operations. Tue Sep 22 23:58:20 1998 Geoffrey Noer based on patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * utils/ps.cc (main): rewrite ps to give it more options, including a, e, f, l, and u. Tue Sep 22 15:18:41 1998 Geoffrey Noer * path.cc (umount): remove initial system_printf (mount): stat path, verify that it's an existing directory, otherwise fail. (strncasematch, strcasematch): return 0 instead of FALSE * utils/mount.cc (reset_mounts): reset / to System drive, not C: as was done in the old days. Mon Sep 21 18:18:18 1998 Geoffrey Noer * path.cc (mount, umount, setmntent, getmntent, endmntent): make extern "C" Mon Sep 21 20:37:16 1998 DJ Delorie * doc/configure.in: don't try to find cc until we can correctly configure it for a native cc in a cross build. Mon Sep 21 17:17:14 1998 Geoffrey Noer * fhandler.cc (fhandler_disk_file::check_execable_p): don't check for .shc since that's non-standard. Check for .exe first. Mon Sep 21 14:57:50 1998 Geoffrey Noer * doc/Makefile.in: reference -db2html in case docbook tools aren't installed. Mon Sep 21 14:43:40 1998 Geoffrey Noer patch from DJ Delorie : * doc/doctool.c (scan_file): correct off by one error in malloc Mon Sep 21 14:28:38 1998 Christopher Faylor * fhandler.h (select_record): Clear memory in constructor. Mon Sep 21 08:49:22 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * select.h: Use unsigned int to hold count in fd_set structure or suffer alignment problems. (WINSOCK_FD_ZERO): Back out previous change as it is no longer needed due to the above. Sat Sep 19 22:58:18 1998 Christopher Faylor * fhandler_console.cc (console_read): Keep looping in ENABLE_LINE_INPUT mode when no characters are read. This apparently means that a CTRL-C has been hit. * select.cc (select_record::operator new): Remove. (setlect_stuff::~select_stuff): Use delete to remove record. (pipe_cleanup): Remove unneeded statement. (poll_socket): Add debugging statement. (start_thread_socket): Add debugging statements. * fhandler.h: Remove new operator from select_record. * select.h: Make WINSOCK_FD_ZERO more aggressive. * sigproc.cc (allow_sig_dispatch): Use new errno saving method. * syscalls.cc (_read): Reorganize stack freeing code to avoid overhead when it's not needed and to actually decommit stack memory. Sat Sep 19 19:16:32 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * select.cc (socket_cleanup): Avoid using a pointer after it has been deleted. Fri Sep 18 13:57:37 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * Makefile.in: Really remove extra slash in INCLUDES. Previous change didn't work. pipe.cc (make_pipe): set close-on-exec flag for non-inheritable pipes. Thu Sep 17 15:26:14 1998 Christopher Faylor * doc/Makefile.in: Add dummy install target. Thu Sep 17 12:30:49 1998 Christopher Faylor * winsup.h (per_thread*): New classes for storing and manipulating per_thread information. (threadstuff): New array of per_thread objects which are manipulated after a fork. (read_helper_thread_info): read() thread local storage. (waitq_storage): wait() thread local storage. * debug.cc (class locker): New class for generic locking of debug table manipulation. Use this throughout for locking access to thread/debug tables. (debug_init): Remove in favor of automatic constructor. * debug.h: Ditto. * fork.cc (fork): Iterate through threadstuff looking for thread information to clear out. Should solve some problems for Windows 95/98. * init.cc (dll_entry): Remove thread storage initialization. Use per_thread class for DLL_THREAD_DETEACH. * sigproc.cc: Use system_printf rather than alert_printf throughout since system_printf now has the same functionality. (sigproc_init): Use method to initialize per-thread storage. * sigproc.h: Remove waitq_storage declaration. * syscalls.cc (_read): Use per_thread class to manipulate per-thread information. * wait.cc (wait4): Ditto.