libc/winsup/cygwin/ChangeLog

483 lines
17 KiB
Plaintext

Wed Mar 15 20:38:06 2000 Corinna Vinschen <corinna@vinschen.de>
* errno.cc: Map ERROR_NOACCESS to EFAULT.
Wed Mar 15 14:25:38 2000 Christopher Faylor <cgf@cygnus.com>
* spawn.cc (spawn_guts): Restore dependency on signal_arrived. It's
needed to wake up the WaitForSingleObject.
Tue Mar 14 23:41:16 2000 Christopher Faylor <cgf@cygnus.com>
Pipe changes throughout suggested by Eric Fifer <EFifer@sanwaint.com>
* debug.cc (threadname_init): Pass name of lock as arg 2 of new_muto.
* malloc.cc (malloc_init): Ditto.
* sigproc.cc (sigproc_init): Ditto.
* exceptions.cc (events_init): Ditto.
(call_handler): Eliminate special case for hExeced. Report locked
thread in debugging output.
* fhandler.cc (fhandker_pipe::fhandler_pipe): Propagate device type to
base class.
* fhandler.h (fhandler_pipe): Ditto.
* hinfo.cc (hinfo::build_fhandler): Pass specific type of pipe to
constructor.
* spawn.cc (spawn_guts): Eliminate dependency on signal when waiting
for subprocess.
* strace.cc: Remove obsolete #ifdef.
* sync.cc (muto::muto): Save the name of the muto.
(muto:~muto): Also release the muto.
* sync.h: Add a muto name field.
* select.cc (peek_pipe): Avoid doing a PeekNamedPipe on the write end
of a pipe.
Sun Mar 12 01:14:33 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.cc (fhandler_base::get_readahead_into_buffer): New function.
* fhandler.h: Declare new function. Add extra argument to
process_slave_output.
* fhandler_console.cc (fhandler_console::read): Move read ahead code to
new function.
* fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move
common code here.
(fhandler_tty_slave::read): Understand readahead.
(fhandler_pty_master::read): Move code to process_slave_output.
* select.cc (peek_pipe): Avoid performing certain checks when non-read
and on inappropriate fh types.
Sat Mar 11 22:47:43 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler_console.cc (fhandler_console::read): Don't even think about
breaking on interrupt if executing in a "cygwin" thread.
* fhandler_tty.cc (fhandler_pty_master::process_slave_output):
Streamline, simplify code.
* sigproc.cc (sig_send): Remove debugging statement.
Sat Mar 11 22:46:55 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler_console.cc (fhandler_console::read)
Fri Mar 10 13:20:50 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc: Set wait_sig priority to normal.
Fri Mar 10 13:03:06 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (wait_sig): Add addtional debugging output.
Thu Mar 9 15:25:01 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc: Eliminate oldstack CYGWIN option.
* exceptions.cc (sfta): Eliminate obsolete function.
(sgmb): Eliminate obsolete function.
(class stack_info): Remove MS method for walking the stack.
(stack_info::init): Just initialize required fields.
(stack_info::brute_force): Rename to stack_info::walk.
(handle_exceptions): Pass derived frame pointer to sig_send.
(interrupt_setup): Clear saved frame pointer here.
(interrupt_on_return): thestack is no longer a pointer.
(call_handler): Accept a flag to indicate when a signal was sent from
other than the main thread. Use saved frame pointer for determining
where to place signal handler call.
(sig_handle): Accept "nonmain" argument. Pass it to call_handler.
* fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Change
debugging output slightly.
* (fhandler_tty_common::__release_output_mutex): Ditto.
(fhandler_tty_slave::read): Fix a comment, remove a goto.
* sigproc.cc (sig_send): Accept an optional frame pointer argument for
use when suspending the main process. sigcomplete_main is an autoreset
event now. Save frame pointer for non-main operation.
(wait_sig): Make sigcomplete_main an autoreset event. Eliminate
NOSIGQUEUE. Pass rc to sig_handle to signify if this was a nonmain
process.
* sigproc.h: Reflect change to sig_send argument.
* syscalls.cc (swab): Eliminate swab function since it is now available
in newlib.
* winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp.
Tue Mar 7 13:31:10 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (sig_send): Eliminate sync_sig_send synchronization since
it didn't seem to affect the "bash hangs" problem.
Tue Mar 7 13:17:56 2000 Christopher Faylor <cgf@cygnus.com>
* mcount.c: Remove strace.h include.
Tue Mar 7 00:29:34 2000 Christopher Faylor <cgf@cygnus.com>
Throughout use strace class in place of individual functions and
variables.
* cygwin.din: Eliminate _strace_wm.
* sigproc.cc (wait_sig): Temporarily add more debugging output.
* include/cygwin/version.h: Bump minor api to reflect export change.
Sun Mar 5 01:17:05 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Streamline to use only one call to
ResumeThread.
* sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore.
Remove priority setting since it didn't solve anything.
Tue Feb 29 00:46:09 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (sig_send): Temporarily set priority to highest while
sending a signal.
Mon Feb 28 11:23:29 2000 Christopher Faylor <cgf@cygnus.com>
* pinfo.cc (set_myself): Add build date to strace output.
Mon Feb 28 11:17:30 2000 Eric Fifer <EFifer@sanwaint.com>
* sigproc.cc (proc_subproc): Only clear wait event when not attending
to a signal.
Mon Feb 28 00:08:09 2000 Christopher Faylor <cgf@cygnus.com>
* configure.in: Remove --enable-strace-hhmmss option.
* configure: Regenerate.
Sun Feb 27 23:11:57 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (set_os_type): Record OS name string.
(getprogname): Eliminate obsolete function.
(dll_crt0_1): Move initial strace initialization output to set_myself.
* exceptions.cc (interruptible): Add debugging output.
(interrupt_setup): New function.
(interrupt_now): Use interrupt_setup to set up common interrupt handler
stuff.
(interrupt_on_return): Ditto.
(call_handler): Move signal_arrived arm and clear threads to region
where signalled thread is suspended or suffer races.
* pinfo.cc (set_myself): Output interesting information when strace is
first initialized. Initialize progname here.
* sigproc.cc (sig_dispatch_pending): Modify to ensure that flush signal
are sent synchronously.
* strace.cc (strace_vsprintf): Move code into strace program.
* uname.cc (uname): Use 'osname' global to construct cygwin name +
Windows type + version.
Fri Feb 25 19:26:42 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Make a little more structured.
(call_handler): Allow signals to be sent even if signalled thread is
stopped. Change order of signal_arrived arming/waiting threads
clearing to eliminate a race.
(reset_signal_arrived): New helper function.
* malloc.cc (malloc_init): Use mutos so that signal handler can keep
track of who owns the lock.
(__malloc_lock): Ditto.
(__malloc_unlock): Ditto.
* sync.h (new_muto): Actually use a muto for the "buffer".
* Makefile.in: Fix a dependency.
2000-02-25 DJ Delorie <dj@cygnus.com>
* Makefile.in: fix "make check" support and cygrun.
Thu Feb 24 15:56:00 2000 Christopher Faylor <cgf@cygnus.com>
* syscalls.c (_read): Clear errno before doing any read operation.
Thu Feb 24 14:45:06 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Use new muto linked list to look for
all potential mutos owned by suspended thread. Clear waiting threads
while thread is stopped.
(proc_subproc): Clarify debugging output.
* sync.h (class muto): Add 'next' field.
(new_muto): Keep linked list alive.
Thu Feb 24 00:59:15 2000 Christopher Faylor <cgf@cygnus.com>
Fix final round of gcc warnings relating to unused parameters.
* debug.cc (iscygthread): New function.
* debug.h: Declare it.
* exceptions.cc (set_process_mask): Flush pending signals.
(handle_sigsuspend): No need to flush pending signals.
(call_handler): Refine previous tests of muto ownership. Only clear
wait()'s when we have definitely responded to a signal.
* fhandler_console.cc (fhandler_console::read): Don't set EINTR if
executing in a "cygwin" thread.
* sigproc.cc (proc_subproc): Use second argument to control whether
CLEARWAIT actually sets "signalled" flag.
* sync.h (muto): Add 'unstable' method.
Wed Feb 23 21:59:44 2000 Christopher Faylor <cgf@cygnus.com>
* hinfo.cc (hinfo::extend): Clean up debugging output.
Wed Feb 23 21:34:58 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Change method for determining if
something is interruptible.
(call_handler): Avoid suspending a thread if it owns a muto. Only set
signal_arrived if the thread was actually interrupted.
(events_init): Initialize module information needed by interruptible().
* init.cc (dll_entry): Record module handle of main for use by
interruptible().
(proc_subproc): Reorganize handling of terminated child so that the
bulk of the processing comes from the signal thread.
(wait_sig): Force processing of waiting threads if SIGCHLD is not
processed.
Tue Feb 22 23:06:01 2000 Christopher Faylor <cgf@cygnus.com>
Respond to more g++ warnings relating to initializing structures.
Mon Feb 21 18:36:37 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.cc (set_inheritance): Revert previous patch which got rid of
'name' parameter.
Mon Feb 21 00:19:40 2000 Christopher Faylor <cgf@cygnus.com>
Respond to a multitude of new g++ warnings.
Sun Feb 20 22:10:21 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (getwinenv): Make __stdcall.
(winenv): Ditto.
* malloc.cc (strdup): New function. Occludes newlib version.
(_strdup_r): Ditto.
* winsup.h: Reflect above __stdcall changes.
Sun Feb 20 21:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_disk_file::fstat): Modify get_file_attribute
return value if FILE_ATTRIBUTE_READONLY is set.
Thu Feb 17 11:00:23 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (environ_init): Cosmetic change.
Mon Feb 7 16:50:44 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: cygrun needs libshell32.a.
Sun Feb 6 22:17:58 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (proc_subproc): Simplify case for when a child process is
stopped since new signal handler ensures the desired behavior.
Sun Feb 6 21:52:33 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Fix install target so that directories will be created
when necessary.
Sun Feb 6 18:12:17 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: exceptions.cc should depend on autoload.h.
* exceptions.cc: Undef DECLSPEC_IMPORT prior to including imagehlp.h to
avoid defining StackWalk as "import".
(call_handler): Minor optimizations.
(sig_handle_tty_stop): Fix typo in previous checkin.
* sigproc.cc (sigproc_init): Ditto, for signal_arrived initialization.
Sat Feb 5 15:37:37 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (isquote): Convert to inline function.
Sat Feb 5 00:26:01 2000 Christopher Faylor <cgf@cygnus.com>
Throughout, rename global_signal_arrived to signal_arrived.
Throughout, eliminate use of arm_signals and __signal_arrived.
Throughout, revert to use of simple call to WaitForSingleObject or
WaitForMultipleObjects.
* debug.h: Eliminate obsolete function declaration.
* exceptions.cc (sigWaitForSingleObject): Eliminate obsolete function
definition.
* fhandler.h: Reflect change to select_stuff wait method.
* fhandler_tape.cc (get_ll): Accomodate new w32api LARGE_INTEGER
definition.
* ntea.c (NTReadEARaw): Ditto.
(NTWriteEA): Ditto.
* security.cc (ReadSD): Ditto.
(WriteSD): Ditto.
* syscalls.cc (_link): Ditto.
* uname.cc (uname): Eliminate PPC switch.
2000-02-01 Salvador Eduardo Tropea <salvador@inti.gov.ar>
* include/io.h: add return type to setmode()
2000-01-27 DJ Delorie <dj@cygnus.com>
* include/netdb.h (h_errno): change __imp_ to dllimport
* cygwin.din (reent_data): add DATA
Thu Jan 27 01:07:14 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Add debugging output.
* select.cc (MAKEready): Arm signals earlier.
* sigproc.cc (__signal_arrived:arm): Move debugging version of this
method here.
(__signal_arrived::release): Ditto.
* sigproc.h: Recognize debugging versions of above two methods.
(arm_signals::WaitForMultipleObjects): Don't release signal lock unless
signal arrived.
(arm_signals::WaitForMultipleSingleObject): Ditto.
(arm_signals::MsgWaitForMultipleObjects): Ditto.
Thu Jan 27 00:19:26 2000 Christopher Faylor <cgf@cygnus.com>
* sync.h (new_muto): Workaround change in gcc behavior.
Wed Jan 26 12:57:13 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Ensure that all required libraries are built prior
to linking cygrun.exe.
Tue Jan 25 21:26:57 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (sig_handle): Crudely work around potential problem
when main thread has a lock but is killed by a fatal signal.
* fhandler_tty.cc (fhandler_pty_master::write): Don't perform line
editing on the pty master (so why do we need the second argument to
line_edit, then?)
* thread.cc: Reformat to GNU standards.
2000-01-11 DJ Delorie <dj@cygnus.com>
* ROADMAP: new
2000-01-11 DJ Delorie <dj@cygnus.com>
* fhandler_zero.cc: new, emulate /dev/zero
* testsuite/winsup.api/devzero.c: new, test /dev/zero
* Makefile.in: build fhandler_zero.o
* fhandler.h: add support for /dev/zero
* hinfo.cc: ditto
* path.cc: ditto
2000-01-11 DJ Delorie <dj@cygnus.com>
* mmap.cc (mmap): MSDN says *one* of FILE_MAP_*, fix flags for
MAP_PRIVATE.
Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (acl_access): New function.
* syscalls.cc (access): Call acl_access if ntsec is on.
Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (get_file_owner): Use of ReadSD() instead of
GetFileSecurity().
(get_file_group): Ditto.
Sun Jan 9 15:43:07 2000 Christopher Faylor <cgf@cygnus.com>
* debug.cc (struct thread_start): Add a flag to determine whether a
field is in use. Eliminate thread_start_ix since it was not
thread-safe.
(thread_stub): Use notavail flag to control whether the entry in
start_buf can be reused.
(makethread): Ditto.
Sun Jan 9 20:18:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (alloc_sd): Rearrange order of ACE creation.
(setacl): Optimize creation of ACEs related to inheritance. Code
cleanup.
(aclcheck): Disable check for existance of DEF_)CLASS_OBJ.
Sat Jan 8 18:42:32 2000 Christopher Faylor <cgf@cygnus.com>
* mkvers.h: Reorg fix.
Sat Jan 8 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
* cygwin.din: Add new acl API calls.
* grp.cc (getgroups): Change to work for any username.
* security.cc (get_id_from_sid): Change to work with acl API.
(is_grp_member): New function.
(get_nt_attribute): Rewritten.
(add_access_allowed_ace): New function.
(add_access_denied_ace): Ditto.
(alloc_sd): Rewritten.
(setacl): New function.
(getace): Ditto.
(searchace): Ditto.
(getacl): Ditto.
(acl): Ditto.
(facl): Ditto.
(aclcheck): Ditto.
(acecmp): Ditto.
(aclsort): Ditto.
(acltomode): Ditto.
(aclfrommode): Ditto.
(acltopbits): Ditto.
(aclfrompbits): Ditto.
(permtostr): Ditto.
(acltotext): Ditto.
(permfromstr): Ditto.
(aclfromtext): Ditto.
* syscalls.cc (access): Set errno again when needed.
* include/cygwin/acl.h: New file.
* include/sys/acl.h: Ditto.
Sat Jan 8 14:46:19 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Add cygwin DLL specific CFLAGS define.
Fri Jan 7 21:01:57 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interrupt_on_return): Properly coerce assignment of
sigsave.func.
2000-01-07 Mumit Khan <khan@xraylith.wisc.edu>
* acconfig.h: New file.
* configure.in Add check for memset builtin.
(AC_CONFIG_HEADER): Use.
(STRACE_HHMMSS): Define instead of substituting.
(_MT_SAFE): Likewise.
(_CYG_THREAD_FAILSAFE): Likewise.
(DEBUGGING): Likewise.
(MT_SAFE): Substitute as a yes/no variable.
* Makefile.in: Remove DEBUGGING, STRACE_HHMMSS, and THREAD_FAILSAFE
variables and add DEFS. Update usage of MT_SAFE to reflect yes/no
values. Add config.h to winsup.h dependency.
(CFLAGS_CONFIG): Update.
(INCLUDES): Prepend `-I.'.
* utils/Makefile.in (INCLUDES): Likewise.
* winsup.h: Conditionally include config.h.
* thread.cc: Likewise.
* config.h.in: Generate new file.
* configure: Regenerate.
Fri Jan 7 16:21:01 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (dll_crt0): Allow signal handling for dynamically loaded
case.
Thu Jan 6 00:30:12 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink_check_one): Initialize local variable `unixattr'
before calling `get_file_attribute'.
* syscalls.cc (chown): Ditto.
* security.cc (get_nt_attribute): Eliminate attribute copying from
world to user/group in case of missing ACEs.
(alloc_sd): Set special rights for administrators group only if it's
neither owner nor group.
* utils/mkpasswd.c: Create entry for local group administrators (SID
544).
Thu Jan 6 00:21:31 2000 Christopher Faylor <cgf@cygnus.com>
Change function calls to __stdcall throughout.
* exceptions.cc (handle_exceptions): Probe stack for return address to
use with new signal method. Fill out sigsave.cx with this information.
(call_handler): Use sigsave.cx if it is available, rather than trying
to find the context of the main thread.
(interrupt_on_return): Use address of context rather than
pass-by-reference.
(interrupt_now): Ditto.
Thu Jan 6 00:21:31 2000 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (getgroups): Return supplementary groups now.
* include/limits.h: Define NGROUP_MAX as 16 now.