From: noer AT cygnus DOT com (Geoffrey Noer) Subject: Winsup snapshot 981020 20 Oct 1998 17:23:02 -0700 Message-ID: <19981020165032.25543.cygnus.cygwin32.developers@cygnus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: cygwin32-developers AT cygnus DOT com Here's another winsup snapshot. I think we're getting ever so close now to b20 state. There are still a few bugs that need investigating (e.g. control-C in bash in Win 98 results in a several-second hang). This snapshot fixes the skipping every other shell script read command problem, the sed problem during configures bug, and some other stuff. Also, mingw is now built/installed by default and the latest patches have been applied to the mingw headers. Finally, updated include/Windows32 headers are included. Most importantly though, this snapshot introduces the new Cygwin versioning system. This will hopefully eliminate or greatly reduce Cygwin DLL conflicts as we put out new versions of Cygwin in the future. Here's a brief summary of the new Cygwin versions: * CYGWIN_VERSION_DLL_MAJOR, CYGWIN_VERSION_DLL_MINOR for the DLL version (currently 19.6). * CYGWIN_VERSION_MOUNT_REGISTRY: version associated with registry mount table format. (currently 1). * CYGWIN_VERSION_API_MAJOR, CYGWIN_VERSION_API_MINOR for tracking non-backward-compatible interface changes. (currently 0.0). * CYGWIN_VERSION_SHARED_DATA for tracking non-backward-compatible changes to the shared memory areas. (currently 1). Although the comments at the top of the file need updating, if you're curious, take a look at include/cygwin32/version.h. You will also note that the b20 Cygwin DLL will be named "cygwin1.dll". This will only be incremented when incompatible changes to the API or shared memory areas happen. Finally some additional information such as build date will be included in the DLL to help in debugging but which are not actively checked by anything. Finally, note that we will probably change the way the mount table looks in b20, removing that stupid "b15.0" version and putting the mounts under: Cygnus Solutions/Cygwin/mounts// The installer will hopefully be capable of moving entries from the old location to the new one for people. Note that the mount change isn't in this snapshot. As usual, feedback on any of this is welcomed. ChangeLog entries since the last snapshot follow. -- Geoffrey Noer noer AT cygnus DOT com ----------------------------> snip <------------------------------- Mon Oct 19 23:45:24 1998 Geoffrey Noer > * include/windows.h: remove Objective-C BOOL ifdef, now taken care of within the include/Windows32 header files. * fhandler_console.cc: fix KeyEvent references in light of changes to the KeyEvent struct in the Windows32 headers. Update include/Windows32 header files. Changes from Mumit Khan , Corinna Vinschen , and me. * include/Windows32/CommonFunctions.h: new file, contents from Functions.h. * include/Windows32/*.h: Misc updates. Mon Oct 19 20:26:15 1998 Christopher Faylor * debug.cc: Throughout, avoid calling *_printf while lock is active. Previous lock count was not thread-safe. * fhandler_console.cc (console_read): Avoid sending a \r to caller if ENABLE_LINE_INPUT. (fhandler_console::read): Rely on console_read to handle \r\n conversion. Mon Oct 19 12:10:09 1998 Christopher Faylor * mkvers.sh: Use more portable constructs to allow running this with /bin/sh, bash, and ksh. Mon Oct 19 11:19:58 1998 Christopher Faylor * path.cc (mount_info::from_registry): Missed "b15.0" part for writing mount information back to registry. (mount_info::init): Remove obsolete stuff. Mon Oct 19 10:42:17 1998 Christopher Faylor * Makefile.in: Avoid newer GNU make construction when building version.cc. Mon Oct 19 00:09:06 1998 Geoffrey Noer * Makefile.in: invoke mkvers.sh with $(SHELL) Sun Oct 18 15:19:17 1998 Christopher Faylor * fhandler.cc (set_name): Accept unit argument for generating win32_name. (fhandler_base::fhandler_base): Ditto. (fhandler_dev_floppy::fhandler_dev_floppy): Ditto. (fhandler_dev_tape::fhandler_dev_tape): Ditto. (fstat): Set symlink bit only if symlink_p is positive. * fhandler.h: Reflect unit argument changes. * fhandler_serial.cc (fhandler_serial::fhandler_serial): Accept unit argument for generating win32_name. * hinfo.cc (hinfo::build_fhandler): Pass unit argument to constructor where apropriate. * path.cc (path_conv::path_conv): Set symlink_p to a positive value if !nofollow, negative otherwise. (windows_device_names): Can't default to \dev\comx. \dev part doesn't work. (get_device_number): Accept just "comN" for backwards compatibility. Sat Oct 17 01:58:15 1998 Christopher Faylor * dcrt0.cc (globify): Fix problem with argument corruption due to use of pointer freed by realloc. Sat Oct 17 00:10:53 1998 Christopher Faylor Change NOT_OPEN_FD to dtable.not_open throughout. * Makefile.in: Change .dll name to cygwin1.dll. Increment the '1' when there are API/shared memory changes. Make version.cc file every time .dll is linked. Remove datestamp stuff. * mkvers.sh: New file. Creates version.cc. * cygwin.din: Export setdtablesize. * dcrt0.cc: Remove obsolete version variables. (build_argv): Use issep() macro rather than isspace since isspace includes whitespace that the shell does not consider a command separator. (check_sanity_and_sync): Use new cygwin version defines and structures for compatibility checking. (dll_crt0_1): Ditto. (__api_fatal): Renamed from api_fatal. Now always called from macro which tacks program name to beginning of fmt. Increase size of buffer. * environ.cc (regopt): Use new reg_key class constructor functionality. * net.cc (getdomainname): Ditto. * path.cc (read_mounts): Ditto. (mount_info::from_registry): Ditto. (mount_info::to_registry): Ditto. (hash_path_name): No need for this to be a "C" function. * external.cc (cygwin32_internal): Export version info strings. * external.h: Add CW_GETVERSIONINFO. * fhandler.cc (fhandler_base::write): Eliminate use of MIN macro. * init.cc (set_dllname): Obsolete function. Handled in version.cc. (dll_entry): Remove reference to set_dllname. * libccrt0.cc (this_proc): Renamed from cygwin_statu. (cygwin_crt0_common): Record api version in this_proc. * mmap.cc (recreate_mmaps_after_fork): No need for this to be a "C" function. * syscalls.cc (close_all_files): Ditto. * pinfo.cc (lock_pinfo_for_update): Eliminate a compiler warning. * registry.cc: Eliminate reg_session class. Augment reg_key to handle functionality of reg_session. * registry.h: Ditto. * shared.cc (shared_name): No need for this to be a "C" function. Use new cygwin version structure. (shared_info::initialize): Use new reg_key class constructor functionality. * smallprint.c (__small_vsprintf): Accept %P as a format specifier. Signifies the program name. * spawn.cc (spawn_guts): Quote *all* of the stuff the dcrt0.c considers special. * tty.cc (tty::inuse_event_exists): Remove debugging printf. It results in too much output to strace log. * uinfo.cc: Add a needed include. * uname.cc (uname): Use new cygwin version structure to fill in utsname fields. * winsup.h: Regroup into sections. Add new version structure. * include/utmp.h: Move login/logout function declarations here. * include/cygwin32/version.h: Define new CYGWIN version/info stuff here. Fri Oct 16 00:13:35 1998 Geoffrey Noer * Makefile.in: enable building mingw subdir by default Thu Oct 15 12:01:08 1998 Christopher Faylor * spawn.cc (spawn_guts): Set all security attributes for CreateProcess so that sexec will work properly. Thu Oct 15 08:49:12 1998 Christopher Faylor * hinfo.cc (hinfo::dup2): Avoid a null pointer dereference in a debugging printf. Wed Oct 14 18:06:51 1998 Geoffrey Noer patch from Corinna Vinschen : * fhandler_console.cc (fhandler_console::dup): reset default_color since the console fhandler forgets its default colorizing when it's `dup'ed. (fhandler_console::fhandler_console): remove unnecessary erasing in constructor of fhandler_console. Mon Oct 12 22:20:59 1998 Christopher Faylor * fcntl.cc (fcntl): According to the "Single UNIX Specification", F_DUPFD should *not* close its argument. Revert to previous behavior. * hinfo.cc (dup2): Guard against closing target fd too early. * pinfo.cc: Always initialize myself to a dummy value so that myself != NULL checks are avoided. * include/sys/strace.h (strace): Remove NULL check for myself. * dcrt0.cc (api_fatal): Ditto. * exceptions.cc (handle_exceptions): Ditto. * signal.cc (sigprocmask): Ditto. (_raise): Ditto. * strace.cc (get_strace_mutex): Ditto.