+2011-12-17 Corinna Vinschen <vinschen@redhat.com>
+
+ * dcrt0.cc (_dll_crt0): Fix formatting.
+
+2011-12-17 Corinna Vinschen <vinschen@redhat.com>
+
+ * wow64.cc (wow64_revert_to_original_stack): Fix comment.
+ * wow64.h (wow64_respawn_process): Declare noreturn.
+
+2011-12-17 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * exceptions.cc (set_signal_mask): Remove useless debugging output.
+
+ * fhandler.cc (fhandler_base::write): Ditto.
+ (fhandler_base_overlapped::close): Cancel any ongoing I/O before
+ closing.
+ * syscalls.cc (write): Default to always reporting all writes in strace
+ output via syscall_printf.
+ * wait.cc (wait4): Fix debugging output. Use standard syscall leaver
+ output.
+
+2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ Implement fhandler reference counting.
+ * cygheap.h (cygheap_fdmanip::release): Make virtual.
+ (cygheap_fdnew::~cygheap_fdnew): New destructor increments reference
+ count when fd has been allocated.
+ (cygheap_fdget::fh): New (old?) field.
+ (cygheap_fdget::cygheap_fdget): Increment reference count when we've
+ found an active fd. Set fh appropriately.
+ (cygheap_fdget::~cygheap_fdget): Decrement reference count when
+ appropriate. Delete fh if reference count goes to zero.
+ (cygheap_fdget::release): New function. Do more bookkeping on release.
+ * dtable.cc (dtable::release): Change from void to boolean return.
+ Only delete the fhandler when its reference count is <= 0 (this should
+ be a fairly unusual case). Return true if fhandler has been deleted.
+ (cygwin_attach_handle_to_fd): Increment reference count when fh is
+ assigned.
+ (dtable::init_std_file_from_handle): Ditto.
+ * dtable.h (dtable::release): Change return to boolean.
+ * fhandler.cc (fhandler_base::fhandler_base): Set new isclosed flag to
+ false. Set _refcnt to zero.
+ (fhandler_base::close): Simplify paranoid debugging output. Set new
+ isclosed() flag.
+ (fhandler_base_overlapped::wait_overlapped): Use isclosed() flag to
+ avoid querying the exception handle.
+ * fhandler.h (fhandler_base::_refcnt): New field.
+ (fhandler_base::refcnt): New function.
+ (fhandler_base::isclosed): Implement.
+ (fhandler_base::fhandler_base): Set isclosed to false.
+
+ * syscalls.cc: Remove space after function before parentheses for
+ several strace printfs.
+ (dup): Add standard strace "leaver" code.
+ (dup2): Ditto.
+ (dup3): Ditto.
+ (remove): Ditto.
+ (getpid): Ditto.
+ (getppid): Ditto.
+ (lseek64): Fix strace debugging to correctly use %R.
+
+ * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Avoid sending
+ signals to other processes if we're debugging since it can cause a
+ deadlock with the calling debugger.
+
+ * exceptions.cc (_cygtls::call_signal_handler): Add debugging-only
+ strace output.
+
+2011-12-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * dcrt0.cc (child_info_fork::alloc_stack): Correctly check if the
+ parent stack fits into the child stack. Align comment.
+ * wow64.cc (wow64_eval_expected_main_stack): New function to fetch
+ expected addresses of main thread stack from PE/COFF image header
+ values.
+ (wow64_test_for_64bit_parent): Fix comment. Check current stack
+ against real expected main thread stack addresses.
+ (wow64_revert_to_original_stack): Fix and add comments. Check memory
+ against real expected main thread stack addresses. Use orignal stack
+ if reserved area is >= 256K.
+
+2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * gendef (sigdelayed): Remember to pop all of the saved registers.
+ (sigreturn): Add "leave" label.
+
+2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Fix
+ unresolved access of wores in successful situations.
+
+2011-12-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * Makefile.in (DLL_OFILES): Add wow64.o.
+ * dcrt0.cc (CYGWIN_GUARD): Drop execute permission for stack, it's
+ not used for stacks by the OS either.
+ (child_info_fork::alloc_stack_hard_way): Ditto.
+ (child_info_fork::alloc_stack): Don't alloc_stack_hard_way under WOW64
+ if forked from a 64 bit parent. Set child's StackBase to parent's
+ StackBase. Add comments to explain why.
+ (wow64_respawn): Move to wow64.cc.
+ (wow64_started_from_native64): Move to wow64.cc.
+ (respawn_wow64_process): Move to wow64.cc.
+ (dll_crt0_0): Drop wow64_test_stack_marker and move stack test into
+ wow64_test_for_64bit_parent function. Don't return early if WOW64
+ process has been started from native 64 bit process.
+ (_dll_crt0): Implement moving stack for WOW64 processes started from
+ native 64 bit process.
+ * wow64.cc: New file.
+ (wow64_has_64bit_parent): Rename from wow64_respawn.
+ (wow64_test_for_64bit_parent): Rename from wow64_started_from_native64.
+ Change comment.
+ (wow64_revert_to_original_stack): New function.
+ (wow64_respawn_process): Rename from respawn_wow64_process for symmetry.
+ * wow64.h: New file.
+
+2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Fix debugging to not go
+ to console.
+ * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Add temporary
+ kludge to work around problem of make closing an fhandle while it is
+ being read.
+ * gendef (sigdelayed): Don't call a function if sig has been cleared.
+
+ * sigproc.h (cygwait): Simplify slightly.
+
+2011-12-14 Corinna Vinschen <vinschen@redhat.com>
+
+ * autoload.cc (GetSystemWow64DirectoryW): Define.
+ (GetVolumePathNamesForVolumeNameW): Define.
+ * fhandler_process.cc (get_volume_path_names_for_volume_name): New
+ static function to workaround missing GetVolumePathNamesForVolumeNameW
+ function in Windows 2000.
+ (dos_drive_mappings::dos_drive_mappings): Call
+ get_volume_path_names_for_volume_name instead of
+ GetVolumePathNamesForVolumeNameW.
+
+2011-12-13 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * dcrt0.cc (init_windows_system_directory): Record
+ system_wow64_directory information.
+ * exceptions.cc (_cygtls::inside_kernel): Modernize comment. Consider
+ executing a DLL from the Wow64 directory as being "in the kernel".
+ (_cygtls::call_signal_handler): For now, only deal with main_tls
+ signals if main_tls is known to be executing in the cygwin DLL. To
+ more closely emulate linux, consider the operation to be restartable if
+ not executing in the main thread.
+ * globals.cc (windows_system_directory): Remove NO_COPY.
+ (windows_system_directory_length): Ditto.
+ (system_wow64_directory): New variable.
+ (system_wow64_directory_length): Ditto.
+
+ * select.cc (cygwin_select): Don't issue a EINTR on non-main threads
+ since that seems to be what Linux does. Add missing break to signal
+ case/switch.
+ (select_stuff::wait): Don't issue a EINTR on non-main threads since
+ that seems to be what Linux does. Remove now-unneeded accommodation
+ for WAIT_IO_COMPLETION. Add a comment.
+ * sigproc.h (cygwait): Ditto. Don't return if signal_received noticed
+ and it's not the main thread.
+
+ * signal.cc (sigprocmask): Add standard syscall debug stuff.
+ * thread.cc (pthread_sigmask): Ditto.
+
+2011-12-13 Corinna Vinschen <vinschen@redhat.com>
+
+ * netdb.cc (open_system_file): Avoid MS-DOS path warning.
+
+2011-12-13 Corinna Vinschen <vinschen@redhat.com>
+
+ * path.cc (conv_path_list): Fix a condition.
+ (cygwin_conv_path): Revert WIN_A conversion to current locale codeset.
+
+2011-12-13 Corinna Vinschen <vinschen@redhat.com>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Call
+ file_get_fnoi instead of NtQueryInformationFile.
+ * path.cc (file_get_fnoi): New helper function to collect a
+ FILE_NETWORK_OPEN_INFORMATION block.
+ (symlink_info::check): Call file_get_fnoi rather than
+ NtQueryInformationFile to collect a FILE_NETWORK_OPEN_INFORMATION block.
+ * path.h (file_get_fnoi): Declare.
+
+2011-12-13 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * times.cc (hires_ns::resolution): Don't return less than 1.
+
+2011-12-12 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * cygthread.h (cygthread::name): Very minor formatting tweak.
+
+ * exceptions.cc (_cygtls::call_signal_handler): Add paranoid debugging
+ output.
+
+ * sigproc.h (cygwait): Call signal handler when signal is detected and
+ loop as appropriate.
+ * fhandler.h (fhandler_base_overlapped::wait_return): Remove
+ overlapped_signal.
+ * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove
+ restartable signal accommodations in light of cygwait improvements.
+ (fhandler_base_overlapped::raw_read): Remove now-obsolete signal loop
+ behavior.
+ (fhandler_base_overlapped::raw_write): Ditto.
+ * fhandler_console.cc (fhandler_console::read): Ditto.
+ * fhandler_serial.cc (fhandler_serial::raw_read): Ditto.
+ (fhandler_serial::raw_write): Ditto.
+ * fhandler_tty.cc (fhandler_pty_slave::read): Ditto.
+
+ * ioctl.cc (ioctl): Add standard syscall introducer and leaver debug
+ output.
+
+2011-12-12 Corinna Vinschen <vinschen@redhat.com>
+
+ * fhandler_process.cc (dos_drive_mappings): Partially rewrite to
+ handle volumes mounted into juntion points correctly.
+
2011-12-12 Corinna Vinschen <vinschen@redhat.com>
* fhandler_process.cc (dos_drive_mappings::dos_drive_mappings): Fully