From: cgf AT cygnus DOT com (Christopher Faylor) Subject: New snapshot, binary available 23 Dec 1998 12:05:36 -0800 Message-ID: <19981223145156.A18932.cygnus.cygwin32.developers@cygnus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: cygwin32-developers AT cygnus DOT com I've put up a new winsup snapshot in Geoff's winsup-snapshot directory: ftp://ftp.cygnus.com/pub/noer/winsup-snapshot/ There's also a cygwin1.dll.bz2 there which is based on this snapshot. The noticeable differences are: 1) Much reworking of serial handling. 2) gettimeofday works again. 3) configure --enable-threadsafe now will produce a threadsafe version of cygwin. Thanks to Data Distilleries for providing the bulk of the work for this. A caveat for the serial rehandling stuff: There was a problem in include/sys/termios.h where some constants for c_cflags overlapped each other. Rectifying this required renumbering some of the constants and changing the sizes of some of the fields in termios. Old programs should still work, but to avail yourselves of this fix you'll need to recompile using the new include/sys/termios.h found in the winsup snapshot. The ChangeLog is below. -Chris Faylor -Cygnus Solutions P.S. Best wishes to everyone on this holiday season! Wed Dec 23 11:45:33 1998 * strace.cc (strace_microseconds): new function; returns elapsed time in microseconds, using performance counters if available. (strace_vsprintf): print timestamps and deltas as microseconds, not seconds. Wed Dec 23 11:35:02 1998 * times.cc (__to_clock_t): Change return value to unsigned long long to prevent overflow. Tue Dec 22 19:37:55 1998 Christopher Faylor * fhandler.h: Reflect fhandler_*::init argument reordering. Add dup and init methods to fhandler_serial. * fhandler.cc (fhandler_base::init): Reorder arguments to mirror open(). * fhandler_console.cc (fhandler_console::init): Ditto. Initialize using fhandler_base rather than fhandler_serial as console is now being slowly uncouple from fhandler_serial. * fhandler_serial.cc (fhandler_serial::fhandler_serial): Set size of data structure or suffer strange behavior on exec(). (raw_read): Add debugging output. (fhandler_serial::init): New method. (fhandler_serial::open): Detect call from init method and avoid calling fhandler_base::open. Don't worry about non-blocking reads since they are now handled correctly by _read(). (fhandler_serial::tcsetattr): Honor ICANON in a kludgey sort of way. (fhandler_serial::tcgetattr): Ditto. (fhandler_serial::dup): New method. Ensures duplication of all elements of fhandler_serial class. * fhandler_tty.cc (fhandler_tty_master::init): Reflect init argument reordering. (fhandler_tty_slave::init): Ditto. * hinfo.cc (hinfo::init_std_file_from_handle): Remove unnecessary argument. (hinfo_init): Reflect change to init_std_file_from_handle. (cygwin_attach_handle_to_fd): Use more appropriate types for arguments. (hinfo::build_fhandler): Add some slop to allocated buffer just for paranoia's sake. (hinfo::dup2): Avoid dereferencing a NULL pointer when oldfd==newfd. * pipe.cc (make_pipe): Reflect init argument change. * shared.h: Another immigrant from winsup.h * winsup.h: Reflect change to init_std_file_from_handle. Relocate a declaration to shared.h so that it can be used in fhandler.h. * include/sys/cygwin.h: Reflect change to cygwin_attach_handle_to_fd. Mon Dec 21 16:22:48 1998 Christopher Faylor * fhandler.cc (fhandler_base::open): Detect serial device as a special case requiring an overlapped open. * fhandler.h (fhandler_serial): Add several methods. Add new 'fixup after fork required' field. * fhandler_serial.cc (raw_read): Rewrite to come closer to handling VMIN VTIME parameters and to allow EINTR. (fhandler_serial::open): Initialize overlapped event here. Make error messages more explicit. (fhandler_serial::close): Close status event. (fhandler_serial::tcsetattr): Store vtime_ as milliseconds. Attempt to handle VMIN > 0, VTIME == 0 better. (fhandler_serial::fixup_after_fork): Initialize a new event handle after a fork. (fhandler_serial::de_linearize): Ditto. * hinfo.cc (hinfo::fixup_after_fork): Call fork fixer upper if close_on_exec of need_fork_fixup set. Sun Dec 20 16:05:25 1998 Geoffrey Noer * include/shellapi.h: replace with stub that includes windows.h like similar headers already do. * scandir.cc (scandir): add parens around assignment used as truth value. Sat Dec 19 00:42:44 1998 Christopher Faylor * thread.cc: Fix copyright info. * thread.h: Ditto. * libcmain.cc: gcc is now more picky about requiring a type for main(), so add one. * include/pthread.h: Add attribution for net contributor. Fri Dec 18 19:21:30 1998 Geoffrey Noer * pthread.cc: fix copyright header. * shared.h: ditto. Fri Dec 18 19:21:30 1998 Geoffrey Noer patch from Corinna Vinschen : * cygwin.din: export scandir and alphasort. * Makefile.in: add scandir.o to deps * scandir.cc: New file with scandir and alphasort implementations. * include/cygwin/version.h: Up API_MINOR. Fri Dec 18 16:44:07 1998 Geoffrey Noer * include/pthread.h: clean up, remove C++-style comments, remove pthread_getsequence_np proto. Fri Dec 18 15:26:33 1998 Christopher Faylor Throughout, prepend cygwin_ to functions that are exported as cygwin_* which previously needed to be aliased. * path.cc (cygwin_conv_to_win32_path): Resolve symbolic links. Return success or failure value. (cygwin_conv_to_full_win32_path): Ditto. (cygwin_conv_to_posix_path): Return success or failure value. (cygwin_win32_to_posix_path_list): Ditto. (cygwin_posix_to_win32_path_list): Ditto. * shared.h: New include file that incorporates parts of winsup.h, fhandler_tty.h, path.h, and delqueue.h. * Makefile.in: Remove old include files. * cygwin.din: cygwin_* aliases are no longer required. * libccrt0.cc: Store api_minor in per_process structure. * select.cc: Change meaning of second argument to ready_for_read to indicate whether read_ahead should be ignored. * fhandler.h: Reflect change in second argument to ready_for_read. * syscalls.cc (_read): Ditto. * termios.cc: Throughout, detect attempt to use old style termios structure and convert as appropriate. * ioctl.cc (ioctl): Detect use of ioctl requiring termios field and call appropriate tc[gs]et* function to handle it. * fhandler_console.cc (fhandler_console::ioctl): Remove TC* calls that are now handled in main ioctl. * fhandler_tty.cc (fhandler_tty_slave::ioctl): Ditto. * include/cygwin/version.h: Added TERMIOS defines. Bumped API_MINOR. * include/sys/cygwin.h: Reflect change in return value for some cygwin_conv_* calls. * include/sys/termios.h: Reformat slightly. Add conversion macros for dealing with old style termios structure. * include/pthread.h: add Fri Dec 18 15:03:33 1998 Christopher Faylor * Makefile.in: Cleanup pthread usage. Fri Dec 18 14:35:59 1998 Christopher Faylor * Makefile.in: Remove obsolete header dependency for thread-safe build. Fri Dec 18 14:16:04 1998 Christopher Faylor * exceptions.cc (sig_handle): Avoid suspending top-level processes. * trace.cc: Remove unneeded include. Thu Dec 17 19:19:53 1998 Geoffrey Noer * cygwin.din: remove pthread_getsequence_np, _reent_clib Thu Dec 17 16:48:15 1998 Geoffrey Noer * include/cygwin/version.h: correct two typos in comments Thu Dec 17 19:11:31 1998 Christopher Faylor patch from Corinna Vinschen : * include/Windows32/Defines.h: Add values for using Windows function `DeviceIoControl()'. Thu Dec 17 18:00:34 1998 Christopher Faylor * dcrt0.cc (dll_crt0_1): exception_list is not a struct. * debug.cc (thread_stub): Ditto. Thu Dec 17 08:24:37 1998 Christopher Faylor * cygwin.din: Remove leading underscores from pthread functions. * include/cygwin/version.h: Bump DLL major version to 21, DLL minor version to 0, and API_MINOR to 5. Wed Dec 16 22:54:16 1998 Christopher Faylor Merge in thread-safe branch changes. Wed Dec 16 22:54:16 1998 Christopher Faylor * pthread.cc: Include winsup.h. Wed Dec 16 22:54:16 1998 Christopher Faylor * thread.cc: Reformat. * pthread.cc: New file. * cygwin.din: Add pthread interface functions Wed Dec 16 22:54:16 1998 Christopher Faylor * configure.in: Add some --enable options. * configure: Regenerate. * Makefile.in: Reorganize CFLAGS to recognize new --enable options. Wed Dec 16 22:54:16 1998 Christopher Faylor * fork.cc (stack_base): Store slightly different information in child_info_fork structure for later use in alloc_stack_hard_way. (fork): Set frame pointer information if stack has been reallocated. * dcrt0.cc (alloc_stack_hard_way): Reflect change in child_info_fork structure. (dll_crt0_1): Make thread initializers "static" and NO_COPY or death of the main thread causes death of other threads. * winsup.h (child_info_fork): Change structure. Wed Dec 16 22:54:16 1998 Christopher Faylor * thread.h: Remove extraneous declaration. * include/sys/strace.h: Make a new thread_printf function for use by new thread-safe code. * thread.cc: Use thread_printf throughout. Wed Dec 16 22:54:16 1998 Christopher Faylor patch from Marco Fuykschot (marco AT ddi DOT nl) * Throughout sources add locking control for preliminary thread-safe cygwin operation. Wed Dec 16 22:54:16 1998 Christopher Faylor * dcrt0.cc (getprogname): Should be a static. (alloc_stack): Extend to allow forking from another thread. (alloc_stack_hard_way): New function used by alloc_stack. (dll_crt0_1); Don't pass parameters since stack may be "funny". Use statics instead. Move fork/spawn checking into dll_crt0. (dll_crt0): Do fork spawn checking here. alloc_stack() will call dll_crt0_1 if forked from a non-main thread. * fork.cc (stack_base): New function determines base (and other values) of this thread's stack. (fork): Use new PROC_FORK1 method for forking. Provides more data to forkee. Use stack_base to set stack values. * winsup.h (child_info_fork): Changes for PROC_FORK1. Wed Dec 16 16:15:29 1998 Geoffrey Noer * include/shellapi.h: fix typo in DragQueryPoint proto. Mon Dec 14 12:37:43 1998 Geoffrey Noer * net.cc: minor respacing (get_ifconf): new local function, combines get_winnt_ifconf and get_win95_ifconf. (get_win95_ifconf): delete (get_winnt_ifconf): delete (fhandler_socket::ioctl): adjust ifconf calls in light of above, check returned value for safety. * include/cygwin/version.h: bump CYGWIN_VERSION_API_MINOR to 4 in honor of newly supported socket ioctls. patch from Corinna Vinschen : * include/asm/socket.h: Added defines for ioctl() calls SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK. * net.cc (get_winnt_ifconf): Check the registry entries instead of just calling get_win95_ifconf(). Added what argument to support the new ioctl() calls. (get_win95_ifconf): Check the Windows 9x registry entries as described by Tim Newsham. (fhandler_socket::ioctl): Support the ioctl() commands SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK. (get_if_flags): Check for a down interface.