Mail Archives: cygwin-developers/1998/11/25/22:08:21
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 <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* Makefile.in: Reinstate libwinspool.a/winspool.drv creation.
Tue Nov 24 18:48:56 1998 Geoffrey Noer <noer AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* sigproc.cc (__release_signal_mutex): revert Nov 3d change.
Sun Nov 22 17:04:44 1998 Christopher Faylor <cgf AT cygnus DOT com>
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 <cgf AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* Makefile.in: Use correct libpthread.a target when
thread-safe is enabled.
Thu Nov 19 10:49:27 1998 Christopher Faylor <cgf AT cygnus DOT com>
* path.cc (path_conv): Correct error reporting.
Wed Nov 18 20:07:50 1998 Geoffrey Noer <noer AT cygnus DOT com>
* utils/Makefile.in: remove termcap file install rule
Wed Nov 18 18:14:18 1998 Geoffrey Noer <noer AT cygnus DOT com>
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 <noer AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* utils/ps.cc: include sys/cygwin.h, make pname buf
MAXPATH in size.
patch from Corinna Vinschen <corinna DOT vinschen AT cityweb DOT de>:
* utils/ps.cc (main): converting windows paths to posix
paths in output.
Wed Nov 18 15:34:46 1998 Geoffrey Noer <noer AT cygnus DOT com>
* include/wchar.h: include stddef.h.
Wed Nov 18 17:39:15 1998 Christopher Faylor <cgf AT cygnus DOT com>
* environ.cc (environ_init): Fix incorrect TERM= detection.
Tue Nov 17 17:28:09 1998 Geoffrey Noer <noer AT cygnus DOT com>
* gcrt0.c: include stdlib.h, add proto for monstartup.
Tue Nov 17 16:47:42 1998 Geoffrey Noer <noer AT cygnus DOT com>
* include/wchar.h: add protos for wcslen and wcscmp.
* syscalls.cc: minor reformat.
Tue Nov 17 15:38:45 1998 Christopher Faylor <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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.
- Raw text -