aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-01-01 16:17:55 +0000
committerCorinna Vinschen <corinna@vinschen.de>2006-01-01 16:17:55 +0000
commita89b700926b5b75d62048f1a02b040d4d6f057cf (patch)
tree3f5492cafb07606232a319841cdf1c9f01227f6c
parentcceba5593d7a02ad4564f86154dd62f9ac05b08b (diff)
downloadnewlib-a89b700926b5b75d62048f1a02b040d4d6f057cf.zip
newlib-a89b700926b5b75d62048f1a02b040d4d6f057cf.tar.gz
newlib-a89b700926b5b75d62048f1a02b040d4d6f057cf.tar.bz2
* syslog.cc (vklog): Never log kernel messages using the vsyslog
interface.
-rw-r--r--winsup/cygwin/ChangeLog5813
-rw-r--r--winsup/cygwin/ChangeLog-20055812
-rw-r--r--winsup/cygwin/syslog.cc5
3 files changed, 5817 insertions, 5813 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index bde9580..50dd8a9 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5812 +1,5 @@
-2005-12-31 Corinna Vinschen <corinna@vinschen.de>
+2006-01-01 Corinna Vinschen <corinna@vinschen.de>
- * syslog.cc (vsyslog): Decrement len if trailing \n has been removed.
- Add \n when writing to stderr if LOG_PERROR option is set.
+ * syslog.cc (vklog): Never log kernel messages using the vsyslog
+ interface.
-2005-12-31 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/in.h: Drop including stdint.h. Move definition
- of in_port_t and in_addr_t to top of file and use throughout. Use
- sa_family_t type where appropriate.
- (struct in6_addr): Change `unsigned char' to `uint8_t'.
- (struct sockaddr_in6): Add sin6_scope_id member. Add comments.
- * include/cygwin/socket.h: Include stdint.h. Move definition of
- socklen_t to top of file. Define sa_family_t. Define struct
- sockaddr_storage as per SUSv3.
- * include/sys/un.h: Include cygwin/socket.h. Use sa_family_t type.
-
-2005-12-29 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Use
- strace method rather than accessing field directly.
- (fhandler_tty_common::__release_output_mutex): Ditto.
-
-2005-12-29 Christopher Faylor <cgf@timesys.com>
-
- * child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
- (child_info::dwProcessId): Delete.
- (child_info::straced): New variable.
- (child_info::handle_fork): New member function.
- * dcrt0.cc (in_forkee): New global variable.
- (__cygwin_user_data::forkee): Mark as obsolete.
- (do_global_ctors): Use in_forkee rather than user_data->forkee.
- (get_cygwin_startup_info): Ditto. Deal with new straced field to allow
- strace to deal with children of attached processes.
- (initial_env): Accommodate changes to strace::hello.
- (child_info_fork::handle_fork): Rename from plain old 'handle_fork'.
- Move alloc_stack() call elsewhere.
- (dll_crt0_0): Fill out more of user_data. Reference handle_fork via
- fork_info. Add some debugging output.
- (_dll_crt0): Don't wait for sync thread if sync_startup is invalid.
- Zero sync_startup here. Call alloc_stack() here, if appropriate.
- (dll_crt0_1): Use in_forkee rather than user_data->forkee.
- (dll_crt0): Ditto.
- * malloc_wrapper.cc (malloc_init): Ditto.
- * dll_init.cc (in_forkee): Remove local static version of this
- variable.
- (dll_list::load_after_fork): Don't set in_forkee here.
- * external.cc (cygwin_internal): Use strace method rather than
- accessing field directly.
- * fhandler.cc (fhandler_base::read): Ditto.
- * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Ditto.
- * fork.cc (frok::parent): Invoke strace write_childpid to communicate
- with potential strace.
- (child_copy): Add more detail to debugging output.
- * init.cc (calibration_id): New static variable.
- (prime_threads): Set sync_startup to invalid handle if we already know
- about thread_func_ix. Use static calibration_id to hold calibration
- thread id.
- * munge_threadfunc (munge_threadfunc): Don't try to debug if we don't
- find threadfunc_ix.
- (dll_entry): Avoid calling munge_threadfunc and _cygtls::remove on
- non-cygwin threads invoked during process startup.
- * pinfo.cc (set_myself): Always call strace.hello here regardless of
- DEBUGGING.
- * sigproc.cc (child_info::child_info): Remove spurious handling of
- dwProcessId. Set straced as appropriate.
- * spawn.cc (spawn_guts): Rename ciresrv to ch. Invoke strace
- write_childpid to communicate with potential strace.
- * strace.cc: Include child_info.h.
- (strace::hello): Remove inited test. Use active() method to test if
- strace has been activated. Handle case where we are started before
- (mypid): New function.
- (strace::vsprntf): Try to deal more intelligently with case where
- progname may not be filled out. Put pid in parentheses if it is a
- windows pid rather than a cygwin pid. myself has been filled out.
- (strace::write_childpid): New function for notifying strace about the
- creation of children.
- (strace::vprntf): Use strace method rather than accessing field
- directly.
- (strace_printf): Ditto.
- (strace::wm): Ditto.
- * winsup.h (in_forkee): Declare.
- * include/sys/strace.h (strace::write_childpid): Declare new function.
- (strace::attached): Define new function.
- (strace::active): Ditto.
- (strace::active_val): Ditto.
- (_STRACE_ON): Delete.
- (_STRACE_OFF): Ditto.
- (define_strace0): Use strace method rather than accessing field
- directly.
- (strace_printf_wrap): Ditto.
- (strace_printf_wrap1): Ditto.
-
-2005-12-28 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (win_env::add_cache): Don't add variables to the
- environment during initialization.
-
-2005-12-27 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::handle_exceptions): Drop redundant `break'.
-
-2005-12-27 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (inside_kernel): Rename from interruptible.
- Accommodate change throughout file.
-
-2005-12-27 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (interruptible): New function, code stripped from
- _cygtls::interrupt_now.
- (_cygtls::handle_exceptions): Handle STATUS_DATATYPE_MISALIGNMENT as
- SIGBUS error. Differ between unmapped memory (SEGV_MAPERR) and access
- violation (SEGV_ACCERR) in case of STATUS_ACCESS_VIOLATION. Write
- kernel log message in case of uncatched STATUS_ACCESS_VIOLATION.
- (_cygtls::interrupt_now): Just call interruptible now instead of
- evaluating interruptibility here.
-
-2005-12-27 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::check): Rework loop removing trailing dots
- and spaces.
-
- * syslog.cc (vklog): Set facility to LOG_KERN if not set.
-
-2005-12-26 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (__api_fatal): Simplify to just use strace mechamisms.
- (do_exit): Move minimal_printf...
- * pinfo.cc (pinfo::exit): ...into here.
- * strace.cc (strace::vprntf): Guarantee output to the console when
- system_printf/api_fatal.
-
- * heap.cc (heap_init): Wait a second before issuing an error when
- ERROR_INVALID_ADDRESS since this is probably due to a CTRL-C handler
- sneaking in, using the memory that we want to use for the heap, and,
- eventually exiting.
-
-2005-12-23 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::handle_threadlist_exception): Make an error
- fatal.
- * cygtls.h (sockaddr_in): Use header rather than defining our own
- structure.
- * exceptions.cc (_cygtls::interrupt_setup): Use exact contents of
- sa_mask rather than assuming that current sig should be masked, too.
- (_cygtls::call_signal_handler): Use more aggressive locking.
- * gendef (_sigbe): Wait until later before releasing incyg.
- (_sigreturn): Remove more arguments to accommodate quasi-sa_sigaction
- support.
- (_sigdelayed): Push arguments for sa_sigaction. More work needed here.
- * signal.cc (sigaction): Implement SA_NODEFER.
- * tlsoffsets.h: Regenerate.
-
- * sigproc.cc (wait_sig): Use default buffer size or Windows 9x complains
-
- * pinfo.cc (_onreturn::dummy_handle): Remove.
- (_onreturn::h): Make this a pointer.
- (_onreturn::~_onreturn): Detect whether pointer is NULL rather than
- value is NULL.
- (_onreturn::_onreturn): Set h to NULL initially.
- (_onreturn::no_close_p_handle): Set h to NULL.
- (winpids::add): Initialize onreturn with value from p.hProcess
- immediately.
-
-2005-12-22 Christopher Faylor <cgf@timesys.com>
-
- * fork.cc (fork): Honor error return from sig_send. Don't continue
- with fork if we couldn't suspend signals.
- * sigproc.cc (sig_send): Set sigCONT event when we see __SIGNOHOLD.
- (wait_sig): Remove holding_signals. Create pipe with a buffer which
- will theoretically cause blocking if there is nothing reading on the
- pipe. Wait for sigCONT at end of loop when we have a __SIGHOLD.
-
-2005-12-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_base::issymlink): New method.
- * syscalls.cc (open): Handle O_NOFOLLOW flag.
- * include/fcntl.h (_FNOFOLLOW): New define.
- (O_NOFOLLOW): Ditto.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-12-22 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (winpids::add): Increment nelem when winpid is true since we
- don't care if it's a cygwin process in that case.
-
-2005-12-22 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (winpids::release): Fix typo.
-
-2005-12-21 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Clarify comment slightly.
- (_onreturn): New helper class.
- (winpids:add): Remove copied stuff. Try to put process handle into
- pinfo in question and use _onreturn class to control when to close it.
- (winpids::release): Remove use of copied array. Free procinfo when
- hProcess is NULL. Otherwise call release and call CloseHandle on
- hProcess.
- * pinfo.h (winpids::copied): Remove throughout class.
-
-2005-12-21 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Remove spurious low_priority_sleep.
-
-2005-12-21 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (spawn_guts): Hide the window whenever ctty == -1, not just
- when we have no console.
-
-2005-12-21 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.cc (init_cygheap::manage_console_count): Revert previous
- change. Handle this a different way.
- * external.cc (cygwin_internal): Accommodate extra
- hook_or_detect_cygwin argument.
- * hookapi.cc (cygwin_internal): Fill in subsys variable with the
- subsystem of the executable.
- * spawn.cc (av::iscui): New variable.
- (spawn_guts): Hide window when we don't have a console and this isn't
- NT/XP/2003.
- (av::fixup): Set iscui flag.
- * winsup.h (hook_or_detect_cygwin): Accommodate extra argument.
-
-2005-12-21 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.cc (init_cygheap::manage_console_count): Don't call
- FreeConsole on 9x/Me.
-
-2005-12-21 Corinna Vinschen <corinna@vinschen.de>
-
- * (fhandler_disk_file::fchown): Remove execute bits from "sensible"
- permissions. Use same setting as in symlink.
-
-2005-12-21 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix inode number
- debug output.
- (fhandler_disk_file::fchown): Always set sensible permission values
- when creating the ACL for symlinks.
-
-2005-12-20 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (flush_file_buffers): Define as inline function.
- * miscfuncs.cc (flush_file_buffers): Remove.
-
-2005-12-20 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (flush_file_buffers): Declare new function.
- (FLushFileBuffers): New define.
- * miscfuncs.cc (flush_file_buffers): Define new function.
-
-2005-12-20 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_termios::fixup_after_exec): Make non-inlined.
- * fhandler_termios.cc (fhandler_termios::fixup_after_exec): Don't call
- fixup_after_fork if close_on_exec'ed.
-
-2005-12-19 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_cygtls::interrupt_now): Subsume interruptible().
- (interruptible): Delete.
- (setup_handler): Remove interruptible call and just use return from
- interrupt_now.
-
-2005-12-19 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (set_console_state_for_spawn): Add an argument to the
- declaration.
- * fhandler_console.cc (set_console_state_for_spawn): Ditto for the
- definition. Only set invisible console for non-cygwin process. Remove
- debugging leftover.
- * spawn.cc (spawn_guts): Pass argument denoting whether this is a
- cygwin process to set_console_state_for_spawn and only call this
- function when exec'ing.
-
-2005-12-19 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (fhandler_dev_zero::mmap): Call VirtualFree(MEM_RELEASE)
- with zero length parameter, otherwise it fails.
- (fhandler_dev_zero::munmap): Ditto.
-
-2005-12-18 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_console::invisible_console): Declare new
- variable.
- (fhandler_pipe::fixup_in_child): Declare new function.
- (fhandler_console::need_invisible): Ditto.
- (fhandler_console::has_a): Ditto.
- * fhandler_console.cc (set_console_state_for_spawn): Eliminate return
- value. Set up an invisible console if necessary prior to spawning.
- (fhandler_console::invisible_console): Define.
- * fhandler_tty.cc (fhandler_tty_slave::open): Use
- fhandler_console::invisible_console to setup an invisible console.
- * pipe.cc (fhandler_pipe::fixup_in_child): Define new function from
- fixup_after_exec.
- (fhandler_pipe::fixup_after_exec): Use fixup_in_child when appropriate.
- (fhandler_pipe::fixup_after_fork): Ditto.
- * spawn.cc (handle): Reorganize and modernize a little.
- (spawn_guts): Rely on set_console_state_for_spawn to set the console
- into the right state but don't create the process with "detached" flag
- if we have no controlling tty since that confuses 'cmd'.
- * dtable.cc (dtable::stdio_init): Don't set console as controlling
- terminal if we have an invisible console.
-
- * sigproc.cc (child_info::sync): Use correct name in ForceCloseHandle1.
-
-2005-12-18 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/dirent.h: Change __deprecated_d_ino to __invalid_d_ino
- throughout to make things a little clearer.
- * dir.cc (readdir_worker): Reflect above change.
-
-2005-12-16 Christopher Faylor <cgf@timesys.com>
-
- * winsup.h (child_copy): Change prototype to match new functionality.
- * cygheap.cc (cygheap_fixup_in_child): Accommodate new child_copy
- arguments.
- * dcrt0.cc (dll_data_start): Move definition here from fork.
- (dll_data_end): Ditto.
- (dll_bss_start): Ditto.
- (dll_bss_end): Ditto.
- (handle_fork): New function. Called when forked to deal with fork
- issues and copy data to this process from the parent.
- (dll_crt0_0): Call handle_fork when _PROC_FORK condition.
- (dll_crt0): Don't copy user_data when we've forked. Don't zero first
- element of main_environment ever.
- (cygwin_dll_init): Ditto.
- * fork.cc (child_copy): Rename from fork_copy and change arguments so
- that each pair of things to copy gets its own descriptor.
- (frok::child): Remove fixup_mmaps_after_fork call here. Move to
- handle_fork in dcrt0.cc.
- (frok::parent): Use child_copy rather than fork_copy and accommodate
- changes in parameters.
-
- * exceptions.cc (setup_handler): Delay test of whether we're locked
- until after GetThreadContext has been called since there are apparently
- cases where SuspendThread does not cause an immediate thread
- suspension.
-
-2005-12-16 Christopher Faylor <cgf@timesys.com>
-
- * init.cc (dll_entry): Call prime_threads after dll_crt0_0 to avoid
- conflicts between heap allocation and thread stack allocation.
-
-2005-12-16 Christopher Faylor <cgf@timesys.com>
-
- * hookapi.cc (putmem): Remove query of previous memory protection since
- we get that for free the first time we call VirtualProtect.
-
-2005-12-15 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (fhandler_dev_zero::fixup_mmap_after_fork): Use
- system_printf like any other fixup_mmap_after_fork.
-
-2005-12-14 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (ACCFLAGS): Remove macro.
- (fhandler_base::get_default_fmode): Use O_ACCMODE instead of ACCFLAGS
- and or'ed read/write flags.
- (fhandler_base::open_9x): Use O_ACCMODE instead of or'ed read/write
- flags.
- (fhandler_base::open): Ditto.
- * fhandler_disk_file.cc (fhandler_base::open_fs): Ditto.
- * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
- * fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
-
-2005-12-14 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base::open_9x): Handle O_SYNC and O_DIRECT
- flags.
- (fhandler_base::open): Ditto.
- * fhandler_floppy.cc (fhandler_dev_floppy::open): Don't allocate devbuf
- in O_DIRECT case.
- * fhandler_raw.cc (fhandler_dev_raw::ioctl): Don't allow buffer
- changes in O_DIRECT case. Allow returning a buffer size 0, which
- indicates O_DIRECT.
- * fhandler_tape.cc (fhandler_dev_tape::open): Use O_SYNC flag to
- hand down the !buffer_writes case. Don't allocate devbuf in O_DIRECT
- case.
- (fhandler_dev_tape::raw_read): Don't mess with devbuf if it's NULL.
- * include/fcntl.h: Define _FDIRECT, O_DIRECT, O_DSYNC and O_RSYNC.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-12-13 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Don't bother if we're exiting.
- * sigproc.cc (_cygtls::remove_wq): Ditto.
-
-2005-12-13 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty::open): Enhance comment.
-
-2005-12-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_tty::open): Close newly created window
- station after switching to original window station.
-
-2005-12-13 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty::open): Add a comment.
-
-2005-12-12 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::usecs): Subtract from slop from system time or
- we'll always end up priming the pump.
-
-2005-12-12 Nick Duffek <nick@duffek.com>
-
- * times.cc (systime): Correct precision referenced in comment.
-
-2005-12-12 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty_slave::open): Don't free original
- windows station since that will cause strange problems displaying
- fonts. Reset windows station to original station after creating
- console.
- * times.cc (hires_ms::usecs): Only reprime when calculated time is less
- than system time.
-
-2005-12-12 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin
- process associated with the pid, i.e., procinfo == NULL.
-
-2005-12-12 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::usecs): Correct order when checking if high
- precision time is <= current time.
-
-2005-12-12 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (size_copied): New convenience macro.
- (winpids::add): Alias the element that we are working on for slightly
- better clarity. Honor the "make_copy" flag.
- (winpids::release): Free and zero procinfo field if it was allocated
- via malloc.
- (winpids::~winpids): Free copied array.
- * pinfo.h (class pinfo): Make winpids class a friend.
- (winpids::make_copy): New field.
- (winpids::copied): New array.
- (winpids::reset): Reset npids after releasing pinfos or suffer a memory
- leak.
- (winpids::winpids): Try harder to zero all fields in the class.
-
-2005-12-12 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (GetSystemTimes): Remove.
-
-2005-12-12 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_uptime): Drop usage of GetSystemTimes.
- Use NtQuerySystemInformation to evaluate uptime and idle_time from
- all CPU's processor times. Fallback to GetTickCount.
-
-2005-12-12 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (gen_create_protect): Always generate WRITECOPY protection
- for private maps.
- (fixup_mmaps_after_fork): Fix calculation of WRITECOPY protection for
- VirtualProtect. Add some words to the comment.
-
-2005-12-10 Christopher Faylor <cgf@timesys.com>
-
- * dirent.h: Change the rest of the d_ino's to __deprecated_d_ino.
-
-2005-12-10 Christopher Faylor <cgf@timesys.com>
-
- * malloc.cc: Update to version 2.8.3.
- * cygmalloc.h (MSPACE): Remove unneeded definition.
-
-2005-12-08 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_raw.cc (fhandler_dev_raw::ioctl): Only allow 0, 1 or a
- multiple of 512 as new buffersize.
-
-2005-12-08 Pekka Pessi <ppessi@gmail.com>
- Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::recvfrom): Mask flags with
- MSG_WINMASK for Windows socket calls.
- (fhandler_socket::recvmsg): Ditto.
- (fhandler_socket::sendmsg): Ditto.
-
-2005-12-07 Christopher Faylor <cgf@timesys.com>
-
- * hires.h (hires_ms::initime_ms): Delete.
- (hires_ms::initime_us): Just define as LONGLONG.
- (hires_ms::uptime): New function.
- * select.cc (select_stuff::wait): Use gtod for timing to attempt to
- avoid windows 32 bit wraparound.
- * times.cc (systime): New function.
- (times): Replace GetTickCount with gtod.uptime.
- (hires_us::prime): Use systime() to calculate system time rather than
- calling GetSystemTimeAsFileTime directly.
- (hires_ms::prime): Ditto. Eliminate initime_ms.
- (hires_ms::usecs): Try harder to detect wraparound.
-
- * fhandler_proc.cc (format_proc_partitions): Set drive_size to zero to
- avoid a compiler warning.
-
-2005-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_partitions): Use modern IOCTLs
- to determine drive size as far as possible.
-
-2005-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix INVALID_PARAMETER
- condition. Only copy devbuf to buf if buf is non-NULL.
-
-2005-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix setting devbuf
- when rd_parm is 0 or 1.
-
-2005-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
- valid file position at EOM.
-
-2005-12-07 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/stdlib.h: Guard compilation of *unsetenv* in newlib.
-
-2005-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::handle_exceptions): In case of a
- STATUS_ACCESS_VIOLATION, check if the page is a mmaped page beyond
- a file's EOF. Generate SIGBUS instead of SIGSEGV then.
- * mmap.cc (__PROT_ATTACH): New define.
- (__PROT_FILLER): Ditto.
- (fh_anonymous): Rename from fh_paging_file;
- (fh_disk_file): New global static variable.
- (attached): New inline function.
- (filler): Ditto.
- (gen_create_protect): Split off from gen_protect to use the file's
- access mode to create mapping always with maximum allowed protections.
- (gen_protect): Accommodate pages attached beyond EOF. Use symbolic
- values instead of numerics when possible. Drop create parameter.
- (gen_access): Use file's access mode instead of protection.
- (CreateMapping9x): Create named mapping names so that different
- creation access modes result in different mappings.
- (CreateMappingNT): Only reserve attached pages, don't commit them.
- (MapViewNT): Ditto. Set AT_ROUND_TO_PAGE for all non-NULL base
- addresses.
- (mmap_func_t): Define CreateMapping and MapView function pointers
- with additional openflags parameter.
- (class mmap_record): Add openflags member.
- (mmap_record::mmap_record): Add openflags parameter.
- (mmap_record::get_openflags): New accessor.
- (mmap_record::attached): Call global attached function.
- (mmap_record::filler): Call global filler function.
- (mmap_record::gen_create_protect): Call global gen_create_protect
- function.
- (mmap_record::gen_protect): Drop create parameter.
- (mmap_record::alloc_fh): Set fhandler's access flags.
- (list::search_record): Accommodate filler pages.
- (list::set): Use inode number as hash value.
- (map::get_list_by_fd): Check hash value against file's inode number.
- (mmap_is_attached_page): New function to evaluate if a given address
- is on a attached page. Called from _cygtls::handle_exceptions.
- (mmap_worker): New function to do mapping and bookkeeping in a
- single call.
- (mmap64): Use roundup2 to round length to pagesize alignment.
- Initialize global fhandlers. Simplify anonymous initialization.
- Add SUSv3 compatible check of file open mode vs. requested protection.
- Try creating new file handles to allow maximum page protection.
- Allow creating attached pages in case of mapping beyond EOF.
- Close new file handle if one has been created.
- (munmap): Align len to pagesize.
- (msync): Rework argument checks. Align len to pagesize.
- (mprotect): Ditto. Accommodate attached pages.
- (mlock): Use roundup/rounddown macros instead of homemade expressions.
- (munlock): Add page alignment as in mlock.
- (fhandler_dev_zero::munmap): Fix unmapping of non-private mappings.
- (fhandler_dev_zero::fixup_mmap_after_fork): Accommodate filler pages.
- (fixup_mmaps_after_fork): Don't fail if attached pages couldn't be
- created in child. Avoid superfluous call to VirtualFree. Check for
- original allocation protection to fix PAGE_WRITECOPY protection.
- * ntdll.h: Revert deletion of AT_ROUND_TO_PAGE define.
- * winsup.h (mmap_is_attached_page): Declare.
-
-2005-12-05 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/stdlib.h: New file.
- * environ.cc (unsetenv): Change to return -1 on input error.
- * include/cygwin/version.h: Add more description to latest api bump.
-
-2005-12-05 Christopher Faylor <cgf@timesys.com>
-
- * dir.cc (readdir_workdir): Only fill out d_ino when linked into older
- app.
- * include/cygwin/version.h: Bump api minor number to 147, reflecting
- obsolescence of d_ino.
- (CYGWIN_VERSION_USER_API_VERSION_COMBINED): New convenience macro.
- (CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO): New convenience macro.
- * include/sys/dirent.h: Change d_ino field to __deprecated_d_ino.
-
-2005-12-05 Christopher Faylor <cgf@timesys.com>
-
- Remove unneeded whitespace.
- * cygtls.cc (_cygtls::set_state): Delete.
- (_cygtls::reset_exception): Ditto.
- (_cygtls::init_thread): Set initialized state directly here.
- (_cygtls::push): Remove exception argument. Don't treat exceptions
- specially.
- * cygtls.h (_cygtls::push): Ditto.
- (_cygtls::isinitialized): Don't treat exceptions specially.
- (_cygtls::reset_exception): Delete.
- (_cygtls::set_state): Ditto.
- (_cygtls::handle_exceptions): Don't push ebp on the stack prior to
- calling sig_send. Just set incyg instead.
- (_cygtls::interrupt_setup): Accommodate _cygtls::push argument change.
- (_cygtls::interrupt_now): Ditto.
- (setup_handler): Don't treat exceptions specially.
- * gendef (longjmp): Always zero incyg flag.
-
-2005-12-04 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (spenvs): Add "windir" as an "always export" variable
- to accommodate WinSock on Windows 95.
-
-2005-12-02 Christopher Faylor <cgf@timesys.com>
-
- * include/exceptions.h (exception_list): Revert previous change.
- Windows doesn't care.
- (exception_handler): Use real exception_list parameter type rather than
- void *
- * tlsoffsets.h: Regenerate.
- * cygtls.h (_cygtls::handle_exceptions): Use real exception_list
- parameter type rather than void *.
- (handle_threadlist_exception): Ditto.
- (init_exception_handler): Ditto.
- * cygtls.cc (_cygtls::handle_threadlist_exception ): Ditto.
- (_cygtls::init_exception_handler): Add kludge to terminate linked list
- with a loop, which seems to solve problem of RtlUnwind causing problems
- * exceptions.cc (rtl_unwind): Use real exception_list parameter type
- rather than void *.
- (_cygtls::handle_exceptions): Ditto.
-
-2005-12-02 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_cygtls::el): New field.
- (_cygtls::handle_exceptions): New function declaration.
- (_cygtls::handle_threadlist_exception): Ditto.
- (_cygtls::init_exception_handler): Ditto.
- (_cygtls::init_threadlist_exceptions): Remove arg from declaration.
- * cygtls.cc (_cygtls::call2): Don't initialize exceptions here.
- (_cygtls::init_thread): Do it here instead and use member function.
- (_cygtls::handle_threadlist_exception): Move into _cygtls class.
- (_cygtls::init_exception_handler): Ditto. Rely on existence of 'el'
- memmber in _cygtls.
- (_cygtls::init_threadlist_exceptions): Ditto.
- * dcrt0.cc (dll_crt0_1): Remove exception_list definition and setting
- since it now commonly resides in the tls.
- * exceptions.cc (init_exception_handler): Move to cygtls.cc.
- (init_exceptions): Ditto.
- (rtl_unwind): New, safe wrapper function for RtlUnwind.
- (_cygtls::handle_exceptions): Move to _cygtls. Call rtl_unwind to
- unwind frames and eliminate copying of structures. Put address of
- failing instruction in si_addr, not the address on the stack. Return 0
- to indicate that we've handled this exception.
- * external.cc (cygwin_internal): Make CW_INIT_EXCEPTIONS a no-op.
- * sigproc.cc (wait_sig): Accommodate argument change to
- _cygtls::init_threadlist_exceptions.
- * tlsoffsets.h: Regenerate.
- * include/exceptions.h (exception_list): Add more stuff to the
- exception list. Apparently windows needs this?
- (init_exceptions): Remove bogus declaration.
-
- * include/cygwin/signal.h (SI_USER): Redefine as zero as per SUSv3.
- * include/cygwin/version.h: Bump API minor version number to 146.
-
- * thread.cc (pthread_kill): Set si_pid and si_uid.
-
- * timer.cc (timer_thread): Set si_code to SI_TIMER.
-
-2005-12-01 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (getstack): Try harder to modify memory.
- (alloc_stack): Alloc page prior to stack top, too.
-
-2005-12-01 Christopher Faylor <cgf@timesys.com>
-
- * devices.h (_major): Revert previous ill-advised change.
- (_minor): Ditto.
-
-2005-12-01 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (handle_exceptions): Translate a guard page exception
- to a "SIGBUS".
-
-2005-12-01 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc: Make debug output more consistently. Fix some comments.
- (gen_protect): Convert to inline function.
- (gen_access): Ditto.
- (mmap_record::gen_protect): Add create parameter as in global function.
- (mmap_record::alloc_page_map): Change condition so that always the
- correct protection setting is set after mapping has been established.
- (mmap64): For anonymous mappings set offset always to 0.
- (fixup_mmaps_after_fork): Always call fixup_mmap_after_fork method
- with the MAP_FIXED flag set.
-
-2005-12-01 Christopher Faylor <cgf@timesys.com>
-
- * devices.h (_minor): Coerce argument to proper type before
- manipulating.
- (_major): Ditto.
- (device::is_fs_special): New function.
- * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set the size to
- 0 for devices rather than reporting the size of the symlink.
- (fhandler_disk_file::readdir): Use is_fs_special to determine if .lnk
- should be stripped.
- * path.cc: Rename symlink_info::is_symlink to symlink_info::issymlink
- throughout.
- (symlink_info::isdevice): New field.
- (path_conv::check): Use 'isdevice' to determine if just-parsed entity
- is a device rather than relying on non-zero major/minor.
- (symlink_info::parse_device): Set isdevice to true if we've discovered
- a device.
- (symlink_info::check): Clear isdevice field prior to processing. Use
- isdevice to control debugging output.
- (symlink_info::set): Set isdevice to false.
- * path.h (path_conv::is_fs_special): New function.
- * devices.cc: Regenerate.
-
-2005-11-30 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::prime): Remove debugging stuff.
- (hires_ms::usecs): Ditto.
-
-2005-11-30 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (list::try_map): New method, implementing trying to map
- within another already existing map, moved from mmap64 here.
- (mmap64): Just call try_map now.
- (fhandler_dev_zero::fixup_mmap_after_fork): Always create new private
- map with PAGE_READWRITE protection.
- (fixup_mmaps_after_fork): Fix comment.
-
-2005-11-29 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h: Bump API minor version.
-
-2005-11-29 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_dev_zero::mmap): Add method.
- (fhandler_dev_zero::munmap): Ditto.
- (fhandler_dev_zero::msync): Ditto.
- (fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
- * mmap.cc: Implement anonymous mapping using fhandler_dev_zero class.
- Implement private anonymous maps using VirtualAlloc/VirtualFree. Fix
- or add some more comments.
- (fh_paging_file): Change to type fhandler_dev_zero.
- (priv): New static inline function to avoid having lots of flag bit
- tests in the code. Use throughout were appropriate.
- (fixed): Ditto.
- (anonymous): Ditto.
- (noreserve): Ditto.
- (autogrow): Ditto.
- (gen_protect): Never generate PAGE_WRITECOPY protection for
- private anonymous maps.
- (gen_access): Drop FILE_MAP_EXECUTE handling since it's not supported
- correctly on 9x.
- (VirtualProt9x): Move comment from mmap64 here.
- (mmap_record::mmap_record): Gegerate correct device entry for
- anonymous maps, though unused right now.
- (mmap_record::priv): Call global priv function.
- (mmap_record::fixed): Call global fixed function.
- (mmap_record::anonymous): Call global anonymous function.
- (mmap_record::noreserve): Call global noreserve function.
- (mmap_record::autogrow): Call global autogrow function.
- (list::anonymous): New method. Use throughout were appropriate.
- (mmap_record::compatible_flags): Drop now useless ifdef.
- (mmap_record::alloc_page_map): Accommodate private anonymous maps.
- (mmap_record::map_pages): Accommodate MAP_NORESERVE mappings.
- (mmap_record::unmap_pages): Accommodate private anonymous maps.
- (mmap64): Simplify argument check. Don't remove the MAP_PRIVATE flag
- for anonymous mappings on 9x anymore since that's now handled
- gracefully.
- (mprotect): Accommodate MAP_NORESERVE mappings. Fix case when
- non-mmap areas are just MEM_RESERVEd.
- (fhandler_dev_zero::mmap): Implement anonymous mapping here.
- (fhandler_dev_zero::munmap): Ditto.
- (fhandler_dev_zero::msyn): Ditto.
- (fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
- (fixup_mmaps_after_fork): Accommodate private anonymous maps. Enhance
- debug output in case VirtualProtect fails.
- * include/sys/mman.h: Really define MAP_NORESERVE now.
-
-2005-11-28 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (NtCreateSection): Define.
- * cygheap.cc (_csbrk): Call getpagesize instead of getshmlba.
- * dcrt0.cc (dll_crt0_0): Call mmap_init.
- * external.cc (cygwin_internal): Call getpagesize instead of getshmlba.
- * fhandler.h (fhandler_base::mmap): Change access to prot parameter.
- (fhandler_base::fixup_mmap_after_fork): Ditto.
- (fhandler_disk_file::mmap): Ditto.
- (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
- (fhandler_dev_mem::mmap): Ditto.
- (fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
- * fhandler_mem.cc (fhandler_dev_mem::write): Call getsystempagesize
- instead of getpagesize.
- (fhandler_dev_mem::read): Ditto.
- (fhandler_dev_mem::fstat): Ditto.
- (fhandler_dev_mem::mmap): Move to mmap.cc.
- (fhandler_dev_mem::munmap): Ditto.
- (fhandler_dev_mem::msync): Ditto.
- (fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
- * fhandler_proc.cc (format_proc_meminfo): Call getsystempagesize
- instead of getpagesize.
- * fhandler_process.cc (format_process_stat): Ditto.
- (format_process_status): Ditto.
- (get_mem_values): Ditto.
- * mmap.cc: Fix formatting. Try to make more readable and modular.
- Take advantage of pagesize==granularity.
- (gen_protect): New static function to evaluate Windows
- protection bits from POSIX protection and flags.
- (gen_access): Ditto for Windows access mode.
- (VirtualProt9x): Wrapper function to call VirtualProtect on 9x.
- (VirtualProtNT): Ditto for NT.
- (VirtualProtEx9x): Ditto for VirtualProtectEx on 9x.
- (VirtualProtExNT): Ditto for NT.
- (CreateMapping9x): Wrapper function for creating a mapping handle on 9x.
- (CreateMappingNT): Ditto for NT.
- (MapView9x): Wrapper function to map a view on 9x.
- (MapViewNT): Ditto for NT.
- (mmap_funcs_9x): Structure containing function pointers to wrapper
- functions for 9x.
- (mmap_funcs_nt): Ditto for NT.
- (mmap_func): Pointer to wrapper functions used in subsequent code.
- (mmap_init): Initialize mmap_func depending on OS.
- (class mmap_record): Use sensible member names. Add POSIX protection
- member. Drop Windows access flags member. Constify more methods.
- Use accessors instead of direct member access inside of own methods.
- (mmap_record::gen_protect): Class wrapper to evaluate matching
- Windows protection bits.
- (mmap_record::gen_access): Ditto for Windows access flags.
- (mmap_record::compatible_flags): New function to check if flags are
- compatible with flags of existing map.
- (list::add_record): Drop offset and length arguments.
- (class map): Change counters to unsigned. Match usage throughout.
- (mmapped_areas): Convert from pointer to global struct.
- (mmap_record::alloc_page_map): Simplify.
- (mmap_record::map_pages): Ditto.
- (mmap_record::fixup_page_map): Delete.
- (mmap64): Simplify. Add workaround for Windows 98 bug. Fix bug on
- NT that existing anonymous mappings weren't searched for a match.
- (munmap): Add workaround for Windows 98 bug.
- (msync): Simplify.
- (mprotect): Handle existing maps correctly.
- (mlock): Add local pagesize variable and enlightening comment.
- (fhandler_disk_file::mmap): Main functionality now in CreateMapping/
- MapView wrapper functions.
- (fhandler_disk_file::fixup_mmap_after_fork): Call MapView wrapper.
- (fhandler_dev_mem::mmap): Moved from fhandler_mem.cc. Simplify by
- calling MapViewNT.
- (fhandler_dev_mem::munmap): Moved from fhandler_mem.cc.
- (fhandler_dev_mem::msync): Ditto.
- (fhandler_dev_mem::fixup_mmap_after_fork): Ditto. Call MapViewNT.
- (fixup_mmaps_after_fork): Restructure and hopefully speed up loop for
- setting protection and memory content on MAP_PRIVATE maps.
- * ntdll.h (AT_ROUND_TO_PAGE): Remove define.
- (AT_EXTENDABLE_FILE): Add define.
- (NtCreateSection): Add prototype.
- * syscalls.cc (getpagesize): Return granularity as pagesize now.
- (getsystempagesize): New function to retrieve "real" pagesize.
- (getshmlba): Delete since it's replaced by getpagesize now.
- * wincap.h (wincaps::has_mmap_alignment_bug): New element.
- * wincap.cc: Implement above element throughout.
- * winsup.h (getshmlba): Drop prototype.
- (getsystempagesize): Add prototype.
- (mmap_init): Ditto.
- * include/sys/mman.h: (Not yet) define MAP_NORESERVE.
-
-2005-11-28 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't rely on
- has_acl() state for evaluating inodes. Temporarily(?) enable "real"
- inodes for remote drives.
-
-2005-11-25 Christopher Faylor <cgf@timesys.com>
-
- * heap.cc: Remove spurious getpagesize declaration.
-
-2005-11-25 Christian Franke <Christian.Franke@t-online.de>
-
- * exceptions.cc (ctrl_c_handler): Distinguish CTRL-BREAK from CTRL-C in
- some cases.
-
-2005-11-23 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty_slave::open): Reset the current windows
- station whenever ctty == -1 regardles of whether there's a windows
- station already assigned. Close the old windows station in this
- situation.
- * pinfo.cc (_pinfo::set_ctty): Reinstate incrementing of console count
- when recording ctty so that the current tty is always around.
- * autoload.cc (CloseWindowStation): Define.
-
-2005-11-18 Christopher Faylor <cgf@timesys.com>
-
- * strptime.cc (_strptime): Fix gcc warnings.
-
-2005-11-18 Christopher Faylor <cgf@timesys.com>
-
- * memmem.cc: Move from here.
- * lib/memmem.cc: Move to here.
-
-2005-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * libc: Add subdirectory.
- * Makefile.in (VPATH): Add libc subdir.
- (DLL_OFILES): Add strptime.o and timelocal.o.
- * cygwin.din: Export timelocal and timegm.
- * localtime.cc: Define STD_INSPIRED unconditionally.
- * include/cygwin/time.h (timelocal): Add declaration.
- (timegm): Ditto.
- * include/cygwin/version.h: Bump API minor version.
- * libc/strptime.cc: New file.
- * libc/timelocal.cc: New file.
- * libc/timelocal.h: New file.
-
-2005-11-18 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/sys_time.h: Move futimes and lutimes declaration here
- from newlib.
-
-2005-11-18 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (timezone): Put back (void).
- * include/cygwin/time.h: Add more cygwin stuff from newlib.
-
-2005-11-18 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/sys_time.h: Rename from include/cygwin/time.h.
- * include/cygwin/time.h: New file.
-
-2005-11-17 Christopher Faylor <cgf@timesys.com>
-
- * fork.cc (fork): Move top-of-stack calculation later.
-
- * pinfo.cc (_pinfo::set_ctty): Use __ctty to print current console in
- debugging output.
-
-2005-11-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_tty_slave::open): Don't expect that
- service applications have no window station attached.
-
-2005-11-16 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::prime): Don't escalate the priority.
-
-2005-11-14 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/elf64.h: Fix types to reflect linux usage.
-
-2005-11-14 Corinna Vinschen <corinna@vinschen.de>
- Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_console::fixup_after_fork_exec): Define with
- additional bool parameter.
- (fhandler_console::fixup_after_exec): Accommodate
- fixup_after_fork_exec's parameter.
- (fhandler_console::fixup_after_fork): Ditto.
- * fhandler_console.cc (fhandler_console::fixup_after_fork_exec): Avoid
- opening new console only when close_on_exec AND execing.
-
-2005-11-14 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_console::fixup_after_fork_exec): Declare new function.
- (fhandler_console::fixup_after_fork): Use fixup_after_fork_exec.
- (fhandler_console::fixup_after_exec): Ditto.
- * fhandler_console.cc (fhandler_console::fixup_after_fork): Delete definition.
- (fhandler_console::fixup_after_fork_exec): Rename from fixup_after_exec.
- * pinfo.cc (_pinfo::set_ctty): Don't play with console count here.
- * syscalls.cc (close_all_files): Don't close cygheap ctty if hExeced
- since the child will be copying information from us.
- (setsid): Use myctty() rather than raw ctty #.
-
-2005-11-13 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (init_cygheap::manage_console_count): Declare new function.
- (init_cygheap::console_count): Renamed from open_fhs. Make private.
- * cygheap.cc (init_cygheap::manage_console_count): Define new function.
- * dtable.cc (dtable::fixup_after_exec): Always call fixup_after_exec on
- elements of fd even when they are about to be closed.
- * fhandler.h (report_tty_counts): Remove open_fhs from debugging
- output.
- * fhandler_console.cc (fhandler_console::open): Use
- manage_console_count rather than manipulating count directly.
- (fhandler_console::close): Ditto.
- (fhandler_console::fixup_after_fork): Ditto.
- (fhandler_console::fixup_after_exec): Ditto. Don't close handles if
- close_on_exec.
- * fhandler_tty.cc (fhandler_tty_slave::open): Use
- manage_console_count() rather than manipulating count directly.
- Reflect change in arguments to report_tty_counts().
- (fhandler_tty_slave::close): Ditto for both.
- (fhandler_tty_slave::dup): Ditto for both.
- (fhandler_tty_slave::ioctl): Use myctty() rather than raw ctty #.
- (fhandler_tty_slave::fixup_after_fork): Reflect change in arguments to
- report_tty_counts().
- (fhandler_tty_master::init_console): Use manage_console_count() rather
- than manipulating count directly.
- * fhandler_clipboard.cc (fhandler_dev_clipboard::fixup_after_exec):
- Don't perform any operations if close_on_exec.
- * fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_exec): Ditto.
- * fhandler_raw.cc (fhandler_dev_raw::fixup_after_exec): Ditto.
- * fhandler_serial.cc (fhandler_serial::fixup_after_exec): Ditto.
- * pinfo.h (_pinfo::_ctty): Declare new function.
- (myctty): Declare new macro.
- (__ctty): Declare new macro.
- * pinfo.cc (_pinfo::_ctty): Define new function.
- (_pinfo::set_ctty): Use manage_console_count() rather than manipulating
- count directly.
- * signal.cc (kill_pgrp): Use myctty() and __ctty() macros rather than
- raw ctty #.
- * syscalls.cc (setsid): Ditto. Use manage_console_count() rather than
- manipulating count directly.
-
-2005-11-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::recvfrom): Just return 0 (EOF)
- in case of WSAESHUTDOWN.
- (fhandler_socket::recvmsg): Ditto.
- * poll.cc (poll): Set revents to POLLIN instead of POLLHUP. Add comment.
-
-2005-11-11 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (init_cygheap::_gtod): Remove.
- * cygwin.din: Export clock_getres and clock_setres.
- * hires.h (hires_ms::minperiod): Delete declaration.
- (hires_ms::began_period): Ditto.
- (hires_ms::prime): Make void.
- (hires_ms::resolution): Just define here.
- (hires_ms::usecs): Remove unneeded argument.
- (gtod): Redeclare as a variable.
- * timer.cc (timer_thread): Eliminate argument to gtod.usecs().
- (timer_tracker::gettime): Ditto.
- (timer_tracker::settime): Ditto.
- * times.cc (gettimeofday): Ditto.
- (hires_ms::began_period): Delete declaration.
- (hires_us::prime): Remove debugging.
- (hires_ms::prime): Make void. Eliminate period stuff.
- (hires_ms::usecs): Eliminate argument to gtod.usecs().
- (hires_ms::resolution): New function.
- (clock_getres): Ditto.
- (clock_setres): Ditto.
- * version.h: Bump API version to 143.
- * include/cygwin/time.h: New file.
-
-2005-11-10 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::prime): Comment out call to timeBeginPeriod for
- now.
- (hires_ms::usecs): Call prime if haven't called began_period().
-
- * param.h: Don't define stuff that is already defined in endian.h.
-
-2005-11-10 Christopher Faylor <cgf@timesys.com>
-
- * include/endian.h: Remove USE_BSD ifdef since it is never defined on
- Cygwin.
-
-2005-11-10 Corinna Vinschen <corinna@vinschen.de>
-
- * syslog.cc (setlogmask): Don't mask the mask.
- (vsyslog): Fix priority check.
-
-2005-11-10 Scott Finneran <scottf@pacom.com>
-
- * include/cygwin/signal.h: Add missing sigrelse prototype.
-
-2005-11-08 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_base.cc (fhandler_base::readv): Free buf, not a pointer into
- the middle of buf.
-
-2005-11-08 Christopher Faylor <cgf@timesys.com>
-
- * memmem.cc: New file.
- * include/cygwin/version.h: Bump API version number to 142.
- * cygwin.din: Export memmem.
- * Makefile.in: Build memmem.o.
-
-2005-11-08 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (spenvs): Make "SYSTEMDRIVE" an "always export".
-
-2005-11-07 Corinna Vinschen <corinna@vinschen.de>
-
- * times.cc (futimes): Redirect to utimes_worker if given file
- descriptor is opened R/O.
-
-2005-11-06 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (dll_crt0_0): Initialize security data first so that it can
- be used by subsequent handle creation.
-
-2005-11-04 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (init_cygheap::_gtod): New hires_ms element.
- * hires.h (hires_ms::minperiod): Remove static designation.
- (hires::began_period): New field.
- * signal.cc: Include headers required for cygheap.h now that gtod lives
- in the cygheap.
- * timer.c: Ditto.
- * times.cc (gtod): Delete variable.
- (gtod::minperiod): Ditto.
- (gtod::began_period): Define.
- (hires_ms::prime): Add more debugging output. Call timeBeginPeriod
- only when !began_period.
-
-2005-11-04 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::prime): More debugging.
- (hires_ms::usecs): Ditto.
-
-2005-11-03 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (stupid_printf): Define and use throughout -- temporarily.
-
-2005-11-03 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::prime): Add lots of temporary debugging output.
-
-2005-11-02 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (hires_ms::minperiod): Make copy-on-fork.
- (gettimeofday): Remove temporary debugging.
- (hires_us::prime): Add lots of temporary debugging output.
-
-2005-11-02 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (gettimeofday): Add temporary debugging output.
-
-2005-11-01 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/cygwin.h: Define CYGWIN_SIGNAL_STRING.
- * exceptins.cc (sigpacket::process): Send a _CYGWIN_SIGNAL_STRING to
- gdb if the process is being debugged. A WIP.
-
-2005-10-29 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (signal_exit): Eliminate setting of main thread
- priority since process lock should make that unnecessary.
- * fork.cc (stack_base): Eliminate.
- (frok::parent): Subsume stack_base and just set stack stuff here.
- Report on priority class in debugging output.
- * spawn.cc (spawn_guts): Report on priority class in debugging output.
-
-2005-10-29 Christopher Faylor <cgf@timesys.com>
-
- * fork.cc (frok::child): Change order of cleanup prior to return.
- (fork): Save more of the stack.
-
- * gendef: Fix some comments.
-
- * sigproc.cc (wait_sig): Clarify debug output.
-
-2005-10-29 Christopher Faylor <cgf@timesys.com>
-
- * child_info.h (CHILD_INFO_MAGIC): Reset.
-
-2005-10-24 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (_pinfo::fds): Lock fdtab while enumerating.
-
-2005-10-24 Corinna Vinschen <corinna@vinschen.de>
-
- * spawn.cc (spawn_guts): Don't leave the function with return inside
- pthread cleanup brackets.
-
-2005-10-24 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (cygheap_fdenum): Remove start_fd stuff.
- (cygheap_fdenum::rewind): Ditto.
- * pipe.cc (fhandler_pipe::open): Lock fdtab while enumerating.
- * times.cc (utimes_worker): Ditto.
-
-2005-10-23 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or
- suffer deadlocks.
- (class locked_process): Move to another header.
- * sync.h (lock_process): Define here.
- * cygtls.cc (_cygtls::fixup_after_fork): Reset spinning state as well
- as stacklock state.
- * dcrt0.cc (lock_process::locker): Define.
- (dtable::lock_cs): Delete.
- (dll_crt0_0): Initialize process lock here ASAP.
- * dtable.cc (dtable_init): Eliminate call to init_lock().
- (dtable::fixup_after_fork): Ditto.
- (dtable::init_lock): Delete definition.
- * dtable.h (dtable::init_lock): Delete declaration.
- (dtable::lock): Use process lock rather than dtable-specific lock.
- (dtable::unlock): Ditto.
-
- * sigproc.cc (sigproc_init): Minor change to debugging output.
-
- * times.cc (utime_worker): Use build_fh_pc rather than reinterpreting
- the posix path name again. Return any error from path_conv immediately.
-
-2005-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::connect): Don't restrict
- WSAEINVAL -> WSAEISCONN conversion to nonblocking sockets.
- (fhandler_socket::accept): Use event driven technique to implement
- interuptible accept.
- (fhandler_socket::wait): Allow FD_ACCEPT handling.
- * net.cc (cygwin_accept): Remove workaround for allowing blocking
- accept. That's entirely in fhandler_socket::accept now.
-
-2005-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_socket): Add timeout parameter to wait()
- method.
- * fhandler_socket.cc (fhandler_socket::connect): Use event driven
- technique (prepare/wait/release) to implement interuptible connect.
- (fhandler_socket::wait): Add timeout parameter. Allow FD_CONNECT
- handling.
- * net.cc (cygwin_connect): Remove braindead workaround for allowing
- blocking connect. That's entirely in fhandler_socket::connect now.
-
-2005-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h: Fix typo.
-
-2005-10-21 Christopher Faylor <cgf@timesys.com>
-
- * dir.cc (rmdir): Eliminate nonsensical code.
-
- * fork.cc (fork): Move exit debug_printf to last statement.
-
-2005-10-20 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (futimes): Export.
- (lutimes): Export.
- * times.cc (utimes_worker): Created from utimes, add nofollow flag
- to implement utimes and lutimes.
- (utimes): Just call utimes_worker.
- (lutimes): New function.
- (futimes): Ditto.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-10-19 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (child_info::sync): Move check for !wr_proc_pipe lower.
- * spawn.cc (spawn_guts): Correct check for top-level process.
-
-2005-10-19 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc: Revert loading rcmd, rexec, rresvport and inet_network
- from wsock32.dll since these symbols are not exported from ws2_32.dll.
-
-2005-10-19 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (utimes): Only consider fds opened with write access.
-
-2005-10-19 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_disk_file.cc (fhandler_base::utimes_fs): Use existing handle
- if fhandler has one.
- * times.cc (utimes): Scan open fds for matching paths and use existing
- fhandler if one exists.
-
-2005-10-19 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (_pinfo::dup_proc_pipe): Make warning more severe by
- actually printing it.
- (_pinfo::alert_parent): Fix comment. Don't send to parent if we are in
- an exec stub.
-
-2005-10-18 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (handle_threadlist_exception): Improve diagnostic output.
-
- * sigproc.cc (child_info::sync): Only clear hProcess when execing.
- (wait_sig): Protect readsig handle.
-
-2005-10-18 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (NtLockVirtualMemory): Import.
- (NtUnlockVirtualMemory): Import.
- (GetProcessWorkingSetSize): Import.
- (SetProcessWorkingSetSize): Import.
- * cygwin.din (mlock): Export.
- (munlock): Export.
- * mmap.cc (mlock): New function.
- (munlock): Ditto.
- * ntdll.h (STATUS_WORKING_SET_QUOTA): Define.
- (LOCK_VM_IN_WSL): Define.
- (LOCK_VM_IN_RAM): Define.
- (NtLockVirtualMemory): Declare.
- (NtUnlockVirtualMemory): Declare.
- * sysconf.cc (sysconf): Implement _SC_MEMLOCK_RANGE.
- * wincap.h: Implement has_working_virtual_lock throughout.
- * wincap.cc: Ditto.
- * include/cygwin/version.h: Bump API minor version.
- * include/sys/mman.h (mlock): Declare,
- (munlock): Declare.
-
-2005-10-18 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (child_info::sync): Use correct name when closing to
- prevent warnings when DEBUGGING.
- * spawn.cc (spawn_guts): Set myself.hProcess to pi.hProcess since this
- may have been zeroed by the previous sync.
-
-2005-10-18 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (child_info::sync): Fix typo which caused hProcess to
- never be cleared. Only clear hProcess when not forking.
-
-2005-10-17 Christopher Faylor <cgf@timesys.com>
-
- Change process_lock to lock_process throughout.
- Change all calls to new cygthread to handle extra argument, throughout.
- * cygthread.h (cygthread::callproc): Declare new method.
- (cygthread::cygthread): Add optional length argument to allow copying
- arguments to executing thread.
- * cygthread.cc (cygthread::callproc): Define new method.
- (cygthread::stub): Use callfunc to invoke thread func to allow
- potentially allocating stack memory which will be returned.
- (cygthread::simplestub): Ditto.
- (cygthread::cygthread): Accept arglen argument. Reset ev here prior to
- activating thread. Wait for ev after activating thread if we're
- copying contents to the thread. Wait until the end before setting h,
- to allow thread synchronization.
- (cygthread::release): Don't reset ev here. Rely on that happening the next
- time the thread is activated.
- * pinfo.h (commune_process): Rename declaration from _pinfo::commune_process.
- * pinfo.cc (commune_process): Ditto for definition. Modify slightly to allow
- running as a separate cygthread.
- * sigproc.cc (child_info::sync): Always wait for both subproc_ready and
- any hProcess if we have a cygwin parent.
- (talktome): Change argument to be a pointer to siginfo_t. Contiguously
- allocate whole siginfo_t structure + any needed extra for eventual passing
- to commune_process thread.
- (wait_sig): Accommodate change in talktome argument.
-
- * pipe.cc (fhandler_pipe::fixup_after_exec): Remove debugging.
-
-2005-10-17 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc: Never load wsock32.dll. Load all wsock32 function
- from ws2_32. Rearrange symbol order accordingly. None of the ws2_32
- functions is optional right now.
- (wsadata): Move from net.cc here. Define NO_COPY.
- (wsock_init): Drop unused symbols ws2_32_handle and wsock32_handle.
- (load_wsock32): Remove.
- (WSACleanup): Remove.
- * fhandler_socket.cc: Drop Winsock 1 accommodations throughout.
- (fhandler_socket::readv): Accommodate new POSIX style struct msghdr.
- (fhandler_socket::writev): Ditto.
- (fhandler_socket::recvmsg): Ditto. Handle "old" applications using
- former struct msghdr correctly.
- * net.cc: Drop Winsock 1 accommodations throughout.
- (wsadata): Move definition to autoload.cc.
- (set_socket_inheritance): Remove.
- (convert_ws1_ip_optname): New static function to convert Winsock1
- IPPROTO_IP option values into Winsock2 IPPROTO_IP option values.
- (cygwin_setsockopt): Remove wrong and incomplete cleartext printing
- of optname. For "old" applications, convert optname from Winsock1
- to Winsock2 values before using them. Add comment to describe the
- IP_TOS weirdness on W2K and above.
- (cygwin_getsockopt): Remove wrong and incomplete cleartext printing
- of optname. For "old" applications, convert optname from Winsock1
- to Winsock2 values before using them.
- * select.cc (start_thread_socket): Forget about winsock2_active.
- * winsup.h (wsock32_handle): Remove declaration.
- (ws2_32_handle): Ditto.
- (netapi32_handle): Ditto.
- (wsadata): Ditto.
- (winsock2_active): Remove definition.
- * include/cygwin/socket.h: Change formatting slightly.
- (socklen_t): Move definition up in file.
- (struct msghdr): Convert to POSIX style.
- (struct cmsghdr): New type.
- (CMSG_ALIGN): New macro.
- (CMSG_LEN): Ditto.
- (CMSG_SPACE): Ditto.
- (CMSG_FIRSTHDR): Ditto.
- (CMSG_NXTHDR): Ditto.
- (CMSG_DATA): Ditto.
- (SCM_RIGHTS): Ditto.
- (struct OLD_msghdr): Define old msghdr structure for Cygwin internal
- purposes.
- (MSG_TRUNC): New macro.
- (MSG_CTRUNC): Ditto.
- (IP_OPTIONS): Redefine IPPROTO_IP option values to Winsock2 values.
- Keep Winsock1 values for Cygwin internal purposes.
- * include/cygwin/version.h: Bump API minor version.
- (CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR): Define to check for
- applications using old struct msghdr.
- (CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES): Define to check for
- applications using old Winsock1 IPPROTO_IP values.
-
-2005-10-13 David Rothenberger <daveroth@acm.org>
- Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in (MKDIRP): Just use raw $(INSTALL) rather than
- $(INSTALL_DATA). Create directories with 755 permissions.
-
-2005-10-12 Christopher Faylor <cgf@timesys.com>
-
- * dir.cc (mkdir): Abandon use of PC_WRITABLE.
- (rmdir): Ditto.
- * path.h (PC_WRITABLE): Delete.
- * path.cc (path_conv::check): Remove PC_WRITABLE accommodations.
- Revisit later.
-
-2005-10-12 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Convert an
- ERROR_INVALID_FUNCTION into an ERROR_FILE_NOT_FOUND. Add comment
- to explain why.
-
-2005-10-11 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in: Make sure that directories are created prior to copying
- to them.
-
-2005-10-11 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (cygwin_gethostbyname): Remove debugging.
-
-2005-10-11 Corinna Vinschen <corinna@vinschen.de>
-
- * syslog.cc (try_connect_syslogd): Add priority parameter. Use writev
- to add the priority to the message in a syslog conformant way.
- (vsyslog): If facility isn't set in the priority, use default facility
- as given in call to openlog. Fix agressive use of spaces in syslog
- output. Call try_connect_syslogd with priority parameter.
-
-2005-10-11 Christopher Faylor <cgf@timesys.com>
-
- * (symlink_info::set_error): Change to return bool if input error
- should be ignored.
- (symlink_info::check): Treat path as a normal file if set_error returns
- false.
-
-2005-10-03 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (class process_lock): New class.
- * dtable.h (class dtable): Add class process_lock as a friend.
- * dcrt0.cc (get_exit_lock): Delete.
- (do_exit): Use process_lock class instead of get_exit_lock.
- * exceptions.cc (signal_exit): Ditto.
- * pinfo.cc (pinfo::exit): Ditto.
- (_pinfo::commune_process): Set process lock around this whole function.
- (_pinfo::commune_request): Use process_lock rather than myself.lock.
- * pinfo.h (pinfo::_lock): Delete.
- (pinfo::initialize_lock): Delete.
- (pinfo::lock): Delete.
- (pinfo::unlock): Delete.
- * winsup.h (get_exit_lock): Delete declaration.
-
-2005-10-03 Corinna Vinschen <corinna@vinschen.de>
-
- * uname.cc (uname): Disable use of GetNativeSystemInfo.
-
-2005-10-01 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (get_exit_lock): Use myself.lock rather than exit_lock.
- * exceptions.cc (exit_lock): Delete.
- (events_init): Don't init exit_lock.
- * (_pinfo::commune_process): Add per-PICOM debugging.
- * sigproc.cc (talktome): Add some temporary debugging statements.
-
- * fhandler_proc.cc (format_proc_cpuinfo): Cosmetic change.
- (format_proc_partitions): Ditto.
- * syscalls.cc (locked_append): Ditto.
-
-2005-09-30 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_exit): Don't set ES_SET_MUTO here. Call get_exit_lock()
- instead.
- (get_exit_lock): New function. Grabs the lock and sets initial
- exit_state.
- * exceptions.cc (try_to_debug): Use low_priority_sleep.
- (sigpacket::process): Avoid handler if this is an exec stub.
- (signal_exit): Use get_exit_lock rather than manipulating the exit_lock
- critical section directly.
- * pinfo.cc (pinfo::exit): Ditto.
- * winsup.h (get_exit_lock): Declare.
- (exit_lock): Delete declaration.
-
-2005-09-30 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc: Change calls to pc.set_attributes into
- calls to pc.file_attributes throughout.
- * path.h (class path_conv): Remove superfluous set_attributes method.
-
-2005-09-30 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Use
- fhandler method to access major device number. Add comment to
- explain floppy weirdness.
-
-2005-09-30 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Also use
- attributes stored in this->pc if call to GetFileInformationByHandle
- failed.
-
-2005-09-30 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only write
- attributes if call to GetFileInformationByHandle was successful.
-
-2005-09-29 Christopher Faylor <cgf@timesys.com>
-
- * fork.cc (frok::parent): Simplify error messages. Don't issue an
- error when child.remember fails.
- (fork): When appropriate, build up an error message from grouped.error.
-
-2005-09-29 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Don't call
- EX ioctls on floppy drives.
-
-2005-09-29 Corinna Vinschen <corinna@vinschen.de>
-
- * dir.cc (mkdir): Check for trailing /. or /.. component.
- (rmdir): Ditto.
- * path.cc (has_dot_last_component): New function.
- * path.h (has_dot_last_component): Add declaration.
-
-2005-09-29 Corinna Vinschen <corinna@vinschen.de>
-
- * crt0.cc: Remove PPC considerations.
- (WinMainCRTStartup): Add symbol as alias to mainCRTStartup.
-
-2005-09-28 Christopher Faylor <cgf@timesys.com>
-
- Change name from commune_recv to commune_process throughout.
- Change name from commune_send to commune_request throughout.
- * pinfo.h (PICOM_EXTRASTR): New flag.
- (PICOM_FIFO): Define with new flag.
- (_pinfo::hello_pid): Delete.
- (_pinfo::tothem): Delete.
- (_pinfo::fromthem): Delete.
- (_pinfo::commune_process): Rename from commune_recv. Add a siginfo_t
- argument to declaration.
- (_pinfo::commune_request): Rename from commune_send. Change DWORD to
- __uint32_t in declaration.
- * pinfo.cc (_pinfo::commune_process): Rename from commune_recv. Add
- siginfo_t argument. Use information from argument rather than reading
- from another pipe. Synchronize with other process's commune event.
- (_pinfo::commune_request): Rename from commune_send. Change DWORD to
- __uint32 in argument. Fill out information in new siginfo_t element
- and rely on extended operation of sig_send rather than trying to deal
- with synchronization issues here. Use process handle and read pipe
- information filled out by sig_send to gather information from the other
- process.
- * sigproc.cc (sig_send): Take special action if "communing" to ensure
- synchronization with the other process and to return information about
- the other process to the caller.
- (talktome): Accept a siginfo_t and handle arguments. Read additional
- information from the signal pipe when _si_commune._si_code has the
- PICOM_EXTRASTR flag set.
- (wait_sig): Pass the transmitted siginfo_t struct and the pipe handle
- to talktome. Close pipe read handle as soon as possible after we
- detect that we're exiting.
-
-2005-09-28 Christopher Faylor <cgf@timesys.com>
-
- * hookapi.cc (hook_or_detect_cygwin): Correct inverted test for whether
- to allocate a buffer by always allocating a buffer.
-
-2005-09-28 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_dev_raw): Delete current_position and
- eof_detected status flag. Delete is_eom and is_eof methods.
- Move drive_size, bytes_per_sector, eom_detected status flag, as well
- as the methods read_file, write_file, raw_read and raw_write to ...
- (class fhandler_dev_floppy): ... here. Remove is_eom and is_eof
- methods. Add dup method.
- * fhandler_floppy.cc (IS_EOM): New macro.
- (fhandler_dev_floppy::is_eom): Remove.
- (fhandler_dev_floppy::is_eof): Remove.
- (fhandler_dev_floppy::fhandler_dev_floppy): Initialize status flags.
- (fhandler_dev_floppy::get_drive_info): Only call EX functions on
- systems supporting them and stop suffering strange delays.
- (fhandler_dev_floppy::read_file): Move here, drop setting
- current_position.
- (fhandler_dev_floppy::write_file): Move here, drop setting
- current_position.
- (fhandler_dev_floppy::open): Rearrange comment.
- (fhandler_dev_floppy::dup): New method.
- (fhandler_dev_floppy::get_current_position): New inline method. Use
- instead of former current_position were appropriate.
- (fhandler_dev_floppy::raw_read): Move here. Drop EOF handling.
- (fhandler_dev_floppy::raw_write): Move here. Drop EOF handling.
- (fhandler_dev_floppy::lseek): Remove useless conditions. Convert
- sector_aligned_offset to LARGE_INTEGER to improve SetFilePointer call.
- (fhandler_dev_floppy::ioctl): Move blocksize check in RDSETBLK case
- to here.
- * fhandler_raw.cc (fhandler_dev_raw::is_eom): Remove.
- (fhandler_dev_raw::is_eof): Remove.
- (fhandler_dev_raw::write_file): Remove.
- (fhandler_dev_raw::read_file): Remove.
- (fhandler_dev_raw::raw_read): Remove.
- (fhandler_dev_raw::raw_write): Remove.
- (fhandler_dev_raw::dup): Drop copying removed members.
- (fhandler_dev_raw::ioctl): Drop blocksize testing.
- * wincap.h: Implement has_disk_ex_ioctls throughout.
- * wincap.cc: Ditto.
- (wincap_vista): Preliminary wincaps for Windows Vista/Longhorn.
- (wincapc::init): Add Vista/Longhorn handling.
-
-2005-09-28 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (getstack): New function.
- (alloc_stack): Use tls stuff for stack info rather than calling
- VirtualQuery.
- (dll_crt0_0): Initialize _impure_ptr stuff much earlier. Move
- init_console_handler here.
- * fork.cc (class frok): New class renamed from local fork() struct.
- (stack_base): Change argument type. Use tls stuff to determine stack
- info rather than calling VirtualQuery.
- (frok::child): Rename from fork_child. Eliminate now unneeded
- arguments.
- (frok::parent): Rename from fork_parent and ditto. Set error and errno
- as appropriate. Fixup impersonation in cleanup, if needed. Try harder
- to set errno appropriately.
- (fork): Define "grouped" as a frok type. Deal with errors from
- fork_parent here.
- * init.cc (dll_entry): Remove init_console_handler call.
-
-2005-09-28 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (_pinfo::dup_proc_pipe): Ignore error if the child process
- has just gone away.
-
-2005-09-27 Christopher Faylor <cgf@timesys.com>
-
- * init.cc (prime_threads): Make this static, as it should be.
- (dll_entry): Apply cosmetic changes to define closer to the way MSDN
- suggests.
-
-2005-09-27 Corinna Vinschen <corinna@vinschen.de>
-
- * pthread.cc (mangle_sem_name): Use cygheap->shared_prefix instead
- of fiddling with wincap.has_terminal_services manually.
-
-2005-09-27 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.cc (cygheap_init): Add GLOBAL_PRIV to hProcToken explicitely
- since hProcImpToken isn't initialized here.
- * shared.cc (open_shared): Always print mapname instead of name in
- debug output.
-
-2005-09-27 Christopher Faylor <cgf@timesys.com>
-
- * strace.cc (strace::vsprntf): Avoid printing a zero pid.
-
-2005-09-27 Corinna Vinschen <corinna@vinschen.de>
-
- * init.cc (dll_entry): Call IsWow64Process with GetCurrentProcess
- as process handle since hMainProc isn't initialized here.
-
-2005-09-27 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Always
- try IOCTL_DISK_GET_DRIVE_GEOMETRY_EX and
- IOCTL_DISK_GET_PARTITION_INFO_EX ioctls first, to allow access to GPT
- partitioned disks. Fall back to old non-EX ioctls otherwise.
- Add comment to explain NT4 weirdness.
-
-2005-09-26 Corinna Vinschen <corinna@vinschen.de>
-
- * errno.cc (errmap): Map ERROR_SEEK and ERROR_SECTOR_NOT_FOUND.
-
-2005-09-26 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (_cygtls::call_signal_handler): Minor cleanup.
-
-2005-09-26 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_dev_raw): Add drive information members
- drive_size, current_position and bytes_per_sector.
- (fhandler_dev_floppy::get_drive_info): Declare.
- * fhandler_floppy.cc (fhandler_dev_floppy::is_eom): Define ERROR_SEEK
- and ERROR_SECTOR_NOT_FOUND as end-of-medium conditions.
- (fhandler_dev_floppy::get_drive_info): New method to have one function
- retrieving drive info.
- (fhandler_dev_floppy::open): Call get_drive_info to get drive
- information right from the start.
- (fhandler_dev_floppy::lseek): Use and set drive information members.
- Especially keep track of current_position.
- (fhandler_dev_floppy::ioctl): Ditto.
- * fhandler_raw.cc (fhandler_dev_raw::write_file): Keep track of
- current_position.
- (fhandler_dev_raw::read_file): Ditto.
- (fhandler_dev_raw::raw_read): Never try to read beyond end-of-medium.
- (fhandler_dev_raw::dup): Handle new drive information members.
-
-2005-09-26 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (handle_exceptions): Just set si_code to SI_KERNEL
- first and let it be overridden.
-
-2005-09-26 Yitzchak Scott-Thoennes <sthoenna@efn.org>
-
- * exceptions.cc (_cygtls::call_signal_handler): Call signal handler
- with extra siginfo_t * and void * parameters when SA_SIGINFO flag is
- set.
- * signal.cc (signal): Clear SA_SIGINFO flag.
- (sigqueue): Fix incorrect setting of si_code.
- * sigproc.cc (signal_fixup_after_exec): Clear SA_SIGINFO flag when
- setting handler to SIG_DFL.
-
-2005-09-26 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (proc_waiter): Properly fill out si_code as according to SUSv3.
-
-2005-09-26 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (handle_exceptions): Properly fill out si_code as
- according to SUSv3.
-
-2005-09-25 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (wait_sig): Cosmetic change.
- * pinfo.cc (pinfo::exit): Don't explicitly remove myself since some
- other thread may still be using it.
-
-2005-09-24 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (sigproc_terminate): More reversion of
- always-exit-from-sigthread change.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- * shared.cc (open_shared): Add crucial bit of debugging info.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- Semi-reversion of always-exit-from-sigthread change of 2005-09-15.
- * exceptions.cc (sigpacket::process): Eliminate return after call to
- reinstated noreturn function.
- (signal_exit): Allow function to exit when a captive process has been
- terminated.
- * pinfo.cc (pinfo::exit): Enter exit_lock here. Once again exit here
- under control of exit_lock.
- * sigproc.cc (sig_send): Don't wait for completion if process is exiting.
- Remove special __SIGEXIT accommodations.
- (wait_sig): Just exit the thread when a __SIGEXIT has been detected.
- Don't exit the process.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (cygwin_gethostbyname): Remove debugging cruft.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::exit): Call ExitProcess if called from signal
- thread.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::exit): Eliminate use of _my_tls.thread_handle.
- * tlsoffsets.h: Regenerate.
-
-2005-09-23 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (struct _cygtls::thread_handle): Remove/revert.
- * sigproc.h (struct sipacket::thread_handle): Put thread_handle here.
- * sigproc.cc (sigproc_terminate): Move setting of thread_handle...
- (sig_send): ...to here. Put it in packet being sent. Only close
- pack.wakeup when we're waiting for completion.
- (wait_sig): Use thread_handle directly from received packet.
-
-2005-09-22 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.cc (cygheap_fixup_in_child): It's not just for exec.
- * cygtls.h (struct _cygtls::thread_handle): New field.
- * dcrt0.cc (exit_lock): Remove declaration.
- * winsup.h (exit_lock): Add declaration.
- * exceptions.cc (sigpacket::process): Properly return after
- signal_exit.
- * pinfo.cc (pinfo::exit): Only exit the process if
- _my_tls.thread_handle has not been filled out -- which should be an
- impossible event.
- * sigproc.cc (sigproc_terminate): Fillout _my_tls.thread_handle to
- provide something for wait_sig to wait for. Use the siginfo_t version
- of sig_send and fill out the tls argument with _my_tls.
- (wait_sig): Wait for the thread specified in pack.tls or (for now)
- complain bitterly if it doesn't exit.
- * tlsoffsets.h: Regenerate.
-
-2005-09-22 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (set_myself): Call strace.hello unconditionally when
- DEBUGGING.
- (pinfo::init): Sleep and issue debugging output before looping when a
- PID_EXITED is found.
-
-2005-09-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix copy/paste
- bug.
-
-2005-09-22 Christopher Faylor <cgf@timesys.com>
-
- * strace.cc (strace::vsprntf): Avoid accessing myself->pid if !myself.
-
-2005-09-22 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/strace.h (_STRACE_ON): Remove semicolon from definition.
- (_STRACE_OFF): Remove semicolon from definition.
-
-2005-09-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_base::fstat_helper): Declare with additional
- file attributes argument.
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use
- file attributes evaluated from NtQueryFileInformation or
- FileInformationByHandle in call to fstat_helper.
- Set pc.fileattr from just evaluated file attributes here.
- (fhandler_base::fstat_by_name): Use file attributes evaluated from
- FindFileFirst or default attribute in call to fstat_helper.
- Set pc.fileattr from just evaluated file attributes here.
- (fhandler_base::fstat_helper): Use file attributes given as argument,
- not file attributes stored in this fhandler, since this information
- is potentially wrong. Add comment to explain this.
- * path.h (has_attribute): New global inline function.
- (path_conv::set_attributes): New method to change fileattr.
-
-2005-09-21 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::operator new): Just use getenv() to look for
- CYGWIN_FREERANGE_NOCHECK since the Windows environment may be truncated
- by being previously execed.
-
-2005-09-20 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (av::fixup): Just blindly run any file if it has a .bat or
- .cmd extension.
-
-2005-09-19 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_exit): Only call sigproc_terminate from one location --
- pinfo::exit.
- * pinfo.cc (pinfo::exit): Move sigproc_terminate later so that signals
- can be processed while waiting for hExeced child.
- (pinfo::maybe_set_exit_code_from_windows): Set exit code from sigExeced
- if it is non-zero. Set exit_state to ES_EXEC_EXIT prior to waiting for
- captive process exit code.
- * exceptions.cc (sigExeced): New global variable.
- (signal_exit): Remove noreturn attribute from declaration.
- (signal_exit): Just terminate captive process and return if hExeced on
- the theory that the exit will be subsequently handled in the main
- thread.
- * sigproc.cc (sigproc_terminate): Eliminate test for
- ES_SIGPROCTERMINATE and use ES_FINAL instead.
- (sig_send): Use no_signals_available instead of duplicate test.
- * winsup.h (ES_EXEC_EXIT): New enum.
- (ES_SIGPROCTERMINATE): Delete.
-
-2005-09-19 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (talktome): Take siginfo_t argument. Don't scan all pids
- trying to find one that's talking to me. Just use the pid from
- siginfo_t.
- (wait_pid): Pass siginfo_t argument to talktome.
-
-2005-09-17 Christopher Faylor <cgf@timesys.com>
-
- * pipe.cc (fhandler_pipe::open): Use 'cfree' to free buffer since it is
- now allocated by cmalloc.
-
-2005-09-17 Corinna Vinschen <corinna@vinschen.de>
-
- * net.cc (cygwin_inet_ntop): Change len argument to socklen_t to
- follow SUSv3.
- * include/arpa/inet.h (inet_ntop): Ditto.
- * include/cygwin/in.h: Include cygwin/socket.h to get socklen_t.
-
-2005-09-16 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (build_env): Use "kilo"bytes not "mega"bytes. Return
- immediately on error.
- * spawn.cc (spawn_guts): Set return value to -1 on error from
- build_env.
-
-2005-09-16 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (build_env): Clear envblock and return NULL on attempt to
- use env var > 32K.
- * spawn.cc (spawn_guts): Set E2BIG if build_env detects an error.
-
-2005-09-16 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (environ_init): Protect with a 'myfault' in case
- GetEnvironmentStrings misbehaves.
-
-2005-09-16 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (environ_init): Add debugging output with value returned
- from GetEnvironmentStrings.
-
-2005-09-16 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (environ_init): Issue an error if GetEnvironmentStrings
- fails and return.
-
-2005-09-15 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.h (EXITCODE_SET): Move out of range of Windows error.
- (EXITCODE_NOSET): Ditto.
- * sigproc.cc (no_signals_available): Remove check for hwait_sig. Just
- rely on my_sendsig. Pass in an argument controlling when it is
- appropriate to test EXITCODE_SET.
- (proc_can_be_signalled): Remove checks for myself since this function
- is never called in that context.
- (sigproc_init): Pre-initialize my_sendsig to non-zero so that
- proc_can_be_signalled will know that we expect to be signalable soon.
- (sig_send): Change debugging output.
-
-2005-09-15 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (no_signals_available): Return true if sending to self
- from the signal thread.
- (wait_sig): Correct so that WaitForSingleObject is called when
- hMainThread is != 0, rather than the reverse.
-
- * cygheap.cc (cygheap_fixup_in_child): Clarify potential error message.
-
- * fork.cc (fork_copy): Cosmetic change.
-
-2005-09-15 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (wait_sig): Reorganize exit case so that ExitProcess is
- always called, since that is the intent of sending a __SIGEXIT. Wait
- forever for main thread to go away since, presumably, the main thread
- told us it was going away.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (av::fixup): Avoid breaking out of the wrong "loop".
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * hookapi.cc (hook_or_detect_cygwin): Simplify very slightly.
- * spawn.cc (av::fixup): Guard against problems reading an executable
- which does not match Microsoft's documentation about PE format.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (av::error): Eliminate.
- (av::av): Remove reference to error.
- (av::replace0_maybe): Ditto.
- (av::dup_maybe): Ditto.
- (av::dup_all): Ditto.
- (av::unshift): Ditto.
- (spawn_guts): On a fault, return E2BIG only if ENOMEM has been set.
- Otherwise return EFAULT.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (san): New structure.
- (cygtls::andreas): New element. Replaces _myfault and _myfault_errno.
- (cygtls::fault_guarded): Use andreas.
- (cygtls::return_from_fault): Ditto.
- (cygtls::setup_fault): Add a parameter denoting where to store old
- fault handler, if any and use it to "stack" faults.
- (cygtls::reset_fault): Restore fault from parameter.
- (myfault::sebastian): New variable.
- (myfault::~myfault): Pass sebastian to reset_fault.
- (myfault::myfault): Store old fault values in sebastian.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * heap.cc (heap_init): Revert 2005-09-11 patch as it seems to
- inexplicably cause problems with emacs.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- Remove some more unneeded 'return;'s throughout.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.h: Protect declaration so that it only happens when
- __INSIDE_CYGWIN__.
-
-2005-09-14 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (sigtid): Remove declaration.
- (handle_exceptions): Use _sig_tls rather than sigtid to determine if
- this is the signal thread.
- (set_signal_mask): Ditto for conditionalized CGF code.
- * pinfo.cc (pinfo::exit): Exit the thread if we forcefully terminated
- the main thread.
- * sigproc.cc (sigtid): Delete.
- (_sig_tls): Define.
- (sig_clear): Use _sig_tls rather than sigtid to determine if this is
- the signal thread.
- (sig_dispatch_pending): Ditto.
- (wait_sig): Set _sig_tls here.
-
-2005-09-13 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_exit): Move sigproc_terminate call later since signal
- handling was still needed for subsequent stuff. Call sigproc_terminate
- with new exit_state value.
- * pinfo.cc (pinfo::exit): Call sigproc_terminate with new exit_state
- value.
- * sigproc.cc (proc_terminate): Remove unnecessary (void) parameter.
- (sigproc_terminate): Ditto. Add new argument to accept exit state to
- be set.
- (wait_sig): Reorganize __SIGEXIT handling. Add more debugging output.
- * winsup.h (sigproc_terminate): Declare with new exit_state argument.
- (exit_states): Reorganize to reflect new exit ordering of
- sigproc_terminate.
-
-2005-09-13 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_exit): Rely on sigproc_terminate to set exit_state
- appropriately.
- * pinfo.cc (pinfo::exit): Always call sigproc_terminate here. Rely on
- sigproc_terminate to signal signal thread to handle eventual process
- exit.
- * sigproc.cc (no_signals_available): Change criteria for determining if
- this process can handle signals to itself.
- (my_sendsig): New variable. Copy of my sendsig handle.
- (proc_can_be_signalled): Don't send signals if exit code is set.
- (sigproc_terminate): Use and set exit_state appropriately to determine
- when to do anything. Send __SIGEXIT to self to control process exit.
- (sig_send): Use my_sendsig for sending signals. Don't call
- proc_can_be_signalled for myself since the criteria is now different
- for sending signals to myself.
- (wait_sig): Copy myself->sendsig to my_sendsig for future use. Exit
- signal loop when __SIGEXIT is received. Wait for main thread to exit
- and use its exit status to actually exit process.
- * sigproc.h (__SIGEXIT): New enum.
-
-2005-09-13 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (alloc_stack): Eliminate superfluous "return;".
- * debug.cc (add_handle): Ditto.
- * devices.in (device::parse): Ditto.
- * dtable.cc (dtable::vfork_parent_restore): Ditto.
- (dtable::vfork_child_fixup): Ditto.
- * environ.cc (parse_options): Ditto.
- * errno.cc (seterrno_from_win_error): Ditto.
- * exceptions.cc (sig_handle_tty_stop): Ditto.
- (set_signal_mask): Ditto.
- * fhandler.cc (fhandler_base::read): Ditto.
- (fhandler_base::operator delete): Ditto.
- (fhandler_base::seekdir): Ditto.
- (fhandler_base::rewinddir): Ditto.
- * fhandler_console.cc (fhandler_console::read): Ditto.
- (fhandler_console::fixup_after_exec): Ditto.
- * sigproc.cc (sigproc_init): Ditto.
- (sigproc_terminate): Ditto.
-
- * devices.cc: Regenerate.
-
-2005-09-13 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (wait_sig): Be more defensive about detecting when we're
- exiting.
-
-2005-09-12 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::cygthread): Add more info to fatal error.
-
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Temporarily
- remove insertion of /dev into root directory.
- * path.cc (path_conv::check): Ditto.
-
-2005-09-11 Christopher Faylor <cgf@timesys.com>
-
- * heap.cc (heap_init): Allocate heap from top down as a hedge against
- subsequent ERROR_INVALID_ADDRESS in forked processes when CTRL-C is
- pressed.
-
-2005-09-09 Christopher Faylor <cgf@timesys.com>
-
- * heap.cc (heap_init): Be slightly more aggressive when trying to
- allocate heap. Change fatal error message to avoid confusion with
- cygheap.
-
- * spawn.cc (linebuf::finish): New function.
- (linebuf::add): Cosmetic change.
- (spawn_guts): Only avoid building windows command line if the program
- being executed was actually mounted with -X. Don't return E2BIG if we
- hit the 32K size and we're executing a detected cygwin program. Just
- silently truncate the windows command line, instead.
-
-2005-09-08 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_serial.cc (fhandler_serial::tcgetattr): Just zero c_cflag
- here rather than clearing CBAUD after the fact.
- * termios.cc (tcgetattr): Revert previous change.
-
-2005-09-08 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_serial.cc (fhandler_serial::ioctl): Always return 0 for
- window size.
- * termios.cc (tcgetattr): Clear out baud part of c_cflag since it is
- always ignored.
-
-2005-09-08 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (ctrl_c_handler): Disable any special CTRL_LOGOFF_EVENT
- handling and add longish comment about the reasons.
-
-2005-09-07 Christopher Faylor <cgf@timesys.com>
-
- * hookapi.cc (rvadelta): Change argument to DWORD to eliminate a
- compiler warning.
-
- * path.h (path_conv::set_cygexec): New function.
- * spawn.cc (av::iscygwin): Eliminate.
- (av::av): Don't initialize iscygwin.
- (spawn_guts): Just use real_path.iscygexec for all tests.
- (av::fixup): Short circuit test if .exe extension and known cygexec.
- Set cygexec flag appropriately if we find that program uses cygwin1.dll.
-
-2005-09-06 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (initial_env): Don't attempt stracing if dynamically loaded.
- (dll_crt0_0): Move console initialization earlier.
- * init.cc (dll_entry): Move console initialization here.
- * exceptions.cc (init_console_handler): Fully remove any old console
- handler.
- (handle_sigsuspend): Make cancelable when called from non-main thread.
-
- * spawn.cc (spawn_guts): Don't fill out windows argv if we've deduced
- that this is a cygwin-using program.
- (av::fixup): Always check executables to see if they are using
- cygwin1.dll. Don't consider .com files to be scripts.
- * hookapi.cc (rvadelta): New function.
- (PEHeaderFromHModule): Simplify slightly.
- (hook_or_detect_cygwin): Use passed in name argument for "HMODULE"
- rather than incorrectly reading current program. Calculate delta
- needed to read image data and file names if this isn't a real
- "HMODULE".
-
-2005-09-06 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.h: Revert patch from 2005-09-05.
- * thread.cc (pthread_mutex::can_be_unlocked): Return true also if
- mutex is owned by MUTEX_OWNER_ANONYMOUS.
-
-2005-09-05 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.cc (cygheap_init): Eliminate debugging #if.
-
- * fork.cc (fork_parent): Don't issue errors if "somebody" has set the
- PID_EXITED flag on a child. Don't close process handle if it has
- potentially already been closed.
- * pinfo.cc (winpids::add): Eliminate PID_ALLPIDS handling which was
- obsoleted by previous changes.
-
- * spawn.cc (av::fixup): Do win16 detection for .com files. Make sure
- that buffer has been unmapped in all cases.
-
-2005-09-05 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.h (pthread_mutex::get_pthread_self): Remove.
- (pthread_mutex::lock): Use ::pthread_self as self parameter.
- (pthread_mutex::trylock): Ditto.
- (pthread_mutex::unlock): Ditto.
- (pthread_mutex::destroy): Ditto.
-
-2005-09-02 Dave Korn <dave.korn@artimi.com>
-
- * Makefile.in (CXXFLAGS): Use 'override' to correctly set flags to
- generate dependencies when invoked from top-level make.
-
-2005-08-28 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (set_process_mask_delta): Conditionalize debugging
- output.
- * sigproc.cc (proc_subproc): Make strace output a little more verbose.
-
-2005-08-28 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (__ljfault): Declare.
- (_cygtls::return_from_fault): Use __ljfault.
- * exceptions.cc (set_signal_mask): Revert previous checkin.
- * gendef (__sjfault): Split out into a separate function which doesn't
- bother with any special signal locking.
- (_ljfault): Return from a __sjfault without bothering with signals.
-
-2005-08-28 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_local_storage::strerror_buf): Allocate more space.
- * errno.cc (strerror_worker): New function, adapted from strerror.
- (strerror): Use strerror_worker.
- * tlsoffsets.h: Regenerate.
-
- * exceptions.cc (set_signal_mask): Minimize time during which mask_sync
- is held.
-
-2005-08-28 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.din: Correct readdir_r typo.
-
-2005-08-27 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
-
- * dir.cc (readdir_r): Invert sense on error test.
-
-2005-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (normalize_posix_path): Keep two leading slashes
- intact throughout.
- (normalize_win32_path): Revert to only checking for slash.
- (realpath): Convert drive letters to cygdrive paths before
- doing anything else.
- * shared_info.h (mount_info::cygdrive_posix_path): Make public.
-
-2005-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (realpath): Drop call to mount_info::conv_to_posix_path
- in favor of calling path_conv with PC_POSIX flag. Align error
- handling closer to POSIX. As on Linux, return user space allocated
- memory if second parameter is NULL.
-
-2005-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (normalize_win32_path): Honor network paths. Fold more
- than two leading dir separators into one. Check for dir separator
- instead of just slashes to handle incoming Win32 paths correctly.
-
-2005-08-25 Christopher Faylor <cgf@timesys.com>
-
- * errno.cc (errmap): Translate ERROR_NO_MORE_ITEMS to ENMFILE.
-
-2005-08-24 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc (handle_sigsuspend): Just sleep forever if called from
- non-main thread.
- (sigpacket:process): Simplify logic which determines when and how a
- signal is masked. Don't trigger sigwait if there is a signal handler.
- * sigproc.cc (wait_sig): Update comment. Try to process a signal which
- is in the queue if it isn't queued for the target thread (this is still
- not right).
-
-2005-08-24 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (perhaps_suffix): Record errno-type error value in third
- argument.
- (find_exec): On error, set errno returned from perhaps_suffix.
- (spawn_guts): Ditto.
-
-2005-08-24 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_virtual.cc (fhandler_virtual::close): Don't free filebuf if
- it's NULL.
- * pinfo.cc (_pinfo::commune_send): Fix test for incorrect number of
- bytes read from pipe.
-
-2005-08-24 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (endusershell): Reset shell_fp to NULL to allow
- subsequent getusershell calls.
-
-2005-08-24 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Fill in fileattr for /dev, defaulting to
- directory if /dev doesn't actually exist.
- (win32_device_name): Don't consider FH_DEV to be a device since it's
- really a directory which should go through mount processing.
-
-2005-08-24 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h (cygheap_types): Add HEAP_COMMUNE.
- * fhandler_proc.cc: Use cygheap rather than user heap for allocation of
- filebuf throughout.
- * fhandler_registry.cc: Ditto.
- * fhandler_virtual.cc: Ditto.
- * fhandler_process.cc: Ditto.
- (get_mem_values): Use malloc/realloc/free rather than new.
- * pinfo.cc (_pinfo::commune_send): Allocate on cygwin heap rather than
- user heap. Avoid calling ReadFile when correct number of characters
- have been read or suffer buffer corruption.
- (_pinfo::fd): Allocate on cygwin heap rather than user heap.
- (_pinfo::fds): Ditto.
- (_pinfo::root): Ditto.
- (_pinfo::cwd): Ditto.
- (_pinfo::cmdline): Ditto.
-
- * devices.h (FH_DEV): New define.
- * devices.in: Detect lone /dev.
- * devices.cc: Regenerate.
- * path.cc (path_conv::check): Treat FH_DEV as a special case.
-
-2005-08-23 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.h (set_signal_mask): Remove default on second parameter and
- make pass by reference.
- * signal.cc (abort): Accommodate change to set_signal_mask.
- * select.cc (pselect): Ditto.
- * exceptions.cc (handle_sigsuspend): Ditto.
- (ctrl_c_handler): Ditto.
- (sighold): Ditto.
- (sigrelse): Ditto.
- (set_process_mask_delta): Ditto.
- (_cygtls::call_signal_handler): Ditto.
-
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Return ENMFILE
- if __handle is not set. Set __handle to NULL when out of files.
- (fhandler_disk_file::rewinddir): Don't close handle if it's NULL.
- (fhandler_disk_file::closedir): Ditto.
-
-2005-08-22 Christopher Faylor <cgf@timesys.com>
-
- * dir.cc (readdir_worker): Make static. Only add '.' and '..' when
- readdir fails due to ENMFILE.
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Only close
- handle on error != ENMFILE.
-
-2005-08-22 Corinna Vinschen <corinna@vinschen.de>
-
- * mtinfo.h (mtinfo_drive::error): Fix argument bug in debug_printf call.
-
-2005-08-20 Christopher Faylor <cgf@timesys.com>
-
- * cygerrno.h (geterrno_from_win_error): Change declaration to default
- to using GetLastError and EACCESS.
- * cygwin.din: Export readdir_r.
- * include/cygwin/version.h: Bump API version number to 138.
- * syscalls.cc (readdir_worker): New function, renamed from old
- readdir() function.
- (readdir): Use readdir_worker.
- (readdir_r): New function.
- * fhandler.h (fhandler_base::readdir): Accommodate second argument
- indicating dirent buffer.
- (fhandler_disk_file::readdir): Ditto.
- (fhandler_cygdrive::readdir): Ditto.
- (fhandler_proc::readdir): Ditto.
- (fhandler_netdrive::readdir): Ditto.
- (fhandler_registry::readdir): Ditto.
- (fhandler_process::readdir): Ditto.
- * fhandler.cc (fhandler_base::readdir): Ditto.
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
- * fhandler_cygdrive.cc (fhandler_cygdrive::readdir): Ditto.
- * fhandler_proc.cc (fhandler_proc::readdir): Ditto.
- * fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto.
- * fhandler_registry.cc (fhandler_registry::readdir): Ditto.
- * fhandler_process.cc (fhandler_process::readdir): Ditto.
- * include/sys/dirent.h (readdir_r): Add declaration.
-
-2005-08-19 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (dirent_states): Add dirent_saw_proc.
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fill in "proc"
- if it is the root dir and it is missing.
-
-2005-08-19 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (dirent_states): Add dirent_isroot, dirent_saw_cygdrive,
- dirent_saw_dev.
- * dir.cc (opendir): Don't zero __flags here. Push that responsibility
- to opendir methods.
- (seekdir): Preserve dirent_isroot in __flags.
- (rewinddir): Ditto.
- * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
- dirent_isroot appropriately.
- (fhandler_disk_file::readdir): Fill in "cygdrive" and "dev" if it is
- the root dir and they are missing.
- * fhandler_process.cc (fhandler_process::opendir): Set __flags here.
- * fhandler_virtual.cc (fhandler_virtual::opendir): Set __flags here.
-
-2005-08-19 Christopher Faylor <cgf@timesys.com>
-
- * winsup.h (create_pipe): Declare new function.
- (CreatePipe): New define.
- * miscfuncs.cc (create_pipe): Define new function.
-
-2005-08-18 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_tty_common::lseek): Declare new method.
- (fhandler_tty_slave::lseek): Delete old method.
- (fhandler_tty_master::lseek): Delete old method.
- * fhandler_tty.cc (fhandler_tty_common::lseek): Define new method.
-
-2005-08-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize
- ret to 0.
- (fhandler_socket::recvmsg): Ditto.
-
-2005-08-18 Corinna Vinschen <corinna@vinschen.de>
-
- * errno.cc (strerror): Check errnum for underflow.
-
-2005-08-17 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (dll_crt0_1): Tweak debugging stuff.
-
-2005-08-17 Pavel Tsekov <ptsekov@gmx.net>
-
- * fhandler_tty.cc (fhandler_tty_common::close): Rearrange the code so
- that the master end of the input and output pipes is closed before
- signalling an EOF event to the slave.
- (fhandler_pty_master::close): Likewise.
-
-2005-08-14 Corinna Vinschen <corinna@vinschen.de>
-
- * init.cc (respawn_wow64_process): Make inline function. Remove
- "noreturn" attribute. Add additional check if parent process is
- actually a 64 bit process.
- (dll_entry): Only test WOW64 processes with a stack in the usual
- "dangerous" process space area.
-
-2005-08-11 Troy Curtiss <trcurtiss@gmail.com>
-
- * fhandler_serial.cc (fhandler_serial::tcgetattr): Return current baud
- rate regardless of current DTR state.
-
-2005-08-11 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc: Remove ld_preload declaration.
- * winsup.h: Move ld_preload declaration here.
- * fork.cc (fork_child): Call ld_preload() before returning.
-
-2005-08-11 Christopher Faylor <cgf@timesys.com>
-
- * child_info. (CURR_CHILD_INFO_MAGIC): Refresh.
- (child_info::child_info()): New constructor.
- (child_info_spawn::child_info_spawn()): Ditto.
- (child_info_spawn::operator new): New operator.
- (child_info_spawn::set): New function.
- * spawn.cc (av()): New constructor.
- (av::operator new): New operator.
- (av::set): New function.
- (spawn_guts): Reorganize so that classes which allocate are defined
- early in the function so that it can be properly cleaned up after an
- efault. Set errno to E2BIG in the event of a SEGV situation.
-
-2005-08-08 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/cdefs.h: Remove extra line.
-
-2005-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (get_reg_security): New static function.
- (get_nt_object_security): Call get_reg_security for registry keys
- to circumvent problems with predefined registry keys.
-
-2005-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc (fhandler_process::open): Allow opening of
- /proc/<pid>/fd for reading.
- * fhandler_registry.cc (fhandler_registry::open): Ditto for registry
- keys.
-
-2005-08-08 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/cdefs.h (__CONCAT): Define.
- * include/elf.h: New file.
- * include/sys/elf32.h: Ditto.
- * include/sys/elf64.h: Ditto.
- * include/sys/elf_common.h: Ditto.
- * include/sys/elf_generic.h: Ditto.
-
-2005-08-08 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Use simpler method to align .cygheap.
- * dllfixdbg: Just copy .stab and .stabstr sections when making
- cygwin1.dbg, rather than relying on objcopy to keep only the debug
- sections since objcopy seems to get it wrong.
-
-2005-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * dtable.cc (build_fh_pc): Check setting fh to fhandler_nodevice for
- NULL, too.
-
-2005-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * ftw.c: Include winsup.h.
- * nftw.c: Ditto.
- * include/ftw.h: Guard declarations appropriately.
-
-2005-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (DLL_OFILES): Add fts.o, ftw.o, nftw.o.
- * cygwin.din: Export fts_children, fts_close, fts_get_clientptr,
- fts_get_stream, fts_open, fts_read, fts_set, fts_set_clientptr,
- ftw, nftw.
- * fts.c: New file, imported from FreeBSD.
- * ftw.c: Ditto.
- * nftw.c: Ditto.
- * include/fts.h: Ditto.
- * include/ftw.h: Ditto.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-08-07 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in (dtable_CFLAGS): Use -fomit-frame-pointer and
- -fcheck-new.
- * cygheap.cc (cmalloc): Only emit system_printf warnings on failure if
- DEBUGGING.
- (crealloc): Ditto.
- (ccalloc): Ditto.
- * dtable.cc (build_fh_name): Treat NULL return from cnew as indicative
- of EMFILE condition.
- (build_fh_dev): Ditto.
- (dtable::dup_worker): Handle NULL return from build_fh_pc.
- (dtable::vfork_child_dup): Trust dup_worker to set errno.
- * fhandler.h (fhandler_base::new): Mark as nothrow.
-
-2005-08-07 Christopher Faylor <cgf@timesys.com>
-
- * dllfixdbg: New perl script.
- * configure.in: Detect objcopy, objdump, strip.
- * configure: Regenerate.
- * Makefile.in: Pass target objcopy/objdump to new dllfixdbg script.
- Remove previous perl check.
- * cygwin.sc: Add .gnu_debuglink_overlay section for eventual
- replacement with .gnu_debuglink section. Revert move of cygheap to end
- of image.
-
-2005-08-06 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in: Allow previous patch to work in a 64 bit environment.
-
-2005-08-06 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in: Warn when end of cygheap is not on 64k boundary.
- * cygwin.sc: Try harder to ensure that cygheap is on a 64k boundary.
- Move cygheap to end of image to stop interference from unstripped debug
- regions.
-
-2005-08-06 Christopher Faylor <cgf@timesys.com>
-
- * include/endian.h: Move everything into this file and define things
- more like linux.
- * include/cygwin/types.h: Include endian.h.
- * include/sys/dirent.h: Define DT_* types and conversion macros.
-
- * pinfo.cc (pinfo::init): Remove special handling for PID_ALLPIDS and
- execed code, even though it probably still isn't quite right.
-
-2005-08-05 Michael Gorse <mgorse@alum.wpi.edu>
-
- * thread.cc (pthread::create(3 args)): Make bool.
- (pthread_null::create): Ditto.
- (pthread::create(4 args)): Check return of inner create rather than
- calling is_good_object().
- * thread.h: Ditto.
-
-2005-08-05 Vaclav Haisman <v.haisman@sh.cvut.cz>
-
- * fhandler_tty.cc (fhandler_tty_slave::tcflush): Return either 0 or -1.
-
-2005-08-05 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread_cond_timedwait): Check abstime for validity
- according to SUSv3. Rewrite timeout check and waitlength calculation
- to avoid overflow problems.
-
-2005-08-02 Yitzchak Scott-Thoennes <sthoenna@efn.org>
-
- * include/sys/termios.h: Define TIOCMBIS and TIOCMBIC.
- * fhandler.h (class fhandler_serial): Declare switch_modem_lines.
- * fhandler_serial.cc (fhandler_serial::switch_modem_lines): New
- static function to set or clear DTR and/or RTS.
- (fhandler_serial::ioctl): Use switch_modem_lines for TIOCMSET
- and new TIOCMBIS and TIOCMBIC.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-07-29 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_disk_file.cc (fhandler_base::pread): Don't move file offset
- pointer after I/O.
- (fhandler_base::pwrite): Ditto.
-
-2005-07-29 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_base::pread): Declare new function.
- (fhandler_base::pwrite): Ditto.
- (fhandler_disk_file::pread): Ditto.
- (fhandler_disk_file::pwrite): Ditto.
- * fhandler.cc (fhandler_base::pread): Define new function.
- (fhandler_base::pwrite): Ditto.
- * fhandler_disk_file.cc (fhandler_base::pread): Ditto.
- (fhandler_base::pwrite): Ditto.
- * syscalls.cc (pread): Define new function.
- (pwrite): Ditto.
- * cygwin.din: Export pread, pwrite.
-
- * include/sys/ioctl.h: Guard some _IO* declarations to avoid conflict
- with socket.h.
-
-2005-07-29 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/ioctl.h: Add some linux defines.
-
-2005-07-29 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Put back accidentally removed debug_printf.
-
-2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
-
- * cygthread.cc (cygthread::simplestub): Wait for h to be filled out
- by main thread before assigning it.
-
-2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
-
- * pinfo.cc (pinfo::init): Sleep before retrying open_shared().
-
-2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
-
- * fork.cc (fork_parent): Fix null deref if pinfo creation fails.
-
-2005-07-28 Christopher Faylor <cgf@timesys.com>
-
- * cygmalloc.h (MSPACES): Define. This dropped through the cracks after
- the last malloc update.
- * dcrt0.cc: Fix a comment.
- * malloc.cc (internal_malloc): Fix definition so that it can be safely
- coerced.
-
-2005-07-27 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/in.h (INET_ADDRSTRLEN): Add new definition.
-
-2005-07-27 Christopher Faylor <cgf@timesys.com>
-
- * gendef: Use nocr to remove \r's from input.
- gendef (nocr): New function.
-
-2005-07-27 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_clipboard.cc (fhandler_dev_clipboard::close): Set membuffer
- to NULL.
- (fhandler_dev_clipboard::fixup_after_exec): Don't call close here.
- Just set variables directly.
-
-2005-07-25 Christopher Faylor <cgf@timesys.com>
-
- * include/byteswap.h: New file.
-
-2005-07-25 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/types.h: Define loff_t.
-
-2005-07-16 Christopher Faylor <cgf@timesys.com>
-
- * child_info.h (child_info::sync): Pass pid and HANDLE rather than
- using pinfo.
- (child_info::child_info): Accept an argument controlling whether to
- create proc_subproc.
- (child_info_spawn::child_info_spawn): Ditto.
- * sigproc.cc (child_info::child_info): Ditto.
- (child_info_spawn::child_info_spawn): Ditto.
- (child_info::sync): Use passed in pid and HANDLE.
- * fork.cc (fork_parent): Reflect additional arguments required for
- child_info::sync.
- * hookapi.cc (hook_or_detect_cygwin): Rename. Change so that NULL 'fn'
- argument just returns "true", indicating that program uses cygwin1.dll.
- * spawn.cc (av::win16_exe): New element.
- * spawn.cc (av::iscygwin): New element.
- (av::fixup): New function.
- (spawn_guts): Protect against SEGV. Use fixup function to detect when
- it is safe to wait for a spawned (as opposed to an execed) program.
- Reflect changes in child_info::sync arguments.
- * external.cc (cygwin_internal): Reflect function renaming to
- hook_or_detect_cygwin.
-
- * cygheap.cc (cygheap_fixup_in_child): Close handle after debug fixup
- has been done to prevent false positives in handle collision.
-
- * exceptions.cc (try_to_debug): Notify debugger if already being
- debugged.
-
-2005-07-09 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (mount): Only check win32_path when we know we need it.
-
-2005-07-09 Nicholas Wourms <nwourms@gmail.com>
-
- * cygwin.din (getline): Export.
- (getdelim): Export.
- * include/sys/stdio.h (getline): Replace macro with function prototype.
- (getdelim): Likewise.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-07-08 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (__getline): Export.
- (__getdelim): Export.
- * include/sys/stdio.h (getline): Define as __getline.
- (getdelim): Define as __getdelim.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-07-06 Christopher Faylor <cgf@timesys.com>
-
- Eliminate (void) cast on standalone function calls throughout.
-
-2005-07-05 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (cygwin_exit): Mark as "noreturn".
- * sigproc.cc (child_info::ready): Don't signal parent that we are a
- cygwin process if we are dynamically loaded.
-
-2005-07-05 Christopher Faylor <cgf@timesys.com>
-
- * malloc.cc: Update to version 2.8.2.
-
-2005-07-05 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tape.cc (fhandler_dev_tape::close): Don't do "extra stuff"
- when we know we're execing.
-
-2005-07-04 Christopher Faylor <cgf@timesys.com>
-
- Change foo (void) to foo () for all c++ functions throughout.
- Remove all fhandler_*::dump functions throughout.
-
- * fhandler.h (fhandler_dev_mem::close): Remove pass-through function in
- favor of virtual method.
- (handler_dev_raw::close): Ditto.
- (fhandler_dev_clipboard::fixup_after_exec): New method.
- * fhandler_dev_mem.cc (fhandler_dev_mem::close): Eliminate pass through
- function in favor of virtual method.
- * fhandler_dev_raw.cc (fhandler_dev_raw::close): Ditto.
- * fhandler_clipboard.cc (fhandler_dev_clipboard::close): Don't go to
- extra effort when execing.
- (fhandler_dev_clipboard::fixup_after_exec): New function.
- * fhandler_console.cc (fhandler_console::close): Don't do "extra stuff"
- when we know we're execing.
- * fhandler_disk_file.cc (fhandler_disk_file::close): Ditto.
- * fhandler_dsp.cc (fhandler_dev_dsp::close): Ditto.
- * fhandler_fifo.cc (fhandler_fifo.cc::close): Ditto. function in favor
- of base function.
- * fhandler_random.cc (fhandler_dev_random::close): Ditto.
- * fhandler_registry.cc (fhandler_registry::close): Ditto.
- * fhandler_tty.cc (fhandler_tty_slave::close): Ditto.
- * fhandler_virtual.cc (fhandler_virtual::close): Ditto.
-
- * pinfo.cc (proc_waiter): Remove unneeded hExeced declaration.
- * sigproc.cc: Ditto.
- * winsup.h (hExeced): Define here.
-
- * fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Just call
- close() to reinitialize things to known state.
-
-2005-07-04 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_cygtls): Perform minor reformatting.
-
- * winsup.h (close_all_files): Reflect argument change.
- * dtable.cc (close_all_files): Ditto.
- * dtable.h: Ditto.
- * fhandler.h: Ditto.
- * spawn.cc (spawn_guts): Move close_all_files back to its original
- location in first P_OVERLAY test but use argument denoting that handles
- are only supposed to be closed, not released (more work to be done
- here).
- * syscalls.cc (close_all_files): Take an argument denoting whether to
- release closed files or not.
-
- * path.cc (symlink): Change argument names to reflect linux man page.
- (symlink_worker): Ditto. Also appropriately set ENOENT for empty
- strings.
-
-
-2005-07-04 Pierre Humblet <pierre.humblet@ieee.org>
-
- * cygheap.h (struct init_cygheap): Delete cygwin_regname member.
- * external.cc (cygwin_internal): Use cygpsid::get_id for
- CW_GET_UID_FROM_SID and CW_GET_GID_FROM_SID.
- Turn CW_SET_CYGWIN_REGISTRY_NAME and CW_GET_CYGWIN_REGISTRY_NAME
- into noops.
-
-2005-07-03 Christopher Faylor <cgf@timesys.com>
-
- * thread.cc (pthread_mutex::init): Remove unneeded efault/mutex check.
-
-2005-07-02 Christopher Faylor <cgf@timesys.com>
-
- * thread.h (verifyable_object_state verifyable_object_isvalid): Delete
- function declaration that should have been static.
- * thread.cc (verifyable_object_state verifyable_object_isvalid): Make
- inline static.
- (pthread*::is_good_object): Move to directly after
- verifyable_object_state verifyable_object_isvalid and make inline.
- (check_valid_pointer): Delete function.
- (pthread_cond_timedwait): Use myfault to detect valid pointer.
- (pthread_mutex::init): Ditto.
-
-2005-07-02 Christopher Faylor <cgf@timesys.com>
-
- Replace valid memory checks with new myfault class "exception
- handling", almost everywhere. Leave some thread.cc stuff alone for
- now.
- * cygtls.h: Kludge some definitions to avoid including a problematic
- windows header.
- (_cygtls::_myfault): New entry.
- (_cygtls::_myfault_errno): Ditto.
- (_cygtls::fault_guarded): New function.
- (_cygtls::setup_fault): Ditto.
- (_cygtls::return_from_fault): Ditto.
- (_cygtls::clear_fault): Ditto.
- (myfault): New class.
- * exceptions.cc (handle_exceptions): Handle case of guarded fault in
- system routine.
- * gendef: Add another entry point for setjmp that the compiler doesn't
- know about and won't complain about.
- * gentls_offsets: Just include windows.h rather than kludging a HANDLE
- def.
- * miscfuncs.cc (check_null_str): Delete.
- (check_null_empty_str): Ditto.
- (check_null_empty_str_errno): Ditto.
- (check_null_str_errno): Ditto.
- (__check_null_invalid_struct): Ditto.
- (__check_null_invalid_struct_errno): Ditto.
- (__check_invalid_read_ptr): Ditto.
- (__check_invalid_read_ptr_errno): Ditto.
- (dummytest): New function.
- (check_iovec_for_read): Delete.
- (chec_iovec): Rename from check_iovec_for_write. Take a read/write
- parameter.
- * tlsoffsets.h: Regenerate.
- * winsup.h: Remove check_* declarations.
- (check_iovec_for_read): Delete declaration. Turn into a define
- instead.
- (check_iovec_for_write): Ditto.
- (check_iovec): New declaration.
-
- * thread.h: Use ifdef guard name consistent with other header files.
-
-2005-07-02 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 19.
-
-2005-06-30 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base::readv): Use malloc/free instead of alloca.
- (fhandler_base::writev): Ditto.
-
-2005-06-29 Christopher Faylor <cgf@timesys.com>
-
- * cygerrno.h: Make multi-inclusion safe.
- * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Deal with EINTR.
- * dcrt0.cc (dll_crt0_0): Accommodate init_console_handler argument
- change.
- * winsup.h: Ditto.
- * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
- * exceptions.cc (init_console_handler): Ditto. Ignore console events
- if we're not attached to a terminal.
- * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
- * wincap.cc: Implement has_null_console_handler_routine throughout.
- * wincap.h: Ditto.
-
-2005-06-29 Christopher Faylor <cgf@timesys.com>
-
- * autoload.cc (LoadDLLprime): Use a more descriptive name for autoload
- text sections.
- * cygwin.sc: Ditto.
-
-2005-06-27 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::facl): Add missing break.
-
-2005-06-24 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::check): Don't strip trailing dots and spaces
- at the start of the path.
-
-2005-06-24 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (rootdir): Don't set errno.
- * syscalls.cc (statvfs): Set errno to ENOTDIR if rootdir() failed.
-
-2005-06-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_dev_tape): Add declaration for
- fixup_after_fork and set_close_on_exec.
- * fhandler_tape.cc (fhandler_dev_tape::open): Create mt_mtx mutex
- inheritable.
- (fhandler_dev_tape::close): Close mt_mtx.
- (fhandler_dev_tape::dup): Duplicate mt_mtx and mt_evt as necessary.
- (fhandler_dev_tape::fixup_after_fork): New method.
- (fhandler_dev_tape::set_close_on_exec): New method.
-
-2005-06-21 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (get_initgroups_sidlist): Drop special_pgrp parameter.
- (get_setgroups_sidlist): Avoid duplicate groups in group list.
- (create_token): Remove special_pgrp local variable. Accommodate
- change to get_initgroups_sidlist call.
-
-2005-06-21 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (uinfo_init): Call reimpersonate to set the main thread's
- impersonation token.
-
-2005-06-20 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_partitions): Only list recognized
- partitions. Use partition number given by PartitionNumber member.
-
-2005-06-18 Corinna Vinschen <corinna@vinschen.de>
-
- * glob.c: (glob0): New local variable `limit`. Use in calls to glob1
- and globextend.
- (glob1): Add `limit' parameter.
- (glob2): Ditto.
- (glob3): Ditto.
- (globextend): Ditto. Implement GLOB_LIMIT handling.
- * include/glob.h (GLOB_LIMIT): New define.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-06-17 Christopher Faylor <cgf@timesys.com>
-
- * wincap.h (wincaps::detect_win16_exe): Declare.
- (wincapc::detect_win16_exe): Implement.
- * wincap.cc: Populate detect_win16_exe where appropriate.
- * spawn.cc (spawn_guts): Only go out of the way to detect 16-bit apps
- on systems which are flummoxed by them.
-
-2005-06-17 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (spawn_guts): Detect when executing a 16-bit application and
- avoid setting the process pipe since this causes conniptions in Windows
- 9x.
-
-2005-06-17 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (inet_pton): Export.
- (inet_ntop): Export.
- * net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now.
- (cygwin_inet_ntop): Implement inet_ntop for AF_INET for now.
- * include/arpa/inet.h (inet_pton): Declare.
- (inet_ntop): Declare.
- * include/cygwin/version.h: Bump API minor number.
-
-2005-06-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_union): Add missing members corresponding to
- fhandler_fifo and fhandler_netdrive.
-
-2005-06-16 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (statvfs): Handle the case when GetDiskFreeSpaceEx
- succeeds but GetDiskFreeSpace fails by faking bytes-per-sector and
- sectors-per-cluster values.
-
-2005-06-15 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::detach): Fix debugging output.
- * dcrt0.cc (dll_crt0_1): Create signal_arrived early -- before any
- filename manipulation.
- * sigproc.cc (sigproc_init): Don't create signal_arrived here.
- * fork.cc (fork_child): Ditto.
- * sigproc.h (create_signal_arrived): Declare.
-
-2005-06-14 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Always reset to FH_FS when component != 0
- and FH_NETDRIVE to fix problems with strict case checking.
-
-2005-06-12 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::recvmsg): Avoid SEGV in OpenSSH
- when trying to pass file descriptor by setting msg->msg_accrightslen
- to 0.
-
-2005-06-11 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in: Avoid initial heap allocation since cygwin has its own
- heap.
-
-2005-06-11 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_console.cc (fhandler_console::read): Fix a compiler warning.
-
-2005-06-10 Christopher Faylor <cgf@timesys.com>
-
- * include/pthread.h: Change PTHREAD_MUTEX_DEFAULT to
- PTHREAD_MUTEX_NORMAL. Revert PTHREAD_MUTEX_INITIALIZER to
- PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP since that is actually closer
- to what linux does.
- * thread.h (cw_cancel_action): New enum.
- (cancelable_wait): Use cw_cancel_action as third argument.
- * thread.cc (cancelable_wait): Ditto. Don't wait for cancel if
- cancel_action == cw_no_cancel.
- (pthread::create): Don't wait for cancel event since that is racy.
- (pthread_mutex::pthread_mutex): Set default to PTHREAD_MUTEX_ERRORCHECK.
- (pthread_mutexattr::pthread_mutexattr): Ditto.
- (pthread_mutex::_lock): Tell cancelable_wait not to wait for
- cancellation event.
- (semaphore::_timedwait): Accommodate change in cancelable_wait args.
- (pthread::join): Ditto.
-
-2005-06-10 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::sendto): Always initialize
- ret to 0.
- (fhandler_socket::sendmsg): Ditto.
-
-2005-06-10 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (imaxabs): Export.
- (imaxdiv): Export.
- (llabs): Export.
- (lldiv): Export.
- (strtoimax): Export.
- (strtoumax): Export.
- * include/inttypes.h (imaxabs): Activate declaration.
- (imaxdiv): Ditto.
- (strtoimax): Ditto.
- (strtoumax): Ditto.
- * include/cygwin/version.h: Bump API minor.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::detach): Improve diagnostics for what should
- be an impossible failure condition.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_local_storage::setmode_file): New element.
- (_local_storage::setmode_mode): New element.
- * tlsoffsets.h: Regenerate.
- * cygwin.din (setmode): Define as cygwin_getmode.
- * syscalls.cc (setmode_helper): Use setmode_* variables from tls rather
- than using unthreadsafe static.
- (setmode): Break out fwalk stuff.
- (cygwin_setmode): New function. Put fwalk stdio stuff here.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * thread.cc (pthread_mutex::_lock): Use cancelable_wait rather than
- WaitForSingleObject.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Place .cygwin_dll_common in a more sensible spot.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Place .cygwin_dll_common.
- * init.cc (threadfunc_ix): Use a more common name for the section name.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * include/pthread.h (PTHREAD_MUTEX_INITIALIZER): Change to
- PTHREAD_NORMAL_MUTEX_INITIALIZER_NP to be closer to linux default.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- * thread.cc (cancelable_wait): No-op change to make sure that res is
- always a valid WFMO return.
-
-2005-06-09 Christopher Faylor <cgf@timesys.com>
-
- Change pthread::cancelable_wait to just cancelable_wait, throughout.
- * thread.h (cw_sig_wait): New enum.
- (fast_mutex::lock): Use cancelable_wait with resumable signal.
- (cancelable_wait): Change fourth argument to cw_sig_wait enum.
- * thread.cc (cancelable_wait): Ditto. Loop on signal detection if
- fourth argument == cw_sig_resume.
-
-2005-06-08 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Apparently nonloading sections need to go last.
-
-2005-06-08 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Restore resource and reloc sections and use more modern
- syntax for stabs sections.
-
-2005-06-08 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (spenvs): Remove cut/paste error which associated
- CYGWIN_DEBUG with HOME.
-
-2005-06-08 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (cygwin_logon_user): Run LogonUser in the primary
- process token context. Fix potential handle leak.
-
-2005-06-07 Corinna Vinschen <corinna@vinschen.de>
-
- * pinfo.cc (pinfo::init): Define sa_buf as PSECURITY_ATTRIBUTES and
- allocate dynamically.
- (pinfo::set_acl): Replace sa_buf by dynamically allocated acl_buf.
- * sec_acl.cc (setacl): Allocate acl dynamically.
- * sec_helper.cc (sec_acl): Add test for alignment of acl when
- DEBUGGING is defined.
- (__sec_user): Same for sa_buf.
- * security.cc (verify_token): Define sd_buf as PSECURITY_DESCRIPTOR
- and allocate dynamically.
- (alloc_sd): Allocate acl dynamically.
- security.h (sec_user_nih): Change first parameter to
- SECURITY_ATTRIBUTES *.
- (sec_user): Ditto.
- * sigproc.cc (wait_sig): Define sa_buf as PSECURITY_ATTRIBUTES and
- allocate dynamically.
- * syscalls.cc (seteuid32): Define dacl_buf as PACL and allocate
- dynamically.
- * uinfo.cc (cygheap_user::init): Define sa_buf as PSECURITY_ATTRIBUTES
- and allocate dynamically.
- * winbase.h (ilockincr): Mark first argument of inline assembly as
- earlyclobber.
- (ilockdecr): Ditto.
-
-2005-06-07 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::detach): Make error message a little more
- detailed.
- * fhandler.cc (fhandler_base::raw_read): Ditto for debug message.
- * dcrt0.cc (do_exit): Add some more synchronization tests.
- * fhandler_fifo.cc (fhandler_fifo::dup): Don't duplicate a nonexistent
- handle. Use derived return value rather than always retuning 0.
- * fhandler_netdrive.cc (fhandler_netdrive::exists): Wnet -> WNet.
- * winsup.h (exit_states): Add a couple of new exit states.
-
-2005-06-06 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (symlink_info::check): If GetFileAttributes returns
- with ERROR_SHARING_VIOLATION, the file exists.
-
-2005-06-06 Corinna Vinschen <corinna@vinschen.de>
-
- * uname.cc (uname): Change "amd64" to "x86_64" as on Linux.
-
-2005-06-06 Corinna Vinschen <corinna@vinschen.de>
-
- * uname.cc (uname): Add missing break.
-
-2005-06-05 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in: Build sync.o with -fomit-frame-pointer and -O3.
-
-2005-06-05 Christopher Faylor <cgf@timesys.com>
-
- * sync.cc (muto::acquire): Remove unneeded brackets and fix whitespace.
-
-2005-06-04 Christopher Faylor <cgf@timesys.com>
-
- * malloc.cc: Update to Doug Lea's malloc v2.8.0.
-
-2005-06-03 Max Kaehn <slothman@electric-cloud.com>
-
- * dcrt0.cc (cygwin_dll_init): Initialize main_environ and cygtls. Add
- comment to explain the caveats of this method.
- * how-cygtls-works.txt: New file.
-
-2005-06-02 Christopher Faylor <cgf@timesys.com>
-
- * dlfcn.cc (get_full_path_of_dll): Use a relative path when converting
- so that the standard Windows rules for finding a library will be used
- if no path is given. Stop explicitly searching /usr/bin since that is
- now in effect.
-
-2005-06-01 Christopher Faylor <cgf@timesys.com>
-
- Revert 2005-05-30 close_all_files changes.
- * spawn.cc (spawn_guts): When execing, close all files after the child
- has synced with us.
-
-2005-06-01 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchown): Make sure that
- disk open is called in case we're passed in a non-existent device.
-
-2005-06-01 Christopher Faylor <cgf@timesys.com>
-
- * include/machine/stdlib.h: New file.
-
-2005-06-01 Christopher Faylor <cgf@timesys.com>
-
- * thread.h (List_remove): Revert most of 2005-05-30 change.
-
-2005-06-01 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.sc: Don't output .reloc or .rsrc sections. Clean up stuff
- around .cygheap and use a workaround to get things working with newer
- (broken?) binutils.
-
-2005-05-31 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.cc (cygheap_end): Remove bogus section attribute.
- * cygwin.sc: Make __cygheap_mid absolute. Remove unused _cygheap_foo.
-
-2005-05-30 Christopher Faylor <cgf@timesys.com>
-
- * child_info.h (child_info::cygheap_h): Delete.
- (child_info::dwProcessId): New field.
- * cygheap.cc (init_cheap): Delete.
- (dup_now): Ditto.
- (cygheap_setup_for_child): Ditto.
- (cygheap_setup_for_child_cleanup): Ditto.
- (cygheap_fixup_in_child): Simplify. Use new "child_copy" function to
- copy heap from parent.
- (_csbrk): Don't attempt allocation if within cygheap section. Fix so
- that more than one allocation will succeed.
- (cygheap_init): Reset possibly-nonzero region to zero.
- * cygheap.h (cygheap_setup_for_child): Delete declaration.
- (cygheap_setup_for_child_cleanup): Ditto.
- (cygheap_start): Define as an array.
- * cygwin.sc: Modernize. Remove unneeded sections. Define cygheap
- here.
- * dcrt0.cc (do_exit): Reflect argument change to close_all_files.
- * dtable.cc (dtable::vfork_parent_restore): Ditto.
- * dtable.h: Ditto.
- * fhandler.h: Ditto.
- * fork.cc (fork_copy): Call ReadProcessMemory if there is no thread
- (indicating that we're execing).
- (fork_child): Don't mess with hParent.
- (fork_parent): Remove hParent stuff. It happens earlier now.
- Remove call to cygheap_setup_for_child* stuff.
- (fork): Put child_info_stuff in grouped structure. Issue error if
- parent handle is not set.
- (child_copy): New function.
- * sigproc.cc (child_info::child_info): Put cygheap settings here. Set
- parent handle.
- (child_info::~child_info): Close parent handle if it exists.
- * spawn.cc (spawn_guts): Reorganize so that ciresrv is allocated at
- only the last minute so that cygheap changes are reflected. Delete
- cygheap_setup* calls.
- * syscalls.cc (close_all_files): Add an argument to flag when the fd
- entry should be released.
- * winsup.h (close_all_files): Add an argument to close_all_files
- declaration. Declare child_copy.
-
-2005-05-30 Vaclav Haisman <v.haisman@sh.cvut.cz>
-
- * thread.h (List_remove): Make node parameter const. Use simple
- comparison and assignment rather than InterlockedCompareExchangePointer
- since access is already synchronized.
-
-2005-05-30 Christopher Faylor <cgf@timesys.com>
-
- * dlfcn.cc (set_dl_error): Use UNIX error rather than Windows error.
-
-2005-05-29 Christopher Faylor <cgf@timesys.com>
-
- * cygmagic: Remove debugging cruft missed on 2005-05-21.
-
-2005-05-29 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::check): Move component to function scope. Set
- PATH_RO only on *real* FH_NETDRIVEs or on non-FH_NETDRIVE virtual
- paths. Allow non-retrievable shares to be handled as files.
-
-2005-05-29 Eric Blake <ebb9@byu.net>
-
- * include/limits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Always define.
-
-2005-05-28 Christopher Faylor <cgf@timesys.com>
-
- * thread.h (pthread_key::set): Inline.
- (pthread_key::get): Ditto.
- * thread.cc (pthread::set): Delete.
- (pthread::get): Ditto.
-
-2005-05-28 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.din: Remove signal front end from pthread_[gs]etspecific.
-
-2005-05-28 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty_slave:tcflush): Use signed comparison.
-
-2005-05-28 Christopher Faylor <cgf@timesys.com>
-
- * times.cc (time_ms::usecs): Coerce comparison to signed or whole test
- is a no-op.
-
-2005-05-27 Christopher Faylor <cgf@timesys.com>
-
- * cygheap.h: Reference _cygheap_start via .cygheap section.
-
- * environ.cc: Fix force_into_environment typo throughout.
- (spenvs): Export CYGWIN_DEBUG if DEBUGGING.
-
-2005-05-26 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 18.
-
-2005-05-25 Pierre Humblet <pierre.humblet@ieee.org>
-
- * fhandler.h (fhandler_base::mkdir): New virtual method.
- (fhandler_base::rmdir): Ditto.
- (fhandler_disk_file:mkdir): New method.
- (fhandler_disk_file:rmdir): Ditto.
- * dir.cc (mkdir): Implement with fhandlers.
- (rmdir): Ditto.
- * fhandler.cc (fhandler_base::mkdir): New virtual method.
- (fhandler_base::rmdir): Ditto.
- (fhandler_disk_file::mkdir): New method.
- (fhandler_disk_file::rmdir): Ditto.
-
-2005-05-24 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump API minor number to 129.
-
-2005-05-24 Christopher Faylor <cgf@timesys.com>
-
- * cygwin.din: Export mkdtemp.
- * mktemp.cc: New file.
- * Makefile.in (DLL_OFILES): Add mktemp.o
-
-2005-05-23 Eric Blake <ebb9@byu.net>
-
- * include/stdint.h (INTMAX_C, UINTMAX_C): Fix definition.
-
-2005-05-21 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (find_exec): Accept a PATH-like string in place of an
- environment variable.
- * dlfcn.cc (get_full_path_of_dll): Search /usr/bin (for windows
- compatibility) and /usr/lib (for UNIX compatibility) when looking for
- shared libraries.
- * environ.cc (conv_envvars): Put back LD_LIBRARY_PATH since it is used
- by get_full_path_of_dll().
- * errno.cc (errmap): Map MOD_NOT_FOUND to ENOENT.
-
- * cygmagic: Remove debugging cruft.
-
-2005-05-19 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/in.h: Add comment.
-
-2005-05-19 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/in.h: Define IPPROTO_xxx values as macros to
- accommodate SUSv3.
-
-2005-05-19 Christopher Faylor <cgf@timesys.com>
-
- * include/limits.h: Include features.h, as on linux.
-
-2005-05-19 Christopher Faylor <cgf@timesys.com>
-
- * include/endian.h: New file.
-
-2005-05-19 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.sc: Add Dwarf-2 debug sections.
-
-2005-05-19 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (mmap64): Make granularity an automatic variable.
-
-2005-05-19 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_cygdrive::seekdir): Delete declaration.
- (fhandler_cygdrive::seekdir): Delete.
-
-2005-05-19 Pierre Humblet <pierre.humblet@ieee.org>
-
- * fhandler.h (fhandler_cygdrive::iscygdrive_root): Delete method.
- (fhandler_cygdrive::telldir): Delete declaration.
- * fhandler_disk_file.cc: Remove all uses of
- fhandler_cygdrive::iscygdrive_root.
- (fhandler_disk_file::mkdir): New method.
- (fhandler_disk_file::rmdir): Ditto.
- (fhandler_cygdrive::telldir): Delete.
-
-2005-05-18 Christopher Faylor <cgf@timesys.com>
-
- * external.cc: Move pids declaration to file scope and use less
- enthusiastic constructor.
- * pinfo.h (winpids::winpids): Remove default setting.
- * fhandler_fifo.cc (fhandler_fifo::open_not_mine): Accommodate removal
- of default setting.
- * fhandler_proc.cc (fhandler_proc::readdir): Ditto.
-
-2005-05-18 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.h (_local_storage::unknown_thread_name): New buffer.
- * tlsoffsets.h: Regenerate.
- * cygthread.cc (cygthread::name): Use new thread-local buffer.
- * exceptions.cc (handle_exceptions): Avoid unnecessary initialization
- of static variables to zero.
- * fork.cc (slow_pid_reuse) Ditto.
-
-2005-05-18 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (mmap64): Avoid compiler warning.
- * ntea.cc (NTReadEA): Ditto.
- * hires.h (hires_base): Remove useless usecs function.
-
-2005-05-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_netdrive.cc (fhandler_netdrive::telldir): Remove since it's
- equivalent to fhandler_virtual::telldir now anyway.
- * fhandler.h (class fhandler_netdrive): Remove telldir.
-
-2005-05-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_netdrive.cc (fhandler_netdrive::telldir): Implement.
- (fhandler_netdrive::seekdir): Implement.
- (fhandler_netdrive::closedir): Call rewinddir to have only one point
- of calling WNetCloseEnum.
-
-2005-05-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_netdrive): Add method rewinddir.
- * fhandler_netdrive.cc (struct netdriveinf): New structure to
- store thread arguments.
- (thread_netdrive): Thread handling all potentially blocking
- WNet... calls.
- (create_thread_and_wait): Start and wait for above thread.
- (fhandler_netdrive::exists): Change to call create_thread_and_wait
- instead of calling WNet... function.
- (fhandler_netdrive::readdir): Ditto. Fix error handling.
- (fhandler_netdrive::rewinddir): New method.
-
-2005-05-17 Corinna Vinschen <corinna@vinschen.de>
-
- * external.cc (cygwin_internal): Avoid compiler warning.
-
-2005-05-16 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (dll_crt0_0): Don't do fixup_after_exec if dynamically
- loaded since the state of fds is unknown at this point.
-
-2005-05-16 Christopher Faylor <cgf@timesys.com>
-
- * include/sys/cygwin.h (enum cygwin_getinfo_types): Add CW_DEBUG_SELF.
- * external.cc (cygwin_internal): Implement CW_DEBUG_SELF.
-
- * init.cc (dll_entry): Minor rearrangement of code.
-
-2005-05-16 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Remove embedded dots before slashes.
-
-2005-05-16 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (conv_envvars): Remove LD_LIBRARY_PATH entirely.
- It doesn't belong here.
-
-2005-05-15 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (conv_envvars): Treat LD_LIBRARY_PATH as path list.
-
-2005-05-14 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Check
- return code from GetFileSize and set file size to 0 if necessary.
- * fhandler_netdrive.cc (fhandler_netdrive::fstat): Set permissions
- to read/execute for all.
-
-2005-05-13 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (normalize_posix_path): Do normalization on . and .. after
- a '//'.
-
-2005-05-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_netdrive::readdir): Remove useless comment.
-
-2005-05-13 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (WNetGetResourceParentA): Import.
- (WNetOpenEnumA): Import.
- (WNetEnumResourceA): Import.
- (WNetCloseEnum): Import.
- * fhandler.h (fhandler_netdrive::telldir): Add declaration.
- (fhandler_netdrive::seekdir): Ditto.
- (fhandler_netdrive::closedir): Ditto.
- * fhandler_netdrive.cc: Drop explicit including windows.h. Include
- winnetwk.h instead of shlwapi.h. Include dirent.h.
- (fhandler_netdrive::readdir): Implement.
- (fhandler_netdrive::telldir): New method.
- (fhandler_netdrive::seekdir): New method.
- (fhandler_netdrive::closedir): Ditto.
-
-2005-05-13 Christopher Faylor <cgf@timesys.com>
-
- Remove PC_FULL from path_conv usage throughout.
- * path.h (enum pathconv_arg): Change PC_FULL to PC_NOFULL.
- * path.cc (path_conv::check): Test for PC_NOFULL rather than !PC_FULL.
- (cygwin_conv_to_win32_path): Use PC_NOFULL to force non-absolute path.
-
-2005-05-13 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_netdrive.cc (fhandler_netdrive::exists): Assert that "//"
- exists.
-
-2005-05-12 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Eliminate compiler warning.
-
- * dir.cc (mkdir): Check path for writability.
- (rmdir): Ditto. Remove check for special directories.
- * path.cc (path_conv::check): Set PATH_RO for virtual devices. Set
- error if read-only and asked for writability.
- * path.h (pathconv_arg): Add PC_WRITABLE.
- (path_types): Add PATH_RO.
- (path_conv::isro): Add (currently unused) check for read-only
- filesystem. Return "ENOSHARE" when we know a share doesn't exist.
- * include/sys/mount.h: Add MOUNT_RO flag.
- * autoload.cc (WNetGetResourceInformationA): Import.
- * fhandler_netdrive.cc (fhandler_netdrive::exists): Detect actual
- existence of remote system rather than always assuming that it exists.
-
-2005-05-11 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_global_dtors): Don't call dll_global_dtors here.
- (__main): Reinstate atexit of do_global_dtors.
- (cygwin_exit): Call dll_global_dtors here.
- (do_exit): And here.
-
-
-2005-05-10 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Clear exitsock after close.
- * fhandler_console.cc (fhandler_console::write_normal): Store character
- in a local variable for potential future inspection.
-
-2005-05-10 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (DLL_OFILES): Add fhandler_mailslot.o.
- * devices.h (FH_KMSG): Define new device.
- * devices.in: Add "/dev/kmsg" entry.
- * devices.cc: Regenerate.
- * dtable.cc (build_fh_pc): Handle case FH_KMSG.
- * fhandler.h (class fhandler_mailslot): New class.
- (class select_stuff): Add device_specific_mailslot pointer.
- * fhandler_mailslot.cc: New file.
- * select.cc (peek_mailslot): New function.
- (verify_mailslot): Ditto.
- (struct mailslotinf): New stuct to handle select on mailslots.
- (thread_mailslot): New function.
- (start_thread_mailslot): Ditto.
- (mailslot_cleanup): Ditto.
- (fhandler_mailslot::select_read): New method.
- * syslog.cc (klog_guard): New muto.
- (dev_kmsg): Local mailslot for kernel message device.
- (vklog): New function.
- (klog): Ditto.
- * winsup.h (vklog): Declare.
- (klog): Ditto.
- * include/sys/syslog.h: Define _PATH_KLOG.
-
-2005-05-10 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (dll_crt0_1): Call cygwin_exit to ensure that destructors
- are handled correctly.
-
-2005-05-10 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::check): Set correct file attributes for socket
- files.
-
-2005-05-09 Pierre Humblet <pierre.humblet@ieee.org>
-
- * fhandler.h (class fhandler_netdrive): New class.
- * fhandler_netdrive.cc (fhandler_netdrive::fhandler_netdrive): New constructor.
- (fhandler_netdrive::exists): New method.
- (fhandler_netdrive::fstat): Ditto.
- (fhandler_netdrive::readdir): Ditto.
- (fhandler_netdrive::open): Ditto.
- * dtable.cc (build_fh_pc): Handle case FH_NETDRIVE.
- * path.cc (isvirtual_dev): Add FH_NETDRIVE.
- (mount_info::conv_to_win32_path): Detect netdrive device and bypass mount
- search for network paths.
-
-2005-05-08 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (get_cygwin_startup_info): New function pulled from
- dll_crt0_0.
- (dll_crt0_0): Use get_cygwin_startup_info to retrieve cygwin-specific
- startup pointer.
- * external.cc (cygwin_internal): Implement CW_ARGV and CW_ENVP.
- * include/sys/cygwin.h: Implement CW_ARGV and CW_ENVP.
-
-2005-05-07 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (normalize_posix_path): Don't treat '//' specially since
- newer versions of bash now get this right.
-
-2005-05-07 Christopher Faylor <cgf@timesys.com>
-
- * devices.cc: Regenerate with correct name for dev_netdrive_storage.
-
-2005-05-06 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in (DLL_O_FILES): Add fhandler_netdrive.o.
- * fhandler_netdrive.cc: Placeholder file for future development.
- * devices.h (FH_NETDRIVE): Define new virtual device type.
- (netdrive_dev): Define.
- * devices.in (dev_netdrive_storage): Define.
- * devices.cc: Regenerate.
-
-2005-05-04 Corinna Vinschen <corinna@vinschen.de>
-
- * cygerrno.h (__set_errno): Remove useless parentheses.
-
-2005-05-04 Corinna Vinschen <corinna@vinschen.de>
-
- * cygerrno.h (__set_errno): Define as inline function here.
- (set_errno): Always define as call to __set_errno.
- * debug.cc (__set_errno): Move to cygerrno.h.
-
-2005-05-03 Christopher Faylor <cgf@timesys.com>
-
- * shared.cc (user_shared_initialize): Rework locking so that nothing is
- checked until cb is non-zero.
-
-2005-05-03 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't treat
- inability to open file as failure if only SetFileAttributes is
- going to be called. Only call set_file_attribute if really necessary.
-
-2005-05-03 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (get_inet_addr): Add missing __seterrno call.
-
-2005-05-01 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tty.cc (fhandler_tty_slave::read): Actually read input when
- vmin == vtime == 0.
-
-2005-04-30 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (spenv::force_into_environment): Rename from add_always.
- (spenv::add_if_exists): Rename from force.
- (build_env): Accommodate name changes. Make sure that stuff that is
- always supposed to be in the environment is actually added to the
- environment.
-
- * shared.cc (open_shared): Restore VirtualFree eliminated by 2005-04-28
- change.
-
-2005-04-30 Christopher Faylor <cgf@timesys.com>
-
- * errno.cc (errmap): Sort table.
-
-2005-04-29 Christopher Faylor <cgf@timesys.com>
-
- * errno.cc (errmap): Map ERROR_NETNAME_DELETED to ENOSHARE.
-
-2005-04-28 Corinna Vinschen <corinna@vinschen.de>
-
- * shared_info.h (cygwin_shared_address): Bump to a higher value to avoid
- collision with large data areas.
-
-2005-04-28 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_console.cc (fhandler_console::get_tty_stuff): Accommodate
- changes to open_shared arguments.
- * fhandler_tape.cc (mtinfo_init): Ditto.
- * pinfo.cc (pinfo::init): Use open_shared rather than win32 mmap calls.
- * shared.cc (user_shared_initialize): Ditto.
- (memory_init): Ditto.
- (open_shared): Change to allow use a smore general mmap handler.
- * shared_info.h (shared_locations): Add SH_JUSTCREATE, SH_JUSTOPEN.
- (open_shared): Change declaration to match new usage.
-
- * autoload.cc (LoadDLLfuncEx2): Define in terms of LoadDLLfuncEx3.
- (LoadDLLfuncEx3): New macro.
-
-2005-04-27 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.cc (fhandler_base::open_9x): Remove (broken) check for
- O_CREAT|O_EXCL.
- * syscalls.cc (open): Do O_CREAT|O_EXCL check here first.
-
-2005-04-26 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (build_env): Ensure that win32 array is properly filled in
- when a missing value has to be generated.
-
-2005-04-26 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 17.
-
-2005-04-24 Pavel Tsekov <ptsekov@gmx.net>
-
- * how-to-debug-cygwin.txt: Fix typo.
-
-2005-04-22 Christopher Faylor <cgf@timesys.com>
-
- * shared.cc (user_shared_initialize): Implement locking similar to
- shared_info when initializing shared region.
-
-2005-04-22 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (dev_console::set_color): Define new function.
- (dev_console::set_default_attr): Ditto, moved from fhandler_console.
- (dev_console::fillin_info): Ditto. Accommodate this change throughout
- this file.
- (fhandler_console::get_win32_attr): Eliminate.
- * fhandler_console.cc (fhandler_console::get_tty_stuff): Properly set
- default attributes on initialization.
- (fhandler_console::open): Set current attributes rather than default
- color on open.
- (fhandler_console::get_win32_attr): Eliminate.
- (dev_console::set_color): New function. Move get_win32_attr stuff
- here.
- (dev_console::set_default_attr): New function, moved from
- fhandler_console.
- (dev_console::fillin_info): Ditto.
- (fhandler_console::char_command): Call set_color to set screen
- characteristics.
-
-2005-04-22 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.cc (fhandler_base::read): Remove unused signal state tweaks.
- * fhandler.h (fhandler_pipe::create_selectable): Declare.
- (fhandler_fifo::close_one_end): Declare.
- * fhandler_fifo.cc (fhandler_fifo::close_one_end): Define.
- (fhandler_fifo::open_not_mine): Use close_one_end to close appropriate
- end of pipe.
- * pinfo.cc (_pinfo::commune_recv): Ditto.
- * pipe.cc (fhandler_pipe::create_selectable): Rename from
- create_selectable_pipe. Reorganize.
- (fhandler_pipe::create): Use create_selectable.
-
-2005-04-21 Christopher Faylor <cgf@timesys.com>
-
- * shared.cc (shared_info::initialize): Test previous version of shared
- memory magic rather than current version when determining if there has
- been a shared memory mismatch.
-
-2005-04-20 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero
- value.
-
- * strace.cc (strace::hello): Report parent pid of executing process.
-
-2005-04-20 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Fix problem reading symlinks introduced
- in below change by reverting the change and adding an additional test
- for nonexistent files in /proc.
-
-2005-04-20 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Punt when attempting to access a
- nonexistent directory or file in /proc.
-
-2005-04-19 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (alloc_sd): Remove DELETE bit from user's ACE if
- allow_traverse is set.
-
-2005-04-19 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (pselect): Export.
- * select.cc (pselect): New function.
- * include/cygwin/version.h: Bump API minor number.
- * include/sys/select.h: Include signal.h. Declare pselect.
-
-2005-04-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (enum conn_state): Add connect_failed state.
- * fhandler_socket.cc (fhandler_socket::connect): Set connect_state to
- connect_failed when connect failed.
- * poll.cc (poll): Change errno to EINVAL if allocating memory fails,
- according to SUSv3. Add socket descriptors always to except_fds. Test
- for failed connect and set revents flags appropriately.
- * select.cc (set_bits): Set connect_state to connect_failed when
- select indicates failed nonblocking connect.
- (fhandler_dev_null::select_except): Set except_ready to false so that
- /dev/null is not always in except state.
- (peek_socket): Fix bogus conditional.
- (fhandler_socket::select_write): Treat all connect_states except
- unconnected equivalent to return consistent results.
- (fhandler_windows::select_except): Set except_ready to false so that
- /dev/windows is not always in except state.
-
-2005-04-18 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 16.
-
-2005-04-18 Pierre Humblet <pierre.humblet@ieee.org>
-
- * grp.cc (initgroups32): Return the correct value.
-
-2005-04-16 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::utimes_fs): Ignore
- ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
- * path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
- ERROR_FILE_NOT_FOUND for the same reason.
-
-2005-04-16 Corinna Vinschen <corinna@vinschen.de>
- Pierre Humblet <pierre.humblet@ieee.org>
-
- * security.h (cygsidlist::addfromgr): Allow duplicate entries.
- (get_server_groups): Declare new function.
- * security.cc (is_group_member): Simplify.
- (get_server_groups): New function.
- (get_initgroups_sidlist): Call get_server_groups.
- (verify_token): Allow token when supplementary sids are not in
- /etc/group but are in the token.
- Streamline the code.
- * grp.cc (initgroups32): New implementation.
- (getgroups32): Handle case where the supplementary groups are set.
-
-2005-04-16 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (environ_init): Don't set traverse checking as default.
-
-2005-04-16 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::utimes_fs): Drop touching
- ChangeTime.
-
-2005-04-16 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.cc (fhandler::dup): Duplicate flags, too.
- * fhandler.h (fhandler_fifo::owner): Eliminate.
- * fhandler_disk_file.cc (fhandler_base::fstat_fs): Handle on-disk
- devices better.
- (fhandler_base::fstat_helper): Ditto.
- * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Don't initialize
- obsolete "owner".
- (fhandler_fifo::open_not_mine): Add some debugging. Duplicate correct
- handle when we own it.
- (fhandler_fifo::open): Set flags from input, not from first pipe. Flag
- that fork fixup is needed.
- (fhandler_fifo::dup): Set errno correctly when DuplicateHandle fails.
- * pinfo.cc (commune_send): Add debugging for fifo.
-
- * cygwin/version.h: Bump API minor version to 127 to reflect exporting
- of sigrelese.
-
-2005-04-14 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
-
- * syscalls.cc (setuid32): Correct debugging output.
-
-2005-04-14 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (do_global_dtors): Run DLL dtors.
- (__main): Don't rely on atexit to run dtors.
- (do_exit): Specifically call do_global_dtors here.
- (cygwin_exit): Ditto.
- * dll_init.cc (dll_global_dtors): Make global. Only run dtors once.
- (dll_list::init): Just set flag that dtors should be run. Don't rely on atexit.
- * dll_init.h (dll_global_dtors): Declare.
-
- * exceptions.cc (sigrelse): Define.
-
- * path.h (is_fs_device): New method.
- (is_lnk_special): Ditto.
- * fhandler_disk_file.cc (fhandler_disk_file::link): Use
- "is_lnk_special" rather than "is_lnk_symlink".
- * syscalls.cc (rename): Ditto.
-
- * hookapi.cc (ld_preload): Use colon as a separator rather than space.
-
-2005-04-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_socket): Remove utimes.
- * fhandler_socket.cc (fhandler_socket::utimes): Remove.
-
-2005-04-13 Corinna Vinschen <corinna@vinschen.de>
-
- * cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
- error code as well as errno. Use throughout where errno is set from
- NT status.
- (set_errno): Evaluate val only once.
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
- debug output.
- * fhandler_mem.cc (fhandler_dev_mem::open): Rely on
- __seterrno_from_nt_status setting Win32 error code in debug output.
- * fhandler_proc.cc (format_proc_uptime): Ditto.
- (format_proc_stat): Ditto.
- * fhandler_process.cc (format_process_stat): Ditto.
- * sysconf.cc (sysconf): Ditto.
-
-2005-04-13 Christopher Faylor <cgf@timesys.com>
-
- * fhandler.h (fhandler_base::utimes_fs): New method.
- * fhandler.cc (fhandler_base::utimes): Call utimes_fs if on-disk
- special file.
- * fhandler_disk_file.cc (fhandler_disk_file::utimes): Use utimes_fs.
- (fhandler_base::utimes_fs): Handle on-disk device files.
-
-2005-04-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::utimes): Don't set errno
- if open fails, it has already been set by open.
-
-2005-04-12 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (NtQueryVolumeInformationFile): Add.
- * fhandler.cc (fhandler_base::raw_write): Don't touch has_changed flag.
- * fhandler.h (enum change_state): Remove.
- (fhandler_base::status): Revert has_changed to a simple bit.
- (fhandler_base::fstat_helper): Add nAllocSize parameter. Rename
- ftCreationTime to ftChangeTime.
- * fhandler_disk_file.cc: Call fstat_helper with additional
- allocation size throughout.
- (fhandler_base::fstat_by_handle): Use NT native functions to get
- full file information on NT. Call fstat_helper with LastWriteTime
- as ctime, if ChangeTime is not available.
- (fhandler_base::fstat_by_name): Call fstat_helper with LastWriteTime
- as ctime.
- (fhandler_base::fstat_helper): Add comment. Drop special FAT
- handling since it's useless. Use nAllocSize for st_blocks if available.
- (fhandler_disk_file::touch_ctime): Only touch LastWriteTime.
- (fhandler_disk_file::fchmod): Set has_changed on 9x only.
- (fhandler_disk_file::fchown): Don't set has_changed.
- (fhandler_disk_file::facl): Ditto.
- (fhandler_disk_file::ftruncate): Ditto.
- (fhandler_disk_file::link): Set has_changed on 9x only and on original
- file only.
- (fhandler_base::open_fs): Don't set has_changed in O_TRUNC case.
- * ntdll.h (FILE_BASIC_INFORMATION): Define.
- (FILE_STANDARD_INFORMATION): Define.
- (FILE_INTERNAL_INFORMATION): Define.
- (FILE_EA_INFORMATION): Define.
- (FILE_ACCESS_INFORMATION): Define.
- (FILE_POSITION_INFORMATION): Define.
- (FILE_MODE_INFORMATION): Define.
- (FILE_ALIGNMENT_INFORMATION): Define.
- (FILE_NAME_INFORMATION): Don't define with arbitrary FileName size.
- (FILE_ALL_INFORMATION): Define.
- (FILE_INFORMATION_CLASS): Add FileAllInformation.
- (FILE_FS_VOLUME_INFORMATION): Define.
- (FS_INFORMATION_CLASS): Define.
- (NtQueryVolumeInformationFile): Define.
-
-2005-04-11 Corinna Vinschen <corinna@vinschen.de>
-
- Revert previous patch.
- * autoload.cc (GetVolumePathNamesForVolumeNameA): Remove.
- (GetVolumeNameForVolumeMountPointA): Add.
- * syscalls.cc (sync): Rewrite guid case to skip floppies also on
- Windows 2000.
-
-2005-04-11 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (sync): Use renamed has_get_volume_pathnames wincap.
- * wincap.h (wincaps::has_get_volume_pathnames): Rename from
- has_guid_volumes
- * wincap.cc: Accommodate above rename throughout. Set to false on
- Windows 2000.
-
-2005-04-08 Christopher Faylor <cgf@timesys.com>
-
- * pipe.cc (fhandler_pipe::open): Remove O_CREAT limitation.
-
-2005-04-07 Corinna Vinschen <corinna@vinschen.de>
-
- * syslog.cc (try_connect_guard): Remove useless conditionalized code.
-
-2005-04-07 Corinna Vinschen <corinna@vinschen.de>
-
- * syslog.cc: Include sys/socket.h.
- (try_connect_guard): New static variable.
- (syslogd_inited): Ditto.
- (syslogd_sock): Ditto.
- (try_connect_syslogd): New function to connect and write syslog to
- local syslogd.
- (vsyslog): Log to stderr if LOG_PERROR flag has been given to openlog.
- Try logging to syslogd. Use Event Log resp. log file as fallback.
- (closelog): Close socket to syslogd.
- * include/sys/syslog.h (_PATH_LOG): Define.
- (INTERNAL_NOPRI): Define if SYSLOG_NAMES is defined.
- (INTERNAL_MARK): Ditto.
- (struct _code): Ditto.
- (prioritynames): Ditto.
- (facilitynames): Ditto.
-
-2005-04-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (get_inet_addr): Add type parameter to return
- unix socket type. Read socket type from unix socket file.
- (fhandler_socket::bind): Write socket type to unix socket file.
- (fhandler_socket::connect): Return with errno EPROTOTYPE if
- socket type of socket doesn't match socket type of unix socket
- trying to connect to.
-
-2005-04-06 Pierre Humblet <pierre.humblet@ieee.org>
-
- * security.h (cygsidlist::addfromgr): Avoid duplicate entries.
- * grp.cc (initgrousp): Add syscall_printf.
- (setgroups): Add syscall_printf and make sure sids are added only once.
-
-2005-04-06 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (cygwin_getservbyname): Return (possibly NULL) return value of
- dup_ent rather than assuming that tls buffer is valid.
- (cygwin_getservbyport): Ditto.
- (cygwin_gethostbyname): Ditto.
- (cygwin_gethostbyaddr): Ditto.
-
-2005-04-05 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Don't free or close stuff if we're being
- called in a "non-standard" way.
-
-2005-04-05 Christopher Faylor <cgf@timesys.com>
-
- * sync.h (muto::initforce): Delete flawed implementation.
- * pwdgrp.h (pwdgrp::pglock): Make static.
- * grp.cc (pwdgrp::pwdgrp): Eliminate use of initforce.
-
-2005-04-05 Christopher Faylor <cgf@timesys.com>
-
- * sync.h (muto::initforce): Force initialization even when name !=
- NULL.
- * grp.cc (pwdgrp::pwdgrp): Use initforce since the enclosing structure
- is !NO_COPY.
-
-2005-04-05 Christopher Faylor <cgf@timesys.com>
-
- * sync.h (muto::operator int): New operator.
- (locker): Remove unused class.
- (new_muto): Delete.
- (new_muto1): Ditto.
- (new_muto_name): Ditto.
- * cygheap.cc (cygheap_setup_for_child): Reflect use of static storage
- for muto rather than pointer.
- (_csbrk): Ditto.
- (_cmalloc): Ditto.
- (_cmalloc): Ditto.
- (_cfree): Ditto.
- * cygheap.h (cwdstuff::cwd_lock): Ditto.
- (cwdstuff::get_drive): Ditto.
- * cygmalloc.h (__malloc_lock): Ditto.
- (__malloc_unlock): Ditto.
- * cygtls.cc (sentry::lock): Ditto.
- (sentry::sentry): Ditto.
- (~sentry): Ditto.
- (_cygtls::init): Ditto.
- * dcrt0.cc: Ditto.
- (cygwin_atexit): Ditto.
- (cygwin_exit): Ditto.
- * debug.cc (lock_debug::locker): Ditto.
- (lock_debug::lock_debug): Ditto.
- (lock_debug::unlock): Ditto.
- (debug_init): Ditto.
- * dtable.cc (dtable::init_lock): Ditto.
- * dtable.h (dtable::lock_cs): Ditto.
- (dtable::lock): Ditto.
- (dtable::unlock): Ditto.
- * exceptions.cc (mask_sync): Ditto.
- (sighold): Ditto.
- (set_process_mask_delta): Ditto.
- (set_signal_mask): Ditto.
- (events_init): Ditto.
- * grp.cc (pwdgrp::pwdgrp): Ditto.
- * malloc_wrapper.cc (mallock): Ditto.
- (malloc_init): Ditto.
- * path.cc (cwdstuff::cwd_lock): Ditto.
- (cwdstuff::get_hash): Ditto.
- (cwdstuff::get_hash): Ditto.
- (cwdstuff::init): Ditto.
- (cwdstuff::set): Ditto.
- (cwdstuff::get): Ditto.
- * pwdgrp.h (pwdgrp::pglock): Ditto.
- (pwdgrp::refresh): Ditto.
- * sigproc.cc (sync_proc_subproc): Ditto.
- (get_proc_lock): Ditto.
- (proc_subproc): Ditto.
- (_cygtls::remove_wq): Ditto.
- (proc_terminate): Ditto.
- (sigproc_init): Ditto.
- * timer.cc (lock_timer_tracker::protect): Ditto.
- (lock_timer_tracker::lock_timer_tracker): Ditto.
- (lock_timer_tracker::~lock_timer_tracker): Ditto.
- * wininfo.cc (wininfo::_lock;): Ditto.
- (wininfo::winthread): Ditto.
- (operator HWND): Ditto.
- (wininfo::lock): Ditto.
- (wininfo::release): Ditto.
- * wininfo.h (wininfo::_lock;): Ditto.
-
-2005-04-04 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Only check for PC_NO_ACCESS_CHECK in end
- component.
-
-2005-04-04 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges on 9x.
-
- * fhandler.h (enum change_state): Add.
- (fhandler_base::status): Add a bit to has_changed flag.
- (fhandler_base::has_changed): Implement with type change_state.
- * fhandler.cc (fhandler_base::raw_write): Accommodate type change
- of has_changed.
- * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Also
- touch modification time if has_changed == data_changed.
- (fhandler_disk_file::fchmod): Also open on 9x, otherwise we can't
- touch ctime. Accommodate type change of has_changed.
- (fhandler_disk_file::fchown): Accommodate type change of has_changed.
- (fhandler_disk_file::facl): Ditto.
- (fhandler_disk_file::ftruncate): Ditto.
- (fhandler_disk_file::link): Ditto.
- (fhandler_base::open_fs): Ditto.
-
-2005-04-03 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.cc (cygheap_init): Accommodate set_process_privilege change.
- * cygheap.h (cygheap_user::curr_primary_token): New member.
- (cygheap_user::primary_token): New method.
- (cygheap_user::deimpersonate): Always revert to processes'
- impersonation token.
- (cygheap_user::reimpersonate): Set processes' or setuid token as
- necessary.
- (cygheap_user::has_impersonation_tokens): Look for curr_primary_token
- value.
- (cygheap_user::close_impersonation_tokens): Close curr_primary_token
- here if necessary. Don't reset token values to NO_IMPERSONATION since
- that's done in uinfo_init anyway.
- (init_cygheap::luid): New LUID array keeping privilege LUIDs.
- * cygtls.cc (_cygtls::init_thread): Call cygheap->user.reimpersonate.
- * dcrt0.cc (hProcToken): New global variable to keep process token.
- (hProcImpToken): Ditto for process impersonation token.
- (dll_crt0_0): Open process token here once. Duplicate to create
- hProcImpToken.
- (dll_crt0_1): Call set_cygwin_privileges.
- * environ.cc (allow_ntea): Drop duplicate declaration.
- (allow_smbntsec): Ditto.
- (set_traverse): Only set allow_traverse here.
- (environ_init): Ditto.
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop call to
- enable_restore_privilege.
- (fhandler_disk_file::fchown): Ditto.
- (fhandler_disk_file::facl): Ditto.
- * fork.cc (fork_child): Move call to cygheap->user.reimpersonate after
- syn with parent. Call set_cygwin_privileges.
- * grp.cc (internal_getgroups): Use hProcImpToken instead of opening
- process token.
- * path.cc (fs_info::update): Bypass traverse checking when retrieving
- volume information using push/pop_thread_privileges.
- * registry.cc (load_registry_hive): Drop setting restore privilege
- since it's already set if available.
- * sec_helper.cc: Include cygtls.h.
- (cygpriv): Privilege string array.
- (privilege_luid): New function, evaluate LUID from cygpriv_idx.
- (privilege_luid_by_name): New function, evaluate LUID from privilege
- string.
- (privilege_name): New function, evaluate privilege string from
- cygpriv_idx.
- (set_privilege): New static function called by set_process_privilege
- and set_thread_privilege. Call privilege_luid to get privilege LUID.
- Fix bug in return value evaluation. Improve debug output.
- (set_cygwin_privileges): New function.
- (set_process_privilege): Remove.
- (enable_restore_privilege): Remove.
- * security.cc (allow_traverse): New global variable.
- (sys_privs): Change type to cygpriv_idx and store privilege indices
- instead of strings.
- (SYSTEM_PRIVILEGES_COUNT): Renamed from SYSTEM_PERMISSION_COUNT.
- (get_system_priv_list): Don't use numerical constant in malloc call.
- Use privilege_luid to get privilege LUIDs.
- (get_priv_list): Call privilege_luid_by_name to get LUIDs. Improve
- inner privilege LUID comparison loop.
- (create_token): Enable create token privilege using
- push/pop_self_privileges. Use hProcToken instead of opening process
- token. Use default DACL when duplicating token.
- (subauth): Enable tcb privilege using push/pop_self_privileges.
- Use sec_none instead of homw made security attributes when duplicating
- token.
- (check_file_access): Don't duplicate access token, use active
- impersonation token as is.
- * security.h (enum cygpriv_idx): New enumeration type enumerating
- possible privileges.
- (privilege_luid): Declare new function.
- (privilege_luid_by_name): Ditto.
- (privilege_name): Ditto.
- (allow_traverse): Declare.
- (set_privilege): Declare function.
- (set_process_privilege): Define as macro.
- (enable_restore_privilege): Remove declaration.
- (_push_thread_privilege): Define macro.
- (push_thread_privilege): Ditto.
- (pop_thread_privilege): Ditto.
- (pop_self_privilege): Ditto.
- * spawn.cc (spawn_guts): Use cygheap->user.primary_token instead of
- cygheap->user.token.
- * syscalls.cc (statvfs): Bypass traverse checking when retrieving
- volume information using push/pop_thread_privileges. Rearrange code
- to simplify push/pop bracketing.
- (seteuid32): Use hProcToken instead of opening process token. Call
- cygheap->user.deimpersonate instead of RevertToSelf. Create
- impersonation token from primary internal or external token. Set
- cygheap->user.curr_primary_token and cygheap->user.current_token
- privileges once here. Drop "failed" and "failed_ptok" labels.
- Drop setting DefaultDacl of process token.
- (setegid32): Use hProcToken and hProcImpToken instead of opening
- process token. Always reimpersonate afterwards.
- * uinfo.cc (cygheap_user::init): Use hProcToken instead of opening
- process token.
- (internal_getlogin): Ditto. Set hProcImpToken, too.
- (uinfo_init): Initialize cygheap->user.curr_primary_token.
- * winsup.h (hProcToken): Declare.
- (hProcImpToken): Declare.
-
-2005-04-03 Corinna Vinschen <corinna@vinschen.de>
-
- Unify usage of CYG_MAX_PATH throughout. Change buffers from
- size CYG_MAX_PATH + 1 to CYG_MAX_PATH. Change length tests
- accordingly.
-
-2005-04-02 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 15.
-
-2005-04-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fork.cc (fork_child): Add missing __stdcall.
-
-2005-04-01 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (create_signal_arrive): New (temporary?) function to
- create signal_arrived event.
- (sigproc_init): Use create_signal_arrived.
- * fork.cc (fork_child): Create signal_arrived early.
-
-2005-04-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
- up fdtab.
-
-2005-03-31 Corinna Vinschen <corinna@vinschen.de>
-
- * gentls_offsets: Add '-m32' flag to native compiler call to satisfy
- cross platform builds.
-
-2005-03-31 Corinna Vinschen <corinna@vinschen.de>
-
- * errno.cc (NO_SYSTEM_RESOURCES): Map to EAGAIN.
- (NONPAGED_SYSTEM_RESOURCES): Ditto.
- (PAGED_SYSTEM_RESOURCES): Ditto.
- (WORKING_SET_QUOTA): Ditto.
- (PAGEFILE_QUOTA): Ditto.
- (COMMITMENT_LIMIT): Ditto.
-
-2005-03-30 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
- environment.
- (build_env): Ditto.
-
-2005-03-30 Christopher Faylor <cgf@timesys.com>
-
- * environ.cc (spenv::retrieve): Revert most of previous change.
- (build_env): Ditto. Rework to track environment variables which need
- to always be in the windows environment in a separate array.
-
-2005-03-30 Igor Pechtchanski <pechtcha@cs.nyu.edu>
-
- * path.cc (symlink_info::case_check): Ignore trailing characters
- in paths when comparing case.
-
-2005-03-30 Christopher Faylor <cgf@timesys.com>
-
- * environ.h (win_env::immediate): Declare new field.
- (win_env::operator = ): Declare new operator.
- (win_env::reset): Declare new function.
- (win_env::~win_env): Declare new destructor.
- (getwinenv): Add optional third argument to declaration.
- * environ.cc (conv_envvars): Accommodate immediate field.
- (win_env::operator =): Define new operator.
- (win_env::~win_env): Define new destructor.
- (win_env::add_cache): Add value to environment immediately if
- "immediate" is set.
- (getwinenv): Accept optional third argument which will be used to store
- "cached" values to avoid overwriting real cache.
- (spenv::force): Declare new field.
- (spenvs): Accommodate force field. Add "PATH=" with force set to true.
- (spenv::retrieve): Avoid duping anything if we're not building an
- envblock.
- (build_env): Ditto. Use size of potentially constructed new
- environment block to determine if we need to create an environment
- block. Pass getwinenv temporary storage to avoid inappropriately
- overwriting the environment cache.
-
-2005-03-29 Eric Blake <ebb9@byu.net>
-
- * include/limits.h (NAME_MAX): New define.
- (PATH_MAX): POSIX allows PATH_MAX to include trailing NUL.
-
-2005-03-29 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (is_floppy): Make externally available.
- * path.h (is_floppy): Declare.
- * syscalls.cc (sync): Check for floppies on A: and B: in guid case.
- Don't call setmntent in non-guid case but evaluate drive bit mask
- locally.
-
-2005-03-29 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc: Re-add exename.
-
-2005-03-28 Christopher Faylor <cgf@timesys.com>
-
- * include/ctype.h: Accommodate building in newlib.
-
-2005-03-28 Christopher Faylor <cgf@timesys.com>
-
- * timer.cc (getitimer): Check that ovalue is a valid pointer, not just
- NULL.
-
-2005-03-28 Christopher Faylor <cgf@timesys.com>
-
- * timer.cc (timer_tracker::settime): Set times to zero when just
- cancelling a timer.
-
-2005-03-28 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::detach): Revert to just waiting for thread
- event since waiting for anything else is racy.
- * timer.cc (timer_tracker::hcancel): Rename from cancel.
- (timer_tracker::cancel): New method.
- (timer_tracker::th): Remove.
- (timer_tracker::~timer_tracker): Call cancel method.
- (timer_tracker::timer_tracker): Ditto.
- (timer_tracker::timer_tracker): Always, clear cancel, even though it is
- probably not strictly necessary for ttstart.
- (timer_thread): Accommodate cancel -> hcancel rename.
- (timer_tracker::settime): Ditto.
- (timer_tracker::gettime): Ditto.
- (timer_delete): Ditto.
-
- * cygwin.din: Export _ctype_.
- * include/ctype.h: Mark that _ctype_ is imported.
-
-2005-03-28 Christopher Faylor <cgf@timesys.com>
-
- * timer.cc (timer_tracker::timer_tracker): Eliminate simple
- constructor.
- (ttstart): Fully initialize.
-
- * errno.cc: Fix typo introduced in previous change.
-
-2005-03-28 Eric Blake <ebb9@byu.net>
-
- * errno.cc (FILENAME_EXCED_RANGE): Map to ENAMETOOLONG.
-
-2005-03-27 Christopher Faylor <cgf@timesys.com>
-
- * signal.cc (nanosleep): Revert tv_sec < 0 check as it is fixed
- properly in the below change to hires.h.
-
-2005-03-27 Pierre Humblet <pierre.humblet@ieee.org>
-
- * times.cc (hires_ms::usecs): Compare the difference.
- * hires.h: Add parentheses to HIRES_DELAY_MAX.
-
-2005-03-26 Christopher Faylor <cgf@timesys.com>
-
- * timer.cc (nanosleep): Treat tv_sec < 0 as invalid.
-
- * include/search.h: Make declarations consistent with newlib.
-
-2005-03-26 Pierre Humblet <pierre.humblet@ieee.org>
- Christopher Faylor <cgf@timesys.com>
-
- * wininfo.h (wininfo::timer_active): Delete.
- (wininfo::itv): Ditto.
- (wininfo::start_time): Ditto.
- (wininfo::window_started): Ditto.
- (wininfo::getitimer): Ditto.
- (wininfo::setitimer): Ditto.
- (wininfo::wininfo): Ditto.
- (wininfo::lock): New method.
- (wininfo::release): Ditto.
- * window.cc: Use new lock/acquire wininfo methods throughout.
- (wininfo::wininfo): Delete
- (wininfo::getitimer): Ditto.
- (wininfo::setitimer): Ditto.
- (getitimer): Ditto.
- (setitimer): Ditto.
- (ualarm): Ditto.
- (alarm): Ditto.
- (wininfo::lock): Define new function.
- (wininfo::release): Ditto.
- (wininfo::process): Delete WM_TIMER handling.
- * timer.cc (struct timetracker): Delete it, flags. Add it_interval,
- interval_us, sleepto_us, running, init_muto(), syncthread, and
- gettime().
- (ttstart): Make NO_COPY.
- (lock_timer_tracker): New class.
- (timer_tracker::timer_tracker): Distinguish ttstart case.
- (timer_tracker::~timer_tracker): New destructor. Clean out events, and
- reset magic.
- (timer_tracker::init_muto): New method.
- (to_us): Round up as per POSIX.
- (timer_thread): Reorganize to match timer_tracker::settime and
- timer_tracker::gettime. Call sig_send without wait. Call
- auto_release.
- (timer_tracker::settime): Reorganize logic to avoid race. Call gettime
- to recover old value.
- (timer_tracker::gettime): New method.
- (timer_create): Properly set errno on invalid timerid. Use new
- lock_timer_tracker method.
- (timer_delete): Ditto. Simplify code slightly.
- (timer_gettime): New function.
- (fixup_timers_after_fork): Reinit ttstart.
- (getitimer): New implementation.
- (setitimer): Ditto.
- (ualarm): Ditto.
- (alarm): Ditto.
- * cygwin.din: Export timer_gettime.
- * winsup.h: Remove has has_visible_window_station declaration.
-
-2005-03-26 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in (DLL_OFILES): Add lsearch.o.
- * cygthread.h (cygthread::notify_detached): New element.
- (cygthread::cygthread): Take optional fourth argument signifying event
- to signal on thread completion.
- * cygthread.cc (cygthread::stub): Signal notify_detached event, if it
- exists.
- (cygthread::cygthread): Initialize notify_detached from fourth argument.
- (cygthread::detach): Wait for notify_detached field is present.
-
- * lsearch.cc: New file.
- * search.h: Ditto.
- * include/cygwin/version.h: Bump API minor number to 126.
- * cygwin.din: Export lsearch, lfind.
-
-2005-03-23 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_socket::secret_event): Remove.
- (fhandler_socket::af_local_set_secret): New function combining former
- set_connect_secret and get_connect_secret into one function.
- (fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
- (fhandler_socket::af_local_unsetblocking): Rename from
- eid_unsetblocking.
- (fhandler_socket::af_local_set_cred): New method.
- (fhandler_socket::af_local_copy): New method.
- (fhandler_socket::af_local_recv_secret): New method.
- (fhandler_socket::af_local_send_secret): New method.
- (fhandler_socket::af_local_recv_cred): Rename from eid_recv.
- (fhandler_socket::af_local_send_cred): Rename from eid_send.
- (fhandler_socket::af_local_accept): New method.
- (fhandler_socket::af_local_set_sockpair_cred): Rename from
- set_socketpair_eids.
- (fhandler_socket::eid_accept): Remove.
- (fhandler_socket::eid_connect): Remove.
- (fhandler_socket::set_connect_secret): Remove.
- (fhandler_socket::get_connect_secret): Remove.
- (fhandler_socket::create_secret_event): Remove.
- (fhandler_socket::check_peer_secret_event): Remove.
- (fhandler_socket::signal_secret_event): Remove.
- (fhandler_socket::close_secret_event): Remove.
- (fhandler_socket::sec_event_accept): Remove.
- (fhandler_socket::sec_event_connect): Remove.
- * fhandler_socket.cc (secret_event_name): Remove.
- (fhandler_socket::af_local_set_sockpair_cred): Rename from
- set_socketpair_eids.
- (fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
- (fhandler_socket::af_local_unsetblocking): Rename from
- eid_unsetblocking.
- (fhandler_socket::af_local_recv_secret): New function to receive
- AF_LOCAL connect secret over socket itself.
- (fhandler_socket::af_local_send_secret): New function to send AF_LOCAL
- connect secret over socket itself.
- (fhandler_socket::af_local_recv_cred): Rename from eid_recv.
- (fhandler_socket::af_local_send_cred): Rename from eid_send.
- (fhandler_socket::eid_connect): Remove.
- (fhandler_socket::af_local_connect): Take over connect side handling
- of AF_LOCAL secret and credential handshake.
- (fhandler_socket::eid_accept): Remove.
- (fhandler_socket::af_local_accept): New method, take over accept side
- handling of AF_LOCAL secret and credential handshake.
- (fhandler_socket::af_local_set_cred): New method, set eid credentials
- to start values.
- (fhandler_socket::af_local_copy): New method, copy secret and
- credentials to another socket.
- (fhandler_socket::af_local_set_secret): New function combining former
- set_connect_secret and get_connect_secret into one function.
- (fhandler_socket::create_secret_event): Remove.
- (fhandler_socket::signal_secret_event): Remove.
- (fhandler_socket::close_secret_event): Remove.
- (fhandler_socket::check_peer_secret_event): Remove.
- (fhandler_socket::sec_event_connect): Remove.
- (fhandler_socket::sec_event_accept): Remove.
- (fhandler_socket::fixup_after_fork): Drop secret_event handling.
- (fhandler_socket::bind): Call af_local_set_secret.
- (fhandler_socket::connect): Call af_local_set_cred and af_local_connect.
- (fhandler_socket::listen): Call af_local_set_cred.
- (fhandler_socket::accept): Call af_local_copy and af_local_accept on
- accepted socket.
- (fhandler_socket::close): Don't call close_secret_event.
- (fhandler_socket::set_close_on_exec): Don't set secret_event
- inheritance.
- * net.cc (cygwin_getsockopt): Add debug output.
- (socketpair): Call af_local_set_sockpair_cred instead of
- set_socketpair_eids.
- * select.cc (set_bits): Drop AF_LOCAL special handling in case
- of except bit set.
-
-2005-03-23 Christopher Faylor <cgf@timesys.com>
-
- * include/ctype.h: Always define macros when inside cygwin.
- (isblank): New macro.
-
-2005-03-23 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_socket::eid_connect): Make private.
- (fhandler_socket::set_connect_secret): Ditto.
- (fhandler_socket::get_connect_secret): Ditto.
- (fhandler_socket::create_secret_event): Ditto. Remove secret argument.
- (fhandler_socket::check_peer_secret_event): Ditto.
- (fhandler_socket::signal_secret_event): Make private.
- (fhandler_socket::close_secret_event): Ditto.
- (fhandler_socket::sec_event_accept): New private method.
- (fhandler_socket::sec_event_connect): Ditto.
- (fhandler_socket::af_local_connect): New public method.
- * fhandler_socket.cc: Use 'struct sockaddr' and 'struct sockaddr_in'
- rather than just 'sockaddr' and 'sockaddr_in' throughout.
- (fhandler_socket::eid_connect): Drop AF_LOCAL/SOCK_STREAM test.
- (fhandler_socket::create_secret_event): Remove secret argument.
- Always use connect_secret instead.
- (fhandler_socket::check_peer_secret_event): Ditto.
- (fhandler_socket::sec_event_connect): New method, combining entire
- secret event handshake on connect side.
- (fhandler_socket::af_local_connect): New method, combining secret
- event handshake and eid credential transaction on connect side, to
- be called from select.
- (fhandler_socket::sec_event_accept): New method, combining entire
- secret event handshake on accept side.
- (fhandler_socket::connect): Drop secret, use connect_secret instead.
- Move entire secret event handshake to sec_event_connect.
- (fhandler_socket::accept): Move entire secret event handshake to
- sec_event_accept.
- * select.cc (set_bits): Just call af_local_connect here.
-
-2005-03-23 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Change comment for most recent API version
- bump to reflect new additions to the DLL and to remove change obsoleted
- by the previous checkin.
-
-2005-03-23 Christopher Faylor <cgf@timesys.com>
-
- * include/ctype.h: New file.
- * ctype.cc: Ditto.
- * Makefile.in: Add ctype.o to DLL_OFILES.
- * cygwin.din: Remove _ctype_ptr (for now?).
-
-2005-03-22 Christopher Faylor <cgf@timesys.com>
-
- * Makefile.in (DLL_OFILES): Add hookapi.o. Eliminate some cruft.
- * cygheap.h (cygheap_types): Add new enum: HEAP_1_HOOK.
- (hook_chain): New struct.
- (init_cygheap::hooks): Define new element.
- * cygheap.cc (cygheap_fixup_in_child): Zero hook chain on exec.
- * dcrt0.cc (dll_crt0_1): Call ld_preload just before calling main function.
- * external.cc (cygwin_internal): Implement CW_HOOK.
- * fork.cc (fork_child): Call fixup_hooks_after_fork.
- * init.cc (cygwin_hmodule): Reinstate after a long absence.
- * include/sys/cygwin.h: Define CW_HOOK.
- * hookapi.cc: New file.
-
- * select.cc (start_thread_socket): Add debugging output.
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): gcc 4.x
- accommodation.
-
- * fhandler_socket.cc (fhandler_socket::connect): Make sure that err is
- initialized.
-
-2005-03-22 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (__ctype_ptr): Export.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-03-21 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class cygthread): Remove forward declaration.
-
-2005-03-21 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class cygthread): Forward declare.
- (fhandler_socket::sec_pipe): Remove.
- (fhandler_socket::eid_pipe_name): Remove.
- (fhandler_socket::eid_setblocking): New private method.
- (fhandler_socket::eid_unsetblocking): Ditto
- (fhandler_socket::eid_recv): Ditto
- (fhandler_socket::eid_send): Ditto
- (fhandler_socket::eid_accept): Ditto
- (fhandler_socket::eid_connect): New public method.
- * fhandler_socket.cc (ASYNC_MASK): Move to beginning of file.
- (fhandler_socket::eid_pipe_name): Remove.
- (fhandler_socket::set_socketpair_eids): Move down to fhandler_socket
- methods.
- (fhandler_socket::fhandler_socket): Drop initializing sec_pipe.
- (fhandler_socket::~fhandler_socket): Drop closing sec_pipe.
- (fhandler_socket::eid_setblocking): New method.
- (fhandler_socket::eid_unsetblocking): New method.
- (fhandler_socket::eid_recv): New method.
- (fhandler_socket::eid_send): New method.
- (fhandler_socket::eid_connect): New method.
- (fhandler_socket::eid_accept): New method.
- (fhandler_socket::dup): Drop sec_pipe handling.
- (fhandler_socket::connect): Fix WinSock error handling. Prepare
- eid credential transaction. Call eid_connect on successful connect.
- (fhandler_socket::listen): Drop creating sec_pipe.
- (fhandler_socket::accept): Slightly simplify code. Call eid_accept
- on accepted socket.
- (fhandler_socket::getpeereid): Reshuffle code for readability. Fix
- test for invalid pid.
- * select.cc (set_bits): Call eid_connect on successfully connected
- socket.
-
-2005-03-19 Christopher Faylor <cgf@timesys.com>
-
- * child_info.h (fork_info): Use different method to alias variable.
- (spawn_info): Ditto.
- * cxx.cc (__cxa_guard_acquire): New function (needed for gcc 4.x).
- (__cxa_guard_release): Ditto.
- * devices.in: Make sure stuff is correctly bracketed (for gcc 4.x).
- * devices.cc: Regenerate.
- * fhandler.h (fhandler_disk_file::fchmod): Avoid left coercion (for gcc
- 4.x).
- * smallprint.c (__rn): Declare as __fastcall since gcc 4.x complains
- about use of regparm, for some reason.
- * sync.h (sync::init_lock): Remove.
- * sync.cc (sync::init_lock): Ditto.
-
-2005-03-18 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (cygwin_getprotobyname): Don't try to be fancy with return
- values.
- (cygwin_getprotobynumber): Ditto.
-
-2005-03-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::utimes): Handle opening
- directories under 9x gracefully.
-
-2005-03-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::connect): Always set sun_path
- in case of a successful or pending connect.
- (fhandler_socket::accept): Don't run secret event and eid credential
- transactions if OS accept returned WSAEWOULDBLOCK.
-
-2005-03-16 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_tape.cc (get_ll): This is a generally useful function so
- move it
- * winsup.h (get_ll): to here.
- * security.cc (get_token_group_sidlist): Use get_ll to figure out the
- long long version of the luid since QuadPart is not part of the
- standard Windows API.
-
-2005-03-16 Christopher Faylor <cgf@timesys.com>
-
- * dir.cc: Rename opendir_* to dirent_* throughout.
- (opendir_states): Move and rename.
- * fhandler.h (dirent_states): to here.
- * fhandler_disk_file.cc (fhandler_disk_file::readdir): Use raw readdir
- when skipping through entries since it is keeping track of "." and
- "..".
- (fhandler_cygdrive::seekdir): Use fhandler_disk_file::readdir to do
- everything.
- * fhandler_virtual.cc (fhandler_virtual::opendir): Set flag indicating
- that we provide . and ..
- (fhandler_virtual::seekdir): Ditto.
- (fhandler_virtual::rewinddir): Ditto.
- * fhandler_registry.cc (fhandler_registry::rewinddir): Ditto.
-
-2005-03-16 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (free_local): New macro.
- (_cygtls::remove): Use free_local to free known-malloced local
- variables.
- * cygtls.h: Mark some variables as "malloced".
- * net.cc (enum struct_type): Rename from is_* to t_* for clarity.
- (dump_protoent): Delete.
- (dup_ent): New macro.
- (__dup_ent): Renamed from dup_ent. Change arguments for convenience.
- Replace first argument with newly alloced value. Allocate a rounded
- number of bytes in an attempt to try to reuse space. Subsume
- "dump_protent".
- (cygwin_getprotobyname): Simplify using new dup_ent functionality.
- (cygwin_getprotobynumber): Ditto.
- (cygwin_getservbyname): Ditto.
- (cygwin_getservbyport): Ditto.
- (cygwin_gethostname): Ditto.
- (cygwin_gethostbyname): Ditto.
- * tlsoffsets.h: Regenerate.
-
- * syslog.cc (openlog): Use NULL rather than 0, for consistency with the
- rest of cygwin.
- (pass_handler::initialize): Use unbuffered I/O in pass one.
-
-2005-03-15 Christopher Faylor <cgf@timesys.com>
-
- * errno.cc (errmap): Correct typo in previous change.
-
-2005-03-15 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Free process_ident, if it exists.
-
- * errno.cc (errmap): ERROR_DISK_CORRUPT -> EIO.
-
-2005-03-11 Christopher Faylor <cgf@timesys.com>
-
- * path.h (pathconv_arg): Define PC_NO_ACCESS_CHECK.
- (path_types): Define PATH_NO_ACCESS_CHECK == PC_NO_ACCESS_CHECK.
- * path.cc (symlink_info::check_sysfile): Move to symlink_info class and
- eliminate arguments that are part of class. Use set_error.
- (symlink_info::check_shortcut): Ditto.
- (symlink_info::set_error): New function.
- (path_conv::check): Pass PC_NO_ACCESS_CHECK to symlink_info::check.
- (symlink_info::check): Preserve PC_NO_ACCESS_CHECK in pflags. Use
- set_error.
-
-2005-03-10 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (is_floppy): New function.
- (setmntent): Drop floppy drives on A: and B: from logical drive DWORD.
- * syscalls.cc (sync): Don't sync floppies on A: and B:.
-
-2005-03-10 Christopher Faylor <cgf@timesys.com>
-
- * autoload.cc (LoadDLLprime): Use nocopy segment or forked processes
- will not initialize properly.
-
-2005-03-10 Christopher Faylor <cgf@timesys.com>
-
- * autoload.cc (LoadDLLprime): Scrap use of .linkonce and just use an
- ifdef guard to load .foo_init into data segment.
-
- * dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG
- separator for consistency.
-
-2005-03-09 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.h (pinfo::pinfo): Clear more elements in the constructor.
-
-2005-03-09 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (dup_ent): Revert older stupid test for null. Don't copy name
- if it is NULL.
-
-2005-03-09 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::eid_pipe_name): Fix format
- string.
- (fhandler_socket::connect): Set sun_path before running eid credential
- transaction. Run transaction only if OS connect was successful.
- (fhandler_socket::accept): Run transaction only if OS accept was
- successful.
-
-2005-03-09 Corinna Vinschen <corinna@vinschen.de>
-
- * signal.cc (sigprocmask): Rename first parameter to "how".
- (handle_sigprocmask): Ditto. Check "how" for being a valid "how" value.
- Fix call order in case of wrong "how" value.
-
-2005-03-09 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (dup_ent): Revert previous stupid change.
-
-2005-03-09 Christopher Faylor <cgf@timesys.com>
-
- * net.cc (dup_ent): Avoid dereferencing a null pointer in a debug_printf.
-
-2005-03-09 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Treat ENOSHARE similarly to ENOENT when
- determining if there was a problem with a symlink.
-
-2005-03-08 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (fhandler_socket::listen): Don't limit the number
- of pipe instances.
-
-2005-03-08 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::exit): Right shift exit value by eight when not
- started in a cygwin environment.
-
-2005-03-07 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (mmap64): Handle MAP_AUTOGROW flag.
- (fhandler_disk_file::mmap): Ditto. Clean conditional for readability.
- * include/sys/mman.h: Add MAP_AUTOGROW flag.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-03-08 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (dll_crt0_0): Eliminate muto::init call.
- * sync.h (locker): New, currently unused class.
- (muto::init): Eliminate.
- * sync.cc (muto::init): Ditto.
- (muto::init): Eliminate critical section lock and instead use name as a
- guard to prevent against multiple attempts to initialize the same muto.
-
- * pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid
- matches windows pid or cygwin pid.
-
-2005-03-06 Pavel Tsekov <ptsekov@gmx.net>
-
- * path.cc (mount_info::read_cygdrive_info_from_registry): Use the user
- prefix if it exists.
-
-2005-03-06 Christopher Faylor <cgf@timesys.com>
-
- * sync.h (sync::init_lock): Declare new static member.
- (sync::init()): Declare new static function.
- * sync.cc (sync::init): Define.
- (sync::init): Lock attempt to initialize a muto to stop multiple
- threads from colliding.
- * dcrt0.cc (dll_crt0_0): Initialize muto environment.
-
-2005-03-06 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (special_name): Reorganize to always detect the use of
- special names first, before detecting special characters.
-
-2005-03-04 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_clipboard.cc: Use int for cygnativeformat rather than UINT
- as that is what is returned by GetPriorityClipboardFormat.
- (fhandler_dev_clipboard::read): Ditto for the format variable.
-
-2005-03-04 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base::open_9x): Satisfy query_open values.
-
-2005-03-04 Pierre Humblet <pierre.humblet@ieee.org>
-
- * fhandler_socket.cc (fhandler_socket::ioctl): Only cancel
- WSAAsyncSelect when async mode is on.
-
-2005-03-03 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (utmpxname): Export.
- * syscalls.cc (utmpxname): Create export alias to utmpname.
- * include/utmpx.h: Define ut_name and ut_xtime if not already defined.
- (utmpxname): Add prototype.
- * include/sys/utmp.h: Only define ut_name if not already defined.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-03-03 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::detach): Use a slightly higher priority when
- waiting for thread signalling.
-
-2005-03-02 Christopher Faylor <cgf@timesys.com>
-
- * autoload.cc (std_dll_init): Save and restore fpu control register
- around LoadAddress to prevent loaded dlls (like msvcrt.dll) from
- setting unwanted stuff.
-
-2005-03-02 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::remove): Don't attempt any removal activities if
- exitsock is zero.
-
-2005-03-02 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (_cygtls::init_thread): Move exitsock setting later. It
- should always be set.
- (_cygtls::remove): Detect zero exitsock. Not quite sure why this is needed.
-
-2005-03-02 Christopher Faylor <cgf@timesys.com>
-
- * autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
- (noload): Preserve sign when returning error code.
-
-2005-03-02 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they
- had previously been SIG_DFL.
-
-2005-03-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Replace
- GetSystemTime/SystemTimeToFileTime with GetSystemTimeAsFileTime.
- * times.cc (time_as_timestruc_t): Ditto.
- (time): Ditto.
-
-2005-03-01 Christopher Faylor <cgf@timesys.com>
-
- * include/cygwin/version.h: Bump DLL minor number to 14.
-
-2005-03-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_clipboard.cc (fhandler_dev_clipboard::write): Never set
- errno to 0.
- (fhandler_dev_clipboard::read): Ditto.
- * fhandler_windows.cc (fhandler_windows::read): Ditto.
- * scandir.cc (scandir): Ditto.
- * syscalls.cc (_fstat64_r): Ditto.
- (_fstat_r): Ditto.
- (_stat64_r): Ditto.
- (_stat_r): Ditto.
-
- * mmap.cc (mmap64): Fix /dev/zero mapping.
-
-2005-02-28 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_socket): Declare new method
- set_socketpair_eids.
- * fhandler_socket.cc (fhandler_socket::set_socketpair_eids): New method.
- (fhandler_socket::dup): Duplicate sec_pipe if necessary.
- (fhandler_socket::listen): Only create sec_pipe if named pipes are
- available. Initialized sec_peer_pid to 0 as on Linux.
- (fhandler_socket::connect): Only run eid credential transaction if
- named pipes are available. Fake otherwise. Initialized sec_peer_pid
- to 0 as on Linux.
- (fhandler_socket::accept): Ditto.
- (fhandler_socket::close): Move closing sec_pipe handle from here...
- (fhandler_socket::~fhandler_socket): ... to here.
- * net.cc (socketpair): Set eid credentials by calling
- fhandler_socket::set_socketpair_eids() on both socket ends.
- * wincap.h (wincaps::has_named_pipes): New element.
- * wincap.cc: Implement above element throughout.
-
-2005-02-26 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (_pinfo::set_ctty): Move function
- * pinfo.cc (_pinfo::set_ctty): to here.
-
- * fhandler_mem.cc (fhandler_dev_mem::fstat): Don't fill out structure
- if this is an on-disk device rather than an "auto" device.
- * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
-
- * path.cc (normalize_posix_path): Don't treat a standalone '//' as
- introducing a UNC path.
- (normalize_win32_path): Ditto.
-
-2005-02-26 Christopher Faylor <cgf@timesys.com>
-
- * debug.cc (delete_handle): Report on handle value in debugging output.
-
- * pinfo.h (_pinfo::exists): Declare "new" function.
- (_pinfo::kill): Ditto.
- * fhandler_termios.cc (tty_min::kill_pgrp): Use _pinfo::exists rather
- than proc_exists.
- * pinfo.cc (pinfo::init): Ditto. Don't do a low_priority_sleep(0) when
- looping to find exec'ed procinfo.
- (pinfo::release): Be more careful about unmapping and closing.
- * signal.cc (_pinfo::kill): Rename from kill_worker. Accommodate entry
- into _pinfo class.
- (kill0): Use _pinfo::kill rather than kill_worker.
- (kill_pgrp): Ditto. Use _pinfo::exists rather than proc_exists.
- * sigproc.cc (_pinfo::exists): Rename from proc_exists.
- (pid_exists): Use _pinfo::exists rather than proc_exists.
- (remove_proc): Ditto.
- * sigproc.h (proc_exists): Delete declaration.
-
-2005-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_base): Declare fixup_mmap_after_fork
- with additional flags parameter. Change offset parameter to _off64_t.
- (class fhandler_disk_file): Ditto.
- (class fhandler_dev_mem): Ditto.
- * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork):
- Accommodate new parameters.
- * mmap.cc: Include ntdll.h.
- (class mmap_record): Add flags member.
- (mmap_record::mmap_record): Add flags parameter.
- (mmap_record::get_flags): New method.
- (class map): Add next_anon_addr member to store next anonymous mapping
- address suggestion.
- (map::get_next_anon_addr): New method.
- (map::set_next_anon_addr): New method.
- (mmap64): Don't align offset and length to granularity in case of
- MAP_ANONYMOUS on NT. Check for already existing mapping only on 9x.
- Call mmap_record::mmap_record with additional flags argument.
- (fhandler_base::fixup_mmap_after_fork): Accommodate new parameters.
- (fhandler_disk_file::mmap): Use NtMapViewOfSection with
- AT_ROUND_TO_PAGE flag for anonymous mappings on NT. If addr is NULL,
- try to map adjacent to previous mapping.
- (fhandler_disk_file::fixup_mmap_after_fork): Add flags argument.
- Change offset parameter to _off64_t. Use NtMapViewOfSection to
- re-create anonymous mappings on NT.
- (fixup_mmaps_after_fork): Accommodate new parameters when calling
- fhandler's fixup_mmaps_after_fork function.
- * ntdll.h (AT_ROUND_TO_PAGE): New define.
-
-2005-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (mmap64): Handle anonymous MAP_FIXED request on
- non-granulation boundary.
-
-2005-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc (class mmap_record): Declare new map_pages method with
- address parameter.
- (mmap_record::map_pages): New method with address parameter.
- (mmap64): Evaluate access mode before checking if already existing
- mapping can be used.
- Only use existing mapping if requested access mode matches the one
- in the existing mapping.
- Add check for existing mapping for anonymous MAP_FIXED case.
-
-2005-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * localtime.cc: Implement setting __tzrule's offset member using
- newlib's __gettzinfo () interface.
- (__tzrule): Remove.
- (timezone): Define as long according to POSIX.
-
-2005-02-23 Eric Blake <ebb9@byu.net>
-
- * devices.in (parsedisk): Fix typo.
- * devices.cc: Regenerate.
-
-2005-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (getpeereid): Export.
- * fhandler.h (class fhandler_socket): Add pipe and id members to
- exchange eid credentials for AF_LOCAL sockets.
- (eid_pipe_name): Declare new method.
- (getpeereid): Ditto.
- * fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method.
- (fhandler_socket::fhandler_socket): Initialize sec_pipe.
- (fhandler_socket::connect): Exchange eid credentials with accepting
- socket process.
- (fhandler_socket::listen): Prepare eid credential transaction.
- (fhandler_socket::accept): Exchange eid credentials with connecting
- socket process.
- (fhandler_socket::close): Close eid credentials pipe if open.
- (fhandler_socket::getpeereid): New method.
- * net.cc (cygwin_getsockopt): Add SO_PEERCRED handling.
- (getpeereid): New function.
- * include/asm/socket.h (SO_PEERCRED): Define.
- * include/cygwin/socket.h (struct ucred): Define new type.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * include/sys/statvfs.h (ST_RDONLY): Define.
- (ST_NOSUID): Define.
-
-2005-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (fstatvfs): Export.
- (statvfs): Export.
- * syscalls.cc: Include sys/statvfs.h.
- (statvfs): New function. Move statfs functionality here.
- (fstatvfs): New function.
- (statfs): Just call statvfs and copy structure. Check validity of
- incoming struct statfs pointer.
- * include/cygwin/types.h (fsblkcnt_t): Define.
- (fsfilcnt_t): Define.
- * include/cygwin/version.h: Bump API minor version.
- * include/sys/statvfs.h: New file.
-
-2005-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * devices.h: Switch FH_ZERO and FH_PORT as on Linux. Add FH_FULL.
- * devices.in: Add /dev/full.
- * devices.cc: Regenerate.
- * dtable.cc (build_fh_pc): Add FH_FULL.
- * fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
- correctly.
- * fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
- and return -1 if device is FH_FULL.
-
-2005-02-22 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
- closing cygdrive_root.
-
-2005-02-22 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (basename): Export.
- (dirname): Export.
- * path.cc (basename): New function.
- (dirname): New function.
- * include/libgen.h: New file.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-02-22 Corinna Vinschen <corinna@vinschen.de>
-
- * select.cc (peek_pipe): Disable new pipe code until there's
- a working substitute.
-
-2005-02-22 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din (fdatasync): Export.
- * fhandler.cc (fhandler_base::fsync): Return with EINVAL if no
- handle is available.
- * syscalls.cc (fdatasync): Create export alias to fsync.
- * include/cygwin/version.h: Bump API minor version.
-
-2005-02-20 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_base::fstat_helper): Declare with additional
- dwVolumeSerialNumber argument. Drop default values for last three
- arguments.
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Pass
- dwVolumeSerialNumber from GetFileInformationByHandle to fstat_helper.
- (fhandler_base::fstat_by_name): Pass pc.volser () to fstat_helper.
- Accommodate dropping default values for last three arguments of
- fstat_helper.
- (fhandler_base::fstat_helper): Add dwVolumeSerialNumber argument.
- Use for st_dev member unless 0 in which case pc.volser () is used.
-
-2005-02-20 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (FindFirstVolumeA): Add.
- (FindNextVolumeA): Add.
- (FindVolumeClose): Add.
- (GetVolumePathNamesForVolumeNameA): Add.
- * fhandler.h (class fhandler_base): Declare new method fsync.
- * fhandler.cc (fhandler_base::fsync): New method.
- * syscalls.cc (fsync): Move functionality into fhandler method fsync.
- Just call this method from here.
- (sync_worker): New static function.
- (sync): Fill with life for NT systems.
- * wincap.h (wincaps::has_guid_volumes): New element.
- * wincap.cc: Implement above element throughout.
-
-2005-02-20 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (enum query_state): Add query_write_attributes state.
- (fhandler_base::status.query_open): Add a bit to make room for more
- states.
- (class fhandler_base): Declare new method utimes.
- (class fhandler_socket): Ditto.
- (class fhandler_disk_file): Ditto.
- (fhandler_disk_file::fhandler_disk_file): Add constructor with
- path_conv parameter.
- * fhandler.cc (fhandler_base::open): Add query_write_attributes
- handling.
- (fhandler_base::utimes): New method.
- * fhandler_disk_file.cc (fhandler_disk_file::link): Simplify.
- Open file with query_write_attributes instead of query_write_control.
- (fhandler_disk_file::utimes): New method.
- (fhandler_disk_file::fhandler_disk_file): Add constructor with
- path_conv parameter setting pc member immediately.
- * fhandler_socket.cc (fhandler_socket::fchmod): Use new
- fhandler_disk_file constructor.
- (fhandler_socket::fchown): Ditto.
- (fhandler_socket::facl): Ditto.
- (fhandler_socket::link): Ditto.
- (fhandler_socket::utimes): New method.
- * times.cc: Include dtable.h.
- (timeval_to_filetime): Make non-static.
- (utimes): Move functionality into fhandler method utimes. Just call
- this method from here.
- * winsup.h: Simplify declarations of time helper functions.
- (timeval_to_filetime): Add extern declaration.
-
-2005-02-19 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_base): Declare new method link.
- (class fhandler_socket): Ditto.
- (class fhandler_disk_file): Ditto.
- * fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES
- to query_write_control access flags.
- (fhandler_base::link): New method.
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to
- open with O_WRONLY since query_write_control includes
- FILE_WRITE_ATTRIBUTES.
- (fhandler_disk_file::fchown): Ditto.
- (fhandler_disk_file::facl): Ditto.
- (fhandler_disk_file::link): New method. Touch st_ctime on successful
- link.
- * fhandler_socket.cc (fhandler_socket::link): New method.
- * syscalls.cc (link): Move functionality into fhandler method link.
- Just call this method from here.
-
-2005-02-19 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_socket): Declare new methods fchown,
- fchmod and facl.
- * fhandler_socket.cc (fhandler_socket::fstat): Handle AF_LOCAL
- sockets.
- (fhandler_socket::fchmod): New method.
- (fhandler_socket::fchown): New method.
- (fhandler_socket::facl): New method.
-
-2005-02-19 Corinna Vinschen <corinna@vinschen.de>
-
- * localtime.cc: Temporary implementation of setting __tzrule's offset
- member to be used by strftime.
- (__tzrule): New global variable.
- (tzparse): Set __tzrule's offset member appropriately.
-
-2005-02-17 Christopher Faylor <cgf@timesys.com>
-
- * path.cc (path_conv::check): Set fs flag when a unix-domain socket
- is detected.
-
-2005-02-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
- has_changed flag is set.
- (fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
-
-2005-02-17 Corinna Vinschen <corinna@vinschen.de>
-
- * times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
- if that fails, try opeing with GENERIC_WRITE. Fix comments.
-
-2005-02-15 Christopher Faylor <cgf@timesys.com>
-
- * path.h (path_conv::issocket): Return true if device == FH_UNIX rather
- than expecting path_conv to set a flag.
-
-2005-02-11 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base::raw_write): Mark as changed on
- successful write.
- * fhandler.h (fhandler_base::status_flags): Add 'has_changed' flag.
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call
- fhandler_disk_file's own open and close instead of open_fs and
- close_fs. Mark as changed on success.
- (fhandler_disk_file::fchown): Ditto.
- (fhandler_disk_file::facl): Ditto.
- (fhandler_disk_file::ftruncate): Ditto.
- (fhandler_base::open_fs): Mark as changed when O_TRUNC flag on existing
- file is set.
- (fhandler_disk_file::close): Set st_ctime if has_changed flag is set.
-
-2005-02-11 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::release): Reset ev here if it exists.
- (cygthread::terminate_thread): Eliminate racy code which reset ev and
- thread_sync. Remove a few nonsensical inuse checks. Exit at the
- bottom.
- (cygthread::detach): Rewrite to again try to ensure that we don't say
- we're signalled when we are not signalled.
- * fhandler.cc (fhandler_base::raw_read): Revert to signalling read
- success quickly.
- * pipe.cc (fhandler_pipe::close): Use base method to close handle.
- * sigproc.h (WAIT_SIG_PRIORITY): Just trundle along at normal priority
- to allow the pipe thread to do its thing if possible.
-
- * pinfo.h (pinfo::zap_cwd): Declare new function.
- (pinfo::zap_cwd): Move 'cd out of the way code' here.
- (pinfo::exit): Use it here.
- * spawn.cc (spawn_guts): And here.
-
-2005-02-11 Corinna Vinschen <corinna@vinschen.de>
-
- * times.cc (utimes): Open files with GENERIC_WRITE on file systems
- not supporting ACLs.
-
-2005-02-09 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Fix checking
- lseek return code.
-
-2005-02-08 Corinna Vinschen <corinna@vinschen.de>
-
- * times.cc (timeval_to_filetime): Define first parameter const.
- (utimes): Define second parameter to const according to SUSv3.
- (utime): Ditto.
- * include/sys/utime.h (utime) : Change declaration accordingly.
-
-2005-02-08 Corinna Vinschen <corinna@vinschen.de>
-
- * cygthread.cc (cygthread::detach): Just test thread handle after
- signal arrived, don't wait infinitely for it.
-
-2005-02-08 Christopher Faylor <cgf@timesys.com>
-
- * pipe.cc (fhandler_pipe::read): Remove hold over from old read_state
- implementation.
-
-2005-02-06 Yitzchak Scott-Thoennes <sthoenna@efn.org>
-
- * net.cc (cygwin_gethostbyname): Be more picky about what's a numeric
- address string, and use tls in that case too.
-
-2005-02-07 Christopher Faylor <cgf@timesys.com>
-
- * exceptions.cc: Make windows_system_directory non-static.
- * pinfo.cc (pinfo::exit): Change innocuous cd'ed location to one that
- is more likely to exist.
-
-2005-02-06 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::check): Leave symlink expansion loop in case
- a not-ENOENT error happens.
-
- * cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
- * pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
- (_pinfo::commune_send): Ditto.
- (_pinfo::pipe_fhandler): New method.
- * pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
- (_pinfo::pipe_fhandler): Declare.
- * pipe.cc (fhandler_pipe::open): Rewrite. Allow to open foreign
- pipe handles.
-
-2005-02-03 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.h (cygthread::terminate_thread): Reflect return value.
- * cygthread.cc (cygthread::detach): Be more careful about ensuring that
- sigwait is properly waited for to avoid later missynchronization.
- (cygthread::terminate_thread): Return true if thread was actually
- terminated and all handles were closed.
- * fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state
- rather than raw calls to win32 api.
- (fhandler_base::read): Ditto.
- * fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create
- read_state signalling.
- (fhandler_pipe::create): Ditto.
-
- * Makefile.in: Make some more files -fomit-frame-pointer.
-
-2005-02-02 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_base::ftruncate): Define new virtual method.
- (fhandler_disk_file::ftruncate): Ditto.
- * fhandler.cc (fhandler_base::ftruncate): New method.
- * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
- * syscalls.cc (ftruncate64): Move functionality into fhandlers.
- Call fhandler method from here.
-
-2005-02-02 Corinna Vinschen <corinna@vinschen.de>
-
- * pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.
-
-2005-02-02 Corinna Vinschen <corinna@vinschen.de>
-
- * times.cc (utimes): Mark st_ctime for update according to SUSv3.
-
-2005-02-01 Christopher Faylor <cgf@timesys.com>
-
- * fhandler_proc.cc (format_proc_partitions): Remove PartitionType check
- since it could skip over partitions that are actually interesting.
-
-2005-02-01 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::terminate_thread): Wait briefly for
- notification event in the event that the thread was actually in the
- process of exiting.
-
- * pipe.cc (fhandler_pipe::dup): read_state is not supposed to be
- inheritable. Fix that.
-
- * path.cc (path_conv::check): Set symlen = 0 to avoid a compiler
- warning.
-
- * devices.h (devices::parsedisk): Declare new function.
- * devices.in (devices::parsedisk): Define new function.
- * dtable.cc (dtable::init_std_file_from_handle): Use device numbers
- rather than name.
- * fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate
- disk names from numeric codes. (This was broken on two of my
- systems previously and is still broken now)
-
-2005-02-01 Corinna Vinschen <corinna@vinschen.de>
-
- * pipe.cc (fhandler_pipe::open): Allow re-opening of /proc/<pid>/fd
- pipes of the current process.
-
-2005-02-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base::get_proc_fd_name): Don't generate
- "device:" entry.
- * fhandler.h (fhandler_socket::open): New method.
- (fhandler_pipe::open): New method.
- * fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of
- /proc/self.
- * fhandler_process.cc (fhandler_process::exists): Return -2 in
- case of symlinks, -3 for pipes and -4 for sockets.
- (fhandler_process::fstat): Handle pipes and sockets.
- (fhandler_process::open): Handle opening /proc/<pid>/fd.
- (fhandler_process::fill_filebuf): Generate empty names for
- non exisiting file descriptors.
- * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always
- generate "socket:[number]" strings as on Linux.
- (fhandler_socket::open): New method.
- (fhandler_socket::fstat): Always return socket type.
- * path.cc (symlink_info::set): Remove unused second parameter.
- (path_conv::check): Handle pipes and sockets in /proc.
- Set correct device type for AF_LOCAL sockets.
- * pinfo.cc (_pinfo::commune_recv): Generate empty names for
- non exisiting file descriptors.
- (_pinfo::fd): Ditto.
- * pipe.cc (fhandler_pipe::open): New method.
-
-2005-01-31 Christopher Faylor <cgf@timesys.com>
-
- * path.h (path_conv::set_name): Declare new function.
- * path.cc (path_conv::set_name): Define new function.
- * fhandler.h (fhandler_dev_null::open): Declare new function.
- * fhandler.cc (fhandler_dev_null::open): Define new function.
-
-2005-01-31 Christopher Faylor <cgf@timesys.com>
-
- * smallprint.c (rnarg): Use long rather than unsigned long so that we
- get proper sign extension.
-
-2005-01-31 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (set_traverse): New function.
- (parse_thing): Add "traverse" option. Sort options alphabetically.
- (environ_init): On NT, switch on traverse checking by default.
-
-2005-01-31 Christopher Faylor <cgf@timesys.com>
-
- * smallprint.c (__rn): Regparmize.
-
-2005-01-31 Christopher Faylor <cgf@timesys.com>
-
- * smallprint.c (rnarg): New macro.
- (rnargLL): Ditto.
- (__rn): Rename from 'rn', add a mask argument, and use the mask
- argument to control how many significant digits to care about.
- (__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
-
-2005-01-31 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.
-
-2005-01-31 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc (format_process_maps): Get destbuf argument by
- reference. Allow resizing of destbuf as necessary. Fix string
- handling.
-
-2005-01-31 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.h (class cygheap_fdenum): New class to enumerate used
- fhandlers.
- * dtable.h (class dtable): Add cygheap_fdenum as friend class.
- * fhandler.h (fhandler_base::get_proc_fd_name): New virtual method
- to return a name for /proc/<pid>/fd.
- (fhandler_socket::get_proc_fd_name): Ditto.
- (fhandler_pipe::get_proc_fd_name): Ditto.
- (fhandler_virtual::opendir): Make virtual method.
- (fhandler_process::opendir): New method.
- * fhandler.cc (fhandler_base::get_proc_fd_name): New method.
- * fhandler_process.cc: Include ctype.h.
- (PROCESS_FD): Define.
- (process_listing): Add "fd".
- (fhandler_process::exists): Fix comment. Return 1 in case of "fd"
- directory. Handle files below "fd".
- (fhandler_process::fstat): Drop "self" handling. Set correct link
- count for directories.
- (fhandler_process::opendir): New method to handle "fd" directory.
- (fhandler_process::readdir): Add "fd" handling.
- (fhandler_process::open): Drop "self" handling.
- (fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix
- "maps" output string.
- * fhandler_registry.cc (fhandler_registry::fstat): Set correct link
- count for directories.
- * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method.
- * path.cc (symlink_info::set): Fix thinko.
- * pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout.
- Drop local path variable in PICOM_FIFO case. Fix debug output.
- Close handles as early as possible. Add PICOM_FDS and PICOM_FD
- handling.
- (_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling.
- (_pinfo::fd): New method.
- (_pinfo::fds): New method.
- * pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD.
- (_pinfo::fd): Declare.
- (_pinfo::fds): Declare.
- * pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
-
-2005-01-29 Corinna Vinschen <corinna@vinschen.de>
-
- * smallprint.c (rn): Change uval to unsigned long long to fix 64 bit
- handling.
- * fhandler_process.cc (format_process_maps): Print major, minor and
- inode numbers correctly.
-
-2005-01-29 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (GetModuleFileNameExA): Add.
- (GetModuleInformation): Add.
- (QueryWorkingSet): Add.
- * fhandler.h (fhandler_virtual::get_filebuf): New method.
- * fhandler_proc.cc (PROC_SELF): Define.
- (proc_fhandlers): Change type of self to FH_PROC.
- (fhandler_proc::exists): Return -3 if self.
- (fhandler_proc::fstat): Handle self as symlink.
- (fhandler_proc::fill_filebuf): Handle self.
- * fhandler_process.cc: Include psapi.h.
- (PROCESS_EXENAME): Remove.
- (PROCESS_MAPS): Define.
- (PROCESS_ROOT): Define.
- (PROCESS_EXE): Define.
- (PROCESS_CWD): Define.
- (process_listing): Remove "exename", add "maps, "root", "exe" and
- "cwd" elements.
- (fhandler_process::exists): Return -2 for symlinks.
- (fhandler_process::fstat): Handle symlinks.
- (fill_filebuf): Evaluate pid if pid is 0. Use exename handling for
- exe. Handle maps, root and cwd.
- (format_process_maps): New function evaluating "maps".
- * path.cc (symlink_info::set): New method to fill symlink_info
- with data matching virtual symlinks.
- (path_conv::check): Handle virtual symlinks.
- * pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT
- handling.
- (_pinfo::commune_send): Ditto.
- (_pinfo::root): New function.
- (_pinfo::cwd): New function.
- * pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT.
- (_pinfo::root): Declare.
- (_pinfo::cwd): Declare.
-
-2005-01-29 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (new): Add a little more debugging.
- * thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
-
-2005-01-28 Christopher Faylor <cgf@timesys.com>
-
- * cygtls.cc (cygtls::call2): Move socket cleanup.
- (cygtls::remove): Move socket cleanup here. Don't use _my_tls to
- reference it.
-
-2005-01-26 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Avoid a compiler warning.
-
-2005-01-25 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER and
- setting priority in other Cygwin processes.
- (getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value
- from other processes.
-
-2005-01-26 Pierre Humblet <pierre.humblet@ieee.org>
-
- * path.cc (path_conv::check): Return ENOTDIR rather than ENOENT
- when a component is not a directory. Remove unreachable code.
- (digits): Delete.
-
-2005-01-25 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.h (pinfo::init): Make third parameter non-optional and
- propagate change throughout.
- * pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL.
- (pinfo::init): Make third parameter non-optional. Eliminate use of
- PID_EXECED as an argument. Put setting of handle back inside loop but
- reorganize to try to open it only when necessary.
-
-2005-01-25 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.din: Export getpriority and setpriority.
- * fork.cc (fork_parent): Copy parent's nice value into child.
- * spawn.cc (spawn_guts): Ditto.
- * miscfuncs.cc (winprio_to_nice): New function.
- (nice_to_winprio): Ditto.
- * pinfo.cc (pinfo_init): If parent is not a Cygwin process, set
- default nice value according to current Win32 priority class.
- * pinfo.h (class _pinfo): Add nice member.
- * syscalls.cc (setpriority): New function, only implementing
- PRIO_PROCESS for now.
- (getpriority): Ditto.
- (nice): Just call setpriority.
- * wincap.h (wincaps::has_extended_priority_class): New element.
- * wincap.cc: Implement above element throughout.
- * winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio.
- * include/limits.h (NZERO): New define.
- * include/cygwin/types.h (id_t): New datatype.
- * include/cygwin/version.h: Bump API minor version.
- * include/sys/resource.h: Add PRIO_XXX defines and prototypes for
- getpriority and setpriority.
-
-2005-01-25 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (realpath): Allow to expand with .exe suffix.
-
-2005-01-22 Christopher Faylor <cgf@timesys.com>
-
- * spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to
- make sure that a stub process does not keep the current working
- directory busy after the "execed" process has exited.
-
-2005-01-22 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out
- of the loop since trying multiple times to call CreateFileMapping
- doesn't make much sense. Try to structure the loop a little better so
- that exiting with a break does the right thing.
- (pinfo::release): Release shared memory area if it exists and close
- handle if it exists.
-
-2005-01-22 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that
- process has exited before getting an error code.
- (pinfo::exit): "cd" to innocuous location before exiting to make sure
- that process does not keep the current working directory busy while it
- is in the process of really exiting.
-
-2005-01-18 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (CoInitialize): Remove.
- (CoUninitialize): Remove.
- (CoCreateInstance): Remove.
- (CoTaskMemFree): Add.
- (SHGetDesktopFolder): Add.
- * path.cc (shortcut_header): Remove.
- (shortcut_initalized): Remove.
- (GUID_shortcut): New static GUID.
- (struct win_shortcut_hdr): New struct describing Windows shortcut
- header structure.
- (symlink_worker): Rewrite creating Windows shortcuts. Create
- ITEMIDLIST if target exists. Only write once.
- (cmp_shortcut_header): Use win_shortcut_hdr structure for comparison.
- (check_shortcut): Rewrite to read only once from file. Allow skipping
- an ITIMIDLIST in the file.
-
-2005-01-16 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.h (maybe_set_exit_code_from_windows): Renamed from
- set_exit_state.
- * pinfo.cc (pinfo::exit): Use renamed function.
- (proc_waiter): Ditto. Make a copy of input argument to avoid problems
- when procs array is shuffled. Flag when copy is made so that
- remove_proc knows when it is safe to reshuffle.
- * sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED.
- (remove_proc): Wait for waiter to finish copying pinfo element before
- moving it (an actual wait should be an extremely rare event).
-
-2005-01-15 Christopher Faylor <cgf@timesys.com>
-
- * init.cc (dll_entry): Remove unused extern.
-
- * include/sys/cygwin.h: Remove PID_ZOMBIE.
- * pinfo.h: Rename EXITCODE_* defines.
- (pinfo::set_exit_state): Remove parameter.
- * pinfo.cc (set_exit_state): Remove parameter. Reverse sense of test
- so that exitcode is checked for having been set rather than not having
- been set. Set flag when exitcode has been established. Don't set
- PID_STATE here.
- (pinfo::init): Remove exitcode initialization.
- (pinfo::exit): Reflect change in EXITCODE_* naming. Set flag when
- exitcode has been established. Reflect change in arguments to
- set_process_state.
- (proc_waiter): Reflect change in arguments to set_process_state. Set
- process_state here and only here.
- * fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal
- of PID_ZOMBIE define.
- (format_process_stat): Ditto.
- (format_process_status): Ditto.
- * sigproc.cc (pid_exists): Ditto.
- (stopped_or_terminated): Ditto. Make sure that only low-order 16 bits of
- exitcode are used.
- * spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
-
-2005-01-15 Christopher Faylor <cgf@timesys.com>
-
- * sigproc.cc (sig_send): Don't complain if attempt to send signal to
- myself fails after I've "execed".
-
-2005-01-14 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful
- SETACL if no acls are available.
- * fhandler.cc (fhandler_base::facl): Implement to return sensible
- values on GETACL and GETACLCNT. Pretend successful SETACL.
- * fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
-
-2005-01-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_disk_file::touch_ctime): Declare.
- * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method
- to set file's ctime.
- (fhandler_disk_file::fchmod): Try opening file for writing first.
- Set file's ctime on success.
- (fhandler_disk_file::fchown): Ditto.
- (fhandler_disk_file::facl): Ditto.
-
-2005-01-13 Corinna Vinschen <corinna@vinschen.de>
-
- * pinfo.cc (pinfo::exit): Don't access self after releasing it.
- * path.h (path_conv::path_conv): Fill path with native device
- name in case of device argument.
-
-2005-01-13 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
- for child, not for parent.
-
-2005-01-13 Christopher Faylor <cgf@timesys.com>
-
- * init.cc (dll_entry): Nuke attempt to set exit code since parent will
- use windows exit code if needed.
- * pinfo.cc (pinfo::exit): Move release() here to minimize pid creation
- race (suggested by Pierre Humblet).
-
-2005-01-12 Christopher Faylor <cgf@timesys.com>
-
- Reorganize header file inclusion throughout so that cygerrno.h comes
- first.
- * fhandler.h (select_record::thread_errno): Save any encountered errno
- here.
- (select_record::set_select_errno): New function.
- (select_record::saw_error): New function.
- (select_record::select_record): Initialize thread_errno to zero.
- * select.cc (set_handle_or_return_if_not_open): Set thread_errno on
- failure.
- (select_stuff::wait): Record errno for later resurrection in calling
- thread.
- (peek_serial): Ditto.
-
-2005-01-12 Christopher Faylor <cgf@timesys.com>
-
- * syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
-
-2005-01-12 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::exit): Don't assume that this == myself.
-
-2005-01-11 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (pinfo::init): Don't close input handle on temporary (?)
- failure.
-
-2005-01-11 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.h (_pinfo::set_exit_state): Declare new function.
- (pinfo::exit): Move here from _pinfo::exit.
- * sigproc.cc (child_info::sync): Use new function to set exitcode and
- process_state.
- * pinfo.cc (_pinfo::exit): Ditto.
- (proc_waiter): Ditto.
- (_pinfo::set_exit_state): Define new function.
- (_pinfo::dup_proc_pipe): Close handle when there is no parent process
- around to care about the exit value.
- * dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to
- make sure that myself is still mapped in parent.
- (do_exit): Reflect movement to pinfo::exit.
- (__api_fatal): Ditto.
- * exceptions.cc (signal_exit): Ditto.
- * errno.cc (errmap): Map PROC_NOT_FOUND.
- * init.cc (dll_entry): Release myself before exiting.
- * sigproc.cc (proc_can_be_signalled): Set errno appropriately.
- (sig_send): Ditto. Also remove ill-advised test for !myself->sendsig
- since this is an indication of a process which is still initializating
- -- it is not an error.
- (child_info::sync): Don't set exitcode here. Assume that will happen
- in proc_waiter, if necessary.
- * spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later.
- Don't wait at all if the process has already exited. Reflect movement
- to pinfo::exit.
-
-2005-01-11 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (build_env): Disallow empty strings and strings starting
- with '=' in Win32 environment.
-
-2005-01-08 Pierre Humblet <pierre.humblet@ieee.org>
-
- * syscalls.cc (seteuid32): Only change the default dacl when
- seteuid succeeds. Do not close HKCU.
-
-2005-01-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc: Use strcasematch instead of strcasecmp
- throughout.
-
-2005-01-06 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (rename): Fix behaviour in case of renaming directories
- according to SUSv3.
-
-2005-01-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow
- opening directories for writing.
-
-2005-01-06 Christopher Faylor <cgf@timesys.com>
-
- * timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather
- than pointer to sigev.
-
-2005-01-05 Christopher Faylor <cgf@timesys.com>
-
- * dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not
- always talk about a "version" when it's not a version.
- (dll_crt0_0): Change info passed to multiple_cygwin_problem to be a
- little more precise.
- * shared.cc (user_shared_initialize): Ditto.
- (shared_info::initialize): Ditto.
-
-2005-01-03 Christopher Faylor <cgf@timesys.com>
-
- * pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing
- or we will suffer an exit code race.
-
-2005-01-03 Corinna Vinschen <corinna@vinschen.de>
-
- * signal.cc (abort): Call _GLOBAL_REENT's __cleanup.
-
-2005-01-03 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT.
-
-2005-01-01 Christopher Faylor <cgf@timesys.com>
-
- * cygthread.cc (cygthread::stub): Set inuse to false when exiting.
- (cygthread::cygthread): Actually pass name as argument to debugging
- output to avoid SEGV when strace'ing.
- (cygthread::release): Don't set stack_ptr to NULL, since it is only set
- once on first entry to a stub not on each stub iteration.
- (cygthead::exit_thread): Remove obsolete function.
- * cygthread.h (cygthread::exit_thread): Ditto.
-
-2005-01-01 Christopher Faylor <cgf@timesys.com>
-
- * shared.cc (open_shared): Don't attempt VirtualAlloc magic if first
- attempt to map memory fails.
diff --git a/winsup/cygwin/ChangeLog-2005 b/winsup/cygwin/ChangeLog-2005
new file mode 100644
index 0000000..bde9580
--- /dev/null
+++ b/winsup/cygwin/ChangeLog-2005
@@ -0,0 +1,5812 @@
+2005-12-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * syslog.cc (vsyslog): Decrement len if trailing \n has been removed.
+ Add \n when writing to stderr if LOG_PERROR option is set.
+
+2005-12-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/in.h: Drop including stdint.h. Move definition
+ of in_port_t and in_addr_t to top of file and use throughout. Use
+ sa_family_t type where appropriate.
+ (struct in6_addr): Change `unsigned char' to `uint8_t'.
+ (struct sockaddr_in6): Add sin6_scope_id member. Add comments.
+ * include/cygwin/socket.h: Include stdint.h. Move definition of
+ socklen_t to top of file. Define sa_family_t. Define struct
+ sockaddr_storage as per SUSv3.
+ * include/sys/un.h: Include cygwin/socket.h. Use sa_family_t type.
+
+2005-12-29 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Use
+ strace method rather than accessing field directly.
+ (fhandler_tty_common::__release_output_mutex): Ditto.
+
+2005-12-29 Christopher Faylor <cgf@timesys.com>
+
+ * child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
+ (child_info::dwProcessId): Delete.
+ (child_info::straced): New variable.
+ (child_info::handle_fork): New member function.
+ * dcrt0.cc (in_forkee): New global variable.
+ (__cygwin_user_data::forkee): Mark as obsolete.
+ (do_global_ctors): Use in_forkee rather than user_data->forkee.
+ (get_cygwin_startup_info): Ditto. Deal with new straced field to allow
+ strace to deal with children of attached processes.
+ (initial_env): Accommodate changes to strace::hello.
+ (child_info_fork::handle_fork): Rename from plain old 'handle_fork'.
+ Move alloc_stack() call elsewhere.
+ (dll_crt0_0): Fill out more of user_data. Reference handle_fork via
+ fork_info. Add some debugging output.
+ (_dll_crt0): Don't wait for sync thread if sync_startup is invalid.
+ Zero sync_startup here. Call alloc_stack() here, if appropriate.
+ (dll_crt0_1): Use in_forkee rather than user_data->forkee.
+ (dll_crt0): Ditto.
+ * malloc_wrapper.cc (malloc_init): Ditto.
+ * dll_init.cc (in_forkee): Remove local static version of this
+ variable.
+ (dll_list::load_after_fork): Don't set in_forkee here.
+ * external.cc (cygwin_internal): Use strace method rather than
+ accessing field directly.
+ * fhandler.cc (fhandler_base::read): Ditto.
+ * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Ditto.
+ * fork.cc (frok::parent): Invoke strace write_childpid to communicate
+ with potential strace.
+ (child_copy): Add more detail to debugging output.
+ * init.cc (calibration_id): New static variable.
+ (prime_threads): Set sync_startup to invalid handle if we already know
+ about thread_func_ix. Use static calibration_id to hold calibration
+ thread id.
+ * munge_threadfunc (munge_threadfunc): Don't try to debug if we don't
+ find threadfunc_ix.
+ (dll_entry): Avoid calling munge_threadfunc and _cygtls::remove on
+ non-cygwin threads invoked during process startup.
+ * pinfo.cc (set_myself): Always call strace.hello here regardless of
+ DEBUGGING.
+ * sigproc.cc (child_info::child_info): Remove spurious handling of
+ dwProcessId. Set straced as appropriate.
+ * spawn.cc (spawn_guts): Rename ciresrv to ch. Invoke strace
+ write_childpid to communicate with potential strace.
+ * strace.cc: Include child_info.h.
+ (strace::hello): Remove inited test. Use active() method to test if
+ strace has been activated. Handle case where we are started before
+ (mypid): New function.
+ (strace::vsprntf): Try to deal more intelligently with case where
+ progname may not be filled out. Put pid in parentheses if it is a
+ windows pid rather than a cygwin pid. myself has been filled out.
+ (strace::write_childpid): New function for notifying strace about the
+ creation of children.
+ (strace::vprntf): Use strace method rather than accessing field
+ directly.
+ (strace_printf): Ditto.
+ (strace::wm): Ditto.
+ * winsup.h (in_forkee): Declare.
+ * include/sys/strace.h (strace::write_childpid): Declare new function.
+ (strace::attached): Define new function.
+ (strace::active): Ditto.
+ (strace::active_val): Ditto.
+ (_STRACE_ON): Delete.
+ (_STRACE_OFF): Ditto.
+ (define_strace0): Use strace method rather than accessing field
+ directly.
+ (strace_printf_wrap): Ditto.
+ (strace_printf_wrap1): Ditto.
+
+2005-12-28 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (win_env::add_cache): Don't add variables to the
+ environment during initialization.
+
+2005-12-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::handle_exceptions): Drop redundant `break'.
+
+2005-12-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (inside_kernel): Rename from interruptible.
+ Accommodate change throughout file.
+
+2005-12-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (interruptible): New function, code stripped from
+ _cygtls::interrupt_now.
+ (_cygtls::handle_exceptions): Handle STATUS_DATATYPE_MISALIGNMENT as
+ SIGBUS error. Differ between unmapped memory (SEGV_MAPERR) and access
+ violation (SEGV_ACCERR) in case of STATUS_ACCESS_VIOLATION. Write
+ kernel log message in case of uncatched STATUS_ACCESS_VIOLATION.
+ (_cygtls::interrupt_now): Just call interruptible now instead of
+ evaluating interruptibility here.
+
+2005-12-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Rework loop removing trailing dots
+ and spaces.
+
+ * syslog.cc (vklog): Set facility to LOG_KERN if not set.
+
+2005-12-26 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (__api_fatal): Simplify to just use strace mechamisms.
+ (do_exit): Move minimal_printf...
+ * pinfo.cc (pinfo::exit): ...into here.
+ * strace.cc (strace::vprntf): Guarantee output to the console when
+ system_printf/api_fatal.
+
+ * heap.cc (heap_init): Wait a second before issuing an error when
+ ERROR_INVALID_ADDRESS since this is probably due to a CTRL-C handler
+ sneaking in, using the memory that we want to use for the heap, and,
+ eventually exiting.
+
+2005-12-23 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::handle_threadlist_exception): Make an error
+ fatal.
+ * cygtls.h (sockaddr_in): Use header rather than defining our own
+ structure.
+ * exceptions.cc (_cygtls::interrupt_setup): Use exact contents of
+ sa_mask rather than assuming that current sig should be masked, too.
+ (_cygtls::call_signal_handler): Use more aggressive locking.
+ * gendef (_sigbe): Wait until later before releasing incyg.
+ (_sigreturn): Remove more arguments to accommodate quasi-sa_sigaction
+ support.
+ (_sigdelayed): Push arguments for sa_sigaction. More work needed here.
+ * signal.cc (sigaction): Implement SA_NODEFER.
+ * tlsoffsets.h: Regenerate.
+
+ * sigproc.cc (wait_sig): Use default buffer size or Windows 9x complains
+
+ * pinfo.cc (_onreturn::dummy_handle): Remove.
+ (_onreturn::h): Make this a pointer.
+ (_onreturn::~_onreturn): Detect whether pointer is NULL rather than
+ value is NULL.
+ (_onreturn::_onreturn): Set h to NULL initially.
+ (_onreturn::no_close_p_handle): Set h to NULL.
+ (winpids::add): Initialize onreturn with value from p.hProcess
+ immediately.
+
+2005-12-22 Christopher Faylor <cgf@timesys.com>
+
+ * fork.cc (fork): Honor error return from sig_send. Don't continue
+ with fork if we couldn't suspend signals.
+ * sigproc.cc (sig_send): Set sigCONT event when we see __SIGNOHOLD.
+ (wait_sig): Remove holding_signals. Create pipe with a buffer which
+ will theoretically cause blocking if there is nothing reading on the
+ pipe. Wait for sigCONT at end of loop when we have a __SIGHOLD.
+
+2005-12-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::issymlink): New method.
+ * syscalls.cc (open): Handle O_NOFOLLOW flag.
+ * include/fcntl.h (_FNOFOLLOW): New define.
+ (O_NOFOLLOW): Ditto.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-12-22 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (winpids::add): Increment nelem when winpid is true since we
+ don't care if it's a cygwin process in that case.
+
+2005-12-22 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (winpids::release): Fix typo.
+
+2005-12-21 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Clarify comment slightly.
+ (_onreturn): New helper class.
+ (winpids:add): Remove copied stuff. Try to put process handle into
+ pinfo in question and use _onreturn class to control when to close it.
+ (winpids::release): Remove use of copied array. Free procinfo when
+ hProcess is NULL. Otherwise call release and call CloseHandle on
+ hProcess.
+ * pinfo.h (winpids::copied): Remove throughout class.
+
+2005-12-21 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Remove spurious low_priority_sleep.
+
+2005-12-21 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (spawn_guts): Hide the window whenever ctty == -1, not just
+ when we have no console.
+
+2005-12-21 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.cc (init_cygheap::manage_console_count): Revert previous
+ change. Handle this a different way.
+ * external.cc (cygwin_internal): Accommodate extra
+ hook_or_detect_cygwin argument.
+ * hookapi.cc (cygwin_internal): Fill in subsys variable with the
+ subsystem of the executable.
+ * spawn.cc (av::iscui): New variable.
+ (spawn_guts): Hide window when we don't have a console and this isn't
+ NT/XP/2003.
+ (av::fixup): Set iscui flag.
+ * winsup.h (hook_or_detect_cygwin): Accommodate extra argument.
+
+2005-12-21 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.cc (init_cygheap::manage_console_count): Don't call
+ FreeConsole on 9x/Me.
+
+2005-12-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * (fhandler_disk_file::fchown): Remove execute bits from "sensible"
+ permissions. Use same setting as in symlink.
+
+2005-12-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix inode number
+ debug output.
+ (fhandler_disk_file::fchown): Always set sensible permission values
+ when creating the ACL for symlinks.
+
+2005-12-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * winsup.h (flush_file_buffers): Define as inline function.
+ * miscfuncs.cc (flush_file_buffers): Remove.
+
+2005-12-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * winsup.h (flush_file_buffers): Declare new function.
+ (FLushFileBuffers): New define.
+ * miscfuncs.cc (flush_file_buffers): Define new function.
+
+2005-12-20 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_termios::fixup_after_exec): Make non-inlined.
+ * fhandler_termios.cc (fhandler_termios::fixup_after_exec): Don't call
+ fixup_after_fork if close_on_exec'ed.
+
+2005-12-19 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_cygtls::interrupt_now): Subsume interruptible().
+ (interruptible): Delete.
+ (setup_handler): Remove interruptible call and just use return from
+ interrupt_now.
+
+2005-12-19 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (set_console_state_for_spawn): Add an argument to the
+ declaration.
+ * fhandler_console.cc (set_console_state_for_spawn): Ditto for the
+ definition. Only set invisible console for non-cygwin process. Remove
+ debugging leftover.
+ * spawn.cc (spawn_guts): Pass argument denoting whether this is a
+ cygwin process to set_console_state_for_spawn and only call this
+ function when exec'ing.
+
+2005-12-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (fhandler_dev_zero::mmap): Call VirtualFree(MEM_RELEASE)
+ with zero length parameter, otherwise it fails.
+ (fhandler_dev_zero::munmap): Ditto.
+
+2005-12-18 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_console::invisible_console): Declare new
+ variable.
+ (fhandler_pipe::fixup_in_child): Declare new function.
+ (fhandler_console::need_invisible): Ditto.
+ (fhandler_console::has_a): Ditto.
+ * fhandler_console.cc (set_console_state_for_spawn): Eliminate return
+ value. Set up an invisible console if necessary prior to spawning.
+ (fhandler_console::invisible_console): Define.
+ * fhandler_tty.cc (fhandler_tty_slave::open): Use
+ fhandler_console::invisible_console to setup an invisible console.
+ * pipe.cc (fhandler_pipe::fixup_in_child): Define new function from
+ fixup_after_exec.
+ (fhandler_pipe::fixup_after_exec): Use fixup_in_child when appropriate.
+ (fhandler_pipe::fixup_after_fork): Ditto.
+ * spawn.cc (handle): Reorganize and modernize a little.
+ (spawn_guts): Rely on set_console_state_for_spawn to set the console
+ into the right state but don't create the process with "detached" flag
+ if we have no controlling tty since that confuses 'cmd'.
+ * dtable.cc (dtable::stdio_init): Don't set console as controlling
+ terminal if we have an invisible console.
+
+ * sigproc.cc (child_info::sync): Use correct name in ForceCloseHandle1.
+
+2005-12-18 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/dirent.h: Change __deprecated_d_ino to __invalid_d_ino
+ throughout to make things a little clearer.
+ * dir.cc (readdir_worker): Reflect above change.
+
+2005-12-16 Christopher Faylor <cgf@timesys.com>
+
+ * winsup.h (child_copy): Change prototype to match new functionality.
+ * cygheap.cc (cygheap_fixup_in_child): Accommodate new child_copy
+ arguments.
+ * dcrt0.cc (dll_data_start): Move definition here from fork.
+ (dll_data_end): Ditto.
+ (dll_bss_start): Ditto.
+ (dll_bss_end): Ditto.
+ (handle_fork): New function. Called when forked to deal with fork
+ issues and copy data to this process from the parent.
+ (dll_crt0_0): Call handle_fork when _PROC_FORK condition.
+ (dll_crt0): Don't copy user_data when we've forked. Don't zero first
+ element of main_environment ever.
+ (cygwin_dll_init): Ditto.
+ * fork.cc (child_copy): Rename from fork_copy and change arguments so
+ that each pair of things to copy gets its own descriptor.
+ (frok::child): Remove fixup_mmaps_after_fork call here. Move to
+ handle_fork in dcrt0.cc.
+ (frok::parent): Use child_copy rather than fork_copy and accommodate
+ changes in parameters.
+
+ * exceptions.cc (setup_handler): Delay test of whether we're locked
+ until after GetThreadContext has been called since there are apparently
+ cases where SuspendThread does not cause an immediate thread
+ suspension.
+
+2005-12-16 Christopher Faylor <cgf@timesys.com>
+
+ * init.cc (dll_entry): Call prime_threads after dll_crt0_0 to avoid
+ conflicts between heap allocation and thread stack allocation.
+
+2005-12-16 Christopher Faylor <cgf@timesys.com>
+
+ * hookapi.cc (putmem): Remove query of previous memory protection since
+ we get that for free the first time we call VirtualProtect.
+
+2005-12-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (fhandler_dev_zero::fixup_mmap_after_fork): Use
+ system_printf like any other fixup_mmap_after_fork.
+
+2005-12-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (ACCFLAGS): Remove macro.
+ (fhandler_base::get_default_fmode): Use O_ACCMODE instead of ACCFLAGS
+ and or'ed read/write flags.
+ (fhandler_base::open_9x): Use O_ACCMODE instead of or'ed read/write
+ flags.
+ (fhandler_base::open): Ditto.
+ * fhandler_disk_file.cc (fhandler_base::open_fs): Ditto.
+ * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
+ * fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
+
+2005-12-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::open_9x): Handle O_SYNC and O_DIRECT
+ flags.
+ (fhandler_base::open): Ditto.
+ * fhandler_floppy.cc (fhandler_dev_floppy::open): Don't allocate devbuf
+ in O_DIRECT case.
+ * fhandler_raw.cc (fhandler_dev_raw::ioctl): Don't allow buffer
+ changes in O_DIRECT case. Allow returning a buffer size 0, which
+ indicates O_DIRECT.
+ * fhandler_tape.cc (fhandler_dev_tape::open): Use O_SYNC flag to
+ hand down the !buffer_writes case. Don't allocate devbuf in O_DIRECT
+ case.
+ (fhandler_dev_tape::raw_read): Don't mess with devbuf if it's NULL.
+ * include/fcntl.h: Define _FDIRECT, O_DIRECT, O_DSYNC and O_RSYNC.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-12-13 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Don't bother if we're exiting.
+ * sigproc.cc (_cygtls::remove_wq): Ditto.
+
+2005-12-13 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty::open): Enhance comment.
+
+2005-12-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_tty::open): Close newly created window
+ station after switching to original window station.
+
+2005-12-13 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty::open): Add a comment.
+
+2005-12-12 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::usecs): Subtract from slop from system time or
+ we'll always end up priming the pump.
+
+2005-12-12 Nick Duffek <nick@duffek.com>
+
+ * times.cc (systime): Correct precision referenced in comment.
+
+2005-12-12 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty_slave::open): Don't free original
+ windows station since that will cause strange problems displaying
+ fonts. Reset windows station to original station after creating
+ console.
+ * times.cc (hires_ms::usecs): Only reprime when calculated time is less
+ than system time.
+
+2005-12-12 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin
+ process associated with the pid, i.e., procinfo == NULL.
+
+2005-12-12 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::usecs): Correct order when checking if high
+ precision time is <= current time.
+
+2005-12-12 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (size_copied): New convenience macro.
+ (winpids::add): Alias the element that we are working on for slightly
+ better clarity. Honor the "make_copy" flag.
+ (winpids::release): Free and zero procinfo field if it was allocated
+ via malloc.
+ (winpids::~winpids): Free copied array.
+ * pinfo.h (class pinfo): Make winpids class a friend.
+ (winpids::make_copy): New field.
+ (winpids::copied): New array.
+ (winpids::reset): Reset npids after releasing pinfos or suffer a memory
+ leak.
+ (winpids::winpids): Try harder to zero all fields in the class.
+
+2005-12-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (GetSystemTimes): Remove.
+
+2005-12-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_uptime): Drop usage of GetSystemTimes.
+ Use NtQuerySystemInformation to evaluate uptime and idle_time from
+ all CPU's processor times. Fallback to GetTickCount.
+
+2005-12-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (gen_create_protect): Always generate WRITECOPY protection
+ for private maps.
+ (fixup_mmaps_after_fork): Fix calculation of WRITECOPY protection for
+ VirtualProtect. Add some words to the comment.
+
+2005-12-10 Christopher Faylor <cgf@timesys.com>
+
+ * dirent.h: Change the rest of the d_ino's to __deprecated_d_ino.
+
+2005-12-10 Christopher Faylor <cgf@timesys.com>
+
+ * malloc.cc: Update to version 2.8.3.
+ * cygmalloc.h (MSPACE): Remove unneeded definition.
+
+2005-12-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_raw.cc (fhandler_dev_raw::ioctl): Only allow 0, 1 or a
+ multiple of 512 as new buffersize.
+
+2005-12-08 Pekka Pessi <ppessi@gmail.com>
+ Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvfrom): Mask flags with
+ MSG_WINMASK for Windows socket calls.
+ (fhandler_socket::recvmsg): Ditto.
+ (fhandler_socket::sendmsg): Ditto.
+
+2005-12-07 Christopher Faylor <cgf@timesys.com>
+
+ * hires.h (hires_ms::initime_ms): Delete.
+ (hires_ms::initime_us): Just define as LONGLONG.
+ (hires_ms::uptime): New function.
+ * select.cc (select_stuff::wait): Use gtod for timing to attempt to
+ avoid windows 32 bit wraparound.
+ * times.cc (systime): New function.
+ (times): Replace GetTickCount with gtod.uptime.
+ (hires_us::prime): Use systime() to calculate system time rather than
+ calling GetSystemTimeAsFileTime directly.
+ (hires_ms::prime): Ditto. Eliminate initime_ms.
+ (hires_ms::usecs): Try harder to detect wraparound.
+
+ * fhandler_proc.cc (format_proc_partitions): Set drive_size to zero to
+ avoid a compiler warning.
+
+2005-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_partitions): Use modern IOCTLs
+ to determine drive size as far as possible.
+
+2005-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix INVALID_PARAMETER
+ condition. Only copy devbuf to buf if buf is non-NULL.
+
+2005-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix setting devbuf
+ when rd_parm is 0 or 1.
+
+2005-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
+ valid file position at EOM.
+
+2005-12-07 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/stdlib.h: Guard compilation of *unsetenv* in newlib.
+
+2005-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::handle_exceptions): In case of a
+ STATUS_ACCESS_VIOLATION, check if the page is a mmaped page beyond
+ a file's EOF. Generate SIGBUS instead of SIGSEGV then.
+ * mmap.cc (__PROT_ATTACH): New define.
+ (__PROT_FILLER): Ditto.
+ (fh_anonymous): Rename from fh_paging_file;
+ (fh_disk_file): New global static variable.
+ (attached): New inline function.
+ (filler): Ditto.
+ (gen_create_protect): Split off from gen_protect to use the file's
+ access mode to create mapping always with maximum allowed protections.
+ (gen_protect): Accommodate pages attached beyond EOF. Use symbolic
+ values instead of numerics when possible. Drop create parameter.
+ (gen_access): Use file's access mode instead of protection.
+ (CreateMapping9x): Create named mapping names so that different
+ creation access modes result in different mappings.
+ (CreateMappingNT): Only reserve attached pages, don't commit them.
+ (MapViewNT): Ditto. Set AT_ROUND_TO_PAGE for all non-NULL base
+ addresses.
+ (mmap_func_t): Define CreateMapping and MapView function pointers
+ with additional openflags parameter.
+ (class mmap_record): Add openflags member.
+ (mmap_record::mmap_record): Add openflags parameter.
+ (mmap_record::get_openflags): New accessor.
+ (mmap_record::attached): Call global attached function.
+ (mmap_record::filler): Call global filler function.
+ (mmap_record::gen_create_protect): Call global gen_create_protect
+ function.
+ (mmap_record::gen_protect): Drop create parameter.
+ (mmap_record::alloc_fh): Set fhandler's access flags.
+ (list::search_record): Accommodate filler pages.
+ (list::set): Use inode number as hash value.
+ (map::get_list_by_fd): Check hash value against file's inode number.
+ (mmap_is_attached_page): New function to evaluate if a given address
+ is on a attached page. Called from _cygtls::handle_exceptions.
+ (mmap_worker): New function to do mapping and bookkeeping in a
+ single call.
+ (mmap64): Use roundup2 to round length to pagesize alignment.
+ Initialize global fhandlers. Simplify anonymous initialization.
+ Add SUSv3 compatible check of file open mode vs. requested protection.
+ Try creating new file handles to allow maximum page protection.
+ Allow creating attached pages in case of mapping beyond EOF.
+ Close new file handle if one has been created.
+ (munmap): Align len to pagesize.
+ (msync): Rework argument checks. Align len to pagesize.
+ (mprotect): Ditto. Accommodate attached pages.
+ (mlock): Use roundup/rounddown macros instead of homemade expressions.
+ (munlock): Add page alignment as in mlock.
+ (fhandler_dev_zero::munmap): Fix unmapping of non-private mappings.
+ (fhandler_dev_zero::fixup_mmap_after_fork): Accommodate filler pages.
+ (fixup_mmaps_after_fork): Don't fail if attached pages couldn't be
+ created in child. Avoid superfluous call to VirtualFree. Check for
+ original allocation protection to fix PAGE_WRITECOPY protection.
+ * ntdll.h: Revert deletion of AT_ROUND_TO_PAGE define.
+ * winsup.h (mmap_is_attached_page): Declare.
+
+2005-12-05 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/stdlib.h: New file.
+ * environ.cc (unsetenv): Change to return -1 on input error.
+ * include/cygwin/version.h: Add more description to latest api bump.
+
+2005-12-05 Christopher Faylor <cgf@timesys.com>
+
+ * dir.cc (readdir_workdir): Only fill out d_ino when linked into older
+ app.
+ * include/cygwin/version.h: Bump api minor number to 147, reflecting
+ obsolescence of d_ino.
+ (CYGWIN_VERSION_USER_API_VERSION_COMBINED): New convenience macro.
+ (CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO): New convenience macro.
+ * include/sys/dirent.h: Change d_ino field to __deprecated_d_ino.
+
+2005-12-05 Christopher Faylor <cgf@timesys.com>
+
+ Remove unneeded whitespace.
+ * cygtls.cc (_cygtls::set_state): Delete.
+ (_cygtls::reset_exception): Ditto.
+ (_cygtls::init_thread): Set initialized state directly here.
+ (_cygtls::push): Remove exception argument. Don't treat exceptions
+ specially.
+ * cygtls.h (_cygtls::push): Ditto.
+ (_cygtls::isinitialized): Don't treat exceptions specially.
+ (_cygtls::reset_exception): Delete.
+ (_cygtls::set_state): Ditto.
+ (_cygtls::handle_exceptions): Don't push ebp on the stack prior to
+ calling sig_send. Just set incyg instead.
+ (_cygtls::interrupt_setup): Accommodate _cygtls::push argument change.
+ (_cygtls::interrupt_now): Ditto.
+ (setup_handler): Don't treat exceptions specially.
+ * gendef (longjmp): Always zero incyg flag.
+
+2005-12-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (spenvs): Add "windir" as an "always export" variable
+ to accommodate WinSock on Windows 95.
+
+2005-12-02 Christopher Faylor <cgf@timesys.com>
+
+ * include/exceptions.h (exception_list): Revert previous change.
+ Windows doesn't care.
+ (exception_handler): Use real exception_list parameter type rather than
+ void *
+ * tlsoffsets.h: Regenerate.
+ * cygtls.h (_cygtls::handle_exceptions): Use real exception_list
+ parameter type rather than void *.
+ (handle_threadlist_exception): Ditto.
+ (init_exception_handler): Ditto.
+ * cygtls.cc (_cygtls::handle_threadlist_exception ): Ditto.
+ (_cygtls::init_exception_handler): Add kludge to terminate linked list
+ with a loop, which seems to solve problem of RtlUnwind causing problems
+ * exceptions.cc (rtl_unwind): Use real exception_list parameter type
+ rather than void *.
+ (_cygtls::handle_exceptions): Ditto.
+
+2005-12-02 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_cygtls::el): New field.
+ (_cygtls::handle_exceptions): New function declaration.
+ (_cygtls::handle_threadlist_exception): Ditto.
+ (_cygtls::init_exception_handler): Ditto.
+ (_cygtls::init_threadlist_exceptions): Remove arg from declaration.
+ * cygtls.cc (_cygtls::call2): Don't initialize exceptions here.
+ (_cygtls::init_thread): Do it here instead and use member function.
+ (_cygtls::handle_threadlist_exception): Move into _cygtls class.
+ (_cygtls::init_exception_handler): Ditto. Rely on existence of 'el'
+ memmber in _cygtls.
+ (_cygtls::init_threadlist_exceptions): Ditto.
+ * dcrt0.cc (dll_crt0_1): Remove exception_list definition and setting
+ since it now commonly resides in the tls.
+ * exceptions.cc (init_exception_handler): Move to cygtls.cc.
+ (init_exceptions): Ditto.
+ (rtl_unwind): New, safe wrapper function for RtlUnwind.
+ (_cygtls::handle_exceptions): Move to _cygtls. Call rtl_unwind to
+ unwind frames and eliminate copying of structures. Put address of
+ failing instruction in si_addr, not the address on the stack. Return 0
+ to indicate that we've handled this exception.
+ * external.cc (cygwin_internal): Make CW_INIT_EXCEPTIONS a no-op.
+ * sigproc.cc (wait_sig): Accommodate argument change to
+ _cygtls::init_threadlist_exceptions.
+ * tlsoffsets.h: Regenerate.
+ * include/exceptions.h (exception_list): Add more stuff to the
+ exception list. Apparently windows needs this?
+ (init_exceptions): Remove bogus declaration.
+
+ * include/cygwin/signal.h (SI_USER): Redefine as zero as per SUSv3.
+ * include/cygwin/version.h: Bump API minor version number to 146.
+
+ * thread.cc (pthread_kill): Set si_pid and si_uid.
+
+ * timer.cc (timer_thread): Set si_code to SI_TIMER.
+
+2005-12-01 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (getstack): Try harder to modify memory.
+ (alloc_stack): Alloc page prior to stack top, too.
+
+2005-12-01 Christopher Faylor <cgf@timesys.com>
+
+ * devices.h (_major): Revert previous ill-advised change.
+ (_minor): Ditto.
+
+2005-12-01 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (handle_exceptions): Translate a guard page exception
+ to a "SIGBUS".
+
+2005-12-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc: Make debug output more consistently. Fix some comments.
+ (gen_protect): Convert to inline function.
+ (gen_access): Ditto.
+ (mmap_record::gen_protect): Add create parameter as in global function.
+ (mmap_record::alloc_page_map): Change condition so that always the
+ correct protection setting is set after mapping has been established.
+ (mmap64): For anonymous mappings set offset always to 0.
+ (fixup_mmaps_after_fork): Always call fixup_mmap_after_fork method
+ with the MAP_FIXED flag set.
+
+2005-12-01 Christopher Faylor <cgf@timesys.com>
+
+ * devices.h (_minor): Coerce argument to proper type before
+ manipulating.
+ (_major): Ditto.
+ (device::is_fs_special): New function.
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set the size to
+ 0 for devices rather than reporting the size of the symlink.
+ (fhandler_disk_file::readdir): Use is_fs_special to determine if .lnk
+ should be stripped.
+ * path.cc: Rename symlink_info::is_symlink to symlink_info::issymlink
+ throughout.
+ (symlink_info::isdevice): New field.
+ (path_conv::check): Use 'isdevice' to determine if just-parsed entity
+ is a device rather than relying on non-zero major/minor.
+ (symlink_info::parse_device): Set isdevice to true if we've discovered
+ a device.
+ (symlink_info::check): Clear isdevice field prior to processing. Use
+ isdevice to control debugging output.
+ (symlink_info::set): Set isdevice to false.
+ * path.h (path_conv::is_fs_special): New function.
+ * devices.cc: Regenerate.
+
+2005-11-30 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::prime): Remove debugging stuff.
+ (hires_ms::usecs): Ditto.
+
+2005-11-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (list::try_map): New method, implementing trying to map
+ within another already existing map, moved from mmap64 here.
+ (mmap64): Just call try_map now.
+ (fhandler_dev_zero::fixup_mmap_after_fork): Always create new private
+ map with PAGE_READWRITE protection.
+ (fixup_mmaps_after_fork): Fix comment.
+
+2005-11-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-11-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_dev_zero::mmap): Add method.
+ (fhandler_dev_zero::munmap): Ditto.
+ (fhandler_dev_zero::msync): Ditto.
+ (fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
+ * mmap.cc: Implement anonymous mapping using fhandler_dev_zero class.
+ Implement private anonymous maps using VirtualAlloc/VirtualFree. Fix
+ or add some more comments.
+ (fh_paging_file): Change to type fhandler_dev_zero.
+ (priv): New static inline function to avoid having lots of flag bit
+ tests in the code. Use throughout were appropriate.
+ (fixed): Ditto.
+ (anonymous): Ditto.
+ (noreserve): Ditto.
+ (autogrow): Ditto.
+ (gen_protect): Never generate PAGE_WRITECOPY protection for
+ private anonymous maps.
+ (gen_access): Drop FILE_MAP_EXECUTE handling since it's not supported
+ correctly on 9x.
+ (VirtualProt9x): Move comment from mmap64 here.
+ (mmap_record::mmap_record): Gegerate correct device entry for
+ anonymous maps, though unused right now.
+ (mmap_record::priv): Call global priv function.
+ (mmap_record::fixed): Call global fixed function.
+ (mmap_record::anonymous): Call global anonymous function.
+ (mmap_record::noreserve): Call global noreserve function.
+ (mmap_record::autogrow): Call global autogrow function.
+ (list::anonymous): New method. Use throughout were appropriate.
+ (mmap_record::compatible_flags): Drop now useless ifdef.
+ (mmap_record::alloc_page_map): Accommodate private anonymous maps.
+ (mmap_record::map_pages): Accommodate MAP_NORESERVE mappings.
+ (mmap_record::unmap_pages): Accommodate private anonymous maps.
+ (mmap64): Simplify argument check. Don't remove the MAP_PRIVATE flag
+ for anonymous mappings on 9x anymore since that's now handled
+ gracefully.
+ (mprotect): Accommodate MAP_NORESERVE mappings. Fix case when
+ non-mmap areas are just MEM_RESERVEd.
+ (fhandler_dev_zero::mmap): Implement anonymous mapping here.
+ (fhandler_dev_zero::munmap): Ditto.
+ (fhandler_dev_zero::msyn): Ditto.
+ (fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
+ (fixup_mmaps_after_fork): Accommodate private anonymous maps. Enhance
+ debug output in case VirtualProtect fails.
+ * include/sys/mman.h: Really define MAP_NORESERVE now.
+
+2005-11-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (NtCreateSection): Define.
+ * cygheap.cc (_csbrk): Call getpagesize instead of getshmlba.
+ * dcrt0.cc (dll_crt0_0): Call mmap_init.
+ * external.cc (cygwin_internal): Call getpagesize instead of getshmlba.
+ * fhandler.h (fhandler_base::mmap): Change access to prot parameter.
+ (fhandler_base::fixup_mmap_after_fork): Ditto.
+ (fhandler_disk_file::mmap): Ditto.
+ (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
+ (fhandler_dev_mem::mmap): Ditto.
+ (fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
+ * fhandler_mem.cc (fhandler_dev_mem::write): Call getsystempagesize
+ instead of getpagesize.
+ (fhandler_dev_mem::read): Ditto.
+ (fhandler_dev_mem::fstat): Ditto.
+ (fhandler_dev_mem::mmap): Move to mmap.cc.
+ (fhandler_dev_mem::munmap): Ditto.
+ (fhandler_dev_mem::msync): Ditto.
+ (fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
+ * fhandler_proc.cc (format_proc_meminfo): Call getsystempagesize
+ instead of getpagesize.
+ * fhandler_process.cc (format_process_stat): Ditto.
+ (format_process_status): Ditto.
+ (get_mem_values): Ditto.
+ * mmap.cc: Fix formatting. Try to make more readable and modular.
+ Take advantage of pagesize==granularity.
+ (gen_protect): New static function to evaluate Windows
+ protection bits from POSIX protection and flags.
+ (gen_access): Ditto for Windows access mode.
+ (VirtualProt9x): Wrapper function to call VirtualProtect on 9x.
+ (VirtualProtNT): Ditto for NT.
+ (VirtualProtEx9x): Ditto for VirtualProtectEx on 9x.
+ (VirtualProtExNT): Ditto for NT.
+ (CreateMapping9x): Wrapper function for creating a mapping handle on 9x.
+ (CreateMappingNT): Ditto for NT.
+ (MapView9x): Wrapper function to map a view on 9x.
+ (MapViewNT): Ditto for NT.
+ (mmap_funcs_9x): Structure containing function pointers to wrapper
+ functions for 9x.
+ (mmap_funcs_nt): Ditto for NT.
+ (mmap_func): Pointer to wrapper functions used in subsequent code.
+ (mmap_init): Initialize mmap_func depending on OS.
+ (class mmap_record): Use sensible member names. Add POSIX protection
+ member. Drop Windows access flags member. Constify more methods.
+ Use accessors instead of direct member access inside of own methods.
+ (mmap_record::gen_protect): Class wrapper to evaluate matching
+ Windows protection bits.
+ (mmap_record::gen_access): Ditto for Windows access flags.
+ (mmap_record::compatible_flags): New function to check if flags are
+ compatible with flags of existing map.
+ (list::add_record): Drop offset and length arguments.
+ (class map): Change counters to unsigned. Match usage throughout.
+ (mmapped_areas): Convert from pointer to global struct.
+ (mmap_record::alloc_page_map): Simplify.
+ (mmap_record::map_pages): Ditto.
+ (mmap_record::fixup_page_map): Delete.
+ (mmap64): Simplify. Add workaround for Windows 98 bug. Fix bug on
+ NT that existing anonymous mappings weren't searched for a match.
+ (munmap): Add workaround for Windows 98 bug.
+ (msync): Simplify.
+ (mprotect): Handle existing maps correctly.
+ (mlock): Add local pagesize variable and enlightening comment.
+ (fhandler_disk_file::mmap): Main functionality now in CreateMapping/
+ MapView wrapper functions.
+ (fhandler_disk_file::fixup_mmap_after_fork): Call MapView wrapper.
+ (fhandler_dev_mem::mmap): Moved from fhandler_mem.cc. Simplify by
+ calling MapViewNT.
+ (fhandler_dev_mem::munmap): Moved from fhandler_mem.cc.
+ (fhandler_dev_mem::msync): Ditto.
+ (fhandler_dev_mem::fixup_mmap_after_fork): Ditto. Call MapViewNT.
+ (fixup_mmaps_after_fork): Restructure and hopefully speed up loop for
+ setting protection and memory content on MAP_PRIVATE maps.
+ * ntdll.h (AT_ROUND_TO_PAGE): Remove define.
+ (AT_EXTENDABLE_FILE): Add define.
+ (NtCreateSection): Add prototype.
+ * syscalls.cc (getpagesize): Return granularity as pagesize now.
+ (getsystempagesize): New function to retrieve "real" pagesize.
+ (getshmlba): Delete since it's replaced by getpagesize now.
+ * wincap.h (wincaps::has_mmap_alignment_bug): New element.
+ * wincap.cc: Implement above element throughout.
+ * winsup.h (getshmlba): Drop prototype.
+ (getsystempagesize): Add prototype.
+ (mmap_init): Ditto.
+ * include/sys/mman.h: (Not yet) define MAP_NORESERVE.
+
+2005-11-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't rely on
+ has_acl() state for evaluating inodes. Temporarily(?) enable "real"
+ inodes for remote drives.
+
+2005-11-25 Christopher Faylor <cgf@timesys.com>
+
+ * heap.cc: Remove spurious getpagesize declaration.
+
+2005-11-25 Christian Franke <Christian.Franke@t-online.de>
+
+ * exceptions.cc (ctrl_c_handler): Distinguish CTRL-BREAK from CTRL-C in
+ some cases.
+
+2005-11-23 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty_slave::open): Reset the current windows
+ station whenever ctty == -1 regardles of whether there's a windows
+ station already assigned. Close the old windows station in this
+ situation.
+ * pinfo.cc (_pinfo::set_ctty): Reinstate incrementing of console count
+ when recording ctty so that the current tty is always around.
+ * autoload.cc (CloseWindowStation): Define.
+
+2005-11-18 Christopher Faylor <cgf@timesys.com>
+
+ * strptime.cc (_strptime): Fix gcc warnings.
+
+2005-11-18 Christopher Faylor <cgf@timesys.com>
+
+ * memmem.cc: Move from here.
+ * lib/memmem.cc: Move to here.
+
+2005-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * libc: Add subdirectory.
+ * Makefile.in (VPATH): Add libc subdir.
+ (DLL_OFILES): Add strptime.o and timelocal.o.
+ * cygwin.din: Export timelocal and timegm.
+ * localtime.cc: Define STD_INSPIRED unconditionally.
+ * include/cygwin/time.h (timelocal): Add declaration.
+ (timegm): Ditto.
+ * include/cygwin/version.h: Bump API minor version.
+ * libc/strptime.cc: New file.
+ * libc/timelocal.cc: New file.
+ * libc/timelocal.h: New file.
+
+2005-11-18 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/sys_time.h: Move futimes and lutimes declaration here
+ from newlib.
+
+2005-11-18 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (timezone): Put back (void).
+ * include/cygwin/time.h: Add more cygwin stuff from newlib.
+
+2005-11-18 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/sys_time.h: Rename from include/cygwin/time.h.
+ * include/cygwin/time.h: New file.
+
+2005-11-17 Christopher Faylor <cgf@timesys.com>
+
+ * fork.cc (fork): Move top-of-stack calculation later.
+
+ * pinfo.cc (_pinfo::set_ctty): Use __ctty to print current console in
+ debugging output.
+
+2005-11-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_tty_slave::open): Don't expect that
+ service applications have no window station attached.
+
+2005-11-16 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::prime): Don't escalate the priority.
+
+2005-11-14 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/elf64.h: Fix types to reflect linux usage.
+
+2005-11-14 Corinna Vinschen <corinna@vinschen.de>
+ Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_console::fixup_after_fork_exec): Define with
+ additional bool parameter.
+ (fhandler_console::fixup_after_exec): Accommodate
+ fixup_after_fork_exec's parameter.
+ (fhandler_console::fixup_after_fork): Ditto.
+ * fhandler_console.cc (fhandler_console::fixup_after_fork_exec): Avoid
+ opening new console only when close_on_exec AND execing.
+
+2005-11-14 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_console::fixup_after_fork_exec): Declare new function.
+ (fhandler_console::fixup_after_fork): Use fixup_after_fork_exec.
+ (fhandler_console::fixup_after_exec): Ditto.
+ * fhandler_console.cc (fhandler_console::fixup_after_fork): Delete definition.
+ (fhandler_console::fixup_after_fork_exec): Rename from fixup_after_exec.
+ * pinfo.cc (_pinfo::set_ctty): Don't play with console count here.
+ * syscalls.cc (close_all_files): Don't close cygheap ctty if hExeced
+ since the child will be copying information from us.
+ (setsid): Use myctty() rather than raw ctty #.
+
+2005-11-13 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (init_cygheap::manage_console_count): Declare new function.
+ (init_cygheap::console_count): Renamed from open_fhs. Make private.
+ * cygheap.cc (init_cygheap::manage_console_count): Define new function.
+ * dtable.cc (dtable::fixup_after_exec): Always call fixup_after_exec on
+ elements of fd even when they are about to be closed.
+ * fhandler.h (report_tty_counts): Remove open_fhs from debugging
+ output.
+ * fhandler_console.cc (fhandler_console::open): Use
+ manage_console_count rather than manipulating count directly.
+ (fhandler_console::close): Ditto.
+ (fhandler_console::fixup_after_fork): Ditto.
+ (fhandler_console::fixup_after_exec): Ditto. Don't close handles if
+ close_on_exec.
+ * fhandler_tty.cc (fhandler_tty_slave::open): Use
+ manage_console_count() rather than manipulating count directly.
+ Reflect change in arguments to report_tty_counts().
+ (fhandler_tty_slave::close): Ditto for both.
+ (fhandler_tty_slave::dup): Ditto for both.
+ (fhandler_tty_slave::ioctl): Use myctty() rather than raw ctty #.
+ (fhandler_tty_slave::fixup_after_fork): Reflect change in arguments to
+ report_tty_counts().
+ (fhandler_tty_master::init_console): Use manage_console_count() rather
+ than manipulating count directly.
+ * fhandler_clipboard.cc (fhandler_dev_clipboard::fixup_after_exec):
+ Don't perform any operations if close_on_exec.
+ * fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_exec): Ditto.
+ * fhandler_raw.cc (fhandler_dev_raw::fixup_after_exec): Ditto.
+ * fhandler_serial.cc (fhandler_serial::fixup_after_exec): Ditto.
+ * pinfo.h (_pinfo::_ctty): Declare new function.
+ (myctty): Declare new macro.
+ (__ctty): Declare new macro.
+ * pinfo.cc (_pinfo::_ctty): Define new function.
+ (_pinfo::set_ctty): Use manage_console_count() rather than manipulating
+ count directly.
+ * signal.cc (kill_pgrp): Use myctty() and __ctty() macros rather than
+ raw ctty #.
+ * syscalls.cc (setsid): Ditto. Use manage_console_count() rather than
+ manipulating count directly.
+
+2005-11-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvfrom): Just return 0 (EOF)
+ in case of WSAESHUTDOWN.
+ (fhandler_socket::recvmsg): Ditto.
+ * poll.cc (poll): Set revents to POLLIN instead of POLLHUP. Add comment.
+
+2005-11-11 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (init_cygheap::_gtod): Remove.
+ * cygwin.din: Export clock_getres and clock_setres.
+ * hires.h (hires_ms::minperiod): Delete declaration.
+ (hires_ms::began_period): Ditto.
+ (hires_ms::prime): Make void.
+ (hires_ms::resolution): Just define here.
+ (hires_ms::usecs): Remove unneeded argument.
+ (gtod): Redeclare as a variable.
+ * timer.cc (timer_thread): Eliminate argument to gtod.usecs().
+ (timer_tracker::gettime): Ditto.
+ (timer_tracker::settime): Ditto.
+ * times.cc (gettimeofday): Ditto.
+ (hires_ms::began_period): Delete declaration.
+ (hires_us::prime): Remove debugging.
+ (hires_ms::prime): Make void. Eliminate period stuff.
+ (hires_ms::usecs): Eliminate argument to gtod.usecs().
+ (hires_ms::resolution): New function.
+ (clock_getres): Ditto.
+ (clock_setres): Ditto.
+ * version.h: Bump API version to 143.
+ * include/cygwin/time.h: New file.
+
+2005-11-10 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::prime): Comment out call to timeBeginPeriod for
+ now.
+ (hires_ms::usecs): Call prime if haven't called began_period().
+
+ * param.h: Don't define stuff that is already defined in endian.h.
+
+2005-11-10 Christopher Faylor <cgf@timesys.com>
+
+ * include/endian.h: Remove USE_BSD ifdef since it is never defined on
+ Cygwin.
+
+2005-11-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * syslog.cc (setlogmask): Don't mask the mask.
+ (vsyslog): Fix priority check.
+
+2005-11-10 Scott Finneran <scottf@pacom.com>
+
+ * include/cygwin/signal.h: Add missing sigrelse prototype.
+
+2005-11-08 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_base.cc (fhandler_base::readv): Free buf, not a pointer into
+ the middle of buf.
+
+2005-11-08 Christopher Faylor <cgf@timesys.com>
+
+ * memmem.cc: New file.
+ * include/cygwin/version.h: Bump API version number to 142.
+ * cygwin.din: Export memmem.
+ * Makefile.in: Build memmem.o.
+
+2005-11-08 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (spenvs): Make "SYSTEMDRIVE" an "always export".
+
+2005-11-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * times.cc (futimes): Redirect to utimes_worker if given file
+ descriptor is opened R/O.
+
+2005-11-06 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (dll_crt0_0): Initialize security data first so that it can
+ be used by subsequent handle creation.
+
+2005-11-04 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (init_cygheap::_gtod): New hires_ms element.
+ * hires.h (hires_ms::minperiod): Remove static designation.
+ (hires::began_period): New field.
+ * signal.cc: Include headers required for cygheap.h now that gtod lives
+ in the cygheap.
+ * timer.c: Ditto.
+ * times.cc (gtod): Delete variable.
+ (gtod::minperiod): Ditto.
+ (gtod::began_period): Define.
+ (hires_ms::prime): Add more debugging output. Call timeBeginPeriod
+ only when !began_period.
+
+2005-11-04 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::prime): More debugging.
+ (hires_ms::usecs): Ditto.
+
+2005-11-03 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (stupid_printf): Define and use throughout -- temporarily.
+
+2005-11-03 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::prime): Add lots of temporary debugging output.
+
+2005-11-02 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (hires_ms::minperiod): Make copy-on-fork.
+ (gettimeofday): Remove temporary debugging.
+ (hires_us::prime): Add lots of temporary debugging output.
+
+2005-11-02 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (gettimeofday): Add temporary debugging output.
+
+2005-11-01 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/cygwin.h: Define CYGWIN_SIGNAL_STRING.
+ * exceptins.cc (sigpacket::process): Send a _CYGWIN_SIGNAL_STRING to
+ gdb if the process is being debugged. A WIP.
+
+2005-10-29 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (signal_exit): Eliminate setting of main thread
+ priority since process lock should make that unnecessary.
+ * fork.cc (stack_base): Eliminate.
+ (frok::parent): Subsume stack_base and just set stack stuff here.
+ Report on priority class in debugging output.
+ * spawn.cc (spawn_guts): Report on priority class in debugging output.
+
+2005-10-29 Christopher Faylor <cgf@timesys.com>
+
+ * fork.cc (frok::child): Change order of cleanup prior to return.
+ (fork): Save more of the stack.
+
+ * gendef: Fix some comments.
+
+ * sigproc.cc (wait_sig): Clarify debug output.
+
+2005-10-29 Christopher Faylor <cgf@timesys.com>
+
+ * child_info.h (CHILD_INFO_MAGIC): Reset.
+
+2005-10-24 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (_pinfo::fds): Lock fdtab while enumerating.
+
+2005-10-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * spawn.cc (spawn_guts): Don't leave the function with return inside
+ pthread cleanup brackets.
+
+2005-10-24 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (cygheap_fdenum): Remove start_fd stuff.
+ (cygheap_fdenum::rewind): Ditto.
+ * pipe.cc (fhandler_pipe::open): Lock fdtab while enumerating.
+ * times.cc (utimes_worker): Ditto.
+
+2005-10-23 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or
+ suffer deadlocks.
+ (class locked_process): Move to another header.
+ * sync.h (lock_process): Define here.
+ * cygtls.cc (_cygtls::fixup_after_fork): Reset spinning state as well
+ as stacklock state.
+ * dcrt0.cc (lock_process::locker): Define.
+ (dtable::lock_cs): Delete.
+ (dll_crt0_0): Initialize process lock here ASAP.
+ * dtable.cc (dtable_init): Eliminate call to init_lock().
+ (dtable::fixup_after_fork): Ditto.
+ (dtable::init_lock): Delete definition.
+ * dtable.h (dtable::init_lock): Delete declaration.
+ (dtable::lock): Use process lock rather than dtable-specific lock.
+ (dtable::unlock): Ditto.
+
+ * sigproc.cc (sigproc_init): Minor change to debugging output.
+
+ * times.cc (utime_worker): Use build_fh_pc rather than reinterpreting
+ the posix path name again. Return any error from path_conv immediately.
+
+2005-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::connect): Don't restrict
+ WSAEINVAL -> WSAEISCONN conversion to nonblocking sockets.
+ (fhandler_socket::accept): Use event driven technique to implement
+ interuptible accept.
+ (fhandler_socket::wait): Allow FD_ACCEPT handling.
+ * net.cc (cygwin_accept): Remove workaround for allowing blocking
+ accept. That's entirely in fhandler_socket::accept now.
+
+2005-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_socket): Add timeout parameter to wait()
+ method.
+ * fhandler_socket.cc (fhandler_socket::connect): Use event driven
+ technique (prepare/wait/release) to implement interuptible connect.
+ (fhandler_socket::wait): Add timeout parameter. Allow FD_CONNECT
+ handling.
+ * net.cc (cygwin_connect): Remove braindead workaround for allowing
+ blocking connect. That's entirely in fhandler_socket::connect now.
+
+2005-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h: Fix typo.
+
+2005-10-21 Christopher Faylor <cgf@timesys.com>
+
+ * dir.cc (rmdir): Eliminate nonsensical code.
+
+ * fork.cc (fork): Move exit debug_printf to last statement.
+
+2005-10-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (futimes): Export.
+ (lutimes): Export.
+ * times.cc (utimes_worker): Created from utimes, add nofollow flag
+ to implement utimes and lutimes.
+ (utimes): Just call utimes_worker.
+ (lutimes): New function.
+ (futimes): Ditto.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-10-19 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (child_info::sync): Move check for !wr_proc_pipe lower.
+ * spawn.cc (spawn_guts): Correct check for top-level process.
+
+2005-10-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc: Revert loading rcmd, rexec, rresvport and inet_network
+ from wsock32.dll since these symbols are not exported from ws2_32.dll.
+
+2005-10-19 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (utimes): Only consider fds opened with write access.
+
+2005-10-19 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_disk_file.cc (fhandler_base::utimes_fs): Use existing handle
+ if fhandler has one.
+ * times.cc (utimes): Scan open fds for matching paths and use existing
+ fhandler if one exists.
+
+2005-10-19 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (_pinfo::dup_proc_pipe): Make warning more severe by
+ actually printing it.
+ (_pinfo::alert_parent): Fix comment. Don't send to parent if we are in
+ an exec stub.
+
+2005-10-18 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (handle_threadlist_exception): Improve diagnostic output.
+
+ * sigproc.cc (child_info::sync): Only clear hProcess when execing.
+ (wait_sig): Protect readsig handle.
+
+2005-10-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (NtLockVirtualMemory): Import.
+ (NtUnlockVirtualMemory): Import.
+ (GetProcessWorkingSetSize): Import.
+ (SetProcessWorkingSetSize): Import.
+ * cygwin.din (mlock): Export.
+ (munlock): Export.
+ * mmap.cc (mlock): New function.
+ (munlock): Ditto.
+ * ntdll.h (STATUS_WORKING_SET_QUOTA): Define.
+ (LOCK_VM_IN_WSL): Define.
+ (LOCK_VM_IN_RAM): Define.
+ (NtLockVirtualMemory): Declare.
+ (NtUnlockVirtualMemory): Declare.
+ * sysconf.cc (sysconf): Implement _SC_MEMLOCK_RANGE.
+ * wincap.h: Implement has_working_virtual_lock throughout.
+ * wincap.cc: Ditto.
+ * include/cygwin/version.h: Bump API minor version.
+ * include/sys/mman.h (mlock): Declare,
+ (munlock): Declare.
+
+2005-10-18 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (child_info::sync): Use correct name when closing to
+ prevent warnings when DEBUGGING.
+ * spawn.cc (spawn_guts): Set myself.hProcess to pi.hProcess since this
+ may have been zeroed by the previous sync.
+
+2005-10-18 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (child_info::sync): Fix typo which caused hProcess to
+ never be cleared. Only clear hProcess when not forking.
+
+2005-10-17 Christopher Faylor <cgf@timesys.com>
+
+ Change process_lock to lock_process throughout.
+ Change all calls to new cygthread to handle extra argument, throughout.
+ * cygthread.h (cygthread::callproc): Declare new method.
+ (cygthread::cygthread): Add optional length argument to allow copying
+ arguments to executing thread.
+ * cygthread.cc (cygthread::callproc): Define new method.
+ (cygthread::stub): Use callfunc to invoke thread func to allow
+ potentially allocating stack memory which will be returned.
+ (cygthread::simplestub): Ditto.
+ (cygthread::cygthread): Accept arglen argument. Reset ev here prior to
+ activating thread. Wait for ev after activating thread if we're
+ copying contents to the thread. Wait until the end before setting h,
+ to allow thread synchronization.
+ (cygthread::release): Don't reset ev here. Rely on that happening the next
+ time the thread is activated.
+ * pinfo.h (commune_process): Rename declaration from _pinfo::commune_process.
+ * pinfo.cc (commune_process): Ditto for definition. Modify slightly to allow
+ running as a separate cygthread.
+ * sigproc.cc (child_info::sync): Always wait for both subproc_ready and
+ any hProcess if we have a cygwin parent.
+ (talktome): Change argument to be a pointer to siginfo_t. Contiguously
+ allocate whole siginfo_t structure + any needed extra for eventual passing
+ to commune_process thread.
+ (wait_sig): Accommodate change in talktome argument.
+
+ * pipe.cc (fhandler_pipe::fixup_after_exec): Remove debugging.
+
+2005-10-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc: Never load wsock32.dll. Load all wsock32 function
+ from ws2_32. Rearrange symbol order accordingly. None of the ws2_32
+ functions is optional right now.
+ (wsadata): Move from net.cc here. Define NO_COPY.
+ (wsock_init): Drop unused symbols ws2_32_handle and wsock32_handle.
+ (load_wsock32): Remove.
+ (WSACleanup): Remove.
+ * fhandler_socket.cc: Drop Winsock 1 accommodations throughout.
+ (fhandler_socket::readv): Accommodate new POSIX style struct msghdr.
+ (fhandler_socket::writev): Ditto.
+ (fhandler_socket::recvmsg): Ditto. Handle "old" applications using
+ former struct msghdr correctly.
+ * net.cc: Drop Winsock 1 accommodations throughout.
+ (wsadata): Move definition to autoload.cc.
+ (set_socket_inheritance): Remove.
+ (convert_ws1_ip_optname): New static function to convert Winsock1
+ IPPROTO_IP option values into Winsock2 IPPROTO_IP option values.
+ (cygwin_setsockopt): Remove wrong and incomplete cleartext printing
+ of optname. For "old" applications, convert optname from Winsock1
+ to Winsock2 values before using them. Add comment to describe the
+ IP_TOS weirdness on W2K and above.
+ (cygwin_getsockopt): Remove wrong and incomplete cleartext printing
+ of optname. For "old" applications, convert optname from Winsock1
+ to Winsock2 values before using them.
+ * select.cc (start_thread_socket): Forget about winsock2_active.
+ * winsup.h (wsock32_handle): Remove declaration.
+ (ws2_32_handle): Ditto.
+ (netapi32_handle): Ditto.
+ (wsadata): Ditto.
+ (winsock2_active): Remove definition.
+ * include/cygwin/socket.h: Change formatting slightly.
+ (socklen_t): Move definition up in file.
+ (struct msghdr): Convert to POSIX style.
+ (struct cmsghdr): New type.
+ (CMSG_ALIGN): New macro.
+ (CMSG_LEN): Ditto.
+ (CMSG_SPACE): Ditto.
+ (CMSG_FIRSTHDR): Ditto.
+ (CMSG_NXTHDR): Ditto.
+ (CMSG_DATA): Ditto.
+ (SCM_RIGHTS): Ditto.
+ (struct OLD_msghdr): Define old msghdr structure for Cygwin internal
+ purposes.
+ (MSG_TRUNC): New macro.
+ (MSG_CTRUNC): Ditto.
+ (IP_OPTIONS): Redefine IPPROTO_IP option values to Winsock2 values.
+ Keep Winsock1 values for Cygwin internal purposes.
+ * include/cygwin/version.h: Bump API minor version.
+ (CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR): Define to check for
+ applications using old struct msghdr.
+ (CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES): Define to check for
+ applications using old Winsock1 IPPROTO_IP values.
+
+2005-10-13 David Rothenberger <daveroth@acm.org>
+ Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in (MKDIRP): Just use raw $(INSTALL) rather than
+ $(INSTALL_DATA). Create directories with 755 permissions.
+
+2005-10-12 Christopher Faylor <cgf@timesys.com>
+
+ * dir.cc (mkdir): Abandon use of PC_WRITABLE.
+ (rmdir): Ditto.
+ * path.h (PC_WRITABLE): Delete.
+ * path.cc (path_conv::check): Remove PC_WRITABLE accommodations.
+ Revisit later.
+
+2005-10-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Convert an
+ ERROR_INVALID_FUNCTION into an ERROR_FILE_NOT_FOUND. Add comment
+ to explain why.
+
+2005-10-11 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in: Make sure that directories are created prior to copying
+ to them.
+
+2005-10-11 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (cygwin_gethostbyname): Remove debugging.
+
+2005-10-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * syslog.cc (try_connect_syslogd): Add priority parameter. Use writev
+ to add the priority to the message in a syslog conformant way.
+ (vsyslog): If facility isn't set in the priority, use default facility
+ as given in call to openlog. Fix agressive use of spaces in syslog
+ output. Call try_connect_syslogd with priority parameter.
+
+2005-10-11 Christopher Faylor <cgf@timesys.com>
+
+ * (symlink_info::set_error): Change to return bool if input error
+ should be ignored.
+ (symlink_info::check): Treat path as a normal file if set_error returns
+ false.
+
+2005-10-03 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (class process_lock): New class.
+ * dtable.h (class dtable): Add class process_lock as a friend.
+ * dcrt0.cc (get_exit_lock): Delete.
+ (do_exit): Use process_lock class instead of get_exit_lock.
+ * exceptions.cc (signal_exit): Ditto.
+ * pinfo.cc (pinfo::exit): Ditto.
+ (_pinfo::commune_process): Set process lock around this whole function.
+ (_pinfo::commune_request): Use process_lock rather than myself.lock.
+ * pinfo.h (pinfo::_lock): Delete.
+ (pinfo::initialize_lock): Delete.
+ (pinfo::lock): Delete.
+ (pinfo::unlock): Delete.
+ * winsup.h (get_exit_lock): Delete declaration.
+
+2005-10-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * uname.cc (uname): Disable use of GetNativeSystemInfo.
+
+2005-10-01 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (get_exit_lock): Use myself.lock rather than exit_lock.
+ * exceptions.cc (exit_lock): Delete.
+ (events_init): Don't init exit_lock.
+ * (_pinfo::commune_process): Add per-PICOM debugging.
+ * sigproc.cc (talktome): Add some temporary debugging statements.
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Cosmetic change.
+ (format_proc_partitions): Ditto.
+ * syscalls.cc (locked_append): Ditto.
+
+2005-09-30 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_exit): Don't set ES_SET_MUTO here. Call get_exit_lock()
+ instead.
+ (get_exit_lock): New function. Grabs the lock and sets initial
+ exit_state.
+ * exceptions.cc (try_to_debug): Use low_priority_sleep.
+ (sigpacket::process): Avoid handler if this is an exec stub.
+ (signal_exit): Use get_exit_lock rather than manipulating the exit_lock
+ critical section directly.
+ * pinfo.cc (pinfo::exit): Ditto.
+ * winsup.h (get_exit_lock): Declare.
+ (exit_lock): Delete declaration.
+
+2005-09-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc: Change calls to pc.set_attributes into
+ calls to pc.file_attributes throughout.
+ * path.h (class path_conv): Remove superfluous set_attributes method.
+
+2005-09-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Use
+ fhandler method to access major device number. Add comment to
+ explain floppy weirdness.
+
+2005-09-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Also use
+ attributes stored in this->pc if call to GetFileInformationByHandle
+ failed.
+
+2005-09-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only write
+ attributes if call to GetFileInformationByHandle was successful.
+
+2005-09-29 Christopher Faylor <cgf@timesys.com>
+
+ * fork.cc (frok::parent): Simplify error messages. Don't issue an
+ error when child.remember fails.
+ (fork): When appropriate, build up an error message from grouped.error.
+
+2005-09-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Don't call
+ EX ioctls on floppy drives.
+
+2005-09-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * dir.cc (mkdir): Check for trailing /. or /.. component.
+ (rmdir): Ditto.
+ * path.cc (has_dot_last_component): New function.
+ * path.h (has_dot_last_component): Add declaration.
+
+2005-09-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * crt0.cc: Remove PPC considerations.
+ (WinMainCRTStartup): Add symbol as alias to mainCRTStartup.
+
+2005-09-28 Christopher Faylor <cgf@timesys.com>
+
+ Change name from commune_recv to commune_process throughout.
+ Change name from commune_send to commune_request throughout.
+ * pinfo.h (PICOM_EXTRASTR): New flag.
+ (PICOM_FIFO): Define with new flag.
+ (_pinfo::hello_pid): Delete.
+ (_pinfo::tothem): Delete.
+ (_pinfo::fromthem): Delete.
+ (_pinfo::commune_process): Rename from commune_recv. Add a siginfo_t
+ argument to declaration.
+ (_pinfo::commune_request): Rename from commune_send. Change DWORD to
+ __uint32_t in declaration.
+ * pinfo.cc (_pinfo::commune_process): Rename from commune_recv. Add
+ siginfo_t argument. Use information from argument rather than reading
+ from another pipe. Synchronize with other process's commune event.
+ (_pinfo::commune_request): Rename from commune_send. Change DWORD to
+ __uint32 in argument. Fill out information in new siginfo_t element
+ and rely on extended operation of sig_send rather than trying to deal
+ with synchronization issues here. Use process handle and read pipe
+ information filled out by sig_send to gather information from the other
+ process.
+ * sigproc.cc (sig_send): Take special action if "communing" to ensure
+ synchronization with the other process and to return information about
+ the other process to the caller.
+ (talktome): Accept a siginfo_t and handle arguments. Read additional
+ information from the signal pipe when _si_commune._si_code has the
+ PICOM_EXTRASTR flag set.
+ (wait_sig): Pass the transmitted siginfo_t struct and the pipe handle
+ to talktome. Close pipe read handle as soon as possible after we
+ detect that we're exiting.
+
+2005-09-28 Christopher Faylor <cgf@timesys.com>
+
+ * hookapi.cc (hook_or_detect_cygwin): Correct inverted test for whether
+ to allocate a buffer by always allocating a buffer.
+
+2005-09-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_dev_raw): Delete current_position and
+ eof_detected status flag. Delete is_eom and is_eof methods.
+ Move drive_size, bytes_per_sector, eom_detected status flag, as well
+ as the methods read_file, write_file, raw_read and raw_write to ...
+ (class fhandler_dev_floppy): ... here. Remove is_eom and is_eof
+ methods. Add dup method.
+ * fhandler_floppy.cc (IS_EOM): New macro.
+ (fhandler_dev_floppy::is_eom): Remove.
+ (fhandler_dev_floppy::is_eof): Remove.
+ (fhandler_dev_floppy::fhandler_dev_floppy): Initialize status flags.
+ (fhandler_dev_floppy::get_drive_info): Only call EX functions on
+ systems supporting them and stop suffering strange delays.
+ (fhandler_dev_floppy::read_file): Move here, drop setting
+ current_position.
+ (fhandler_dev_floppy::write_file): Move here, drop setting
+ current_position.
+ (fhandler_dev_floppy::open): Rearrange comment.
+ (fhandler_dev_floppy::dup): New method.
+ (fhandler_dev_floppy::get_current_position): New inline method. Use
+ instead of former current_position were appropriate.
+ (fhandler_dev_floppy::raw_read): Move here. Drop EOF handling.
+ (fhandler_dev_floppy::raw_write): Move here. Drop EOF handling.
+ (fhandler_dev_floppy::lseek): Remove useless conditions. Convert
+ sector_aligned_offset to LARGE_INTEGER to improve SetFilePointer call.
+ (fhandler_dev_floppy::ioctl): Move blocksize check in RDSETBLK case
+ to here.
+ * fhandler_raw.cc (fhandler_dev_raw::is_eom): Remove.
+ (fhandler_dev_raw::is_eof): Remove.
+ (fhandler_dev_raw::write_file): Remove.
+ (fhandler_dev_raw::read_file): Remove.
+ (fhandler_dev_raw::raw_read): Remove.
+ (fhandler_dev_raw::raw_write): Remove.
+ (fhandler_dev_raw::dup): Drop copying removed members.
+ (fhandler_dev_raw::ioctl): Drop blocksize testing.
+ * wincap.h: Implement has_disk_ex_ioctls throughout.
+ * wincap.cc: Ditto.
+ (wincap_vista): Preliminary wincaps for Windows Vista/Longhorn.
+ (wincapc::init): Add Vista/Longhorn handling.
+
+2005-09-28 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (getstack): New function.
+ (alloc_stack): Use tls stuff for stack info rather than calling
+ VirtualQuery.
+ (dll_crt0_0): Initialize _impure_ptr stuff much earlier. Move
+ init_console_handler here.
+ * fork.cc (class frok): New class renamed from local fork() struct.
+ (stack_base): Change argument type. Use tls stuff to determine stack
+ info rather than calling VirtualQuery.
+ (frok::child): Rename from fork_child. Eliminate now unneeded
+ arguments.
+ (frok::parent): Rename from fork_parent and ditto. Set error and errno
+ as appropriate. Fixup impersonation in cleanup, if needed. Try harder
+ to set errno appropriately.
+ (fork): Define "grouped" as a frok type. Deal with errors from
+ fork_parent here.
+ * init.cc (dll_entry): Remove init_console_handler call.
+
+2005-09-28 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (_pinfo::dup_proc_pipe): Ignore error if the child process
+ has just gone away.
+
+2005-09-27 Christopher Faylor <cgf@timesys.com>
+
+ * init.cc (prime_threads): Make this static, as it should be.
+ (dll_entry): Apply cosmetic changes to define closer to the way MSDN
+ suggests.
+
+2005-09-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * pthread.cc (mangle_sem_name): Use cygheap->shared_prefix instead
+ of fiddling with wincap.has_terminal_services manually.
+
+2005-09-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.cc (cygheap_init): Add GLOBAL_PRIV to hProcToken explicitely
+ since hProcImpToken isn't initialized here.
+ * shared.cc (open_shared): Always print mapname instead of name in
+ debug output.
+
+2005-09-27 Christopher Faylor <cgf@timesys.com>
+
+ * strace.cc (strace::vsprntf): Avoid printing a zero pid.
+
+2005-09-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * init.cc (dll_entry): Call IsWow64Process with GetCurrentProcess
+ as process handle since hMainProc isn't initialized here.
+
+2005-09-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Always
+ try IOCTL_DISK_GET_DRIVE_GEOMETRY_EX and
+ IOCTL_DISK_GET_PARTITION_INFO_EX ioctls first, to allow access to GPT
+ partitioned disks. Fall back to old non-EX ioctls otherwise.
+ Add comment to explain NT4 weirdness.
+
+2005-09-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * errno.cc (errmap): Map ERROR_SEEK and ERROR_SECTOR_NOT_FOUND.
+
+2005-09-26 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Minor cleanup.
+
+2005-09-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_dev_raw): Add drive information members
+ drive_size, current_position and bytes_per_sector.
+ (fhandler_dev_floppy::get_drive_info): Declare.
+ * fhandler_floppy.cc (fhandler_dev_floppy::is_eom): Define ERROR_SEEK
+ and ERROR_SECTOR_NOT_FOUND as end-of-medium conditions.
+ (fhandler_dev_floppy::get_drive_info): New method to have one function
+ retrieving drive info.
+ (fhandler_dev_floppy::open): Call get_drive_info to get drive
+ information right from the start.
+ (fhandler_dev_floppy::lseek): Use and set drive information members.
+ Especially keep track of current_position.
+ (fhandler_dev_floppy::ioctl): Ditto.
+ * fhandler_raw.cc (fhandler_dev_raw::write_file): Keep track of
+ current_position.
+ (fhandler_dev_raw::read_file): Ditto.
+ (fhandler_dev_raw::raw_read): Never try to read beyond end-of-medium.
+ (fhandler_dev_raw::dup): Handle new drive information members.
+
+2005-09-26 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (handle_exceptions): Just set si_code to SI_KERNEL
+ first and let it be overridden.
+
+2005-09-26 Yitzchak Scott-Thoennes <sthoenna@efn.org>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Call signal handler
+ with extra siginfo_t * and void * parameters when SA_SIGINFO flag is
+ set.
+ * signal.cc (signal): Clear SA_SIGINFO flag.
+ (sigqueue): Fix incorrect setting of si_code.
+ * sigproc.cc (signal_fixup_after_exec): Clear SA_SIGINFO flag when
+ setting handler to SIG_DFL.
+
+2005-09-26 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (proc_waiter): Properly fill out si_code as according to SUSv3.
+
+2005-09-26 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (handle_exceptions): Properly fill out si_code as
+ according to SUSv3.
+
+2005-09-25 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (wait_sig): Cosmetic change.
+ * pinfo.cc (pinfo::exit): Don't explicitly remove myself since some
+ other thread may still be using it.
+
+2005-09-24 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (sigproc_terminate): More reversion of
+ always-exit-from-sigthread change.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ * shared.cc (open_shared): Add crucial bit of debugging info.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ Semi-reversion of always-exit-from-sigthread change of 2005-09-15.
+ * exceptions.cc (sigpacket::process): Eliminate return after call to
+ reinstated noreturn function.
+ (signal_exit): Allow function to exit when a captive process has been
+ terminated.
+ * pinfo.cc (pinfo::exit): Enter exit_lock here. Once again exit here
+ under control of exit_lock.
+ * sigproc.cc (sig_send): Don't wait for completion if process is exiting.
+ Remove special __SIGEXIT accommodations.
+ (wait_sig): Just exit the thread when a __SIGEXIT has been detected.
+ Don't exit the process.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (cygwin_gethostbyname): Remove debugging cruft.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::exit): Call ExitProcess if called from signal
+ thread.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::exit): Eliminate use of _my_tls.thread_handle.
+ * tlsoffsets.h: Regenerate.
+
+2005-09-23 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (struct _cygtls::thread_handle): Remove/revert.
+ * sigproc.h (struct sipacket::thread_handle): Put thread_handle here.
+ * sigproc.cc (sigproc_terminate): Move setting of thread_handle...
+ (sig_send): ...to here. Put it in packet being sent. Only close
+ pack.wakeup when we're waiting for completion.
+ (wait_sig): Use thread_handle directly from received packet.
+
+2005-09-22 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.cc (cygheap_fixup_in_child): It's not just for exec.
+ * cygtls.h (struct _cygtls::thread_handle): New field.
+ * dcrt0.cc (exit_lock): Remove declaration.
+ * winsup.h (exit_lock): Add declaration.
+ * exceptions.cc (sigpacket::process): Properly return after
+ signal_exit.
+ * pinfo.cc (pinfo::exit): Only exit the process if
+ _my_tls.thread_handle has not been filled out -- which should be an
+ impossible event.
+ * sigproc.cc (sigproc_terminate): Fillout _my_tls.thread_handle to
+ provide something for wait_sig to wait for. Use the siginfo_t version
+ of sig_send and fill out the tls argument with _my_tls.
+ (wait_sig): Wait for the thread specified in pack.tls or (for now)
+ complain bitterly if it doesn't exit.
+ * tlsoffsets.h: Regenerate.
+
+2005-09-22 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (set_myself): Call strace.hello unconditionally when
+ DEBUGGING.
+ (pinfo::init): Sleep and issue debugging output before looping when a
+ PID_EXITED is found.
+
+2005-09-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix copy/paste
+ bug.
+
+2005-09-22 Christopher Faylor <cgf@timesys.com>
+
+ * strace.cc (strace::vsprntf): Avoid accessing myself->pid if !myself.
+
+2005-09-22 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/strace.h (_STRACE_ON): Remove semicolon from definition.
+ (_STRACE_OFF): Remove semicolon from definition.
+
+2005-09-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::fstat_helper): Declare with additional
+ file attributes argument.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use
+ file attributes evaluated from NtQueryFileInformation or
+ FileInformationByHandle in call to fstat_helper.
+ Set pc.fileattr from just evaluated file attributes here.
+ (fhandler_base::fstat_by_name): Use file attributes evaluated from
+ FindFileFirst or default attribute in call to fstat_helper.
+ Set pc.fileattr from just evaluated file attributes here.
+ (fhandler_base::fstat_helper): Use file attributes given as argument,
+ not file attributes stored in this fhandler, since this information
+ is potentially wrong. Add comment to explain this.
+ * path.h (has_attribute): New global inline function.
+ (path_conv::set_attributes): New method to change fileattr.
+
+2005-09-21 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::operator new): Just use getenv() to look for
+ CYGWIN_FREERANGE_NOCHECK since the Windows environment may be truncated
+ by being previously execed.
+
+2005-09-20 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (av::fixup): Just blindly run any file if it has a .bat or
+ .cmd extension.
+
+2005-09-19 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_exit): Only call sigproc_terminate from one location --
+ pinfo::exit.
+ * pinfo.cc (pinfo::exit): Move sigproc_terminate later so that signals
+ can be processed while waiting for hExeced child.
+ (pinfo::maybe_set_exit_code_from_windows): Set exit code from sigExeced
+ if it is non-zero. Set exit_state to ES_EXEC_EXIT prior to waiting for
+ captive process exit code.
+ * exceptions.cc (sigExeced): New global variable.
+ (signal_exit): Remove noreturn attribute from declaration.
+ (signal_exit): Just terminate captive process and return if hExeced on
+ the theory that the exit will be subsequently handled in the main
+ thread.
+ * sigproc.cc (sigproc_terminate): Eliminate test for
+ ES_SIGPROCTERMINATE and use ES_FINAL instead.
+ (sig_send): Use no_signals_available instead of duplicate test.
+ * winsup.h (ES_EXEC_EXIT): New enum.
+ (ES_SIGPROCTERMINATE): Delete.
+
+2005-09-19 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (talktome): Take siginfo_t argument. Don't scan all pids
+ trying to find one that's talking to me. Just use the pid from
+ siginfo_t.
+ (wait_pid): Pass siginfo_t argument to talktome.
+
+2005-09-17 Christopher Faylor <cgf@timesys.com>
+
+ * pipe.cc (fhandler_pipe::open): Use 'cfree' to free buffer since it is
+ now allocated by cmalloc.
+
+2005-09-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (cygwin_inet_ntop): Change len argument to socklen_t to
+ follow SUSv3.
+ * include/arpa/inet.h (inet_ntop): Ditto.
+ * include/cygwin/in.h: Include cygwin/socket.h to get socklen_t.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (build_env): Use "kilo"bytes not "mega"bytes. Return
+ immediately on error.
+ * spawn.cc (spawn_guts): Set return value to -1 on error from
+ build_env.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (build_env): Clear envblock and return NULL on attempt to
+ use env var > 32K.
+ * spawn.cc (spawn_guts): Set E2BIG if build_env detects an error.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (environ_init): Protect with a 'myfault' in case
+ GetEnvironmentStrings misbehaves.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (environ_init): Add debugging output with value returned
+ from GetEnvironmentStrings.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (environ_init): Issue an error if GetEnvironmentStrings
+ fails and return.
+
+2005-09-15 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.h (EXITCODE_SET): Move out of range of Windows error.
+ (EXITCODE_NOSET): Ditto.
+ * sigproc.cc (no_signals_available): Remove check for hwait_sig. Just
+ rely on my_sendsig. Pass in an argument controlling when it is
+ appropriate to test EXITCODE_SET.
+ (proc_can_be_signalled): Remove checks for myself since this function
+ is never called in that context.
+ (sigproc_init): Pre-initialize my_sendsig to non-zero so that
+ proc_can_be_signalled will know that we expect to be signalable soon.
+ (sig_send): Change debugging output.
+
+2005-09-15 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (no_signals_available): Return true if sending to self
+ from the signal thread.
+ (wait_sig): Correct so that WaitForSingleObject is called when
+ hMainThread is != 0, rather than the reverse.
+
+ * cygheap.cc (cygheap_fixup_in_child): Clarify potential error message.
+
+ * fork.cc (fork_copy): Cosmetic change.
+
+2005-09-15 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (wait_sig): Reorganize exit case so that ExitProcess is
+ always called, since that is the intent of sending a __SIGEXIT. Wait
+ forever for main thread to go away since, presumably, the main thread
+ told us it was going away.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (av::fixup): Avoid breaking out of the wrong "loop".
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * hookapi.cc (hook_or_detect_cygwin): Simplify very slightly.
+ * spawn.cc (av::fixup): Guard against problems reading an executable
+ which does not match Microsoft's documentation about PE format.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (av::error): Eliminate.
+ (av::av): Remove reference to error.
+ (av::replace0_maybe): Ditto.
+ (av::dup_maybe): Ditto.
+ (av::dup_all): Ditto.
+ (av::unshift): Ditto.
+ (spawn_guts): On a fault, return E2BIG only if ENOMEM has been set.
+ Otherwise return EFAULT.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (san): New structure.
+ (cygtls::andreas): New element. Replaces _myfault and _myfault_errno.
+ (cygtls::fault_guarded): Use andreas.
+ (cygtls::return_from_fault): Ditto.
+ (cygtls::setup_fault): Add a parameter denoting where to store old
+ fault handler, if any and use it to "stack" faults.
+ (cygtls::reset_fault): Restore fault from parameter.
+ (myfault::sebastian): New variable.
+ (myfault::~myfault): Pass sebastian to reset_fault.
+ (myfault::myfault): Store old fault values in sebastian.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * heap.cc (heap_init): Revert 2005-09-11 patch as it seems to
+ inexplicably cause problems with emacs.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ Remove some more unneeded 'return;'s throughout.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.h: Protect declaration so that it only happens when
+ __INSIDE_CYGWIN__.
+
+2005-09-14 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (sigtid): Remove declaration.
+ (handle_exceptions): Use _sig_tls rather than sigtid to determine if
+ this is the signal thread.
+ (set_signal_mask): Ditto for conditionalized CGF code.
+ * pinfo.cc (pinfo::exit): Exit the thread if we forcefully terminated
+ the main thread.
+ * sigproc.cc (sigtid): Delete.
+ (_sig_tls): Define.
+ (sig_clear): Use _sig_tls rather than sigtid to determine if this is
+ the signal thread.
+ (sig_dispatch_pending): Ditto.
+ (wait_sig): Set _sig_tls here.
+
+2005-09-13 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_exit): Move sigproc_terminate call later since signal
+ handling was still needed for subsequent stuff. Call sigproc_terminate
+ with new exit_state value.
+ * pinfo.cc (pinfo::exit): Call sigproc_terminate with new exit_state
+ value.
+ * sigproc.cc (proc_terminate): Remove unnecessary (void) parameter.
+ (sigproc_terminate): Ditto. Add new argument to accept exit state to
+ be set.
+ (wait_sig): Reorganize __SIGEXIT handling. Add more debugging output.
+ * winsup.h (sigproc_terminate): Declare with new exit_state argument.
+ (exit_states): Reorganize to reflect new exit ordering of
+ sigproc_terminate.
+
+2005-09-13 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_exit): Rely on sigproc_terminate to set exit_state
+ appropriately.
+ * pinfo.cc (pinfo::exit): Always call sigproc_terminate here. Rely on
+ sigproc_terminate to signal signal thread to handle eventual process
+ exit.
+ * sigproc.cc (no_signals_available): Change criteria for determining if
+ this process can handle signals to itself.
+ (my_sendsig): New variable. Copy of my sendsig handle.
+ (proc_can_be_signalled): Don't send signals if exit code is set.
+ (sigproc_terminate): Use and set exit_state appropriately to determine
+ when to do anything. Send __SIGEXIT to self to control process exit.
+ (sig_send): Use my_sendsig for sending signals. Don't call
+ proc_can_be_signalled for myself since the criteria is now different
+ for sending signals to myself.
+ (wait_sig): Copy myself->sendsig to my_sendsig for future use. Exit
+ signal loop when __SIGEXIT is received. Wait for main thread to exit
+ and use its exit status to actually exit process.
+ * sigproc.h (__SIGEXIT): New enum.
+
+2005-09-13 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (alloc_stack): Eliminate superfluous "return;".
+ * debug.cc (add_handle): Ditto.
+ * devices.in (device::parse): Ditto.
+ * dtable.cc (dtable::vfork_parent_restore): Ditto.
+ (dtable::vfork_child_fixup): Ditto.
+ * environ.cc (parse_options): Ditto.
+ * errno.cc (seterrno_from_win_error): Ditto.
+ * exceptions.cc (sig_handle_tty_stop): Ditto.
+ (set_signal_mask): Ditto.
+ * fhandler.cc (fhandler_base::read): Ditto.
+ (fhandler_base::operator delete): Ditto.
+ (fhandler_base::seekdir): Ditto.
+ (fhandler_base::rewinddir): Ditto.
+ * fhandler_console.cc (fhandler_console::read): Ditto.
+ (fhandler_console::fixup_after_exec): Ditto.
+ * sigproc.cc (sigproc_init): Ditto.
+ (sigproc_terminate): Ditto.
+
+ * devices.cc: Regenerate.
+
+2005-09-13 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (wait_sig): Be more defensive about detecting when we're
+ exiting.
+
+2005-09-12 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::cygthread): Add more info to fatal error.
+
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Temporarily
+ remove insertion of /dev into root directory.
+ * path.cc (path_conv::check): Ditto.
+
+2005-09-11 Christopher Faylor <cgf@timesys.com>
+
+ * heap.cc (heap_init): Allocate heap from top down as a hedge against
+ subsequent ERROR_INVALID_ADDRESS in forked processes when CTRL-C is
+ pressed.
+
+2005-09-09 Christopher Faylor <cgf@timesys.com>
+
+ * heap.cc (heap_init): Be slightly more aggressive when trying to
+ allocate heap. Change fatal error message to avoid confusion with
+ cygheap.
+
+ * spawn.cc (linebuf::finish): New function.
+ (linebuf::add): Cosmetic change.
+ (spawn_guts): Only avoid building windows command line if the program
+ being executed was actually mounted with -X. Don't return E2BIG if we
+ hit the 32K size and we're executing a detected cygwin program. Just
+ silently truncate the windows command line, instead.
+
+2005-09-08 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_serial.cc (fhandler_serial::tcgetattr): Just zero c_cflag
+ here rather than clearing CBAUD after the fact.
+ * termios.cc (tcgetattr): Revert previous change.
+
+2005-09-08 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_serial.cc (fhandler_serial::ioctl): Always return 0 for
+ window size.
+ * termios.cc (tcgetattr): Clear out baud part of c_cflag since it is
+ always ignored.
+
+2005-09-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (ctrl_c_handler): Disable any special CTRL_LOGOFF_EVENT
+ handling and add longish comment about the reasons.
+
+2005-09-07 Christopher Faylor <cgf@timesys.com>
+
+ * hookapi.cc (rvadelta): Change argument to DWORD to eliminate a
+ compiler warning.
+
+ * path.h (path_conv::set_cygexec): New function.
+ * spawn.cc (av::iscygwin): Eliminate.
+ (av::av): Don't initialize iscygwin.
+ (spawn_guts): Just use real_path.iscygexec for all tests.
+ (av::fixup): Short circuit test if .exe extension and known cygexec.
+ Set cygexec flag appropriately if we find that program uses cygwin1.dll.
+
+2005-09-06 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (initial_env): Don't attempt stracing if dynamically loaded.
+ (dll_crt0_0): Move console initialization earlier.
+ * init.cc (dll_entry): Move console initialization here.
+ * exceptions.cc (init_console_handler): Fully remove any old console
+ handler.
+ (handle_sigsuspend): Make cancelable when called from non-main thread.
+
+ * spawn.cc (spawn_guts): Don't fill out windows argv if we've deduced
+ that this is a cygwin-using program.
+ (av::fixup): Always check executables to see if they are using
+ cygwin1.dll. Don't consider .com files to be scripts.
+ * hookapi.cc (rvadelta): New function.
+ (PEHeaderFromHModule): Simplify slightly.
+ (hook_or_detect_cygwin): Use passed in name argument for "HMODULE"
+ rather than incorrectly reading current program. Calculate delta
+ needed to read image data and file names if this isn't a real
+ "HMODULE".
+
+2005-09-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * thread.h: Revert patch from 2005-09-05.
+ * thread.cc (pthread_mutex::can_be_unlocked): Return true also if
+ mutex is owned by MUTEX_OWNER_ANONYMOUS.
+
+2005-09-05 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.cc (cygheap_init): Eliminate debugging #if.
+
+ * fork.cc (fork_parent): Don't issue errors if "somebody" has set the
+ PID_EXITED flag on a child. Don't close process handle if it has
+ potentially already been closed.
+ * pinfo.cc (winpids::add): Eliminate PID_ALLPIDS handling which was
+ obsoleted by previous changes.
+
+ * spawn.cc (av::fixup): Do win16 detection for .com files. Make sure
+ that buffer has been unmapped in all cases.
+
+2005-09-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * thread.h (pthread_mutex::get_pthread_self): Remove.
+ (pthread_mutex::lock): Use ::pthread_self as self parameter.
+ (pthread_mutex::trylock): Ditto.
+ (pthread_mutex::unlock): Ditto.
+ (pthread_mutex::destroy): Ditto.
+
+2005-09-02 Dave Korn <dave.korn@artimi.com>
+
+ * Makefile.in (CXXFLAGS): Use 'override' to correctly set flags to
+ generate dependencies when invoked from top-level make.
+
+2005-08-28 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (set_process_mask_delta): Conditionalize debugging
+ output.
+ * sigproc.cc (proc_subproc): Make strace output a little more verbose.
+
+2005-08-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (__ljfault): Declare.
+ (_cygtls::return_from_fault): Use __ljfault.
+ * exceptions.cc (set_signal_mask): Revert previous checkin.
+ * gendef (__sjfault): Split out into a separate function which doesn't
+ bother with any special signal locking.
+ (_ljfault): Return from a __sjfault without bothering with signals.
+
+2005-08-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_local_storage::strerror_buf): Allocate more space.
+ * errno.cc (strerror_worker): New function, adapted from strerror.
+ (strerror): Use strerror_worker.
+ * tlsoffsets.h: Regenerate.
+
+ * exceptions.cc (set_signal_mask): Minimize time during which mask_sync
+ is held.
+
+2005-08-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.din: Correct readdir_r typo.
+
+2005-08-27 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
+
+ * dir.cc (readdir_r): Invert sense on error test.
+
+2005-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (normalize_posix_path): Keep two leading slashes
+ intact throughout.
+ (normalize_win32_path): Revert to only checking for slash.
+ (realpath): Convert drive letters to cygdrive paths before
+ doing anything else.
+ * shared_info.h (mount_info::cygdrive_posix_path): Make public.
+
+2005-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (realpath): Drop call to mount_info::conv_to_posix_path
+ in favor of calling path_conv with PC_POSIX flag. Align error
+ handling closer to POSIX. As on Linux, return user space allocated
+ memory if second parameter is NULL.
+
+2005-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (normalize_win32_path): Honor network paths. Fold more
+ than two leading dir separators into one. Check for dir separator
+ instead of just slashes to handle incoming Win32 paths correctly.
+
+2005-08-25 Christopher Faylor <cgf@timesys.com>
+
+ * errno.cc (errmap): Translate ERROR_NO_MORE_ITEMS to ENMFILE.
+
+2005-08-24 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (handle_sigsuspend): Just sleep forever if called from
+ non-main thread.
+ (sigpacket:process): Simplify logic which determines when and how a
+ signal is masked. Don't trigger sigwait if there is a signal handler.
+ * sigproc.cc (wait_sig): Update comment. Try to process a signal which
+ is in the queue if it isn't queued for the target thread (this is still
+ not right).
+
+2005-08-24 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (perhaps_suffix): Record errno-type error value in third
+ argument.
+ (find_exec): On error, set errno returned from perhaps_suffix.
+ (spawn_guts): Ditto.
+
+2005-08-24 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_virtual.cc (fhandler_virtual::close): Don't free filebuf if
+ it's NULL.
+ * pinfo.cc (_pinfo::commune_send): Fix test for incorrect number of
+ bytes read from pipe.
+
+2005-08-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (endusershell): Reset shell_fp to NULL to allow
+ subsequent getusershell calls.
+
+2005-08-24 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Fill in fileattr for /dev, defaulting to
+ directory if /dev doesn't actually exist.
+ (win32_device_name): Don't consider FH_DEV to be a device since it's
+ really a directory which should go through mount processing.
+
+2005-08-24 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h (cygheap_types): Add HEAP_COMMUNE.
+ * fhandler_proc.cc: Use cygheap rather than user heap for allocation of
+ filebuf throughout.
+ * fhandler_registry.cc: Ditto.
+ * fhandler_virtual.cc: Ditto.
+ * fhandler_process.cc: Ditto.
+ (get_mem_values): Use malloc/realloc/free rather than new.
+ * pinfo.cc (_pinfo::commune_send): Allocate on cygwin heap rather than
+ user heap. Avoid calling ReadFile when correct number of characters
+ have been read or suffer buffer corruption.
+ (_pinfo::fd): Allocate on cygwin heap rather than user heap.
+ (_pinfo::fds): Ditto.
+ (_pinfo::root): Ditto.
+ (_pinfo::cwd): Ditto.
+ (_pinfo::cmdline): Ditto.
+
+ * devices.h (FH_DEV): New define.
+ * devices.in: Detect lone /dev.
+ * devices.cc: Regenerate.
+ * path.cc (path_conv::check): Treat FH_DEV as a special case.
+
+2005-08-23 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.h (set_signal_mask): Remove default on second parameter and
+ make pass by reference.
+ * signal.cc (abort): Accommodate change to set_signal_mask.
+ * select.cc (pselect): Ditto.
+ * exceptions.cc (handle_sigsuspend): Ditto.
+ (ctrl_c_handler): Ditto.
+ (sighold): Ditto.
+ (sigrelse): Ditto.
+ (set_process_mask_delta): Ditto.
+ (_cygtls::call_signal_handler): Ditto.
+
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Return ENMFILE
+ if __handle is not set. Set __handle to NULL when out of files.
+ (fhandler_disk_file::rewinddir): Don't close handle if it's NULL.
+ (fhandler_disk_file::closedir): Ditto.
+
+2005-08-22 Christopher Faylor <cgf@timesys.com>
+
+ * dir.cc (readdir_worker): Make static. Only add '.' and '..' when
+ readdir fails due to ENMFILE.
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Only close
+ handle on error != ENMFILE.
+
+2005-08-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * mtinfo.h (mtinfo_drive::error): Fix argument bug in debug_printf call.
+
+2005-08-20 Christopher Faylor <cgf@timesys.com>
+
+ * cygerrno.h (geterrno_from_win_error): Change declaration to default
+ to using GetLastError and EACCESS.
+ * cygwin.din: Export readdir_r.
+ * include/cygwin/version.h: Bump API version number to 138.
+ * syscalls.cc (readdir_worker): New function, renamed from old
+ readdir() function.
+ (readdir): Use readdir_worker.
+ (readdir_r): New function.
+ * fhandler.h (fhandler_base::readdir): Accommodate second argument
+ indicating dirent buffer.
+ (fhandler_disk_file::readdir): Ditto.
+ (fhandler_cygdrive::readdir): Ditto.
+ (fhandler_proc::readdir): Ditto.
+ (fhandler_netdrive::readdir): Ditto.
+ (fhandler_registry::readdir): Ditto.
+ (fhandler_process::readdir): Ditto.
+ * fhandler.cc (fhandler_base::readdir): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
+ * fhandler_cygdrive.cc (fhandler_cygdrive::readdir): Ditto.
+ * fhandler_proc.cc (fhandler_proc::readdir): Ditto.
+ * fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto.
+ * fhandler_registry.cc (fhandler_registry::readdir): Ditto.
+ * fhandler_process.cc (fhandler_process::readdir): Ditto.
+ * include/sys/dirent.h (readdir_r): Add declaration.
+
+2005-08-19 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (dirent_states): Add dirent_saw_proc.
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fill in "proc"
+ if it is the root dir and it is missing.
+
+2005-08-19 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (dirent_states): Add dirent_isroot, dirent_saw_cygdrive,
+ dirent_saw_dev.
+ * dir.cc (opendir): Don't zero __flags here. Push that responsibility
+ to opendir methods.
+ (seekdir): Preserve dirent_isroot in __flags.
+ (rewinddir): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
+ dirent_isroot appropriately.
+ (fhandler_disk_file::readdir): Fill in "cygdrive" and "dev" if it is
+ the root dir and they are missing.
+ * fhandler_process.cc (fhandler_process::opendir): Set __flags here.
+ * fhandler_virtual.cc (fhandler_virtual::opendir): Set __flags here.
+
+2005-08-19 Christopher Faylor <cgf@timesys.com>
+
+ * winsup.h (create_pipe): Declare new function.
+ (CreatePipe): New define.
+ * miscfuncs.cc (create_pipe): Define new function.
+
+2005-08-18 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_tty_common::lseek): Declare new method.
+ (fhandler_tty_slave::lseek): Delete old method.
+ (fhandler_tty_master::lseek): Delete old method.
+ * fhandler_tty.cc (fhandler_tty_common::lseek): Define new method.
+
+2005-08-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize
+ ret to 0.
+ (fhandler_socket::recvmsg): Ditto.
+
+2005-08-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * errno.cc (strerror): Check errnum for underflow.
+
+2005-08-17 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (dll_crt0_1): Tweak debugging stuff.
+
+2005-08-17 Pavel Tsekov <ptsekov@gmx.net>
+
+ * fhandler_tty.cc (fhandler_tty_common::close): Rearrange the code so
+ that the master end of the input and output pipes is closed before
+ signalling an EOF event to the slave.
+ (fhandler_pty_master::close): Likewise.
+
+2005-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * init.cc (respawn_wow64_process): Make inline function. Remove
+ "noreturn" attribute. Add additional check if parent process is
+ actually a 64 bit process.
+ (dll_entry): Only test WOW64 processes with a stack in the usual
+ "dangerous" process space area.
+
+2005-08-11 Troy Curtiss <trcurtiss@gmail.com>
+
+ * fhandler_serial.cc (fhandler_serial::tcgetattr): Return current baud
+ rate regardless of current DTR state.
+
+2005-08-11 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc: Remove ld_preload declaration.
+ * winsup.h: Move ld_preload declaration here.
+ * fork.cc (fork_child): Call ld_preload() before returning.
+
+2005-08-11 Christopher Faylor <cgf@timesys.com>
+
+ * child_info. (CURR_CHILD_INFO_MAGIC): Refresh.
+ (child_info::child_info()): New constructor.
+ (child_info_spawn::child_info_spawn()): Ditto.
+ (child_info_spawn::operator new): New operator.
+ (child_info_spawn::set): New function.
+ * spawn.cc (av()): New constructor.
+ (av::operator new): New operator.
+ (av::set): New function.
+ (spawn_guts): Reorganize so that classes which allocate are defined
+ early in the function so that it can be properly cleaned up after an
+ efault. Set errno to E2BIG in the event of a SEGV situation.
+
+2005-08-08 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/cdefs.h: Remove extra line.
+
+2005-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (get_reg_security): New static function.
+ (get_nt_object_security): Call get_reg_security for registry keys
+ to circumvent problems with predefined registry keys.
+
+2005-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc (fhandler_process::open): Allow opening of
+ /proc/<pid>/fd for reading.
+ * fhandler_registry.cc (fhandler_registry::open): Ditto for registry
+ keys.
+
+2005-08-08 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/cdefs.h (__CONCAT): Define.
+ * include/elf.h: New file.
+ * include/sys/elf32.h: Ditto.
+ * include/sys/elf64.h: Ditto.
+ * include/sys/elf_common.h: Ditto.
+ * include/sys/elf_generic.h: Ditto.
+
+2005-08-08 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Use simpler method to align .cygheap.
+ * dllfixdbg: Just copy .stab and .stabstr sections when making
+ cygwin1.dbg, rather than relying on objcopy to keep only the debug
+ sections since objcopy seems to get it wrong.
+
+2005-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (build_fh_pc): Check setting fh to fhandler_nodevice for
+ NULL, too.
+
+2005-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * ftw.c: Include winsup.h.
+ * nftw.c: Ditto.
+ * include/ftw.h: Guard declarations appropriately.
+
+2005-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (DLL_OFILES): Add fts.o, ftw.o, nftw.o.
+ * cygwin.din: Export fts_children, fts_close, fts_get_clientptr,
+ fts_get_stream, fts_open, fts_read, fts_set, fts_set_clientptr,
+ ftw, nftw.
+ * fts.c: New file, imported from FreeBSD.
+ * ftw.c: Ditto.
+ * nftw.c: Ditto.
+ * include/fts.h: Ditto.
+ * include/ftw.h: Ditto.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-08-07 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in (dtable_CFLAGS): Use -fomit-frame-pointer and
+ -fcheck-new.
+ * cygheap.cc (cmalloc): Only emit system_printf warnings on failure if
+ DEBUGGING.
+ (crealloc): Ditto.
+ (ccalloc): Ditto.
+ * dtable.cc (build_fh_name): Treat NULL return from cnew as indicative
+ of EMFILE condition.
+ (build_fh_dev): Ditto.
+ (dtable::dup_worker): Handle NULL return from build_fh_pc.
+ (dtable::vfork_child_dup): Trust dup_worker to set errno.
+ * fhandler.h (fhandler_base::new): Mark as nothrow.
+
+2005-08-07 Christopher Faylor <cgf@timesys.com>
+
+ * dllfixdbg: New perl script.
+ * configure.in: Detect objcopy, objdump, strip.
+ * configure: Regenerate.
+ * Makefile.in: Pass target objcopy/objdump to new dllfixdbg script.
+ Remove previous perl check.
+ * cygwin.sc: Add .gnu_debuglink_overlay section for eventual
+ replacement with .gnu_debuglink section. Revert move of cygheap to end
+ of image.
+
+2005-08-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in: Allow previous patch to work in a 64 bit environment.
+
+2005-08-06 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in: Warn when end of cygheap is not on 64k boundary.
+ * cygwin.sc: Try harder to ensure that cygheap is on a 64k boundary.
+ Move cygheap to end of image to stop interference from unstripped debug
+ regions.
+
+2005-08-06 Christopher Faylor <cgf@timesys.com>
+
+ * include/endian.h: Move everything into this file and define things
+ more like linux.
+ * include/cygwin/types.h: Include endian.h.
+ * include/sys/dirent.h: Define DT_* types and conversion macros.
+
+ * pinfo.cc (pinfo::init): Remove special handling for PID_ALLPIDS and
+ execed code, even though it probably still isn't quite right.
+
+2005-08-05 Michael Gorse <mgorse@alum.wpi.edu>
+
+ * thread.cc (pthread::create(3 args)): Make bool.
+ (pthread_null::create): Ditto.
+ (pthread::create(4 args)): Check return of inner create rather than
+ calling is_good_object().
+ * thread.h: Ditto.
+
+2005-08-05 Vaclav Haisman <v.haisman@sh.cvut.cz>
+
+ * fhandler_tty.cc (fhandler_tty_slave::tcflush): Return either 0 or -1.
+
+2005-08-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * thread.cc (pthread_cond_timedwait): Check abstime for validity
+ according to SUSv3. Rewrite timeout check and waitlength calculation
+ to avoid overflow problems.
+
+2005-08-02 Yitzchak Scott-Thoennes <sthoenna@efn.org>
+
+ * include/sys/termios.h: Define TIOCMBIS and TIOCMBIC.
+ * fhandler.h (class fhandler_serial): Declare switch_modem_lines.
+ * fhandler_serial.cc (fhandler_serial::switch_modem_lines): New
+ static function to set or clear DTR and/or RTS.
+ (fhandler_serial::ioctl): Use switch_modem_lines for TIOCMSET
+ and new TIOCMBIS and TIOCMBIC.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-07-29 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_disk_file.cc (fhandler_base::pread): Don't move file offset
+ pointer after I/O.
+ (fhandler_base::pwrite): Ditto.
+
+2005-07-29 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_base::pread): Declare new function.
+ (fhandler_base::pwrite): Ditto.
+ (fhandler_disk_file::pread): Ditto.
+ (fhandler_disk_file::pwrite): Ditto.
+ * fhandler.cc (fhandler_base::pread): Define new function.
+ (fhandler_base::pwrite): Ditto.
+ * fhandler_disk_file.cc (fhandler_base::pread): Ditto.
+ (fhandler_base::pwrite): Ditto.
+ * syscalls.cc (pread): Define new function.
+ (pwrite): Ditto.
+ * cygwin.din: Export pread, pwrite.
+
+ * include/sys/ioctl.h: Guard some _IO* declarations to avoid conflict
+ with socket.h.
+
+2005-07-29 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/ioctl.h: Add some linux defines.
+
+2005-07-29 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Put back accidentally removed debug_printf.
+
+2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
+
+ * cygthread.cc (cygthread::simplestub): Wait for h to be filled out
+ by main thread before assigning it.
+
+2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
+
+ * pinfo.cc (pinfo::init): Sleep before retrying open_shared().
+
+2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
+
+ * fork.cc (fork_parent): Fix null deref if pinfo creation fails.
+
+2005-07-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygmalloc.h (MSPACES): Define. This dropped through the cracks after
+ the last malloc update.
+ * dcrt0.cc: Fix a comment.
+ * malloc.cc (internal_malloc): Fix definition so that it can be safely
+ coerced.
+
+2005-07-27 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/in.h (INET_ADDRSTRLEN): Add new definition.
+
+2005-07-27 Christopher Faylor <cgf@timesys.com>
+
+ * gendef: Use nocr to remove \r's from input.
+ gendef (nocr): New function.
+
+2005-07-27 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_clipboard.cc (fhandler_dev_clipboard::close): Set membuffer
+ to NULL.
+ (fhandler_dev_clipboard::fixup_after_exec): Don't call close here.
+ Just set variables directly.
+
+2005-07-25 Christopher Faylor <cgf@timesys.com>
+
+ * include/byteswap.h: New file.
+
+2005-07-25 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/types.h: Define loff_t.
+
+2005-07-16 Christopher Faylor <cgf@timesys.com>
+
+ * child_info.h (child_info::sync): Pass pid and HANDLE rather than
+ using pinfo.
+ (child_info::child_info): Accept an argument controlling whether to
+ create proc_subproc.
+ (child_info_spawn::child_info_spawn): Ditto.
+ * sigproc.cc (child_info::child_info): Ditto.
+ (child_info_spawn::child_info_spawn): Ditto.
+ (child_info::sync): Use passed in pid and HANDLE.
+ * fork.cc (fork_parent): Reflect additional arguments required for
+ child_info::sync.
+ * hookapi.cc (hook_or_detect_cygwin): Rename. Change so that NULL 'fn'
+ argument just returns "true", indicating that program uses cygwin1.dll.
+ * spawn.cc (av::win16_exe): New element.
+ * spawn.cc (av::iscygwin): New element.
+ (av::fixup): New function.
+ (spawn_guts): Protect against SEGV. Use fixup function to detect when
+ it is safe to wait for a spawned (as opposed to an execed) program.
+ Reflect changes in child_info::sync arguments.
+ * external.cc (cygwin_internal): Reflect function renaming to
+ hook_or_detect_cygwin.
+
+ * cygheap.cc (cygheap_fixup_in_child): Close handle after debug fixup
+ has been done to prevent false positives in handle collision.
+
+ * exceptions.cc (try_to_debug): Notify debugger if already being
+ debugged.
+
+2005-07-09 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (mount): Only check win32_path when we know we need it.
+
+2005-07-09 Nicholas Wourms <nwourms@gmail.com>
+
+ * cygwin.din (getline): Export.
+ (getdelim): Export.
+ * include/sys/stdio.h (getline): Replace macro with function prototype.
+ (getdelim): Likewise.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-07-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (__getline): Export.
+ (__getdelim): Export.
+ * include/sys/stdio.h (getline): Define as __getline.
+ (getdelim): Define as __getdelim.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-07-06 Christopher Faylor <cgf@timesys.com>
+
+ Eliminate (void) cast on standalone function calls throughout.
+
+2005-07-05 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (cygwin_exit): Mark as "noreturn".
+ * sigproc.cc (child_info::ready): Don't signal parent that we are a
+ cygwin process if we are dynamically loaded.
+
+2005-07-05 Christopher Faylor <cgf@timesys.com>
+
+ * malloc.cc: Update to version 2.8.2.
+
+2005-07-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tape.cc (fhandler_dev_tape::close): Don't do "extra stuff"
+ when we know we're execing.
+
+2005-07-04 Christopher Faylor <cgf@timesys.com>
+
+ Change foo (void) to foo () for all c++ functions throughout.
+ Remove all fhandler_*::dump functions throughout.
+
+ * fhandler.h (fhandler_dev_mem::close): Remove pass-through function in
+ favor of virtual method.
+ (handler_dev_raw::close): Ditto.
+ (fhandler_dev_clipboard::fixup_after_exec): New method.
+ * fhandler_dev_mem.cc (fhandler_dev_mem::close): Eliminate pass through
+ function in favor of virtual method.
+ * fhandler_dev_raw.cc (fhandler_dev_raw::close): Ditto.
+ * fhandler_clipboard.cc (fhandler_dev_clipboard::close): Don't go to
+ extra effort when execing.
+ (fhandler_dev_clipboard::fixup_after_exec): New function.
+ * fhandler_console.cc (fhandler_console::close): Don't do "extra stuff"
+ when we know we're execing.
+ * fhandler_disk_file.cc (fhandler_disk_file::close): Ditto.
+ * fhandler_dsp.cc (fhandler_dev_dsp::close): Ditto.
+ * fhandler_fifo.cc (fhandler_fifo.cc::close): Ditto. function in favor
+ of base function.
+ * fhandler_random.cc (fhandler_dev_random::close): Ditto.
+ * fhandler_registry.cc (fhandler_registry::close): Ditto.
+ * fhandler_tty.cc (fhandler_tty_slave::close): Ditto.
+ * fhandler_virtual.cc (fhandler_virtual::close): Ditto.
+
+ * pinfo.cc (proc_waiter): Remove unneeded hExeced declaration.
+ * sigproc.cc: Ditto.
+ * winsup.h (hExeced): Define here.
+
+ * fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Just call
+ close() to reinitialize things to known state.
+
+2005-07-04 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_cygtls): Perform minor reformatting.
+
+ * winsup.h (close_all_files): Reflect argument change.
+ * dtable.cc (close_all_files): Ditto.
+ * dtable.h: Ditto.
+ * fhandler.h: Ditto.
+ * spawn.cc (spawn_guts): Move close_all_files back to its original
+ location in first P_OVERLAY test but use argument denoting that handles
+ are only supposed to be closed, not released (more work to be done
+ here).
+ * syscalls.cc (close_all_files): Take an argument denoting whether to
+ release closed files or not.
+
+ * path.cc (symlink): Change argument names to reflect linux man page.
+ (symlink_worker): Ditto. Also appropriately set ENOENT for empty
+ strings.
+
+
+2005-07-04 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * cygheap.h (struct init_cygheap): Delete cygwin_regname member.
+ * external.cc (cygwin_internal): Use cygpsid::get_id for
+ CW_GET_UID_FROM_SID and CW_GET_GID_FROM_SID.
+ Turn CW_SET_CYGWIN_REGISTRY_NAME and CW_GET_CYGWIN_REGISTRY_NAME
+ into noops.
+
+2005-07-03 Christopher Faylor <cgf@timesys.com>
+
+ * thread.cc (pthread_mutex::init): Remove unneeded efault/mutex check.
+
+2005-07-02 Christopher Faylor <cgf@timesys.com>
+
+ * thread.h (verifyable_object_state verifyable_object_isvalid): Delete
+ function declaration that should have been static.
+ * thread.cc (verifyable_object_state verifyable_object_isvalid): Make
+ inline static.
+ (pthread*::is_good_object): Move to directly after
+ verifyable_object_state verifyable_object_isvalid and make inline.
+ (check_valid_pointer): Delete function.
+ (pthread_cond_timedwait): Use myfault to detect valid pointer.
+ (pthread_mutex::init): Ditto.
+
+2005-07-02 Christopher Faylor <cgf@timesys.com>
+
+ Replace valid memory checks with new myfault class "exception
+ handling", almost everywhere. Leave some thread.cc stuff alone for
+ now.
+ * cygtls.h: Kludge some definitions to avoid including a problematic
+ windows header.
+ (_cygtls::_myfault): New entry.
+ (_cygtls::_myfault_errno): Ditto.
+ (_cygtls::fault_guarded): New function.
+ (_cygtls::setup_fault): Ditto.
+ (_cygtls::return_from_fault): Ditto.
+ (_cygtls::clear_fault): Ditto.
+ (myfault): New class.
+ * exceptions.cc (handle_exceptions): Handle case of guarded fault in
+ system routine.
+ * gendef: Add another entry point for setjmp that the compiler doesn't
+ know about and won't complain about.
+ * gentls_offsets: Just include windows.h rather than kludging a HANDLE
+ def.
+ * miscfuncs.cc (check_null_str): Delete.
+ (check_null_empty_str): Ditto.
+ (check_null_empty_str_errno): Ditto.
+ (check_null_str_errno): Ditto.
+ (__check_null_invalid_struct): Ditto.
+ (__check_null_invalid_struct_errno): Ditto.
+ (__check_invalid_read_ptr): Ditto.
+ (__check_invalid_read_ptr_errno): Ditto.
+ (dummytest): New function.
+ (check_iovec_for_read): Delete.
+ (chec_iovec): Rename from check_iovec_for_write. Take a read/write
+ parameter.
+ * tlsoffsets.h: Regenerate.
+ * winsup.h: Remove check_* declarations.
+ (check_iovec_for_read): Delete declaration. Turn into a define
+ instead.
+ (check_iovec_for_write): Ditto.
+ (check_iovec): New declaration.
+
+ * thread.h: Use ifdef guard name consistent with other header files.
+
+2005-07-02 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 19.
+
+2005-06-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::readv): Use malloc/free instead of alloca.
+ (fhandler_base::writev): Ditto.
+
+2005-06-29 Christopher Faylor <cgf@timesys.com>
+
+ * cygerrno.h: Make multi-inclusion safe.
+ * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Deal with EINTR.
+ * dcrt0.cc (dll_crt0_0): Accommodate init_console_handler argument
+ change.
+ * winsup.h: Ditto.
+ * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
+ * exceptions.cc (init_console_handler): Ditto. Ignore console events
+ if we're not attached to a terminal.
+ * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
+ * wincap.cc: Implement has_null_console_handler_routine throughout.
+ * wincap.h: Ditto.
+
+2005-06-29 Christopher Faylor <cgf@timesys.com>
+
+ * autoload.cc (LoadDLLprime): Use a more descriptive name for autoload
+ text sections.
+ * cygwin.sc: Ditto.
+
+2005-06-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::facl): Add missing break.
+
+2005-06-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Don't strip trailing dots and spaces
+ at the start of the path.
+
+2005-06-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (rootdir): Don't set errno.
+ * syscalls.cc (statvfs): Set errno to ENOTDIR if rootdir() failed.
+
+2005-06-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_dev_tape): Add declaration for
+ fixup_after_fork and set_close_on_exec.
+ * fhandler_tape.cc (fhandler_dev_tape::open): Create mt_mtx mutex
+ inheritable.
+ (fhandler_dev_tape::close): Close mt_mtx.
+ (fhandler_dev_tape::dup): Duplicate mt_mtx and mt_evt as necessary.
+ (fhandler_dev_tape::fixup_after_fork): New method.
+ (fhandler_dev_tape::set_close_on_exec): New method.
+
+2005-06-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (get_initgroups_sidlist): Drop special_pgrp parameter.
+ (get_setgroups_sidlist): Avoid duplicate groups in group list.
+ (create_token): Remove special_pgrp local variable. Accommodate
+ change to get_initgroups_sidlist call.
+
+2005-06-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (uinfo_init): Call reimpersonate to set the main thread's
+ impersonation token.
+
+2005-06-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_partitions): Only list recognized
+ partitions. Use partition number given by PartitionNumber member.
+
+2005-06-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * glob.c: (glob0): New local variable `limit`. Use in calls to glob1
+ and globextend.
+ (glob1): Add `limit' parameter.
+ (glob2): Ditto.
+ (glob3): Ditto.
+ (globextend): Ditto. Implement GLOB_LIMIT handling.
+ * include/glob.h (GLOB_LIMIT): New define.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-06-17 Christopher Faylor <cgf@timesys.com>
+
+ * wincap.h (wincaps::detect_win16_exe): Declare.
+ (wincapc::detect_win16_exe): Implement.
+ * wincap.cc: Populate detect_win16_exe where appropriate.
+ * spawn.cc (spawn_guts): Only go out of the way to detect 16-bit apps
+ on systems which are flummoxed by them.
+
+2005-06-17 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (spawn_guts): Detect when executing a 16-bit application and
+ avoid setting the process pipe since this causes conniptions in Windows
+ 9x.
+
+2005-06-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (inet_pton): Export.
+ (inet_ntop): Export.
+ * net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now.
+ (cygwin_inet_ntop): Implement inet_ntop for AF_INET for now.
+ * include/arpa/inet.h (inet_pton): Declare.
+ (inet_ntop): Declare.
+ * include/cygwin/version.h: Bump API minor number.
+
+2005-06-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_union): Add missing members corresponding to
+ fhandler_fifo and fhandler_netdrive.
+
+2005-06-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (statvfs): Handle the case when GetDiskFreeSpaceEx
+ succeeds but GetDiskFreeSpace fails by faking bytes-per-sector and
+ sectors-per-cluster values.
+
+2005-06-15 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::detach): Fix debugging output.
+ * dcrt0.cc (dll_crt0_1): Create signal_arrived early -- before any
+ filename manipulation.
+ * sigproc.cc (sigproc_init): Don't create signal_arrived here.
+ * fork.cc (fork_child): Ditto.
+ * sigproc.h (create_signal_arrived): Declare.
+
+2005-06-14 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Always reset to FH_FS when component != 0
+ and FH_NETDRIVE to fix problems with strict case checking.
+
+2005-06-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvmsg): Avoid SEGV in OpenSSH
+ when trying to pass file descriptor by setting msg->msg_accrightslen
+ to 0.
+
+2005-06-11 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in: Avoid initial heap allocation since cygwin has its own
+ heap.
+
+2005-06-11 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_console.cc (fhandler_console::read): Fix a compiler warning.
+
+2005-06-10 Christopher Faylor <cgf@timesys.com>
+
+ * include/pthread.h: Change PTHREAD_MUTEX_DEFAULT to
+ PTHREAD_MUTEX_NORMAL. Revert PTHREAD_MUTEX_INITIALIZER to
+ PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP since that is actually closer
+ to what linux does.
+ * thread.h (cw_cancel_action): New enum.
+ (cancelable_wait): Use cw_cancel_action as third argument.
+ * thread.cc (cancelable_wait): Ditto. Don't wait for cancel if
+ cancel_action == cw_no_cancel.
+ (pthread::create): Don't wait for cancel event since that is racy.
+ (pthread_mutex::pthread_mutex): Set default to PTHREAD_MUTEX_ERRORCHECK.
+ (pthread_mutexattr::pthread_mutexattr): Ditto.
+ (pthread_mutex::_lock): Tell cancelable_wait not to wait for
+ cancellation event.
+ (semaphore::_timedwait): Accommodate change in cancelable_wait args.
+ (pthread::join): Ditto.
+
+2005-06-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::sendto): Always initialize
+ ret to 0.
+ (fhandler_socket::sendmsg): Ditto.
+
+2005-06-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (imaxabs): Export.
+ (imaxdiv): Export.
+ (llabs): Export.
+ (lldiv): Export.
+ (strtoimax): Export.
+ (strtoumax): Export.
+ * include/inttypes.h (imaxabs): Activate declaration.
+ (imaxdiv): Ditto.
+ (strtoimax): Ditto.
+ (strtoumax): Ditto.
+ * include/cygwin/version.h: Bump API minor.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::detach): Improve diagnostics for what should
+ be an impossible failure condition.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_local_storage::setmode_file): New element.
+ (_local_storage::setmode_mode): New element.
+ * tlsoffsets.h: Regenerate.
+ * cygwin.din (setmode): Define as cygwin_getmode.
+ * syscalls.cc (setmode_helper): Use setmode_* variables from tls rather
+ than using unthreadsafe static.
+ (setmode): Break out fwalk stuff.
+ (cygwin_setmode): New function. Put fwalk stdio stuff here.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * thread.cc (pthread_mutex::_lock): Use cancelable_wait rather than
+ WaitForSingleObject.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Place .cygwin_dll_common in a more sensible spot.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Place .cygwin_dll_common.
+ * init.cc (threadfunc_ix): Use a more common name for the section name.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * include/pthread.h (PTHREAD_MUTEX_INITIALIZER): Change to
+ PTHREAD_NORMAL_MUTEX_INITIALIZER_NP to be closer to linux default.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ * thread.cc (cancelable_wait): No-op change to make sure that res is
+ always a valid WFMO return.
+
+2005-06-09 Christopher Faylor <cgf@timesys.com>
+
+ Change pthread::cancelable_wait to just cancelable_wait, throughout.
+ * thread.h (cw_sig_wait): New enum.
+ (fast_mutex::lock): Use cancelable_wait with resumable signal.
+ (cancelable_wait): Change fourth argument to cw_sig_wait enum.
+ * thread.cc (cancelable_wait): Ditto. Loop on signal detection if
+ fourth argument == cw_sig_resume.
+
+2005-06-08 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Apparently nonloading sections need to go last.
+
+2005-06-08 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Restore resource and reloc sections and use more modern
+ syntax for stabs sections.
+
+2005-06-08 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (spenvs): Remove cut/paste error which associated
+ CYGWIN_DEBUG with HOME.
+
+2005-06-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (cygwin_logon_user): Run LogonUser in the primary
+ process token context. Fix potential handle leak.
+
+2005-06-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * pinfo.cc (pinfo::init): Define sa_buf as PSECURITY_ATTRIBUTES and
+ allocate dynamically.
+ (pinfo::set_acl): Replace sa_buf by dynamically allocated acl_buf.
+ * sec_acl.cc (setacl): Allocate acl dynamically.
+ * sec_helper.cc (sec_acl): Add test for alignment of acl when
+ DEBUGGING is defined.
+ (__sec_user): Same for sa_buf.
+ * security.cc (verify_token): Define sd_buf as PSECURITY_DESCRIPTOR
+ and allocate dynamically.
+ (alloc_sd): Allocate acl dynamically.
+ security.h (sec_user_nih): Change first parameter to
+ SECURITY_ATTRIBUTES *.
+ (sec_user): Ditto.
+ * sigproc.cc (wait_sig): Define sa_buf as PSECURITY_ATTRIBUTES and
+ allocate dynamically.
+ * syscalls.cc (seteuid32): Define dacl_buf as PACL and allocate
+ dynamically.
+ * uinfo.cc (cygheap_user::init): Define sa_buf as PSECURITY_ATTRIBUTES
+ and allocate dynamically.
+ * winbase.h (ilockincr): Mark first argument of inline assembly as
+ earlyclobber.
+ (ilockdecr): Ditto.
+
+2005-06-07 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::detach): Make error message a little more
+ detailed.
+ * fhandler.cc (fhandler_base::raw_read): Ditto for debug message.
+ * dcrt0.cc (do_exit): Add some more synchronization tests.
+ * fhandler_fifo.cc (fhandler_fifo::dup): Don't duplicate a nonexistent
+ handle. Use derived return value rather than always retuning 0.
+ * fhandler_netdrive.cc (fhandler_netdrive::exists): Wnet -> WNet.
+ * winsup.h (exit_states): Add a couple of new exit states.
+
+2005-06-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink_info::check): If GetFileAttributes returns
+ with ERROR_SHARING_VIOLATION, the file exists.
+
+2005-06-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * uname.cc (uname): Change "amd64" to "x86_64" as on Linux.
+
+2005-06-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * uname.cc (uname): Add missing break.
+
+2005-06-05 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in: Build sync.o with -fomit-frame-pointer and -O3.
+
+2005-06-05 Christopher Faylor <cgf@timesys.com>
+
+ * sync.cc (muto::acquire): Remove unneeded brackets and fix whitespace.
+
+2005-06-04 Christopher Faylor <cgf@timesys.com>
+
+ * malloc.cc: Update to Doug Lea's malloc v2.8.0.
+
+2005-06-03 Max Kaehn <slothman@electric-cloud.com>
+
+ * dcrt0.cc (cygwin_dll_init): Initialize main_environ and cygtls. Add
+ comment to explain the caveats of this method.
+ * how-cygtls-works.txt: New file.
+
+2005-06-02 Christopher Faylor <cgf@timesys.com>
+
+ * dlfcn.cc (get_full_path_of_dll): Use a relative path when converting
+ so that the standard Windows rules for finding a library will be used
+ if no path is given. Stop explicitly searching /usr/bin since that is
+ now in effect.
+
+2005-06-01 Christopher Faylor <cgf@timesys.com>
+
+ Revert 2005-05-30 close_all_files changes.
+ * spawn.cc (spawn_guts): When execing, close all files after the child
+ has synced with us.
+
+2005-06-01 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchown): Make sure that
+ disk open is called in case we're passed in a non-existent device.
+
+2005-06-01 Christopher Faylor <cgf@timesys.com>
+
+ * include/machine/stdlib.h: New file.
+
+2005-06-01 Christopher Faylor <cgf@timesys.com>
+
+ * thread.h (List_remove): Revert most of 2005-05-30 change.
+
+2005-06-01 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.sc: Don't output .reloc or .rsrc sections. Clean up stuff
+ around .cygheap and use a workaround to get things working with newer
+ (broken?) binutils.
+
+2005-05-31 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.cc (cygheap_end): Remove bogus section attribute.
+ * cygwin.sc: Make __cygheap_mid absolute. Remove unused _cygheap_foo.
+
+2005-05-30 Christopher Faylor <cgf@timesys.com>
+
+ * child_info.h (child_info::cygheap_h): Delete.
+ (child_info::dwProcessId): New field.
+ * cygheap.cc (init_cheap): Delete.
+ (dup_now): Ditto.
+ (cygheap_setup_for_child): Ditto.
+ (cygheap_setup_for_child_cleanup): Ditto.
+ (cygheap_fixup_in_child): Simplify. Use new "child_copy" function to
+ copy heap from parent.
+ (_csbrk): Don't attempt allocation if within cygheap section. Fix so
+ that more than one allocation will succeed.
+ (cygheap_init): Reset possibly-nonzero region to zero.
+ * cygheap.h (cygheap_setup_for_child): Delete declaration.
+ (cygheap_setup_for_child_cleanup): Ditto.
+ (cygheap_start): Define as an array.
+ * cygwin.sc: Modernize. Remove unneeded sections. Define cygheap
+ here.
+ * dcrt0.cc (do_exit): Reflect argument change to close_all_files.
+ * dtable.cc (dtable::vfork_parent_restore): Ditto.
+ * dtable.h: Ditto.
+ * fhandler.h: Ditto.
+ * fork.cc (fork_copy): Call ReadProcessMemory if there is no thread
+ (indicating that we're execing).
+ (fork_child): Don't mess with hParent.
+ (fork_parent): Remove hParent stuff. It happens earlier now.
+ Remove call to cygheap_setup_for_child* stuff.
+ (fork): Put child_info_stuff in grouped structure. Issue error if
+ parent handle is not set.
+ (child_copy): New function.
+ * sigproc.cc (child_info::child_info): Put cygheap settings here. Set
+ parent handle.
+ (child_info::~child_info): Close parent handle if it exists.
+ * spawn.cc (spawn_guts): Reorganize so that ciresrv is allocated at
+ only the last minute so that cygheap changes are reflected. Delete
+ cygheap_setup* calls.
+ * syscalls.cc (close_all_files): Add an argument to flag when the fd
+ entry should be released.
+ * winsup.h (close_all_files): Add an argument to close_all_files
+ declaration. Declare child_copy.
+
+2005-05-30 Vaclav Haisman <v.haisman@sh.cvut.cz>
+
+ * thread.h (List_remove): Make node parameter const. Use simple
+ comparison and assignment rather than InterlockedCompareExchangePointer
+ since access is already synchronized.
+
+2005-05-30 Christopher Faylor <cgf@timesys.com>
+
+ * dlfcn.cc (set_dl_error): Use UNIX error rather than Windows error.
+
+2005-05-29 Christopher Faylor <cgf@timesys.com>
+
+ * cygmagic: Remove debugging cruft missed on 2005-05-21.
+
+2005-05-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Move component to function scope. Set
+ PATH_RO only on *real* FH_NETDRIVEs or on non-FH_NETDRIVE virtual
+ paths. Allow non-retrievable shares to be handled as files.
+
+2005-05-29 Eric Blake <ebb9@byu.net>
+
+ * include/limits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Always define.
+
+2005-05-28 Christopher Faylor <cgf@timesys.com>
+
+ * thread.h (pthread_key::set): Inline.
+ (pthread_key::get): Ditto.
+ * thread.cc (pthread::set): Delete.
+ (pthread::get): Ditto.
+
+2005-05-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.din: Remove signal front end from pthread_[gs]etspecific.
+
+2005-05-28 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty_slave:tcflush): Use signed comparison.
+
+2005-05-28 Christopher Faylor <cgf@timesys.com>
+
+ * times.cc (time_ms::usecs): Coerce comparison to signed or whole test
+ is a no-op.
+
+2005-05-27 Christopher Faylor <cgf@timesys.com>
+
+ * cygheap.h: Reference _cygheap_start via .cygheap section.
+
+ * environ.cc: Fix force_into_environment typo throughout.
+ (spenvs): Export CYGWIN_DEBUG if DEBUGGING.
+
+2005-05-26 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 18.
+
+2005-05-25 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * fhandler.h (fhandler_base::mkdir): New virtual method.
+ (fhandler_base::rmdir): Ditto.
+ (fhandler_disk_file:mkdir): New method.
+ (fhandler_disk_file:rmdir): Ditto.
+ * dir.cc (mkdir): Implement with fhandlers.
+ (rmdir): Ditto.
+ * fhandler.cc (fhandler_base::mkdir): New virtual method.
+ (fhandler_base::rmdir): Ditto.
+ (fhandler_disk_file::mkdir): New method.
+ (fhandler_disk_file::rmdir): Ditto.
+
+2005-05-24 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump API minor number to 129.
+
+2005-05-24 Christopher Faylor <cgf@timesys.com>
+
+ * cygwin.din: Export mkdtemp.
+ * mktemp.cc: New file.
+ * Makefile.in (DLL_OFILES): Add mktemp.o
+
+2005-05-23 Eric Blake <ebb9@byu.net>
+
+ * include/stdint.h (INTMAX_C, UINTMAX_C): Fix definition.
+
+2005-05-21 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (find_exec): Accept a PATH-like string in place of an
+ environment variable.
+ * dlfcn.cc (get_full_path_of_dll): Search /usr/bin (for windows
+ compatibility) and /usr/lib (for UNIX compatibility) when looking for
+ shared libraries.
+ * environ.cc (conv_envvars): Put back LD_LIBRARY_PATH since it is used
+ by get_full_path_of_dll().
+ * errno.cc (errmap): Map MOD_NOT_FOUND to ENOENT.
+
+ * cygmagic: Remove debugging cruft.
+
+2005-05-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/in.h: Add comment.
+
+2005-05-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/in.h: Define IPPROTO_xxx values as macros to
+ accommodate SUSv3.
+
+2005-05-19 Christopher Faylor <cgf@timesys.com>
+
+ * include/limits.h: Include features.h, as on linux.
+
+2005-05-19 Christopher Faylor <cgf@timesys.com>
+
+ * include/endian.h: New file.
+
+2005-05-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.sc: Add Dwarf-2 debug sections.
+
+2005-05-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap64): Make granularity an automatic variable.
+
+2005-05-19 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_cygdrive::seekdir): Delete declaration.
+ (fhandler_cygdrive::seekdir): Delete.
+
+2005-05-19 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * fhandler.h (fhandler_cygdrive::iscygdrive_root): Delete method.
+ (fhandler_cygdrive::telldir): Delete declaration.
+ * fhandler_disk_file.cc: Remove all uses of
+ fhandler_cygdrive::iscygdrive_root.
+ (fhandler_disk_file::mkdir): New method.
+ (fhandler_disk_file::rmdir): Ditto.
+ (fhandler_cygdrive::telldir): Delete.
+
+2005-05-18 Christopher Faylor <cgf@timesys.com>
+
+ * external.cc: Move pids declaration to file scope and use less
+ enthusiastic constructor.
+ * pinfo.h (winpids::winpids): Remove default setting.
+ * fhandler_fifo.cc (fhandler_fifo::open_not_mine): Accommodate removal
+ of default setting.
+ * fhandler_proc.cc (fhandler_proc::readdir): Ditto.
+
+2005-05-18 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.h (_local_storage::unknown_thread_name): New buffer.
+ * tlsoffsets.h: Regenerate.
+ * cygthread.cc (cygthread::name): Use new thread-local buffer.
+ * exceptions.cc (handle_exceptions): Avoid unnecessary initialization
+ of static variables to zero.
+ * fork.cc (slow_pid_reuse) Ditto.
+
+2005-05-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap64): Avoid compiler warning.
+ * ntea.cc (NTReadEA): Ditto.
+ * hires.h (hires_base): Remove useless usecs function.
+
+2005-05-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_netdrive.cc (fhandler_netdrive::telldir): Remove since it's
+ equivalent to fhandler_virtual::telldir now anyway.
+ * fhandler.h (class fhandler_netdrive): Remove telldir.
+
+2005-05-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_netdrive.cc (fhandler_netdrive::telldir): Implement.
+ (fhandler_netdrive::seekdir): Implement.
+ (fhandler_netdrive::closedir): Call rewinddir to have only one point
+ of calling WNetCloseEnum.
+
+2005-05-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_netdrive): Add method rewinddir.
+ * fhandler_netdrive.cc (struct netdriveinf): New structure to
+ store thread arguments.
+ (thread_netdrive): Thread handling all potentially blocking
+ WNet... calls.
+ (create_thread_and_wait): Start and wait for above thread.
+ (fhandler_netdrive::exists): Change to call create_thread_and_wait
+ instead of calling WNet... function.
+ (fhandler_netdrive::readdir): Ditto. Fix error handling.
+ (fhandler_netdrive::rewinddir): New method.
+
+2005-05-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * external.cc (cygwin_internal): Avoid compiler warning.
+
+2005-05-16 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (dll_crt0_0): Don't do fixup_after_exec if dynamically
+ loaded since the state of fds is unknown at this point.
+
+2005-05-16 Christopher Faylor <cgf@timesys.com>
+
+ * include/sys/cygwin.h (enum cygwin_getinfo_types): Add CW_DEBUG_SELF.
+ * external.cc (cygwin_internal): Implement CW_DEBUG_SELF.
+
+ * init.cc (dll_entry): Minor rearrangement of code.
+
+2005-05-16 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Remove embedded dots before slashes.
+
+2005-05-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (conv_envvars): Remove LD_LIBRARY_PATH entirely.
+ It doesn't belong here.
+
+2005-05-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (conv_envvars): Treat LD_LIBRARY_PATH as path list.
+
+2005-05-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Check
+ return code from GetFileSize and set file size to 0 if necessary.
+ * fhandler_netdrive.cc (fhandler_netdrive::fstat): Set permissions
+ to read/execute for all.
+
+2005-05-13 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (normalize_posix_path): Do normalization on . and .. after
+ a '//'.
+
+2005-05-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_netdrive::readdir): Remove useless comment.
+
+2005-05-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (WNetGetResourceParentA): Import.
+ (WNetOpenEnumA): Import.
+ (WNetEnumResourceA): Import.
+ (WNetCloseEnum): Import.
+ * fhandler.h (fhandler_netdrive::telldir): Add declaration.
+ (fhandler_netdrive::seekdir): Ditto.
+ (fhandler_netdrive::closedir): Ditto.
+ * fhandler_netdrive.cc: Drop explicit including windows.h. Include
+ winnetwk.h instead of shlwapi.h. Include dirent.h.
+ (fhandler_netdrive::readdir): Implement.
+ (fhandler_netdrive::telldir): New method.
+ (fhandler_netdrive::seekdir): New method.
+ (fhandler_netdrive::closedir): Ditto.
+
+2005-05-13 Christopher Faylor <cgf@timesys.com>
+
+ Remove PC_FULL from path_conv usage throughout.
+ * path.h (enum pathconv_arg): Change PC_FULL to PC_NOFULL.
+ * path.cc (path_conv::check): Test for PC_NOFULL rather than !PC_FULL.
+ (cygwin_conv_to_win32_path): Use PC_NOFULL to force non-absolute path.
+
+2005-05-13 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_netdrive.cc (fhandler_netdrive::exists): Assert that "//"
+ exists.
+
+2005-05-12 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Eliminate compiler warning.
+
+ * dir.cc (mkdir): Check path for writability.
+ (rmdir): Ditto. Remove check for special directories.
+ * path.cc (path_conv::check): Set PATH_RO for virtual devices. Set
+ error if read-only and asked for writability.
+ * path.h (pathconv_arg): Add PC_WRITABLE.
+ (path_types): Add PATH_RO.
+ (path_conv::isro): Add (currently unused) check for read-only
+ filesystem. Return "ENOSHARE" when we know a share doesn't exist.
+ * include/sys/mount.h: Add MOUNT_RO flag.
+ * autoload.cc (WNetGetResourceInformationA): Import.
+ * fhandler_netdrive.cc (fhandler_netdrive::exists): Detect actual
+ existence of remote system rather than always assuming that it exists.
+
+2005-05-11 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_global_dtors): Don't call dll_global_dtors here.
+ (__main): Reinstate atexit of do_global_dtors.
+ (cygwin_exit): Call dll_global_dtors here.
+ (do_exit): And here.
+
+
+2005-05-10 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Clear exitsock after close.
+ * fhandler_console.cc (fhandler_console::write_normal): Store character
+ in a local variable for potential future inspection.
+
+2005-05-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (DLL_OFILES): Add fhandler_mailslot.o.
+ * devices.h (FH_KMSG): Define new device.
+ * devices.in: Add "/dev/kmsg" entry.
+ * devices.cc: Regenerate.
+ * dtable.cc (build_fh_pc): Handle case FH_KMSG.
+ * fhandler.h (class fhandler_mailslot): New class.
+ (class select_stuff): Add device_specific_mailslot pointer.
+ * fhandler_mailslot.cc: New file.
+ * select.cc (peek_mailslot): New function.
+ (verify_mailslot): Ditto.
+ (struct mailslotinf): New stuct to handle select on mailslots.
+ (thread_mailslot): New function.
+ (start_thread_mailslot): Ditto.
+ (mailslot_cleanup): Ditto.
+ (fhandler_mailslot::select_read): New method.
+ * syslog.cc (klog_guard): New muto.
+ (dev_kmsg): Local mailslot for kernel message device.
+ (vklog): New function.
+ (klog): Ditto.
+ * winsup.h (vklog): Declare.
+ (klog): Ditto.
+ * include/sys/syslog.h: Define _PATH_KLOG.
+
+2005-05-10 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (dll_crt0_1): Call cygwin_exit to ensure that destructors
+ are handled correctly.
+
+2005-05-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Set correct file attributes for socket
+ files.
+
+2005-05-09 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * fhandler.h (class fhandler_netdrive): New class.
+ * fhandler_netdrive.cc (fhandler_netdrive::fhandler_netdrive): New constructor.
+ (fhandler_netdrive::exists): New method.
+ (fhandler_netdrive::fstat): Ditto.
+ (fhandler_netdrive::readdir): Ditto.
+ (fhandler_netdrive::open): Ditto.
+ * dtable.cc (build_fh_pc): Handle case FH_NETDRIVE.
+ * path.cc (isvirtual_dev): Add FH_NETDRIVE.
+ (mount_info::conv_to_win32_path): Detect netdrive device and bypass mount
+ search for network paths.
+
+2005-05-08 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (get_cygwin_startup_info): New function pulled from
+ dll_crt0_0.
+ (dll_crt0_0): Use get_cygwin_startup_info to retrieve cygwin-specific
+ startup pointer.
+ * external.cc (cygwin_internal): Implement CW_ARGV and CW_ENVP.
+ * include/sys/cygwin.h: Implement CW_ARGV and CW_ENVP.
+
+2005-05-07 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (normalize_posix_path): Don't treat '//' specially since
+ newer versions of bash now get this right.
+
+2005-05-07 Christopher Faylor <cgf@timesys.com>
+
+ * devices.cc: Regenerate with correct name for dev_netdrive_storage.
+
+2005-05-06 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in (DLL_O_FILES): Add fhandler_netdrive.o.
+ * fhandler_netdrive.cc: Placeholder file for future development.
+ * devices.h (FH_NETDRIVE): Define new virtual device type.
+ (netdrive_dev): Define.
+ * devices.in (dev_netdrive_storage): Define.
+ * devices.cc: Regenerate.
+
+2005-05-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygerrno.h (__set_errno): Remove useless parentheses.
+
+2005-05-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygerrno.h (__set_errno): Define as inline function here.
+ (set_errno): Always define as call to __set_errno.
+ * debug.cc (__set_errno): Move to cygerrno.h.
+
+2005-05-03 Christopher Faylor <cgf@timesys.com>
+
+ * shared.cc (user_shared_initialize): Rework locking so that nothing is
+ checked until cb is non-zero.
+
+2005-05-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't treat
+ inability to open file as failure if only SetFileAttributes is
+ going to be called. Only call set_file_attribute if really necessary.
+
+2005-05-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (get_inet_addr): Add missing __seterrno call.
+
+2005-05-01 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tty.cc (fhandler_tty_slave::read): Actually read input when
+ vmin == vtime == 0.
+
+2005-04-30 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (spenv::force_into_environment): Rename from add_always.
+ (spenv::add_if_exists): Rename from force.
+ (build_env): Accommodate name changes. Make sure that stuff that is
+ always supposed to be in the environment is actually added to the
+ environment.
+
+ * shared.cc (open_shared): Restore VirtualFree eliminated by 2005-04-28
+ change.
+
+2005-04-30 Christopher Faylor <cgf@timesys.com>
+
+ * errno.cc (errmap): Sort table.
+
+2005-04-29 Christopher Faylor <cgf@timesys.com>
+
+ * errno.cc (errmap): Map ERROR_NETNAME_DELETED to ENOSHARE.
+
+2005-04-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * shared_info.h (cygwin_shared_address): Bump to a higher value to avoid
+ collision with large data areas.
+
+2005-04-28 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_console.cc (fhandler_console::get_tty_stuff): Accommodate
+ changes to open_shared arguments.
+ * fhandler_tape.cc (mtinfo_init): Ditto.
+ * pinfo.cc (pinfo::init): Use open_shared rather than win32 mmap calls.
+ * shared.cc (user_shared_initialize): Ditto.
+ (memory_init): Ditto.
+ (open_shared): Change to allow use a smore general mmap handler.
+ * shared_info.h (shared_locations): Add SH_JUSTCREATE, SH_JUSTOPEN.
+ (open_shared): Change declaration to match new usage.
+
+ * autoload.cc (LoadDLLfuncEx2): Define in terms of LoadDLLfuncEx3.
+ (LoadDLLfuncEx3): New macro.
+
+2005-04-27 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.cc (fhandler_base::open_9x): Remove (broken) check for
+ O_CREAT|O_EXCL.
+ * syscalls.cc (open): Do O_CREAT|O_EXCL check here first.
+
+2005-04-26 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (build_env): Ensure that win32 array is properly filled in
+ when a missing value has to be generated.
+
+2005-04-26 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 17.
+
+2005-04-24 Pavel Tsekov <ptsekov@gmx.net>
+
+ * how-to-debug-cygwin.txt: Fix typo.
+
+2005-04-22 Christopher Faylor <cgf@timesys.com>
+
+ * shared.cc (user_shared_initialize): Implement locking similar to
+ shared_info when initializing shared region.
+
+2005-04-22 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (dev_console::set_color): Define new function.
+ (dev_console::set_default_attr): Ditto, moved from fhandler_console.
+ (dev_console::fillin_info): Ditto. Accommodate this change throughout
+ this file.
+ (fhandler_console::get_win32_attr): Eliminate.
+ * fhandler_console.cc (fhandler_console::get_tty_stuff): Properly set
+ default attributes on initialization.
+ (fhandler_console::open): Set current attributes rather than default
+ color on open.
+ (fhandler_console::get_win32_attr): Eliminate.
+ (dev_console::set_color): New function. Move get_win32_attr stuff
+ here.
+ (dev_console::set_default_attr): New function, moved from
+ fhandler_console.
+ (dev_console::fillin_info): Ditto.
+ (fhandler_console::char_command): Call set_color to set screen
+ characteristics.
+
+2005-04-22 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.cc (fhandler_base::read): Remove unused signal state tweaks.
+ * fhandler.h (fhandler_pipe::create_selectable): Declare.
+ (fhandler_fifo::close_one_end): Declare.
+ * fhandler_fifo.cc (fhandler_fifo::close_one_end): Define.
+ (fhandler_fifo::open_not_mine): Use close_one_end to close appropriate
+ end of pipe.
+ * pinfo.cc (_pinfo::commune_recv): Ditto.
+ * pipe.cc (fhandler_pipe::create_selectable): Rename from
+ create_selectable_pipe. Reorganize.
+ (fhandler_pipe::create): Use create_selectable.
+
+2005-04-21 Christopher Faylor <cgf@timesys.com>
+
+ * shared.cc (shared_info::initialize): Test previous version of shared
+ memory magic rather than current version when determining if there has
+ been a shared memory mismatch.
+
+2005-04-20 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero
+ value.
+
+ * strace.cc (strace::hello): Report parent pid of executing process.
+
+2005-04-20 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Fix problem reading symlinks introduced
+ in below change by reverting the change and adding an additional test
+ for nonexistent files in /proc.
+
+2005-04-20 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Punt when attempting to access a
+ nonexistent directory or file in /proc.
+
+2005-04-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (alloc_sd): Remove DELETE bit from user's ACE if
+ allow_traverse is set.
+
+2005-04-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (pselect): Export.
+ * select.cc (pselect): New function.
+ * include/cygwin/version.h: Bump API minor number.
+ * include/sys/select.h: Include signal.h. Declare pselect.
+
+2005-04-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (enum conn_state): Add connect_failed state.
+ * fhandler_socket.cc (fhandler_socket::connect): Set connect_state to
+ connect_failed when connect failed.
+ * poll.cc (poll): Change errno to EINVAL if allocating memory fails,
+ according to SUSv3. Add socket descriptors always to except_fds. Test
+ for failed connect and set revents flags appropriately.
+ * select.cc (set_bits): Set connect_state to connect_failed when
+ select indicates failed nonblocking connect.
+ (fhandler_dev_null::select_except): Set except_ready to false so that
+ /dev/null is not always in except state.
+ (peek_socket): Fix bogus conditional.
+ (fhandler_socket::select_write): Treat all connect_states except
+ unconnected equivalent to return consistent results.
+ (fhandler_windows::select_except): Set except_ready to false so that
+ /dev/windows is not always in except state.
+
+2005-04-18 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 16.
+
+2005-04-18 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * grp.cc (initgroups32): Return the correct value.
+
+2005-04-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::utimes_fs): Ignore
+ ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
+ * path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
+ ERROR_FILE_NOT_FOUND for the same reason.
+
+2005-04-16 Corinna Vinschen <corinna@vinschen.de>
+ Pierre Humblet <pierre.humblet@ieee.org>
+
+ * security.h (cygsidlist::addfromgr): Allow duplicate entries.
+ (get_server_groups): Declare new function.
+ * security.cc (is_group_member): Simplify.
+ (get_server_groups): New function.
+ (get_initgroups_sidlist): Call get_server_groups.
+ (verify_token): Allow token when supplementary sids are not in
+ /etc/group but are in the token.
+ Streamline the code.
+ * grp.cc (initgroups32): New implementation.
+ (getgroups32): Handle case where the supplementary groups are set.
+
+2005-04-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (environ_init): Don't set traverse checking as default.
+
+2005-04-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::utimes_fs): Drop touching
+ ChangeTime.
+
+2005-04-16 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.cc (fhandler::dup): Duplicate flags, too.
+ * fhandler.h (fhandler_fifo::owner): Eliminate.
+ * fhandler_disk_file.cc (fhandler_base::fstat_fs): Handle on-disk
+ devices better.
+ (fhandler_base::fstat_helper): Ditto.
+ * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Don't initialize
+ obsolete "owner".
+ (fhandler_fifo::open_not_mine): Add some debugging. Duplicate correct
+ handle when we own it.
+ (fhandler_fifo::open): Set flags from input, not from first pipe. Flag
+ that fork fixup is needed.
+ (fhandler_fifo::dup): Set errno correctly when DuplicateHandle fails.
+ * pinfo.cc (commune_send): Add debugging for fifo.
+
+ * cygwin/version.h: Bump API minor version to 127 to reflect exporting
+ of sigrelese.
+
+2005-04-14 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
+
+ * syscalls.cc (setuid32): Correct debugging output.
+
+2005-04-14 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (do_global_dtors): Run DLL dtors.
+ (__main): Don't rely on atexit to run dtors.
+ (do_exit): Specifically call do_global_dtors here.
+ (cygwin_exit): Ditto.
+ * dll_init.cc (dll_global_dtors): Make global. Only run dtors once.
+ (dll_list::init): Just set flag that dtors should be run. Don't rely on atexit.
+ * dll_init.h (dll_global_dtors): Declare.
+
+ * exceptions.cc (sigrelse): Define.
+
+ * path.h (is_fs_device): New method.
+ (is_lnk_special): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::link): Use
+ "is_lnk_special" rather than "is_lnk_symlink".
+ * syscalls.cc (rename): Ditto.
+
+ * hookapi.cc (ld_preload): Use colon as a separator rather than space.
+
+2005-04-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_socket): Remove utimes.
+ * fhandler_socket.cc (fhandler_socket::utimes): Remove.
+
+2005-04-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
+ error code as well as errno. Use throughout where errno is set from
+ NT status.
+ (set_errno): Evaluate val only once.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
+ debug output.
+ * fhandler_mem.cc (fhandler_dev_mem::open): Rely on
+ __seterrno_from_nt_status setting Win32 error code in debug output.
+ * fhandler_proc.cc (format_proc_uptime): Ditto.
+ (format_proc_stat): Ditto.
+ * fhandler_process.cc (format_process_stat): Ditto.
+ * sysconf.cc (sysconf): Ditto.
+
+2005-04-13 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler.h (fhandler_base::utimes_fs): New method.
+ * fhandler.cc (fhandler_base::utimes): Call utimes_fs if on-disk
+ special file.
+ * fhandler_disk_file.cc (fhandler_disk_file::utimes): Use utimes_fs.
+ (fhandler_base::utimes_fs): Handle on-disk device files.
+
+2005-04-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::utimes): Don't set errno
+ if open fails, it has already been set by open.
+
+2005-04-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (NtQueryVolumeInformationFile): Add.
+ * fhandler.cc (fhandler_base::raw_write): Don't touch has_changed flag.
+ * fhandler.h (enum change_state): Remove.
+ (fhandler_base::status): Revert has_changed to a simple bit.
+ (fhandler_base::fstat_helper): Add nAllocSize parameter. Rename
+ ftCreationTime to ftChangeTime.
+ * fhandler_disk_file.cc: Call fstat_helper with additional
+ allocation size throughout.
+ (fhandler_base::fstat_by_handle): Use NT native functions to get
+ full file information on NT. Call fstat_helper with LastWriteTime
+ as ctime, if ChangeTime is not available.
+ (fhandler_base::fstat_by_name): Call fstat_helper with LastWriteTime
+ as ctime.
+ (fhandler_base::fstat_helper): Add comment. Drop special FAT
+ handling since it's useless. Use nAllocSize for st_blocks if available.
+ (fhandler_disk_file::touch_ctime): Only touch LastWriteTime.
+ (fhandler_disk_file::fchmod): Set has_changed on 9x only.
+ (fhandler_disk_file::fchown): Don't set has_changed.
+ (fhandler_disk_file::facl): Ditto.
+ (fhandler_disk_file::ftruncate): Ditto.
+ (fhandler_disk_file::link): Set has_changed on 9x only and on original
+ file only.
+ (fhandler_base::open_fs): Don't set has_changed in O_TRUNC case.
+ * ntdll.h (FILE_BASIC_INFORMATION): Define.
+ (FILE_STANDARD_INFORMATION): Define.
+ (FILE_INTERNAL_INFORMATION): Define.
+ (FILE_EA_INFORMATION): Define.
+ (FILE_ACCESS_INFORMATION): Define.
+ (FILE_POSITION_INFORMATION): Define.
+ (FILE_MODE_INFORMATION): Define.
+ (FILE_ALIGNMENT_INFORMATION): Define.
+ (FILE_NAME_INFORMATION): Don't define with arbitrary FileName size.
+ (FILE_ALL_INFORMATION): Define.
+ (FILE_INFORMATION_CLASS): Add FileAllInformation.
+ (FILE_FS_VOLUME_INFORMATION): Define.
+ (FS_INFORMATION_CLASS): Define.
+ (NtQueryVolumeInformationFile): Define.
+
+2005-04-11 Corinna Vinschen <corinna@vinschen.de>
+
+ Revert previous patch.
+ * autoload.cc (GetVolumePathNamesForVolumeNameA): Remove.
+ (GetVolumeNameForVolumeMountPointA): Add.
+ * syscalls.cc (sync): Rewrite guid case to skip floppies also on
+ Windows 2000.
+
+2005-04-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (sync): Use renamed has_get_volume_pathnames wincap.
+ * wincap.h (wincaps::has_get_volume_pathnames): Rename from
+ has_guid_volumes
+ * wincap.cc: Accommodate above rename throughout. Set to false on
+ Windows 2000.
+
+2005-04-08 Christopher Faylor <cgf@timesys.com>
+
+ * pipe.cc (fhandler_pipe::open): Remove O_CREAT limitation.
+
+2005-04-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * syslog.cc (try_connect_guard): Remove useless conditionalized code.
+
+2005-04-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * syslog.cc: Include sys/socket.h.
+ (try_connect_guard): New static variable.
+ (syslogd_inited): Ditto.
+ (syslogd_sock): Ditto.
+ (try_connect_syslogd): New function to connect and write syslog to
+ local syslogd.
+ (vsyslog): Log to stderr if LOG_PERROR flag has been given to openlog.
+ Try logging to syslogd. Use Event Log resp. log file as fallback.
+ (closelog): Close socket to syslogd.
+ * include/sys/syslog.h (_PATH_LOG): Define.
+ (INTERNAL_NOPRI): Define if SYSLOG_NAMES is defined.
+ (INTERNAL_MARK): Ditto.
+ (struct _code): Ditto.
+ (prioritynames): Ditto.
+ (facilitynames): Ditto.
+
+2005-04-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (get_inet_addr): Add type parameter to return
+ unix socket type. Read socket type from unix socket file.
+ (fhandler_socket::bind): Write socket type to unix socket file.
+ (fhandler_socket::connect): Return with errno EPROTOTYPE if
+ socket type of socket doesn't match socket type of unix socket
+ trying to connect to.
+
+2005-04-06 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * security.h (cygsidlist::addfromgr): Avoid duplicate entries.
+ * grp.cc (initgrousp): Add syscall_printf.
+ (setgroups): Add syscall_printf and make sure sids are added only once.
+
+2005-04-06 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (cygwin_getservbyname): Return (possibly NULL) return value of
+ dup_ent rather than assuming that tls buffer is valid.
+ (cygwin_getservbyport): Ditto.
+ (cygwin_gethostbyname): Ditto.
+ (cygwin_gethostbyaddr): Ditto.
+
+2005-04-05 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Don't free or close stuff if we're being
+ called in a "non-standard" way.
+
+2005-04-05 Christopher Faylor <cgf@timesys.com>
+
+ * sync.h (muto::initforce): Delete flawed implementation.
+ * pwdgrp.h (pwdgrp::pglock): Make static.
+ * grp.cc (pwdgrp::pwdgrp): Eliminate use of initforce.
+
+2005-04-05 Christopher Faylor <cgf@timesys.com>
+
+ * sync.h (muto::initforce): Force initialization even when name !=
+ NULL.
+ * grp.cc (pwdgrp::pwdgrp): Use initforce since the enclosing structure
+ is !NO_COPY.
+
+2005-04-05 Christopher Faylor <cgf@timesys.com>
+
+ * sync.h (muto::operator int): New operator.
+ (locker): Remove unused class.
+ (new_muto): Delete.
+ (new_muto1): Ditto.
+ (new_muto_name): Ditto.
+ * cygheap.cc (cygheap_setup_for_child): Reflect use of static storage
+ for muto rather than pointer.
+ (_csbrk): Ditto.
+ (_cmalloc): Ditto.
+ (_cmalloc): Ditto.
+ (_cfree): Ditto.
+ * cygheap.h (cwdstuff::cwd_lock): Ditto.
+ (cwdstuff::get_drive): Ditto.
+ * cygmalloc.h (__malloc_lock): Ditto.
+ (__malloc_unlock): Ditto.
+ * cygtls.cc (sentry::lock): Ditto.
+ (sentry::sentry): Ditto.
+ (~sentry): Ditto.
+ (_cygtls::init): Ditto.
+ * dcrt0.cc: Ditto.
+ (cygwin_atexit): Ditto.
+ (cygwin_exit): Ditto.
+ * debug.cc (lock_debug::locker): Ditto.
+ (lock_debug::lock_debug): Ditto.
+ (lock_debug::unlock): Ditto.
+ (debug_init): Ditto.
+ * dtable.cc (dtable::init_lock): Ditto.
+ * dtable.h (dtable::lock_cs): Ditto.
+ (dtable::lock): Ditto.
+ (dtable::unlock): Ditto.
+ * exceptions.cc (mask_sync): Ditto.
+ (sighold): Ditto.
+ (set_process_mask_delta): Ditto.
+ (set_signal_mask): Ditto.
+ (events_init): Ditto.
+ * grp.cc (pwdgrp::pwdgrp): Ditto.
+ * malloc_wrapper.cc (mallock): Ditto.
+ (malloc_init): Ditto.
+ * path.cc (cwdstuff::cwd_lock): Ditto.
+ (cwdstuff::get_hash): Ditto.
+ (cwdstuff::get_hash): Ditto.
+ (cwdstuff::init): Ditto.
+ (cwdstuff::set): Ditto.
+ (cwdstuff::get): Ditto.
+ * pwdgrp.h (pwdgrp::pglock): Ditto.
+ (pwdgrp::refresh): Ditto.
+ * sigproc.cc (sync_proc_subproc): Ditto.
+ (get_proc_lock): Ditto.
+ (proc_subproc): Ditto.
+ (_cygtls::remove_wq): Ditto.
+ (proc_terminate): Ditto.
+ (sigproc_init): Ditto.
+ * timer.cc (lock_timer_tracker::protect): Ditto.
+ (lock_timer_tracker::lock_timer_tracker): Ditto.
+ (lock_timer_tracker::~lock_timer_tracker): Ditto.
+ * wininfo.cc (wininfo::_lock;): Ditto.
+ (wininfo::winthread): Ditto.
+ (operator HWND): Ditto.
+ (wininfo::lock): Ditto.
+ (wininfo::release): Ditto.
+ * wininfo.h (wininfo::_lock;): Ditto.
+
+2005-04-04 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Only check for PC_NO_ACCESS_CHECK in end
+ component.
+
+2005-04-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges on 9x.
+
+ * fhandler.h (enum change_state): Add.
+ (fhandler_base::status): Add a bit to has_changed flag.
+ (fhandler_base::has_changed): Implement with type change_state.
+ * fhandler.cc (fhandler_base::raw_write): Accommodate type change
+ of has_changed.
+ * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Also
+ touch modification time if has_changed == data_changed.
+ (fhandler_disk_file::fchmod): Also open on 9x, otherwise we can't
+ touch ctime. Accommodate type change of has_changed.
+ (fhandler_disk_file::fchown): Accommodate type change of has_changed.
+ (fhandler_disk_file::facl): Ditto.
+ (fhandler_disk_file::ftruncate): Ditto.
+ (fhandler_disk_file::link): Ditto.
+ (fhandler_base::open_fs): Ditto.
+
+2005-04-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.cc (cygheap_init): Accommodate set_process_privilege change.
+ * cygheap.h (cygheap_user::curr_primary_token): New member.
+ (cygheap_user::primary_token): New method.
+ (cygheap_user::deimpersonate): Always revert to processes'
+ impersonation token.
+ (cygheap_user::reimpersonate): Set processes' or setuid token as
+ necessary.
+ (cygheap_user::has_impersonation_tokens): Look for curr_primary_token
+ value.
+ (cygheap_user::close_impersonation_tokens): Close curr_primary_token
+ here if necessary. Don't reset token values to NO_IMPERSONATION since
+ that's done in uinfo_init anyway.
+ (init_cygheap::luid): New LUID array keeping privilege LUIDs.
+ * cygtls.cc (_cygtls::init_thread): Call cygheap->user.reimpersonate.
+ * dcrt0.cc (hProcToken): New global variable to keep process token.
+ (hProcImpToken): Ditto for process impersonation token.
+ (dll_crt0_0): Open process token here once. Duplicate to create
+ hProcImpToken.
+ (dll_crt0_1): Call set_cygwin_privileges.
+ * environ.cc (allow_ntea): Drop duplicate declaration.
+ (allow_smbntsec): Ditto.
+ (set_traverse): Only set allow_traverse here.
+ (environ_init): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop call to
+ enable_restore_privilege.
+ (fhandler_disk_file::fchown): Ditto.
+ (fhandler_disk_file::facl): Ditto.
+ * fork.cc (fork_child): Move call to cygheap->user.reimpersonate after
+ syn with parent. Call set_cygwin_privileges.
+ * grp.cc (internal_getgroups): Use hProcImpToken instead of opening
+ process token.
+ * path.cc (fs_info::update): Bypass traverse checking when retrieving
+ volume information using push/pop_thread_privileges.
+ * registry.cc (load_registry_hive): Drop setting restore privilege
+ since it's already set if available.
+ * sec_helper.cc: Include cygtls.h.
+ (cygpriv): Privilege string array.
+ (privilege_luid): New function, evaluate LUID from cygpriv_idx.
+ (privilege_luid_by_name): New function, evaluate LUID from privilege
+ string.
+ (privilege_name): New function, evaluate privilege string from
+ cygpriv_idx.
+ (set_privilege): New static function called by set_process_privilege
+ and set_thread_privilege. Call privilege_luid to get privilege LUID.
+ Fix bug in return value evaluation. Improve debug output.
+ (set_cygwin_privileges): New function.
+ (set_process_privilege): Remove.
+ (enable_restore_privilege): Remove.
+ * security.cc (allow_traverse): New global variable.
+ (sys_privs): Change type to cygpriv_idx and store privilege indices
+ instead of strings.
+ (SYSTEM_PRIVILEGES_COUNT): Renamed from SYSTEM_PERMISSION_COUNT.
+ (get_system_priv_list): Don't use numerical constant in malloc call.
+ Use privilege_luid to get privilege LUIDs.
+ (get_priv_list): Call privilege_luid_by_name to get LUIDs. Improve
+ inner privilege LUID comparison loop.
+ (create_token): Enable create token privilege using
+ push/pop_self_privileges. Use hProcToken instead of opening process
+ token. Use default DACL when duplicating token.
+ (subauth): Enable tcb privilege using push/pop_self_privileges.
+ Use sec_none instead of homw made security attributes when duplicating
+ token.
+ (check_file_access): Don't duplicate access token, use active
+ impersonation token as is.
+ * security.h (enum cygpriv_idx): New enumeration type enumerating
+ possible privileges.
+ (privilege_luid): Declare new function.
+ (privilege_luid_by_name): Ditto.
+ (privilege_name): Ditto.
+ (allow_traverse): Declare.
+ (set_privilege): Declare function.
+ (set_process_privilege): Define as macro.
+ (enable_restore_privilege): Remove declaration.
+ (_push_thread_privilege): Define macro.
+ (push_thread_privilege): Ditto.
+ (pop_thread_privilege): Ditto.
+ (pop_self_privilege): Ditto.
+ * spawn.cc (spawn_guts): Use cygheap->user.primary_token instead of
+ cygheap->user.token.
+ * syscalls.cc (statvfs): Bypass traverse checking when retrieving
+ volume information using push/pop_thread_privileges. Rearrange code
+ to simplify push/pop bracketing.
+ (seteuid32): Use hProcToken instead of opening process token. Call
+ cygheap->user.deimpersonate instead of RevertToSelf. Create
+ impersonation token from primary internal or external token. Set
+ cygheap->user.curr_primary_token and cygheap->user.current_token
+ privileges once here. Drop "failed" and "failed_ptok" labels.
+ Drop setting DefaultDacl of process token.
+ (setegid32): Use hProcToken and hProcImpToken instead of opening
+ process token. Always reimpersonate afterwards.
+ * uinfo.cc (cygheap_user::init): Use hProcToken instead of opening
+ process token.
+ (internal_getlogin): Ditto. Set hProcImpToken, too.
+ (uinfo_init): Initialize cygheap->user.curr_primary_token.
+ * winsup.h (hProcToken): Declare.
+ (hProcImpToken): Declare.
+
+2005-04-03 Corinna Vinschen <corinna@vinschen.de>
+
+ Unify usage of CYG_MAX_PATH throughout. Change buffers from
+ size CYG_MAX_PATH + 1 to CYG_MAX_PATH. Change length tests
+ accordingly.
+
+2005-04-02 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 15.
+
+2005-04-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fork.cc (fork_child): Add missing __stdcall.
+
+2005-04-01 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (create_signal_arrive): New (temporary?) function to
+ create signal_arrived event.
+ (sigproc_init): Use create_signal_arrived.
+ * fork.cc (fork_child): Create signal_arrived early.
+
+2005-04-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
+ up fdtab.
+
+2005-03-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * gentls_offsets: Add '-m32' flag to native compiler call to satisfy
+ cross platform builds.
+
+2005-03-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * errno.cc (NO_SYSTEM_RESOURCES): Map to EAGAIN.
+ (NONPAGED_SYSTEM_RESOURCES): Ditto.
+ (PAGED_SYSTEM_RESOURCES): Ditto.
+ (WORKING_SET_QUOTA): Ditto.
+ (PAGEFILE_QUOTA): Ditto.
+ (COMMITMENT_LIMIT): Ditto.
+
+2005-03-30 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
+ environment.
+ (build_env): Ditto.
+
+2005-03-30 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (spenv::retrieve): Revert most of previous change.
+ (build_env): Ditto. Rework to track environment variables which need
+ to always be in the windows environment in a separate array.
+
+2005-03-30 Igor Pechtchanski <pechtcha@cs.nyu.edu>
+
+ * path.cc (symlink_info::case_check): Ignore trailing characters
+ in paths when comparing case.
+
+2005-03-30 Christopher Faylor <cgf@timesys.com>
+
+ * environ.h (win_env::immediate): Declare new field.
+ (win_env::operator = ): Declare new operator.
+ (win_env::reset): Declare new function.
+ (win_env::~win_env): Declare new destructor.
+ (getwinenv): Add optional third argument to declaration.
+ * environ.cc (conv_envvars): Accommodate immediate field.
+ (win_env::operator =): Define new operator.
+ (win_env::~win_env): Define new destructor.
+ (win_env::add_cache): Add value to environment immediately if
+ "immediate" is set.
+ (getwinenv): Accept optional third argument which will be used to store
+ "cached" values to avoid overwriting real cache.
+ (spenv::force): Declare new field.
+ (spenvs): Accommodate force field. Add "PATH=" with force set to true.
+ (spenv::retrieve): Avoid duping anything if we're not building an
+ envblock.
+ (build_env): Ditto. Use size of potentially constructed new
+ environment block to determine if we need to create an environment
+ block. Pass getwinenv temporary storage to avoid inappropriately
+ overwriting the environment cache.
+
+2005-03-29 Eric Blake <ebb9@byu.net>
+
+ * include/limits.h (NAME_MAX): New define.
+ (PATH_MAX): POSIX allows PATH_MAX to include trailing NUL.
+
+2005-03-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (is_floppy): Make externally available.
+ * path.h (is_floppy): Declare.
+ * syscalls.cc (sync): Check for floppies on A: and B: in guid case.
+ Don't call setmntent in non-guid case but evaluate drive bit mask
+ locally.
+
+2005-03-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc: Re-add exename.
+
+2005-03-28 Christopher Faylor <cgf@timesys.com>
+
+ * include/ctype.h: Accommodate building in newlib.
+
+2005-03-28 Christopher Faylor <cgf@timesys.com>
+
+ * timer.cc (getitimer): Check that ovalue is a valid pointer, not just
+ NULL.
+
+2005-03-28 Christopher Faylor <cgf@timesys.com>
+
+ * timer.cc (timer_tracker::settime): Set times to zero when just
+ cancelling a timer.
+
+2005-03-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::detach): Revert to just waiting for thread
+ event since waiting for anything else is racy.
+ * timer.cc (timer_tracker::hcancel): Rename from cancel.
+ (timer_tracker::cancel): New method.
+ (timer_tracker::th): Remove.
+ (timer_tracker::~timer_tracker): Call cancel method.
+ (timer_tracker::timer_tracker): Ditto.
+ (timer_tracker::timer_tracker): Always, clear cancel, even though it is
+ probably not strictly necessary for ttstart.
+ (timer_thread): Accommodate cancel -> hcancel rename.
+ (timer_tracker::settime): Ditto.
+ (timer_tracker::gettime): Ditto.
+ (timer_delete): Ditto.
+
+ * cygwin.din: Export _ctype_.
+ * include/ctype.h: Mark that _ctype_ is imported.
+
+2005-03-28 Christopher Faylor <cgf@timesys.com>
+
+ * timer.cc (timer_tracker::timer_tracker): Eliminate simple
+ constructor.
+ (ttstart): Fully initialize.
+
+ * errno.cc: Fix typo introduced in previous change.
+
+2005-03-28 Eric Blake <ebb9@byu.net>
+
+ * errno.cc (FILENAME_EXCED_RANGE): Map to ENAMETOOLONG.
+
+2005-03-27 Christopher Faylor <cgf@timesys.com>
+
+ * signal.cc (nanosleep): Revert tv_sec < 0 check as it is fixed
+ properly in the below change to hires.h.
+
+2005-03-27 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * times.cc (hires_ms::usecs): Compare the difference.
+ * hires.h: Add parentheses to HIRES_DELAY_MAX.
+
+2005-03-26 Christopher Faylor <cgf@timesys.com>
+
+ * timer.cc (nanosleep): Treat tv_sec < 0 as invalid.
+
+ * include/search.h: Make declarations consistent with newlib.
+
+2005-03-26 Pierre Humblet <pierre.humblet@ieee.org>
+ Christopher Faylor <cgf@timesys.com>
+
+ * wininfo.h (wininfo::timer_active): Delete.
+ (wininfo::itv): Ditto.
+ (wininfo::start_time): Ditto.
+ (wininfo::window_started): Ditto.
+ (wininfo::getitimer): Ditto.
+ (wininfo::setitimer): Ditto.
+ (wininfo::wininfo): Ditto.
+ (wininfo::lock): New method.
+ (wininfo::release): Ditto.
+ * window.cc: Use new lock/acquire wininfo methods throughout.
+ (wininfo::wininfo): Delete
+ (wininfo::getitimer): Ditto.
+ (wininfo::setitimer): Ditto.
+ (getitimer): Ditto.
+ (setitimer): Ditto.
+ (ualarm): Ditto.
+ (alarm): Ditto.
+ (wininfo::lock): Define new function.
+ (wininfo::release): Ditto.
+ (wininfo::process): Delete WM_TIMER handling.
+ * timer.cc (struct timetracker): Delete it, flags. Add it_interval,
+ interval_us, sleepto_us, running, init_muto(), syncthread, and
+ gettime().
+ (ttstart): Make NO_COPY.
+ (lock_timer_tracker): New class.
+ (timer_tracker::timer_tracker): Distinguish ttstart case.
+ (timer_tracker::~timer_tracker): New destructor. Clean out events, and
+ reset magic.
+ (timer_tracker::init_muto): New method.
+ (to_us): Round up as per POSIX.
+ (timer_thread): Reorganize to match timer_tracker::settime and
+ timer_tracker::gettime. Call sig_send without wait. Call
+ auto_release.
+ (timer_tracker::settime): Reorganize logic to avoid race. Call gettime
+ to recover old value.
+ (timer_tracker::gettime): New method.
+ (timer_create): Properly set errno on invalid timerid. Use new
+ lock_timer_tracker method.
+ (timer_delete): Ditto. Simplify code slightly.
+ (timer_gettime): New function.
+ (fixup_timers_after_fork): Reinit ttstart.
+ (getitimer): New implementation.
+ (setitimer): Ditto.
+ (ualarm): Ditto.
+ (alarm): Ditto.
+ * cygwin.din: Export timer_gettime.
+ * winsup.h: Remove has has_visible_window_station declaration.
+
+2005-03-26 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in (DLL_OFILES): Add lsearch.o.
+ * cygthread.h (cygthread::notify_detached): New element.
+ (cygthread::cygthread): Take optional fourth argument signifying event
+ to signal on thread completion.
+ * cygthread.cc (cygthread::stub): Signal notify_detached event, if it
+ exists.
+ (cygthread::cygthread): Initialize notify_detached from fourth argument.
+ (cygthread::detach): Wait for notify_detached field is present.
+
+ * lsearch.cc: New file.
+ * search.h: Ditto.
+ * include/cygwin/version.h: Bump API minor number to 126.
+ * cygwin.din: Export lsearch, lfind.
+
+2005-03-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_socket::secret_event): Remove.
+ (fhandler_socket::af_local_set_secret): New function combining former
+ set_connect_secret and get_connect_secret into one function.
+ (fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
+ (fhandler_socket::af_local_unsetblocking): Rename from
+ eid_unsetblocking.
+ (fhandler_socket::af_local_set_cred): New method.
+ (fhandler_socket::af_local_copy): New method.
+ (fhandler_socket::af_local_recv_secret): New method.
+ (fhandler_socket::af_local_send_secret): New method.
+ (fhandler_socket::af_local_recv_cred): Rename from eid_recv.
+ (fhandler_socket::af_local_send_cred): Rename from eid_send.
+ (fhandler_socket::af_local_accept): New method.
+ (fhandler_socket::af_local_set_sockpair_cred): Rename from
+ set_socketpair_eids.
+ (fhandler_socket::eid_accept): Remove.
+ (fhandler_socket::eid_connect): Remove.
+ (fhandler_socket::set_connect_secret): Remove.
+ (fhandler_socket::get_connect_secret): Remove.
+ (fhandler_socket::create_secret_event): Remove.
+ (fhandler_socket::check_peer_secret_event): Remove.
+ (fhandler_socket::signal_secret_event): Remove.
+ (fhandler_socket::close_secret_event): Remove.
+ (fhandler_socket::sec_event_accept): Remove.
+ (fhandler_socket::sec_event_connect): Remove.
+ * fhandler_socket.cc (secret_event_name): Remove.
+ (fhandler_socket::af_local_set_sockpair_cred): Rename from
+ set_socketpair_eids.
+ (fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
+ (fhandler_socket::af_local_unsetblocking): Rename from
+ eid_unsetblocking.
+ (fhandler_socket::af_local_recv_secret): New function to receive
+ AF_LOCAL connect secret over socket itself.
+ (fhandler_socket::af_local_send_secret): New function to send AF_LOCAL
+ connect secret over socket itself.
+ (fhandler_socket::af_local_recv_cred): Rename from eid_recv.
+ (fhandler_socket::af_local_send_cred): Rename from eid_send.
+ (fhandler_socket::eid_connect): Remove.
+ (fhandler_socket::af_local_connect): Take over connect side handling
+ of AF_LOCAL secret and credential handshake.
+ (fhandler_socket::eid_accept): Remove.
+ (fhandler_socket::af_local_accept): New method, take over accept side
+ handling of AF_LOCAL secret and credential handshake.
+ (fhandler_socket::af_local_set_cred): New method, set eid credentials
+ to start values.
+ (fhandler_socket::af_local_copy): New method, copy secret and
+ credentials to another socket.
+ (fhandler_socket::af_local_set_secret): New function combining former
+ set_connect_secret and get_connect_secret into one function.
+ (fhandler_socket::create_secret_event): Remove.
+ (fhandler_socket::signal_secret_event): Remove.
+ (fhandler_socket::close_secret_event): Remove.
+ (fhandler_socket::check_peer_secret_event): Remove.
+ (fhandler_socket::sec_event_connect): Remove.
+ (fhandler_socket::sec_event_accept): Remove.
+ (fhandler_socket::fixup_after_fork): Drop secret_event handling.
+ (fhandler_socket::bind): Call af_local_set_secret.
+ (fhandler_socket::connect): Call af_local_set_cred and af_local_connect.
+ (fhandler_socket::listen): Call af_local_set_cred.
+ (fhandler_socket::accept): Call af_local_copy and af_local_accept on
+ accepted socket.
+ (fhandler_socket::close): Don't call close_secret_event.
+ (fhandler_socket::set_close_on_exec): Don't set secret_event
+ inheritance.
+ * net.cc (cygwin_getsockopt): Add debug output.
+ (socketpair): Call af_local_set_sockpair_cred instead of
+ set_socketpair_eids.
+ * select.cc (set_bits): Drop AF_LOCAL special handling in case
+ of except bit set.
+
+2005-03-23 Christopher Faylor <cgf@timesys.com>
+
+ * include/ctype.h: Always define macros when inside cygwin.
+ (isblank): New macro.
+
+2005-03-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_socket::eid_connect): Make private.
+ (fhandler_socket::set_connect_secret): Ditto.
+ (fhandler_socket::get_connect_secret): Ditto.
+ (fhandler_socket::create_secret_event): Ditto. Remove secret argument.
+ (fhandler_socket::check_peer_secret_event): Ditto.
+ (fhandler_socket::signal_secret_event): Make private.
+ (fhandler_socket::close_secret_event): Ditto.
+ (fhandler_socket::sec_event_accept): New private method.
+ (fhandler_socket::sec_event_connect): Ditto.
+ (fhandler_socket::af_local_connect): New public method.
+ * fhandler_socket.cc: Use 'struct sockaddr' and 'struct sockaddr_in'
+ rather than just 'sockaddr' and 'sockaddr_in' throughout.
+ (fhandler_socket::eid_connect): Drop AF_LOCAL/SOCK_STREAM test.
+ (fhandler_socket::create_secret_event): Remove secret argument.
+ Always use connect_secret instead.
+ (fhandler_socket::check_peer_secret_event): Ditto.
+ (fhandler_socket::sec_event_connect): New method, combining entire
+ secret event handshake on connect side.
+ (fhandler_socket::af_local_connect): New method, combining secret
+ event handshake and eid credential transaction on connect side, to
+ be called from select.
+ (fhandler_socket::sec_event_accept): New method, combining entire
+ secret event handshake on accept side.
+ (fhandler_socket::connect): Drop secret, use connect_secret instead.
+ Move entire secret event handshake to sec_event_connect.
+ (fhandler_socket::accept): Move entire secret event handshake to
+ sec_event_accept.
+ * select.cc (set_bits): Just call af_local_connect here.
+
+2005-03-23 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Change comment for most recent API version
+ bump to reflect new additions to the DLL and to remove change obsoleted
+ by the previous checkin.
+
+2005-03-23 Christopher Faylor <cgf@timesys.com>
+
+ * include/ctype.h: New file.
+ * ctype.cc: Ditto.
+ * Makefile.in: Add ctype.o to DLL_OFILES.
+ * cygwin.din: Remove _ctype_ptr (for now?).
+
+2005-03-22 Christopher Faylor <cgf@timesys.com>
+
+ * Makefile.in (DLL_OFILES): Add hookapi.o. Eliminate some cruft.
+ * cygheap.h (cygheap_types): Add new enum: HEAP_1_HOOK.
+ (hook_chain): New struct.
+ (init_cygheap::hooks): Define new element.
+ * cygheap.cc (cygheap_fixup_in_child): Zero hook chain on exec.
+ * dcrt0.cc (dll_crt0_1): Call ld_preload just before calling main function.
+ * external.cc (cygwin_internal): Implement CW_HOOK.
+ * fork.cc (fork_child): Call fixup_hooks_after_fork.
+ * init.cc (cygwin_hmodule): Reinstate after a long absence.
+ * include/sys/cygwin.h: Define CW_HOOK.
+ * hookapi.cc: New file.
+
+ * select.cc (start_thread_socket): Add debugging output.
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): gcc 4.x
+ accommodation.
+
+ * fhandler_socket.cc (fhandler_socket::connect): Make sure that err is
+ initialized.
+
+2005-03-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (__ctype_ptr): Export.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-03-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class cygthread): Remove forward declaration.
+
+2005-03-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class cygthread): Forward declare.
+ (fhandler_socket::sec_pipe): Remove.
+ (fhandler_socket::eid_pipe_name): Remove.
+ (fhandler_socket::eid_setblocking): New private method.
+ (fhandler_socket::eid_unsetblocking): Ditto
+ (fhandler_socket::eid_recv): Ditto
+ (fhandler_socket::eid_send): Ditto
+ (fhandler_socket::eid_accept): Ditto
+ (fhandler_socket::eid_connect): New public method.
+ * fhandler_socket.cc (ASYNC_MASK): Move to beginning of file.
+ (fhandler_socket::eid_pipe_name): Remove.
+ (fhandler_socket::set_socketpair_eids): Move down to fhandler_socket
+ methods.
+ (fhandler_socket::fhandler_socket): Drop initializing sec_pipe.
+ (fhandler_socket::~fhandler_socket): Drop closing sec_pipe.
+ (fhandler_socket::eid_setblocking): New method.
+ (fhandler_socket::eid_unsetblocking): New method.
+ (fhandler_socket::eid_recv): New method.
+ (fhandler_socket::eid_send): New method.
+ (fhandler_socket::eid_connect): New method.
+ (fhandler_socket::eid_accept): New method.
+ (fhandler_socket::dup): Drop sec_pipe handling.
+ (fhandler_socket::connect): Fix WinSock error handling. Prepare
+ eid credential transaction. Call eid_connect on successful connect.
+ (fhandler_socket::listen): Drop creating sec_pipe.
+ (fhandler_socket::accept): Slightly simplify code. Call eid_accept
+ on accepted socket.
+ (fhandler_socket::getpeereid): Reshuffle code for readability. Fix
+ test for invalid pid.
+ * select.cc (set_bits): Call eid_connect on successfully connected
+ socket.
+
+2005-03-19 Christopher Faylor <cgf@timesys.com>
+
+ * child_info.h (fork_info): Use different method to alias variable.
+ (spawn_info): Ditto.
+ * cxx.cc (__cxa_guard_acquire): New function (needed for gcc 4.x).
+ (__cxa_guard_release): Ditto.
+ * devices.in: Make sure stuff is correctly bracketed (for gcc 4.x).
+ * devices.cc: Regenerate.
+ * fhandler.h (fhandler_disk_file::fchmod): Avoid left coercion (for gcc
+ 4.x).
+ * smallprint.c (__rn): Declare as __fastcall since gcc 4.x complains
+ about use of regparm, for some reason.
+ * sync.h (sync::init_lock): Remove.
+ * sync.cc (sync::init_lock): Ditto.
+
+2005-03-18 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (cygwin_getprotobyname): Don't try to be fancy with return
+ values.
+ (cygwin_getprotobynumber): Ditto.
+
+2005-03-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::utimes): Handle opening
+ directories under 9x gracefully.
+
+2005-03-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::connect): Always set sun_path
+ in case of a successful or pending connect.
+ (fhandler_socket::accept): Don't run secret event and eid credential
+ transactions if OS accept returned WSAEWOULDBLOCK.
+
+2005-03-16 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_tape.cc (get_ll): This is a generally useful function so
+ move it
+ * winsup.h (get_ll): to here.
+ * security.cc (get_token_group_sidlist): Use get_ll to figure out the
+ long long version of the luid since QuadPart is not part of the
+ standard Windows API.
+
+2005-03-16 Christopher Faylor <cgf@timesys.com>
+
+ * dir.cc: Rename opendir_* to dirent_* throughout.
+ (opendir_states): Move and rename.
+ * fhandler.h (dirent_states): to here.
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Use raw readdir
+ when skipping through entries since it is keeping track of "." and
+ "..".
+ (fhandler_cygdrive::seekdir): Use fhandler_disk_file::readdir to do
+ everything.
+ * fhandler_virtual.cc (fhandler_virtual::opendir): Set flag indicating
+ that we provide . and ..
+ (fhandler_virtual::seekdir): Ditto.
+ (fhandler_virtual::rewinddir): Ditto.
+ * fhandler_registry.cc (fhandler_registry::rewinddir): Ditto.
+
+2005-03-16 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (free_local): New macro.
+ (_cygtls::remove): Use free_local to free known-malloced local
+ variables.
+ * cygtls.h: Mark some variables as "malloced".
+ * net.cc (enum struct_type): Rename from is_* to t_* for clarity.
+ (dump_protoent): Delete.
+ (dup_ent): New macro.
+ (__dup_ent): Renamed from dup_ent. Change arguments for convenience.
+ Replace first argument with newly alloced value. Allocate a rounded
+ number of bytes in an attempt to try to reuse space. Subsume
+ "dump_protent".
+ (cygwin_getprotobyname): Simplify using new dup_ent functionality.
+ (cygwin_getprotobynumber): Ditto.
+ (cygwin_getservbyname): Ditto.
+ (cygwin_getservbyport): Ditto.
+ (cygwin_gethostname): Ditto.
+ (cygwin_gethostbyname): Ditto.
+ * tlsoffsets.h: Regenerate.
+
+ * syslog.cc (openlog): Use NULL rather than 0, for consistency with the
+ rest of cygwin.
+ (pass_handler::initialize): Use unbuffered I/O in pass one.
+
+2005-03-15 Christopher Faylor <cgf@timesys.com>
+
+ * errno.cc (errmap): Correct typo in previous change.
+
+2005-03-15 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Free process_ident, if it exists.
+
+ * errno.cc (errmap): ERROR_DISK_CORRUPT -> EIO.
+
+2005-03-11 Christopher Faylor <cgf@timesys.com>
+
+ * path.h (pathconv_arg): Define PC_NO_ACCESS_CHECK.
+ (path_types): Define PATH_NO_ACCESS_CHECK == PC_NO_ACCESS_CHECK.
+ * path.cc (symlink_info::check_sysfile): Move to symlink_info class and
+ eliminate arguments that are part of class. Use set_error.
+ (symlink_info::check_shortcut): Ditto.
+ (symlink_info::set_error): New function.
+ (path_conv::check): Pass PC_NO_ACCESS_CHECK to symlink_info::check.
+ (symlink_info::check): Preserve PC_NO_ACCESS_CHECK in pflags. Use
+ set_error.
+
+2005-03-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (is_floppy): New function.
+ (setmntent): Drop floppy drives on A: and B: from logical drive DWORD.
+ * syscalls.cc (sync): Don't sync floppies on A: and B:.
+
+2005-03-10 Christopher Faylor <cgf@timesys.com>
+
+ * autoload.cc (LoadDLLprime): Use nocopy segment or forked processes
+ will not initialize properly.
+
+2005-03-10 Christopher Faylor <cgf@timesys.com>
+
+ * autoload.cc (LoadDLLprime): Scrap use of .linkonce and just use an
+ ifdef guard to load .foo_init into data segment.
+
+ * dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG
+ separator for consistency.
+
+2005-03-09 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.h (pinfo::pinfo): Clear more elements in the constructor.
+
+2005-03-09 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (dup_ent): Revert older stupid test for null. Don't copy name
+ if it is NULL.
+
+2005-03-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::eid_pipe_name): Fix format
+ string.
+ (fhandler_socket::connect): Set sun_path before running eid credential
+ transaction. Run transaction only if OS connect was successful.
+ (fhandler_socket::accept): Run transaction only if OS accept was
+ successful.
+
+2005-03-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * signal.cc (sigprocmask): Rename first parameter to "how".
+ (handle_sigprocmask): Ditto. Check "how" for being a valid "how" value.
+ Fix call order in case of wrong "how" value.
+
+2005-03-09 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (dup_ent): Revert previous stupid change.
+
+2005-03-09 Christopher Faylor <cgf@timesys.com>
+
+ * net.cc (dup_ent): Avoid dereferencing a null pointer in a debug_printf.
+
+2005-03-09 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Treat ENOSHARE similarly to ENOENT when
+ determining if there was a problem with a symlink.
+
+2005-03-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::listen): Don't limit the number
+ of pipe instances.
+
+2005-03-08 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::exit): Right shift exit value by eight when not
+ started in a cygwin environment.
+
+2005-03-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap64): Handle MAP_AUTOGROW flag.
+ (fhandler_disk_file::mmap): Ditto. Clean conditional for readability.
+ * include/sys/mman.h: Add MAP_AUTOGROW flag.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-03-08 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (dll_crt0_0): Eliminate muto::init call.
+ * sync.h (locker): New, currently unused class.
+ (muto::init): Eliminate.
+ * sync.cc (muto::init): Ditto.
+ (muto::init): Eliminate critical section lock and instead use name as a
+ guard to prevent against multiple attempts to initialize the same muto.
+
+ * pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid
+ matches windows pid or cygwin pid.
+
+2005-03-06 Pavel Tsekov <ptsekov@gmx.net>
+
+ * path.cc (mount_info::read_cygdrive_info_from_registry): Use the user
+ prefix if it exists.
+
+2005-03-06 Christopher Faylor <cgf@timesys.com>
+
+ * sync.h (sync::init_lock): Declare new static member.
+ (sync::init()): Declare new static function.
+ * sync.cc (sync::init): Define.
+ (sync::init): Lock attempt to initialize a muto to stop multiple
+ threads from colliding.
+ * dcrt0.cc (dll_crt0_0): Initialize muto environment.
+
+2005-03-06 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (special_name): Reorganize to always detect the use of
+ special names first, before detecting special characters.
+
+2005-03-04 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_clipboard.cc: Use int for cygnativeformat rather than UINT
+ as that is what is returned by GetPriorityClipboardFormat.
+ (fhandler_dev_clipboard::read): Ditto for the format variable.
+
+2005-03-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::open_9x): Satisfy query_open values.
+
+2005-03-04 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * fhandler_socket.cc (fhandler_socket::ioctl): Only cancel
+ WSAAsyncSelect when async mode is on.
+
+2005-03-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (utmpxname): Export.
+ * syscalls.cc (utmpxname): Create export alias to utmpname.
+ * include/utmpx.h: Define ut_name and ut_xtime if not already defined.
+ (utmpxname): Add prototype.
+ * include/sys/utmp.h: Only define ut_name if not already defined.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-03-03 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::detach): Use a slightly higher priority when
+ waiting for thread signalling.
+
+2005-03-02 Christopher Faylor <cgf@timesys.com>
+
+ * autoload.cc (std_dll_init): Save and restore fpu control register
+ around LoadAddress to prevent loaded dlls (like msvcrt.dll) from
+ setting unwanted stuff.
+
+2005-03-02 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Don't attempt any removal activities if
+ exitsock is zero.
+
+2005-03-02 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::init_thread): Move exitsock setting later. It
+ should always be set.
+ (_cygtls::remove): Detect zero exitsock. Not quite sure why this is needed.
+
+2005-03-02 Christopher Faylor <cgf@timesys.com>
+
+ * autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
+ (noload): Preserve sign when returning error code.
+
+2005-03-02 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they
+ had previously been SIG_DFL.
+
+2005-03-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Replace
+ GetSystemTime/SystemTimeToFileTime with GetSystemTimeAsFileTime.
+ * times.cc (time_as_timestruc_t): Ditto.
+ (time): Ditto.
+
+2005-03-01 Christopher Faylor <cgf@timesys.com>
+
+ * include/cygwin/version.h: Bump DLL minor number to 14.
+
+2005-03-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_clipboard.cc (fhandler_dev_clipboard::write): Never set
+ errno to 0.
+ (fhandler_dev_clipboard::read): Ditto.
+ * fhandler_windows.cc (fhandler_windows::read): Ditto.
+ * scandir.cc (scandir): Ditto.
+ * syscalls.cc (_fstat64_r): Ditto.
+ (_fstat_r): Ditto.
+ (_stat64_r): Ditto.
+ (_stat_r): Ditto.
+
+ * mmap.cc (mmap64): Fix /dev/zero mapping.
+
+2005-02-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_socket): Declare new method
+ set_socketpair_eids.
+ * fhandler_socket.cc (fhandler_socket::set_socketpair_eids): New method.
+ (fhandler_socket::dup): Duplicate sec_pipe if necessary.
+ (fhandler_socket::listen): Only create sec_pipe if named pipes are
+ available. Initialized sec_peer_pid to 0 as on Linux.
+ (fhandler_socket::connect): Only run eid credential transaction if
+ named pipes are available. Fake otherwise. Initialized sec_peer_pid
+ to 0 as on Linux.
+ (fhandler_socket::accept): Ditto.
+ (fhandler_socket::close): Move closing sec_pipe handle from here...
+ (fhandler_socket::~fhandler_socket): ... to here.
+ * net.cc (socketpair): Set eid credentials by calling
+ fhandler_socket::set_socketpair_eids() on both socket ends.
+ * wincap.h (wincaps::has_named_pipes): New element.
+ * wincap.cc: Implement above element throughout.
+
+2005-02-26 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (_pinfo::set_ctty): Move function
+ * pinfo.cc (_pinfo::set_ctty): to here.
+
+ * fhandler_mem.cc (fhandler_dev_mem::fstat): Don't fill out structure
+ if this is an on-disk device rather than an "auto" device.
+ * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
+
+ * path.cc (normalize_posix_path): Don't treat a standalone '//' as
+ introducing a UNC path.
+ (normalize_win32_path): Ditto.
+
+2005-02-26 Christopher Faylor <cgf@timesys.com>
+
+ * debug.cc (delete_handle): Report on handle value in debugging output.
+
+ * pinfo.h (_pinfo::exists): Declare "new" function.
+ (_pinfo::kill): Ditto.
+ * fhandler_termios.cc (tty_min::kill_pgrp): Use _pinfo::exists rather
+ than proc_exists.
+ * pinfo.cc (pinfo::init): Ditto. Don't do a low_priority_sleep(0) when
+ looping to find exec'ed procinfo.
+ (pinfo::release): Be more careful about unmapping and closing.
+ * signal.cc (_pinfo::kill): Rename from kill_worker. Accommodate entry
+ into _pinfo class.
+ (kill0): Use _pinfo::kill rather than kill_worker.
+ (kill_pgrp): Ditto. Use _pinfo::exists rather than proc_exists.
+ * sigproc.cc (_pinfo::exists): Rename from proc_exists.
+ (pid_exists): Use _pinfo::exists rather than proc_exists.
+ (remove_proc): Ditto.
+ * sigproc.h (proc_exists): Delete declaration.
+
+2005-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_base): Declare fixup_mmap_after_fork
+ with additional flags parameter. Change offset parameter to _off64_t.
+ (class fhandler_disk_file): Ditto.
+ (class fhandler_dev_mem): Ditto.
+ * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork):
+ Accommodate new parameters.
+ * mmap.cc: Include ntdll.h.
+ (class mmap_record): Add flags member.
+ (mmap_record::mmap_record): Add flags parameter.
+ (mmap_record::get_flags): New method.
+ (class map): Add next_anon_addr member to store next anonymous mapping
+ address suggestion.
+ (map::get_next_anon_addr): New method.
+ (map::set_next_anon_addr): New method.
+ (mmap64): Don't align offset and length to granularity in case of
+ MAP_ANONYMOUS on NT. Check for already existing mapping only on 9x.
+ Call mmap_record::mmap_record with additional flags argument.
+ (fhandler_base::fixup_mmap_after_fork): Accommodate new parameters.
+ (fhandler_disk_file::mmap): Use NtMapViewOfSection with
+ AT_ROUND_TO_PAGE flag for anonymous mappings on NT. If addr is NULL,
+ try to map adjacent to previous mapping.
+ (fhandler_disk_file::fixup_mmap_after_fork): Add flags argument.
+ Change offset parameter to _off64_t. Use NtMapViewOfSection to
+ re-create anonymous mappings on NT.
+ (fixup_mmaps_after_fork): Accommodate new parameters when calling
+ fhandler's fixup_mmaps_after_fork function.
+ * ntdll.h (AT_ROUND_TO_PAGE): New define.
+
+2005-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap64): Handle anonymous MAP_FIXED request on
+ non-granulation boundary.
+
+2005-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (class mmap_record): Declare new map_pages method with
+ address parameter.
+ (mmap_record::map_pages): New method with address parameter.
+ (mmap64): Evaluate access mode before checking if already existing
+ mapping can be used.
+ Only use existing mapping if requested access mode matches the one
+ in the existing mapping.
+ Add check for existing mapping for anonymous MAP_FIXED case.
+
+2005-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * localtime.cc: Implement setting __tzrule's offset member using
+ newlib's __gettzinfo () interface.
+ (__tzrule): Remove.
+ (timezone): Define as long according to POSIX.
+
+2005-02-23 Eric Blake <ebb9@byu.net>
+
+ * devices.in (parsedisk): Fix typo.
+ * devices.cc: Regenerate.
+
+2005-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (getpeereid): Export.
+ * fhandler.h (class fhandler_socket): Add pipe and id members to
+ exchange eid credentials for AF_LOCAL sockets.
+ (eid_pipe_name): Declare new method.
+ (getpeereid): Ditto.
+ * fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method.
+ (fhandler_socket::fhandler_socket): Initialize sec_pipe.
+ (fhandler_socket::connect): Exchange eid credentials with accepting
+ socket process.
+ (fhandler_socket::listen): Prepare eid credential transaction.
+ (fhandler_socket::accept): Exchange eid credentials with connecting
+ socket process.
+ (fhandler_socket::close): Close eid credentials pipe if open.
+ (fhandler_socket::getpeereid): New method.
+ * net.cc (cygwin_getsockopt): Add SO_PEERCRED handling.
+ (getpeereid): New function.
+ * include/asm/socket.h (SO_PEERCRED): Define.
+ * include/cygwin/socket.h (struct ucred): Define new type.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/sys/statvfs.h (ST_RDONLY): Define.
+ (ST_NOSUID): Define.
+
+2005-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (fstatvfs): Export.
+ (statvfs): Export.
+ * syscalls.cc: Include sys/statvfs.h.
+ (statvfs): New function. Move statfs functionality here.
+ (fstatvfs): New function.
+ (statfs): Just call statvfs and copy structure. Check validity of
+ incoming struct statfs pointer.
+ * include/cygwin/types.h (fsblkcnt_t): Define.
+ (fsfilcnt_t): Define.
+ * include/cygwin/version.h: Bump API minor version.
+ * include/sys/statvfs.h: New file.
+
+2005-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * devices.h: Switch FH_ZERO and FH_PORT as on Linux. Add FH_FULL.
+ * devices.in: Add /dev/full.
+ * devices.cc: Regenerate.
+ * dtable.cc (build_fh_pc): Add FH_FULL.
+ * fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
+ correctly.
+ * fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
+ and return -1 if device is FH_FULL.
+
+2005-02-22 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
+ closing cygdrive_root.
+
+2005-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (basename): Export.
+ (dirname): Export.
+ * path.cc (basename): New function.
+ (dirname): New function.
+ * include/libgen.h: New file.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * select.cc (peek_pipe): Disable new pipe code until there's
+ a working substitute.
+
+2005-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (fdatasync): Export.
+ * fhandler.cc (fhandler_base::fsync): Return with EINVAL if no
+ handle is available.
+ * syscalls.cc (fdatasync): Create export alias to fsync.
+ * include/cygwin/version.h: Bump API minor version.
+
+2005-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::fstat_helper): Declare with additional
+ dwVolumeSerialNumber argument. Drop default values for last three
+ arguments.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Pass
+ dwVolumeSerialNumber from GetFileInformationByHandle to fstat_helper.
+ (fhandler_base::fstat_by_name): Pass pc.volser () to fstat_helper.
+ Accommodate dropping default values for last three arguments of
+ fstat_helper.
+ (fhandler_base::fstat_helper): Add dwVolumeSerialNumber argument.
+ Use for st_dev member unless 0 in which case pc.volser () is used.
+
+2005-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (FindFirstVolumeA): Add.
+ (FindNextVolumeA): Add.
+ (FindVolumeClose): Add.
+ (GetVolumePathNamesForVolumeNameA): Add.
+ * fhandler.h (class fhandler_base): Declare new method fsync.
+ * fhandler.cc (fhandler_base::fsync): New method.
+ * syscalls.cc (fsync): Move functionality into fhandler method fsync.
+ Just call this method from here.
+ (sync_worker): New static function.
+ (sync): Fill with life for NT systems.
+ * wincap.h (wincaps::has_guid_volumes): New element.
+ * wincap.cc: Implement above element throughout.
+
+2005-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (enum query_state): Add query_write_attributes state.
+ (fhandler_base::status.query_open): Add a bit to make room for more
+ states.
+ (class fhandler_base): Declare new method utimes.
+ (class fhandler_socket): Ditto.
+ (class fhandler_disk_file): Ditto.
+ (fhandler_disk_file::fhandler_disk_file): Add constructor with
+ path_conv parameter.
+ * fhandler.cc (fhandler_base::open): Add query_write_attributes
+ handling.
+ (fhandler_base::utimes): New method.
+ * fhandler_disk_file.cc (fhandler_disk_file::link): Simplify.
+ Open file with query_write_attributes instead of query_write_control.
+ (fhandler_disk_file::utimes): New method.
+ (fhandler_disk_file::fhandler_disk_file): Add constructor with
+ path_conv parameter setting pc member immediately.
+ * fhandler_socket.cc (fhandler_socket::fchmod): Use new
+ fhandler_disk_file constructor.
+ (fhandler_socket::fchown): Ditto.
+ (fhandler_socket::facl): Ditto.
+ (fhandler_socket::link): Ditto.
+ (fhandler_socket::utimes): New method.
+ * times.cc: Include dtable.h.
+ (timeval_to_filetime): Make non-static.
+ (utimes): Move functionality into fhandler method utimes. Just call
+ this method from here.
+ * winsup.h: Simplify declarations of time helper functions.
+ (timeval_to_filetime): Add extern declaration.
+
+2005-02-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_base): Declare new method link.
+ (class fhandler_socket): Ditto.
+ (class fhandler_disk_file): Ditto.
+ * fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES
+ to query_write_control access flags.
+ (fhandler_base::link): New method.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to
+ open with O_WRONLY since query_write_control includes
+ FILE_WRITE_ATTRIBUTES.
+ (fhandler_disk_file::fchown): Ditto.
+ (fhandler_disk_file::facl): Ditto.
+ (fhandler_disk_file::link): New method. Touch st_ctime on successful
+ link.
+ * fhandler_socket.cc (fhandler_socket::link): New method.
+ * syscalls.cc (link): Move functionality into fhandler method link.
+ Just call this method from here.
+
+2005-02-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_socket): Declare new methods fchown,
+ fchmod and facl.
+ * fhandler_socket.cc (fhandler_socket::fstat): Handle AF_LOCAL
+ sockets.
+ (fhandler_socket::fchmod): New method.
+ (fhandler_socket::fchown): New method.
+ (fhandler_socket::facl): New method.
+
+2005-02-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * localtime.cc: Temporary implementation of setting __tzrule's offset
+ member to be used by strftime.
+ (__tzrule): New global variable.
+ (tzparse): Set __tzrule's offset member appropriately.
+
+2005-02-17 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Set fs flag when a unix-domain socket
+ is detected.
+
+2005-02-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
+ has_changed flag is set.
+ (fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
+
+2005-02-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
+ if that fails, try opeing with GENERIC_WRITE. Fix comments.
+
+2005-02-15 Christopher Faylor <cgf@timesys.com>
+
+ * path.h (path_conv::issocket): Return true if device == FH_UNIX rather
+ than expecting path_conv to set a flag.
+
+2005-02-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::raw_write): Mark as changed on
+ successful write.
+ * fhandler.h (fhandler_base::status_flags): Add 'has_changed' flag.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call
+ fhandler_disk_file's own open and close instead of open_fs and
+ close_fs. Mark as changed on success.
+ (fhandler_disk_file::fchown): Ditto.
+ (fhandler_disk_file::facl): Ditto.
+ (fhandler_disk_file::ftruncate): Ditto.
+ (fhandler_base::open_fs): Mark as changed when O_TRUNC flag on existing
+ file is set.
+ (fhandler_disk_file::close): Set st_ctime if has_changed flag is set.
+
+2005-02-11 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::release): Reset ev here if it exists.
+ (cygthread::terminate_thread): Eliminate racy code which reset ev and
+ thread_sync. Remove a few nonsensical inuse checks. Exit at the
+ bottom.
+ (cygthread::detach): Rewrite to again try to ensure that we don't say
+ we're signalled when we are not signalled.
+ * fhandler.cc (fhandler_base::raw_read): Revert to signalling read
+ success quickly.
+ * pipe.cc (fhandler_pipe::close): Use base method to close handle.
+ * sigproc.h (WAIT_SIG_PRIORITY): Just trundle along at normal priority
+ to allow the pipe thread to do its thing if possible.
+
+ * pinfo.h (pinfo::zap_cwd): Declare new function.
+ (pinfo::zap_cwd): Move 'cd out of the way code' here.
+ (pinfo::exit): Use it here.
+ * spawn.cc (spawn_guts): And here.
+
+2005-02-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * times.cc (utimes): Open files with GENERIC_WRITE on file systems
+ not supporting ACLs.
+
+2005-02-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Fix checking
+ lseek return code.
+
+2005-02-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * times.cc (timeval_to_filetime): Define first parameter const.
+ (utimes): Define second parameter to const according to SUSv3.
+ (utime): Ditto.
+ * include/sys/utime.h (utime) : Change declaration accordingly.
+
+2005-02-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygthread.cc (cygthread::detach): Just test thread handle after
+ signal arrived, don't wait infinitely for it.
+
+2005-02-08 Christopher Faylor <cgf@timesys.com>
+
+ * pipe.cc (fhandler_pipe::read): Remove hold over from old read_state
+ implementation.
+
+2005-02-06 Yitzchak Scott-Thoennes <sthoenna@efn.org>
+
+ * net.cc (cygwin_gethostbyname): Be more picky about what's a numeric
+ address string, and use tls in that case too.
+
+2005-02-07 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc: Make windows_system_directory non-static.
+ * pinfo.cc (pinfo::exit): Change innocuous cd'ed location to one that
+ is more likely to exist.
+
+2005-02-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Leave symlink expansion loop in case
+ a not-ENOENT error happens.
+
+ * cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
+ * pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
+ (_pinfo::commune_send): Ditto.
+ (_pinfo::pipe_fhandler): New method.
+ * pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
+ (_pinfo::pipe_fhandler): Declare.
+ * pipe.cc (fhandler_pipe::open): Rewrite. Allow to open foreign
+ pipe handles.
+
+2005-02-03 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.h (cygthread::terminate_thread): Reflect return value.
+ * cygthread.cc (cygthread::detach): Be more careful about ensuring that
+ sigwait is properly waited for to avoid later missynchronization.
+ (cygthread::terminate_thread): Return true if thread was actually
+ terminated and all handles were closed.
+ * fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state
+ rather than raw calls to win32 api.
+ (fhandler_base::read): Ditto.
+ * fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create
+ read_state signalling.
+ (fhandler_pipe::create): Ditto.
+
+ * Makefile.in: Make some more files -fomit-frame-pointer.
+
+2005-02-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::ftruncate): Define new virtual method.
+ (fhandler_disk_file::ftruncate): Ditto.
+ * fhandler.cc (fhandler_base::ftruncate): New method.
+ * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
+ * syscalls.cc (ftruncate64): Move functionality into fhandlers.
+ Call fhandler method from here.
+
+2005-02-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.
+
+2005-02-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * times.cc (utimes): Mark st_ctime for update according to SUSv3.
+
+2005-02-01 Christopher Faylor <cgf@timesys.com>
+
+ * fhandler_proc.cc (format_proc_partitions): Remove PartitionType check
+ since it could skip over partitions that are actually interesting.
+
+2005-02-01 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::terminate_thread): Wait briefly for
+ notification event in the event that the thread was actually in the
+ process of exiting.
+
+ * pipe.cc (fhandler_pipe::dup): read_state is not supposed to be
+ inheritable. Fix that.
+
+ * path.cc (path_conv::check): Set symlen = 0 to avoid a compiler
+ warning.
+
+ * devices.h (devices::parsedisk): Declare new function.
+ * devices.in (devices::parsedisk): Define new function.
+ * dtable.cc (dtable::init_std_file_from_handle): Use device numbers
+ rather than name.
+ * fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate
+ disk names from numeric codes. (This was broken on two of my
+ systems previously and is still broken now)
+
+2005-02-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * pipe.cc (fhandler_pipe::open): Allow re-opening of /proc/<pid>/fd
+ pipes of the current process.
+
+2005-02-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::get_proc_fd_name): Don't generate
+ "device:" entry.
+ * fhandler.h (fhandler_socket::open): New method.
+ (fhandler_pipe::open): New method.
+ * fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of
+ /proc/self.
+ * fhandler_process.cc (fhandler_process::exists): Return -2 in
+ case of symlinks, -3 for pipes and -4 for sockets.
+ (fhandler_process::fstat): Handle pipes and sockets.
+ (fhandler_process::open): Handle opening /proc/<pid>/fd.
+ (fhandler_process::fill_filebuf): Generate empty names for
+ non exisiting file descriptors.
+ * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always
+ generate "socket:[number]" strings as on Linux.
+ (fhandler_socket::open): New method.
+ (fhandler_socket::fstat): Always return socket type.
+ * path.cc (symlink_info::set): Remove unused second parameter.
+ (path_conv::check): Handle pipes and sockets in /proc.
+ Set correct device type for AF_LOCAL sockets.
+ * pinfo.cc (_pinfo::commune_recv): Generate empty names for
+ non exisiting file descriptors.
+ (_pinfo::fd): Ditto.
+ * pipe.cc (fhandler_pipe::open): New method.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
+ * path.h (path_conv::set_name): Declare new function.
+ * path.cc (path_conv::set_name): Define new function.
+ * fhandler.h (fhandler_dev_null::open): Declare new function.
+ * fhandler.cc (fhandler_dev_null::open): Define new function.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
+ * smallprint.c (rnarg): Use long rather than unsigned long so that we
+ get proper sign extension.
+
+2005-01-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (set_traverse): New function.
+ (parse_thing): Add "traverse" option. Sort options alphabetically.
+ (environ_init): On NT, switch on traverse checking by default.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
+ * smallprint.c (__rn): Regparmize.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
+ * smallprint.c (rnarg): New macro.
+ (rnargLL): Ditto.
+ (__rn): Rename from 'rn', add a mask argument, and use the mask
+ argument to control how many significant digits to care about.
+ (__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.
+
+2005-01-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc (format_process_maps): Get destbuf argument by
+ reference. Allow resizing of destbuf as necessary. Fix string
+ handling.
+
+2005-01-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (class cygheap_fdenum): New class to enumerate used
+ fhandlers.
+ * dtable.h (class dtable): Add cygheap_fdenum as friend class.
+ * fhandler.h (fhandler_base::get_proc_fd_name): New virtual method
+ to return a name for /proc/<pid>/fd.
+ (fhandler_socket::get_proc_fd_name): Ditto.
+ (fhandler_pipe::get_proc_fd_name): Ditto.
+ (fhandler_virtual::opendir): Make virtual method.
+ (fhandler_process::opendir): New method.
+ * fhandler.cc (fhandler_base::get_proc_fd_name): New method.
+ * fhandler_process.cc: Include ctype.h.
+ (PROCESS_FD): Define.
+ (process_listing): Add "fd".
+ (fhandler_process::exists): Fix comment. Return 1 in case of "fd"
+ directory. Handle files below "fd".
+ (fhandler_process::fstat): Drop "self" handling. Set correct link
+ count for directories.
+ (fhandler_process::opendir): New method to handle "fd" directory.
+ (fhandler_process::readdir): Add "fd" handling.
+ (fhandler_process::open): Drop "self" handling.
+ (fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix
+ "maps" output string.
+ * fhandler_registry.cc (fhandler_registry::fstat): Set correct link
+ count for directories.
+ * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method.
+ * path.cc (symlink_info::set): Fix thinko.
+ * pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout.
+ Drop local path variable in PICOM_FIFO case. Fix debug output.
+ Close handles as early as possible. Add PICOM_FDS and PICOM_FD
+ handling.
+ (_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling.
+ (_pinfo::fd): New method.
+ (_pinfo::fds): New method.
+ * pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD.
+ (_pinfo::fd): Declare.
+ (_pinfo::fds): Declare.
+ * pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
+
+2005-01-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * smallprint.c (rn): Change uval to unsigned long long to fix 64 bit
+ handling.
+ * fhandler_process.cc (format_process_maps): Print major, minor and
+ inode numbers correctly.
+
+2005-01-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (GetModuleFileNameExA): Add.
+ (GetModuleInformation): Add.
+ (QueryWorkingSet): Add.
+ * fhandler.h (fhandler_virtual::get_filebuf): New method.
+ * fhandler_proc.cc (PROC_SELF): Define.
+ (proc_fhandlers): Change type of self to FH_PROC.
+ (fhandler_proc::exists): Return -3 if self.
+ (fhandler_proc::fstat): Handle self as symlink.
+ (fhandler_proc::fill_filebuf): Handle self.
+ * fhandler_process.cc: Include psapi.h.
+ (PROCESS_EXENAME): Remove.
+ (PROCESS_MAPS): Define.
+ (PROCESS_ROOT): Define.
+ (PROCESS_EXE): Define.
+ (PROCESS_CWD): Define.
+ (process_listing): Remove "exename", add "maps, "root", "exe" and
+ "cwd" elements.
+ (fhandler_process::exists): Return -2 for symlinks.
+ (fhandler_process::fstat): Handle symlinks.
+ (fill_filebuf): Evaluate pid if pid is 0. Use exename handling for
+ exe. Handle maps, root and cwd.
+ (format_process_maps): New function evaluating "maps".
+ * path.cc (symlink_info::set): New method to fill symlink_info
+ with data matching virtual symlinks.
+ (path_conv::check): Handle virtual symlinks.
+ * pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT
+ handling.
+ (_pinfo::commune_send): Ditto.
+ (_pinfo::root): New function.
+ (_pinfo::cwd): New function.
+ * pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT.
+ (_pinfo::root): Declare.
+ (_pinfo::cwd): Declare.
+
+2005-01-29 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (new): Add a little more debugging.
+ * thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
+
+2005-01-28 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (cygtls::call2): Move socket cleanup.
+ (cygtls::remove): Move socket cleanup here. Don't use _my_tls to
+ reference it.
+
+2005-01-26 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Avoid a compiler warning.
+
+2005-01-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER and
+ setting priority in other Cygwin processes.
+ (getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value
+ from other processes.
+
+2005-01-26 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * path.cc (path_conv::check): Return ENOTDIR rather than ENOENT
+ when a component is not a directory. Remove unreachable code.
+ (digits): Delete.
+
+2005-01-25 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.h (pinfo::init): Make third parameter non-optional and
+ propagate change throughout.
+ * pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL.
+ (pinfo::init): Make third parameter non-optional. Eliminate use of
+ PID_EXECED as an argument. Put setting of handle back inside loop but
+ reorganize to try to open it only when necessary.
+
+2005-01-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din: Export getpriority and setpriority.
+ * fork.cc (fork_parent): Copy parent's nice value into child.
+ * spawn.cc (spawn_guts): Ditto.
+ * miscfuncs.cc (winprio_to_nice): New function.
+ (nice_to_winprio): Ditto.
+ * pinfo.cc (pinfo_init): If parent is not a Cygwin process, set
+ default nice value according to current Win32 priority class.
+ * pinfo.h (class _pinfo): Add nice member.
+ * syscalls.cc (setpriority): New function, only implementing
+ PRIO_PROCESS for now.
+ (getpriority): Ditto.
+ (nice): Just call setpriority.
+ * wincap.h (wincaps::has_extended_priority_class): New element.
+ * wincap.cc: Implement above element throughout.
+ * winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio.
+ * include/limits.h (NZERO): New define.
+ * include/cygwin/types.h (id_t): New datatype.
+ * include/cygwin/version.h: Bump API minor version.
+ * include/sys/resource.h: Add PRIO_XXX defines and prototypes for
+ getpriority and setpriority.
+
+2005-01-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (realpath): Allow to expand with .exe suffix.
+
+2005-01-22 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to
+ make sure that a stub process does not keep the current working
+ directory busy after the "execed" process has exited.
+
+2005-01-22 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out
+ of the loop since trying multiple times to call CreateFileMapping
+ doesn't make much sense. Try to structure the loop a little better so
+ that exiting with a break does the right thing.
+ (pinfo::release): Release shared memory area if it exists and close
+ handle if it exists.
+
+2005-01-22 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that
+ process has exited before getting an error code.
+ (pinfo::exit): "cd" to innocuous location before exiting to make sure
+ that process does not keep the current working directory busy while it
+ is in the process of really exiting.
+
+2005-01-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (CoInitialize): Remove.
+ (CoUninitialize): Remove.
+ (CoCreateInstance): Remove.
+ (CoTaskMemFree): Add.
+ (SHGetDesktopFolder): Add.
+ * path.cc (shortcut_header): Remove.
+ (shortcut_initalized): Remove.
+ (GUID_shortcut): New static GUID.
+ (struct win_shortcut_hdr): New struct describing Windows shortcut
+ header structure.
+ (symlink_worker): Rewrite creating Windows shortcuts. Create
+ ITEMIDLIST if target exists. Only write once.
+ (cmp_shortcut_header): Use win_shortcut_hdr structure for comparison.
+ (check_shortcut): Rewrite to read only once from file. Allow skipping
+ an ITIMIDLIST in the file.
+
+2005-01-16 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.h (maybe_set_exit_code_from_windows): Renamed from
+ set_exit_state.
+ * pinfo.cc (pinfo::exit): Use renamed function.
+ (proc_waiter): Ditto. Make a copy of input argument to avoid problems
+ when procs array is shuffled. Flag when copy is made so that
+ remove_proc knows when it is safe to reshuffle.
+ * sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED.
+ (remove_proc): Wait for waiter to finish copying pinfo element before
+ moving it (an actual wait should be an extremely rare event).
+
+2005-01-15 Christopher Faylor <cgf@timesys.com>
+
+ * init.cc (dll_entry): Remove unused extern.
+
+ * include/sys/cygwin.h: Remove PID_ZOMBIE.
+ * pinfo.h: Rename EXITCODE_* defines.
+ (pinfo::set_exit_state): Remove parameter.
+ * pinfo.cc (set_exit_state): Remove parameter. Reverse sense of test
+ so that exitcode is checked for having been set rather than not having
+ been set. Set flag when exitcode has been established. Don't set
+ PID_STATE here.
+ (pinfo::init): Remove exitcode initialization.
+ (pinfo::exit): Reflect change in EXITCODE_* naming. Set flag when
+ exitcode has been established. Reflect change in arguments to
+ set_process_state.
+ (proc_waiter): Reflect change in arguments to set_process_state. Set
+ process_state here and only here.
+ * fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal
+ of PID_ZOMBIE define.
+ (format_process_stat): Ditto.
+ (format_process_status): Ditto.
+ * sigproc.cc (pid_exists): Ditto.
+ (stopped_or_terminated): Ditto. Make sure that only low-order 16 bits of
+ exitcode are used.
+ * spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
+
+2005-01-15 Christopher Faylor <cgf@timesys.com>
+
+ * sigproc.cc (sig_send): Don't complain if attempt to send signal to
+ myself fails after I've "execed".
+
+2005-01-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful
+ SETACL if no acls are available.
+ * fhandler.cc (fhandler_base::facl): Implement to return sensible
+ values on GETACL and GETACLCNT. Pretend successful SETACL.
+ * fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
+
+2005-01-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_disk_file::touch_ctime): Declare.
+ * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method
+ to set file's ctime.
+ (fhandler_disk_file::fchmod): Try opening file for writing first.
+ Set file's ctime on success.
+ (fhandler_disk_file::fchown): Ditto.
+ (fhandler_disk_file::facl): Ditto.
+
+2005-01-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * pinfo.cc (pinfo::exit): Don't access self after releasing it.
+ * path.h (path_conv::path_conv): Fill path with native device
+ name in case of device argument.
+
+2005-01-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
+ for child, not for parent.
+
+2005-01-13 Christopher Faylor <cgf@timesys.com>
+
+ * init.cc (dll_entry): Nuke attempt to set exit code since parent will
+ use windows exit code if needed.
+ * pinfo.cc (pinfo::exit): Move release() here to minimize pid creation
+ race (suggested by Pierre Humblet).
+
+2005-01-12 Christopher Faylor <cgf@timesys.com>
+
+ Reorganize header file inclusion throughout so that cygerrno.h comes
+ first.
+ * fhandler.h (select_record::thread_errno): Save any encountered errno
+ here.
+ (select_record::set_select_errno): New function.
+ (select_record::saw_error): New function.
+ (select_record::select_record): Initialize thread_errno to zero.
+ * select.cc (set_handle_or_return_if_not_open): Set thread_errno on
+ failure.
+ (select_stuff::wait): Record errno for later resurrection in calling
+ thread.
+ (peek_serial): Ditto.
+
+2005-01-12 Christopher Faylor <cgf@timesys.com>
+
+ * syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
+
+2005-01-12 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::exit): Don't assume that this == myself.
+
+2005-01-11 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (pinfo::init): Don't close input handle on temporary (?)
+ failure.
+
+2005-01-11 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.h (_pinfo::set_exit_state): Declare new function.
+ (pinfo::exit): Move here from _pinfo::exit.
+ * sigproc.cc (child_info::sync): Use new function to set exitcode and
+ process_state.
+ * pinfo.cc (_pinfo::exit): Ditto.
+ (proc_waiter): Ditto.
+ (_pinfo::set_exit_state): Define new function.
+ (_pinfo::dup_proc_pipe): Close handle when there is no parent process
+ around to care about the exit value.
+ * dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to
+ make sure that myself is still mapped in parent.
+ (do_exit): Reflect movement to pinfo::exit.
+ (__api_fatal): Ditto.
+ * exceptions.cc (signal_exit): Ditto.
+ * errno.cc (errmap): Map PROC_NOT_FOUND.
+ * init.cc (dll_entry): Release myself before exiting.
+ * sigproc.cc (proc_can_be_signalled): Set errno appropriately.
+ (sig_send): Ditto. Also remove ill-advised test for !myself->sendsig
+ since this is an indication of a process which is still initializating
+ -- it is not an error.
+ (child_info::sync): Don't set exitcode here. Assume that will happen
+ in proc_waiter, if necessary.
+ * spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later.
+ Don't wait at all if the process has already exited. Reflect movement
+ to pinfo::exit.
+
+2005-01-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (build_env): Disallow empty strings and strings starting
+ with '=' in Win32 environment.
+
+2005-01-08 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * syscalls.cc (seteuid32): Only change the default dacl when
+ seteuid succeeds. Do not close HKCU.
+
+2005-01-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc: Use strcasematch instead of strcasecmp
+ throughout.
+
+2005-01-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (rename): Fix behaviour in case of renaming directories
+ according to SUSv3.
+
+2005-01-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow
+ opening directories for writing.
+
+2005-01-06 Christopher Faylor <cgf@timesys.com>
+
+ * timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather
+ than pointer to sigev.
+
+2005-01-05 Christopher Faylor <cgf@timesys.com>
+
+ * dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not
+ always talk about a "version" when it's not a version.
+ (dll_crt0_0): Change info passed to multiple_cygwin_problem to be a
+ little more precise.
+ * shared.cc (user_shared_initialize): Ditto.
+ (shared_info::initialize): Ditto.
+
+2005-01-03 Christopher Faylor <cgf@timesys.com>
+
+ * pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing
+ or we will suffer an exit code race.
+
+2005-01-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * signal.cc (abort): Call _GLOBAL_REENT's __cleanup.
+
+2005-01-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT.
+
+2005-01-01 Christopher Faylor <cgf@timesys.com>
+
+ * cygthread.cc (cygthread::stub): Set inuse to false when exiting.
+ (cygthread::cygthread): Actually pass name as argument to debugging
+ output to avoid SEGV when strace'ing.
+ (cygthread::release): Don't set stack_ptr to NULL, since it is only set
+ once on first entry to a stub not on each stub iteration.
+ (cygthead::exit_thread): Remove obsolete function.
+ * cygthread.h (cygthread::exit_thread): Ditto.
+
+2005-01-01 Christopher Faylor <cgf@timesys.com>
+
+ * shared.cc (open_shared): Don't attempt VirtualAlloc magic if first
+ attempt to map memory fails.
diff --git a/winsup/cygwin/syslog.cc b/winsup/cygwin/syslog.cc
index b8bd669..ea59ba8 100644
--- a/winsup/cygwin/syslog.cc
+++ b/winsup/cygwin/syslog.cc
@@ -1,6 +1,7 @@
/* syslog.cc
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006 Red Hat, Inc.
This file is part of Cygwin.
@@ -498,8 +499,6 @@ vklog (int priority, const char *message, va_list ap)
dev_kmsg->open (O_WRONLY, 0);
if (dev_kmsg && dev_kmsg->get_handle ())
dev_kmsg->write (buf, strlen (buf) + 1);
- else
- vsyslog (priority, message, ap);
klog_guard.release ();
}