Mail Archives: cygwin-developers/1998/12/23/12:05:36
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 <dj AT cygnus DOT com>
* 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 <dj AT cygnus DOT com>
* times.cc (__to_clock_t): Change return value to unsigned long
long to prevent overflow.
Tue Dec 22 19:37:55 1998 Christopher Faylor <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* pthread.cc: fix copyright header.
* shared.h: ditto.
Fri Dec 18 19:21:30 1998 Geoffrey Noer <noer AT cygnus DOT com>
patch from Corinna Vinschen <corinna DOT vinschen AT cityweb DOT de>:
* 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 <noer AT cygnus DOT com>
* include/pthread.h: clean up, remove C++-style comments,
remove pthread_getsequence_np proto.
Fri Dec 18 15:26:33 1998 Christopher Faylor <cgf AT cygnus DOT com>
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 <cgf AT cygnus DOT com>
* Makefile.in: Cleanup pthread usage.
Fri Dec 18 14:35:59 1998 Christopher Faylor <cgf AT cygnus DOT com>
* Makefile.in: Remove obsolete header dependency for
thread-safe build.
Fri Dec 18 14:16:04 1998 Christopher Faylor <cgf AT cygnus DOT com>
* exceptions.cc (sig_handle): Avoid suspending top-level
processes.
* trace.cc: Remove unneeded include.
Thu Dec 17 19:19:53 1998 Geoffrey Noer <noer AT cygnus DOT com>
* cygwin.din: remove pthread_getsequence_np, _reent_clib
Thu Dec 17 16:48:15 1998 Geoffrey Noer <noer AT cygnus DOT com>
* include/cygwin/version.h: correct two typos in comments
Thu Dec 17 19:11:31 1998 Christopher Faylor <cgf AT cygnus DOT com>
patch from Corinna Vinschen <corinna DOT vinschen AT cityweb DOT de>:
* include/Windows32/Defines.h: Add values for using Windows
function `DeviceIoControl()'.
Thu Dec 17 18:00:34 1998 Christopher Faylor <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
Merge in thread-safe branch changes.
Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf AT cygnus DOT com>
* pthread.cc: Include winsup.h.
Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf AT cygnus DOT com>
* thread.cc: Reformat.
* pthread.cc: New file.
* cygwin.din: Add pthread interface functions
Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
* 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 <cgf AT cygnus DOT com>
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 <cgf AT cygnus DOT com>
* 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 <noer AT cygnus DOT com>
* include/shellapi.h: fix typo in DragQueryPoint proto.
Mon Dec 14 12:37:43 1998 Geoffrey Noer <noer AT cygnus DOT com>
* 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 <corinna DOT vinschen AT cityweb DOT de>:
* 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.
- Raw text -