libc/winsup/cygwin/ChangeLog

592 lines
23 KiB
Plaintext
Raw Normal View History

2013-04-24 18:06:55 +02:00
2013-04-24 Corinna Vinschen <corinna@vinschen.de>
* autoload.cc (CreateSymbolicLink): Define.
* environ.cc (set_winsymlinks): Set allow_winsymlinks.
(parse_thing): Change "winsymlinks" to set by function.
* globals.cc (enum winsym_t): Define.
(allow_winsymlinks): Define as winsym_t.
(ro_u_afs): New R/O Unicode string.
* mount.cc (fs_info::update): Fix comment. Handle AFS.
(fs_names): Add "afs".
* mount.h (enum fs_info_type): Add afs.
(class fs_info): Implement afs.
* path.cc (symlink): Drop third parameter in call to symlink_worker.
(symlink_nfs): New function.
(symlink_native): New function.
(symlink_worker): Drop third argument. Handle native symlink type by
calling symlink_native. Move code to handle NFS to symlink_nfs. Fix
formatting. Slightly restructure code.
* path.h (class path_conv): Add fs_is_afs method.
(symlink_worker): Declare here.
* security.h: Define privilege constants as unsigned int instead of as
unsigned long.
* syscalls.cc (mknod_worker): Set third parameter in symlink_worker
call to WSYM_lnk.
* winsup.h (symlink_worker): Drop declaration here.
2013-04-23 Corinna Vinschen <corinna@vinschen.de>
* cygwin64.din (_setjmp): Export.
(_longjmp): Export.
2013-04-23 11:44:36 +02:00
2013-04-23 Corinna Vinschen <corinna@vinschen.de>
* Merge in cygwin-64bit-branch. See ChangeLog.64bit for details.
2013-04-22 Corinna Vinschen <corinna@vinschen.de>
* include/sys/queue.h: Delete in favor of more complete newlib file.
2013-04-22 Corinna Vinschen <corinna@vinschen.de>
Adapt to changes in newlib's sys/cdefs.h:
* include/sys/sysinfo.h (struct sysinfo): Rename __unused member to __f.
* libc/fts.c (__FBSDID): Drop definition.
* regex/regexec.c (__unused): Drop definition.
2013-04-22 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 19.
2013-04-16 Corinna Vinschen <corinna@vinschen.de>
* glob.cc: Include winsup.h before anything else.
2013-04-12 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink_info::check): Drop PC_KEEP_HANDLE flag for
unrecognized reparse points as well. Reorganize code and comments
handling reparse points for better readability.
2013-04-11 Corinna Vinschen <corinna@vinschen.de>
* hires.h (hires_ns::nsecs): Declare with bool parameter.
* times.cc (hires_ns::nsecs): Take bool parameter. If set to true,
don't use prime value (== return system wide absolute value).
* cygtls.h (_cygtls::reset_signal_arrived): Actually reset the signal_arrived event. (_cygtls::handle_SIGCONT): Declare ew function. * cygwait.cc (is_cw_sig_handle): Delete. (is_cw_sig_cont): New convenience define. (cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT. * cygwait.h (cw_wait_mask): Add cw_sig_cont. * exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region. Use cw_sig_cont param for cygwait. Don't zero signal here outside of lock. (sigpacket::setup_handler): Don't check for in_forkee since we will now never get here in that state. (_cygtls::handle_SIGCONT): Define new function. (sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT. Nuke continue_now handling. Allow SIGKILL to kill a suspended process. Delete a couple of now-unneeded labels. (_cygtls::call_signal_handler): Reorganize setting of incyg within lock. * sigproc.cc (pending_signals): Simplify. (pending_signals::clear): New method. (_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it exists to avoid handle leaks. (sig_clear): Simplify by just calling sigq.clear(). (sig_dispatch_pending): Always call sigq.pending even in signal thread to force another loop in wait_sig. (sig_send): Remove a "goto out" just before out: label. (pending_signals::add): Simplify. (pending_signals::del): Delete. (pending_signals::next): Delete. (wait_sig): Define variable q to be the start of the signal queue. Just iterate through sigq queue, deleting processed or zeroed signals. Only set clearwait when the current signal is SIGCHLD. * sigproc.h: Add a comment about an unused enum.
2013-04-09 03:01:19 +02:00
2013-04-08 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygtls.h (_cygtls::reset_signal_arrived): Actually reset the
signal_arrived event.
2013-04-09 03:23:41 +02:00
(_cygtls::handle_SIGCONT): Declare new function.
* cygtls.h (_cygtls::reset_signal_arrived): Actually reset the signal_arrived event. (_cygtls::handle_SIGCONT): Declare ew function. * cygwait.cc (is_cw_sig_handle): Delete. (is_cw_sig_cont): New convenience define. (cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT. * cygwait.h (cw_wait_mask): Add cw_sig_cont. * exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region. Use cw_sig_cont param for cygwait. Don't zero signal here outside of lock. (sigpacket::setup_handler): Don't check for in_forkee since we will now never get here in that state. (_cygtls::handle_SIGCONT): Define new function. (sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT. Nuke continue_now handling. Allow SIGKILL to kill a suspended process. Delete a couple of now-unneeded labels. (_cygtls::call_signal_handler): Reorganize setting of incyg within lock. * sigproc.cc (pending_signals): Simplify. (pending_signals::clear): New method. (_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it exists to avoid handle leaks. (sig_clear): Simplify by just calling sigq.clear(). (sig_dispatch_pending): Always call sigq.pending even in signal thread to force another loop in wait_sig. (sig_send): Remove a "goto out" just before out: label. (pending_signals::add): Simplify. (pending_signals::del): Delete. (pending_signals::next): Delete. (wait_sig): Define variable q to be the start of the signal queue. Just iterate through sigq queue, deleting processed or zeroed signals. Only set clearwait when the current signal is SIGCHLD. * sigproc.h: Add a comment about an unused enum.
2013-04-09 03:01:19 +02:00
* cygwait.cc (is_cw_sig_handle): Delete.
(is_cw_sig_cont): New convenience define.
(cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT.
* cygwait.h (cw_wait_mask): Add cw_sig_cont.
* exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region. Use
cw_sig_cont param for cygwait. Don't zero signal here outside of lock.
(sigpacket::setup_handler): Don't check for in_forkee since we will now
never get here in that state.
(_cygtls::handle_SIGCONT): Define new function.
(sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT.
Nuke continue_now handling. Allow SIGKILL to kill a suspended process.
Delete a couple of now-unneeded labels.
(_cygtls::call_signal_handler): Reorganize setting of incyg within
lock.
* sigproc.cc (pending_signals): Simplify.
(pending_signals::clear): New method.
(_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it
exists to avoid handle leaks.
(sig_clear): Simplify by just calling sigq.clear().
(sig_dispatch_pending): Always call sigq.pending even in signal thread
to force another loop in wait_sig.
(sig_send): Remove a "goto out" just before out: label.
(pending_signals::add): Simplify.
(pending_signals::del): Delete.
(pending_signals::next): Delete.
(wait_sig): Define variable q to be the start of the signal queue.
Just iterate through sigq queue, deleting processed or zeroed signals.
Only set clearwait when the current signal is SIGCHLD.
* sigproc.h: Add a comment about an unused enum.
2013-04-08 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (get_inet_addr): Handle abstract AF_LOCAL socket.
(fhandler_socket::recv_internal): Create abstract socket name for
AF_LOCAL datagram sockets. Explain why we do that.
2013-04-07 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygheap.cc (init_cygheap::find_tls): Add a comment.
* dcrt0.cc (parent_sigmask): Delete.
(dll_crt0_1): Use spawn_info->moreinfo->sigmask rather than saved
parent signal mask.
* thread.cc (pthread::thread_init_wrapper): Add comment stressing the
importance of maintaining ordering of statements.
2013-04-05 Corinna Vinschen <corinna@vinschen.de>
* mmap.cc (is_mmapped_region): Call LIST_UNLOCK on premature return.
2013-04-03 Corinna Vinschen <corinna@vinschen.de>
* fhandler_proc.cc (format_proc_loadavg): Raise too small buffer size
to avoid overwriting unrelated cygheap memory.
2013-04-03 Corinna Vinschen <corinna@vinschen.de>
* path.cc (class suffix_scan): Add member namelen.
(suffix_scan::name_len): New method.
(suffix_scan::has): Store namelen since we have it already anyway.
Add a bit of explanation and a FIXME to comment.
(suffix_scan::next): Never attach extra .lnk suffix if resulting
filename length exceeds NAME_LEN.
(symlink_info::check): Bail out immediately with ENAMETOOLONG if
filename length exceeds NAME_LEN.
2013-03-31 Christopher Faylor <me.cygwin2013@cgf.cx>
* child_info.h (cygheap_exec_info::sigmask): Declare new field.
* cygheap.cc (init_cygheap::find_tls): Rename threadlist_ix -> ix.
Only take one pass through thread list, looking for eligible threads to
signal. Set a new param indicating that function has found a sigwait*
mask.
* cygheap.h (init_cygheap::find_tls): Reflect new parameter.
* dcrt0.cc (parent_sigmask): New variable.
(child_info_spawn::handle_spawn): Save parent's signal mask here.
(dll_crt0_1): Restore parent's signal mask to tls sigmask as
appropriate. Call sig_dispatch_pending to flush signal queue when we
can finally do something with signals.
* exceptions.cc (sigpacket::process): Avoid attempting to handle
signals if we haven't finished initializing. Rely on the fact that
find_tls will do mask checking and don't do it again. Delete ill-named
'dummy' variable.
* sigproc.cc (cygheap_exec_info::alloc): Save calling thread's signal
mask in new sigmask field.
(wait_sig): Try to debug when WFSO fails and DEBUGGING is defined.
* thread.cc (pthread::set_tls_self_pointer): Make this a true automatic
method rather than inexplicably relying on a thread parameter.
(pthread::thread_init_wrapper): Accommodate set_tls_self_pointer change
to non-static. Initialize sigmask before setting tid or suffer signal
races.
2013-04-08 19:55:57 +02:00
* thread.h (pthread::set_tls_self_pointer): Make non-static, delete
parameter.
2013-03-29 Corinna Vinschen <corinna@vinschen.de>
* cygthread.cc (cygthread::terminate_thread): Only try to free
thread stack on systems not freeing it by themselves.
* wincap.h (wincaps::terminate_thread_frees_stack): New element.
* wincap.cc: Implement above element throughout.
2013-03-29 Christopher Faylor <me.cygwin2013@cgf.cx>
* pinfo.h (pinfo::status_exit): Rename from former static function in
pinfo.cc.
(pinfo::operator == (char *)): Remove unused operator.
* pinfo.cc (pinfo::status_exit): Move this function info pinfo class.
Use progname from the pinfo rather than myself. Be defensive when
inspecting procinfo.
2013-03-29 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (wait_sig): Avoid uninitialized use of nb when retrying.
Consolidate two error messages into one.
2013-03-28 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (pending_signals::retry): Declare new element.
(pending_signals::pending): Force an additional loop through wait_sig
by setting retry whenever this function is called.
(wait_sig): Reorganize to wait for SIGHOLD at bottom. Always add
signal to pending queue and work on whole queue rather than just the
one signal. Loop when sigq.retry is set. Fix long-broken check for
SIGCHLD after queued signals.
2013-03-28 Christopher Faylor <me.cygwin2013@cgf.cx>
* exceptions.cc (exception::handle): Generalize comment.
2013-03-09 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygtls.h (_cygtls::signal_debugger): Change argument type.
(_cygtls::copy_context): Delete declaration.
* exceptions.cc (exception::handle): Don't call copy_context() here.
Move signal_handler call earlier and always call it.
(_cygtls::copy_context): Delete definition.
(_cygtls::signal_debugger): Move copy_context logic here. Suspend
thread receiving signal before gathering context information.
2013-03-08 Christopher Faylor <me.cygwin2013@cgf.cx>
* spawn.cc (child_info_spawn::worker): Save and restore my_wr_proc_pipe
around non-execing operations to avoid handle leak seen in
http://cygwin.com/ml/cygwin/2013-03/msg00152.html .
2013-03-07 Corinna Vinschen <corinna@vinschen.de>
* include/sys/un.h (UNIX_PATH_MAX): Rename from UNIX_PATH_LEN to
follow Linux.
* fhandler_socket.cc: Change UNIX_PATH_LEN to UNIX_PATH_MAX throughout.
(fhandler_socket::recv_internal): Don't return prematurely in case of
successful return. For AF_LOCAL sockets, overwrite returned AF_INET
name with AF_LOCAL name.
2013-03-07 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::bind): Fix check for AF_LOCAL
filename length to allow non-NUL terminated strings within namelen
bytes. Copy over sun_path to local array sun_path to have a
NUL-terminated string for subsequent function calls. Move path_conv
check before OS bind call to not bind the socket before being sure
the file doesn't exist. Add and fix comments.
2013-03-06 Corinna Vinschen <corinna@vinschen.de>
* mount.cc (fs_names): Add trailing NULL element to avoid potential
SEGV in format_proc_filesystems.
2013-03-01 Christopher Faylor <me.cygwin2013@cgf.cx>
2013-03-01 16:55:39 +01:00
* exceptions.cc (exception::handle): Eliminate buggy recursed variable;
just check if we're exiting.
2013-02-26 Corinna Vinschen <corinna@vinschen.de>
* include/pthread.h (pthread_atfork): Add missing declaration.
2013-02-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
* include/error.h (error_message_count): Declare as dllimport.
(error_one_per_line): Ditto.
(error_print_progname): Ditto.
2013-02-08 Corinna Vinschen <corinna@vinschen.de>
* child_info.h (CURR_CHILD_INFO_MAGIC): Update.
(class child_info_fork): Drop extraneous semicolon.
2013-02-04 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::bind): Fix error code for
empty filename.
2013-02-04 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::bind): Fix length check of
AF_LOCAL filename so it never accesses memory beyond namelen. Also
make sure filename is NUL-terminated.
2013-01-31 Christopher Faylor <me.cygwin2013@cgf.cx>
* DevNotes: Add entry cgf-000022.
* cygtls.h (_cygtls::func): Define as a sa_sigaction style function.
* exceptions.cc (sig_handle_tty_stop): Ditto.
(_cygtls::interrupt_setup): Fix coercion to accommodate 'func' change.
(ctrl_c_handler): Use tty kill_pgrp to send a signal.
(sigpacket::process): Don't process sigflush here.
(_cygtls::call_signal_handler): Reorganize to avoid a race. Always
call sa_sigaction style function.
* fhandler_termios.cc (is_flush_sig): Define new function.
(tty_min::kill_pgrp): Handle tty flush when signal detected.
(fhandler_termios::bg_check): Be slightly more paranoid about checking
for valid tty.
(fhandler_termios::sigflush): Don't flush unless tty owner.
* fhandler_tty.cc (fhandler_pty_slave::ioctl): Use tty kill_pgrp to
send signal.
(fhandler_pty_master::ioctl): Ditto.
* signal.cc (killsys): Delete definition.
* sigproc.h (killsys): Delete declaration.
* include/cygwin/signal.h (siginfo_t): Simplify union/struct nesting
slightly. Implement mechanism to allow cygwin data passing.
2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx>
* miscfuncs.cc (__import_address): Check if malloc field points
directly at 'malloc'.
2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx>
* miscfuncs.cc (__import_address): On second thought, the chance that
this pointer could be NULL is very low so don't bother checking for it.
2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx>
* exceptions.cc (exception::handle): Make attempt to recursively dump
stack fatal.
2013-01-22 Christopher Faylor <me.cygwin2013@cgf.cx>
* miscfuncs.cc (__import_address): Avoid NULL explicitly.
2013-01-22 Christopher Faylor <me.cygwin2013@cgf.cx>
* miscfuncs.cc (__import_address): Avoid treating random instructions
as import jump.
* malloc_wrapper.cc (malloc_init): Remove comment about 64-bit.
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
* dcrt0.cc (dll_crt0_1): Comment assumption.
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals
during fork processing.
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
* dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any
signals (presumably exiting signals) which may have come in while we
are in the process of setting up.
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
* update-copyright: Recognize configure.ac scripts too.
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygerrno.h (__reg3): Define.
* cygmalloc.h (__reg3): Ditto.
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygerrno.h: Conditionally define __regN for cygserver.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* malloc_wrapper.cc (malloc_init): Re-add inadvertently dropped comment
which explains what's going on with the use_internal calculation.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
Throughout, update copyrights to reflect dates which correspond to
main-branch checkins. Regularize copyright format.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
Throughout, change __attribute__ ((regparm (N))) to just __regN.
Throughout, (mainly in fhandler*) start fixing gcc 4.7.2 mismatch
between regparm definitions and declarations.
* gendef: Define some functions to take @ declaration to accommodate
_regN defines which use __stdcall.
* gentls_offsets: Define __regN macros as empty.
* autoload.cc (wsock_init): Remove unneeded regparm attribute.
* winsup.h (__reg1): Define.
(__reg2): Define.
(__reg3): Define.
* advapi32.cc (DuplicateTokenEx): Coerce some initializers to avoid
warnings from gcc 4.7.2.
* exceptions.cc (status_info): Declare struct to use NTSTATUS.
(cygwin_exception::dump_exception): Coerce e->ExceptionCode to
NTSTATUS.
* fhandler_clipboard.cc (cygnativeformat): Redefine as UINT to avoid
gcc 4.7.2 warnings.
(fhandler_dev_clipboard::read): Ditto.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* update-copyright (update_maybe): Accommodate perl-style copyright
comments.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* update-copyright: Silently skip nonexistent files. Display filename
on update. Don't update non-Red Hat copyrights.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* update-copyright: Update standard copyright information based on cvs
log and current sandbox status.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* malloc_wrapper.cc: Change 'use_internal_malloc' to 'use_internal'
throughout.
(export_malloc_called): Delete.
(internal_malloc_determined): New variable.
(malloc_init): Control calculation of internal/external malloc based on
'internal_malloc_determined'. Use import_address() to determine if
malloc in user_data is ours or not.
* miscfuncs.cc (thread_wrapper): Make static.
(__import_address): Define new function.
* miscfuncs.h (import_address): New define.
(__import_address): Declare new function.
2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (sig_dispatch_pending): Add correct regparm attributes to
match declaration.
(pid_exists): Ditto.
(proc_subproc): Ditto.
(sig_clear): Ditto.
(sig_send): Ditto.
(checkstate): Ditto.
2013-01-19 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (rename): Remove ill-conceived NFS workaround from
2013-01-10 for self-inflicted NFS server problem.
2013-01-19 Christopher Faylor <me.cygwin2013@cgf.cx>
* exceptions.cc (ctrl_c_handler): Remove special-case handler for
"cygwin_finished_initializing".
* sigproc.cc (exit_thread): Undefine ExitThread earlier to avoid
recursion on error return.
2013-01-18 Corinna Vinschen <corinna@vinschen.de>
* errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY.
2013-01-18 Corinna Vinschen <corinna@vinschen.de>
* mmap.cc (handler_disk_file::msync): Add call to FlushFileBuffers
to implement MS_SYNC.
2013-01-17 Christopher Faylor <me.cygwin2013@cgf.cx>
* mmap.cc (handler_disk_file::msync): Retry up to 99 times if
FlushViewOFile fails with ERROR_LOCK_VIOLATION.
2013-01-16 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (no_signals_available): Finally remove this macro
entirely.
(exit_thread): Ensure process lock is released on error exit.
(sig_send): Simplify "its_me" test. Remove no_signals_available tests.
2013-01-16 Christopher Faylor <me.cygwin2013@cgf.cx>
* pthread.cc (pthread_exit): Add kludge to accommodate noreturn attribute.
2013-01-14 Antti Kantee <pooka@iki.fi>
* include/pthread.h (pthread_exit): Mark as "noreturn".
2013-01-14 Christopher Faylor <me.cygwin2013@cgf.cx>
2013-01-14 23:24:36 +01:00
* exceptions.cc (signal_exit): Move captive process termination...
(_cygtls::interrupt_setup): ...into here.
(sigpacket::process): Simplify setting of handler when have_execed.
(_cygtls::interrupt_setup): Don't call proc_subproc when we've execed.
* globals.cc (exit_states): Delete unneeded ES_EXEC_EXIT.
* pinfo.cc (pinfo::exit): Change debugging output. Call proc_terminate
rather than the now-obsolete sigproc_terminate. Don't set exit_state
to ES_EXEC_EXIT. Set exit_state to ES_FINAL later.
* sigproc.cc (sigproc_terminate): Delete function.
(wait_sig): Don't call proc_subproc if have_execed.
* sigproc.h (sigproc_terminate): Delete declaration.
* sync.h (lock_process::lock_process): Don't set exit_state to
ES_PROCESS_LOCKED.
(lock_process::operator LONG): Define.
2013-01-11 Christopher Faylor <me.cygwin2013@cgf.cx>
* DevNotes: Add entry cgf-000021.
* select.cc (select): Unconditionally return when a signal is detected.
(select_stuff::wait): Ditto.
2013-01-11 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (rename): Drop handling paths > 32757 chars, emit EINVAL
instead, thus simplifying code allocating and filling pfri. Drop size
and use constant expression in NtSetInformationFile call. Add comments.
Drop redundant test for fs_serial_number and change comment accordingly.
2013-01-11 Thomas Wolff <towo@towo.net>
* fhandler.h (class dev_console): Flag for expanded control sequence.
* fhandler_console.cc (char_command): Supporting cursor style modes.
2013-01-10 Corinna Vinschen <corinna@vinschen.de>
* path.h (path_conv::fs_type): New method.
* syscalls.cc (rename): Check for cross-device situation before
touching anything. Explain why. Workaround NFS bug in call to
NtSetInformationFile(FileRenameInformation).
2013-01-09 Corinna Vinschen <corinna@vinschen.de>
* cygerrno.h: Fix copyright.
* exceptions.cc: Drop comment explaining removed variable.
2013-01-09 Corinna Vinschen <corinna@vinschen.de>
* dcrt0.cc (main_thread_sinit): New inline function. Fix and explain
a stdio initialization issue.
(dll_crt0_1): Call main_thread_sinit rather than __sinit.
2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx>
* thread.cc (pthread_rwlock::lookup_reader): Remove parameter: always
assume that we're looking for the current thread.
(pthread_rwlock::tryrdlock): Eliminate self variable. Accommodate
change in lookup_reader().
(pthread_rwlock::unlock): Ditto.
(pthread_rwlock::rdlock): Ditto. Move add_reader call after writer
tests to more closely mimic old behavior.
(pthread_rwlock::wrlock): Accommodate change in lookup_reader().
* thread.h ((pthread_rwlock::lookup_reader): Eliminate argument.
2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx>
* thread.cc (pthread_rwlock::add_reader): Perform new operation here
and return pointer to allocated RWLOCK_READER structure.
(pthread_rwlock::rdlock): Reorganize to reflect new add_reader
functionality.
(pthread_rwlock::tryrdlock): Ditto. Remove unneeded call to
lookup_reader().
* thread.h (pthread_rwlock::RWLOCK_READER::RWLOCK_READER): New
constructor.
(pthread_rwlock::add_reader): Reflect new functionality.
2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx>
* globals.cc (exit_states): Renumber so that ES_EXIT_STARTING is first,
as intended.
* sigproc.cc (wait_sig): Only stop accepting signals after
exit_state > ES_EXIT_STARTING.
2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (exit_thread): Set thread signal mask so that no signals
are sent to an exiting thread.
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
* sigproc.cc (no_signals_available): Remove exit_state test since
signals are available in a limited fashion when exiting.
(sig_dispatch_pending): Ditto.
(sig_send): Ditto.
(exit_thread): Rearrange to avoid an unnecessary DuplicateProcess when
exiting.
(wait_sig): Allow special signals when exiting.
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
* DevNotes: Add entry cgf-000020, relating to previous checkin.
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
* cygtls.h (_cygtls::signal_exit): Delete from class. * exception.h (cygwin_exception): New class. (cygwin_exception::dumpstack): Declare new function. (cygwin_exception::context): Ditto. (cygwin_exception::dump_exception): Ditto. * exceptions.cc (cygwin_exception::dump_exception): Move into cygwin_exception class. Accommodate new variable names. (cygwin_exception::dumpstack): Ditto stackdump -> dumpstack. (exception::handle): Move andreas processing earlier. Defer signal processing decisions to the signal thread where they belong. Pass exception information to sig_send via new siginfo_t si_cyg field. (ctrl_c_handler): Wait for SIGHUP signal to be processed since it could cause a process exit and we don't want races with thread exit lock. (signal_exit): Move back here from sigproc.cc. Modify arguments and remove from sigpacket class. Decide when to dump core based on signal type. (sigpacket::process): Handle exiting signals in context of threads rather than in the signal thread. Signal debugger on non-Windows signals. Remove setup_signal_exit call. * sigproc.cc (no_signals_available): Remove argument. (signal_exit_code): Delete. (close_my_readsig): Ditto. (_cygtls::signal_exit): Move to exceptions.cc. (sigproc_terminate): Don't attempt to terminate signal thread. (setup_signal_exit): Delete. (exit_thread): Use new si_cyg entry in siginfo_t. (sig_send): Just use empty initializer for si. Accommodate change in no_signals_available argument. (wait_sig): Remove attempt to "go asynchronous" on process exit. Delete __SIGEXIT handling. Don't ever exit. * sigproc.h: Remove __SIGEXIT from signal enum. Renumber. * include/cygwin/signal.h (siginfo_t): Add si_cyg entry.
2013-01-02 19:34:06 +01:00
* cygtls.h (_cygtls::signal_exit): Delete from class.
* exception.h (cygwin_exception): New class.
(cygwin_exception::dumpstack): Declare new function.
(cygwin_exception::context): Ditto.
(cygwin_exception::dump_exception): Ditto.
* exceptions.cc (cygwin_exception::dump_exception): Move into
cygwin_exception class. Accommodate new variable names.
(cygwin_exception::dumpstack): Ditto stackdump -> dumpstack.
(exception::handle): Move andreas processing earlier. Defer signal
processing decisions to the signal thread where they belong. Pass
exception information to sig_send via new siginfo_t si_cyg field.
(ctrl_c_handler): Wait for SIGHUP signal to be processed since it could
cause a process exit and we don't want races with thread exit lock.
(signal_exit): Move back here from sigproc.cc. Modify arguments and
remove from sigpacket class. Decide when to dump core based on signal
type.
(sigpacket::process): Handle exiting signals in context of threads
rather than in the signal thread. Signal debugger on non-Windows
signals. Remove setup_signal_exit call.
* sigproc.cc (no_signals_available): Remove argument.
(signal_exit_code): Delete.
(close_my_readsig): Ditto.
(_cygtls::signal_exit): Move to exceptions.cc.
(sigproc_terminate): Don't attempt to terminate signal thread.
(setup_signal_exit): Delete.
(exit_thread): Use new si_cyg entry in siginfo_t.
(sig_send): Just use empty initializer for si. Accommodate change in
no_signals_available argument.
(wait_sig): Remove attempt to "go asynchronous" on process exit.
Delete __SIGEXIT handling. Don't ever exit.
* sigproc.h: Remove __SIGEXIT from signal enum. Renumber.
* include/cygwin/signal.h (siginfo_t): Add si_cyg entry.