From: cgf AT cygnus DOT com (Christopher Faylor) Subject: New snapshot 25 Nov 1998 22:08:21 -0800 Message-ID: <19981126010059.A11779.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 snapshot of my current work on eliminating the configure pause problem (perhaps you've heard of it?). You can get it at: ftp://cambridge.cygnus.com/pub/cygwin/ There is also a pre-built DLL there. I'd be interested in hearing if you think that the configure pause is gone, worse, the same, more erratic, etc. Sergey has reported a couple of problems with this snapshot: 1) gcc -pipe has a 10% performance loss. 2) It doesn't work with Midnight Commander. On the other hand, #! stuff should work better... With this snapshot, TERM is also set to `cygwin' by default if TERM is initially not set. There was some discussion about using different values for this. It turns out that only `linux' or `cygwin' are appropriate. There are also termcap sources, a libtermcap.a.bz2, and a new termcap data file (which differs only in the inclusion of a cygwin alias) at the above location. The ChangeLog is below. And, finally, a belated Happy Thanksgiving to everyone! -chris Wed Nov 25 23:03:47 1998 Christopher Faylor * winsup.h: Make `isdirsep' an alias for SLASH_P. Implement isabspath convenience macro. Change sigprotect to a macro since it appears to be impossible to send __FILE__ type macros to a constructor. Change use of sig_protect throughout. * dcrt0.cc (dll_crt0_1): Use new path macro. * dlfcn.cc (get_full_path_of_dll): Ditto. * path.cc (path_conv::path_conv): Ditto. (normalize_posix_path): Ditto. (slashify): Ditto. (backslashify): Ditto. * syscalls.cc (num_entries): Ditto. * lock.cc: Redefine lock methods to pass debug info to {get,release}_signal_mutex. * environ.cc (environ_init): Correct strncmp test for TERM=, otherwise it's impossible to set TERM. * exceptions.cc: Eliminate lock_cs and unlock_cs macros. Use {get,release}_signal_mutex throughout. (signal_init): Don't initialize signal_mutex here. (set_process_mask): Remove vestiges of old mutex code. (handle_sigsuspend): Ditto. (call_handler): Move signal_arrived SetEvent back here. It was being triggered too often before. Detect when the signal thread is exiting. (sig_handle): Remove inappropriate SetEvent(signal_arrived). (events_terminate): Move close of signal_mutex elsewhere. * glob.cc: Increase "MAXPATHLEN" size for arguments that are not necessarily pathnames. * pinfo.cc (lpfu): Lower timeout for reporting possible problem with INFINITE wait. * sigproc.cc (wake_wait_subproc): Make this a macro with no arguments so that its use in the code is a little clearer. (proc_terminate): Eliminate signal blocking here since this should already be handled by the caller. (sigproc_init): It makes sense to initialize signal_mutex here, so do so. (__allow_sig_dispatch): Rename. Take debugging arguments. Pass arguments on to release_signal_mutex. (__block_sig_dispatch): Rename. Take debugging arguments. Pass arguments on to get_signal_mutex. Detect signal thread exiting confition. (__get_signal_mutex): Take debugging arguments. Maintain a stack of nested mutex calls for later display in __release_signal_mutex. Detect signal thread exit condition. Don't bother with locking if signal thread is executing or if just an exec stub. (__release_signal_mutex): Don't bother with locking if signal thread is executing or if just an exec stub. * sigproc.h: Reflect renamed functions above. Provide wrappers to pass in diagnostic information. * spawn.cc (spawn_guts): More fixes to deal with nested #! and to properly report posix argv[0] when invoked as a script. Wed Nov 25 12:41:12 1998 Christopher Faylor * Makefile.in: Reinstate libwinspool.a/winspool.drv creation. Tue Nov 24 18:48:56 1998 Geoffrey Noer * Makefile.in: add CFLAGS_COMMON and CFLAGS_CONFIG to CFLAGS and CXXFLAGS in FLAGS_TO_PASS. * include/sys/select.h: new file with select proto. Avoid potential conflict with Winsock inclusion by Cygwin internals. * include/sys/socket.h: remove select proto. * winsup.h: define __INSIDE_CYGWIN__. Include windows.h after Unix include files. * include/mywinsock.h: delete file * include/Windows32/Sockets.h: add ndef __INSIDE_CYGWIN__s around portions that conflict with Unix definitions. This yields what used to be mywinsock.h which is a blend of Unix sockets and Winsock needed by Cygwin internals. * exceptions.cc: define Win32_Winsock to include Windows32/Sockets.h. No longer define __INSIDE_CYGWIN__. * hinfo.cc: ditto * net.cc: ditto * select.cc: ditto * include/exceptions.h: change wrapper define to _EXCEPTIONS_H. * include/sys/resource.h: move includes outside __cplusplus check. * include/sys/wait.h: ditto. Sun Nov 22 23:33:19 1998 Geoffrey Noer * sigproc.cc (__release_signal_mutex): revert Nov 3d change. Sun Nov 22 17:04:44 1998 Christopher Faylor patch from sos AT prospect DOT com DOT ru (Sergey Okhapkin): * regexp/Makefile.in: Add additional bits necessary to allow correct installation of include file. Fri Nov 20 17:04:48 1998 Christopher Faylor * Makefile.in: Set "Warn about writable strings" option in CFLAGS. * fhandler_tty.h: Fix for writable strings detection. * grp.cc (add_grp_line): Ditto. * mkvers.sh: Ditto. * path.h: Ditto. * registry.cc: (reg_key::reg_key): Ditto. * smallprint.c (__small_vsprintf): Ditto. * tty.cc (tty::get_event): Ditto. * winsup.h: Give up on read_ready_thread. Move sig_protect here since it needs to use information set up after the sigproc.h include. * dcrt0.cc: Ditto. * debug.cc (WFSO): New function. Used to ensure that function shows up on stack trace. (WFMO): Ditto. * debug.h: Define the above. * exceptions.cc (ctrl_c_handler): Record last signal for signal handler. * select.cc (MAKEready): New macro for constructing fhandler_*::ready_for_read function. (fhandler_*::ready_for_read): Use macro to construct this method throughout. * sigproc.cc (sig_send): Work around race on process termination where the event being waited for may disappear. (sigproc_terminate): #ifdef code here that attempted to deal with the above condition in sig_send. * sigproc.h: Move sig_protect to winsup.h. * spawn.cc (perhaps_suffix): Don't return pointer into an automatic variable. (find_exec): Always point known_suffix to something. * syscalls.cc (read_handler): Refine debug output. (read_ready_thread): Delete. (_read): Eliminate use of read_ready_thread. Call ready_for_read directly as appropriate. Thu Nov 19 15:26:40 1998 Geoffrey Noer * Makefile.in: remove -Wunused since that's already in -Wall * dlfcn.cc (check_path_access): rename winenv arg to mywinenv * path.cc (symlink): change save_errno var to saved_errno * spawn.cc (find_exec): rename winenv arg to mywinenv (spawn_guts): rename sigprotect handle to starting_here * winsup.h: remove trailing comma from process_state flags enum * utils/aclocal.m4: regenerate * utils/configure: regenerate Thu Nov 19 11:16:38 1998 Christopher Faylor * Makefile.in: Use correct libpthread.a target when thread-safe is enabled. Thu Nov 19 10:49:27 1998 Christopher Faylor * path.cc (path_conv): Correct error reporting. Wed Nov 18 20:07:50 1998 Geoffrey Noer * utils/Makefile.in: remove termcap file install rule Wed Nov 18 18:14:18 1998 Geoffrey Noer More minor cleanup: * environ.cc (winenv): don't define len twice. * fork.cc (sync_with_parent): should NOT use rc since this is a macro and that could have interfered with rc in the calling function. Renamed to psync_rc. * fhandler_serial.cc (fhandler_serial::open): change access to myaccess since it shadows global decl. * hinfo.cc: ditto throughout * path.cc: ditto throughout (path_conv::path_conv): change error to err. Wed Nov 18 16:17:58 1998 Geoffrey Noer * profil.c: include stdio.h (print_prof): comment out unused func (profile_ctl): should return an int Wed Nov 18 16:17:58 1998 Geoffrey Noer * utils/ps.cc: include sys/cygwin.h, make pname buf MAXPATH in size. patch from Corinna Vinschen : * utils/ps.cc (main): converting windows paths to posix paths in output. Wed Nov 18 15:34:46 1998 Geoffrey Noer * include/wchar.h: include stddef.h. Wed Nov 18 17:39:15 1998 Christopher Faylor * environ.cc (environ_init): Fix incorrect TERM= detection. Tue Nov 17 17:28:09 1998 Geoffrey Noer * gcrt0.c: include stdlib.h, add proto for monstartup. Tue Nov 17 16:47:42 1998 Geoffrey Noer * include/wchar.h: add protos for wcslen and wcscmp. * syscalls.cc: minor reformat. Tue Nov 17 15:38:45 1998 Christopher Faylor * fhandler.cc (fhandler_base::fhandler_base): Default non-disk devices to binary mode. * fhandler.h: Reformat slightly. Tue Nov 17 11:19:23 1998 Christopher Faylor * external.cc (fillout_pinfo): Copy progname using strcpy to save on time. * path.h: Add new enums for more fine-grained control of path_conv. * dir.cc (opendir): Use enum argument to path_conv. (mkdir): Ditto. (rmdir): Ditto. * dlfcn.cc (get_full_path_of_dll): Ditto. * fhandler.h: Add new set_readahead_valid to set actual readahead. * fhandler.cc (raw_read): Remove extraneous variable. (fhandler_base::read): Rework to allow readahead when not text mode. (fhandler_disk_file::fstat): get_symlink_p() only returns true/false now. (fhandler_disk_file::fhandler_disk_file): Use enum argument to path_conv. (fhandler_disk_file::open): Ditto. * spawn.cc (perhaps_suffix): Ditto. * syscalls.cc (_unlink): Ditto. (_link): Ditto. (stat_worker): Ditto. (_rename): Ditto. * fhandler_serial.cc (fhandler_serial::open): Always reset timeouts. * path.cc (path_conv::path_conv): Honor new enum arguments. Specifically, use SYMLINK_CONTENTS for readlink interface. (readlink): Use SYMLINK_CONTENTS argument to path_conv. * select.cc: Rework serial support which has apparently never worked. Mon Nov 16 16:15:20 1998 Geoffrey Noer * Makefile.in: FLAGS_TO_PASS should pass CFLAGS and CXXFLAGS not ALL_CFLAGS and ALL_CXXFLAGS. Rework handling of CFLAGS variables to remove duplication and make it possible to build mingw directory. Mon Nov 16 09:40:21 1998 Christopher Faylor * syscalls.cc (_open): Use new macro to check for NULL or empty pathname and return appropriate error. * path.cc (check_null_empty_path*): Move macro to path.h. * path.h: Move macros here.