OSDN Git Service

* cygwin.din: Export stpcpy, stpncpy.
[pf3gnuchains/pf3gnuchains3x.git] / winsup / cygwin / ChangeLog
index 02690d2..8a8ab8b 100644 (file)
@@ -1,3 +1,986 @@
+2007-06-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export stpcpy, stpncpy.
+       * posix.sgml: Add stpcpy and stpncpy to list of implemented
+       GNU extensions.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
+       (CURR_SHARED_MAGIC): Ditto.
+       (class shared_info): Add heap_slop_inited member.
+       * shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
+       track initializing heap_slop since 0 is a valid value for heap_slop.
+       Drop useless < 0 consideration.
+
+2007-06-27  Eric Blake  <ebb9@byu.net>
+
+       * assert.cc (__assert_func): New function, to match newlib header
+       change.
+       * cygwin.din: Export __assert_func.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSAIoctl): Remove.
+       * cygwin.din: Export freeifaddrs, getifaddrs.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
+       from get_ifconf.
+       * net.cc: Include ifaddrs.h.
+       (in_are_prefix_equal): Match addresses in network byte order.
+       (ip_addr_prefix): Convert address into host byte order before
+       testing with IN_LOOPBACK.
+       (struct ifall): Define.
+       (get_xp_ifs): Replace get_xp_ifconf.  Return struct ifall array.
+       (get_2k_ifs): Ditto, replace get_2k_ifconf.
+       (get_nt_ifs): Ditto, replace get_nt_ifconf.
+       (getifaddrs): New function.
+       (freeifaddrs): New function.
+       (get_ifconf): Call matching get_XX_ifs function and create
+       ifc content from here.  Drop lo fake since it's now in get_nt_ifs.
+       * posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
+       BSD functions.
+       * wincap.h (wincapc::has_broken_if_oper_status): New element.
+       * wincap.cc: Implement above element throughout.
+       * include/ifaddrs.h: New file.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-20  Eric Blake  <ebb9@byu.net>
+
+       * cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
+       funopen, fopencookie.
+       * include/cygwin/version.h: Bump API minor number.
+       * posix.sgml: Minor improvements.
+
+2007-06-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
+
+2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * include/search.h: Reinstate node_t definition.
+
+2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * include/sys/cdefs.h: Remove in favor of newlib version.
+
+2007-06-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (GetIpForwardTable): Define.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
+       * net.cc (get_routedst): New static function to get destination
+       address of point-to-point interfaces.
+       (get_xp_ifconf): Handle SIOCGIFDSTADDR.
+       (get_2k_ifconf): Ditto.
+       (get_nt_ifconf): Ditto.
+       (get_ifconf): Ditto.
+       * include/asm/socket.h (SIOCGIFDSTADDR): Define.
+       * include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
+       (ifr_dstaddr): Define.
+       * include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
+       definitions.
+
+2007-06-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * signal.cc (usleep): Use useconds_t for the type as per POSIX.
+
+2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add xsique.o.
+       * cygwin.din (confstr): Make NOSIGFE.
+       (insque): Export.
+       (remque): Export.
+       * lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
+       * posix.sgml: Move insque to defined SUSv3 interfaces.  Remove
+       comment for remque.
+       * include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
+       Add struct qelem definition.  Add insque and remque declarations.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/queue.h: Remove insque/remque definitions so as not
+       to collide with SUSv3 compatible declaration in search.h.
+       * libc/xsique.cc: New file implementing insque and remque.
+
+2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
+       correctly.
+
+2007-06-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (confstr): Export.
+       * posix.sgml (confstr): Move to list of implemented SUSv3 functions.
+       * sysconf.cc (confstr): Implement.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ansi.sgml: Delete.
+       * misc-std.sgml: Delete.
+       * posix.sgml: Rework entirely.
+
+2007-05-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
+       correctly for 64 bit file access.  Comment out functionality.
+       * fhandler.cc (fhandler_base::open): Don't set append_mode.
+       (fhandler_base::write): Check for O_APPEND instead of append_mode.
+       Call SetFilePointer correctly for 64 bit file access.  Handle
+       errors from SetFilePointer.
+       * fhandler.h (class fhandler_base): Drop append_mode status flag.
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
+       seeking correctly for 64 bit file access.
+
+2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cwdstuff::set): Revert useless acquire check.
+
+2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
+       Open directory with inheriting enabled.
+
+2007-05-21  Christian Franke <franke@computer.org>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
+       devbuf if new position is within buffered range.
+
+2007-05-21  Eric Blake  <ebb9@byu.net>
+
+       * include/search.h (hsearch_r): Provide declaration.
+
+2007-05-21  Christian Franke <franke@computer.org>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
+       sector size.  Simplify non-sector aligned case.  Handle errors from
+       raw_read.
+
+2007-05-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (adjust_socket_file_mode): New inline function.
+       (fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
+       before using it.
+       (fhandler_socket::bind): Ditto.
+
+2007-03-19  Ryan C. Gordon  <icculus@icculus.org>
+
+       * path.cc (fs_info::update): Set and use is_cdrom.
+       * path.cc (fillout_mntent): Set ret.mnt_type to something more
+       Linux-like, based on data from fs_info.  Move "system" and "user"
+       strings from mnt_type to mnt_opts.
+       * path.h (struct fs_info): Add is_cdrom field.
+       * path.h (fs_info::clear): Initialize is_cdrom.
+       * path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
+       * path.h (class path_conv): Add fs_is_cdrom method.  Add missing
+       fs_is_netapp method.
+
+2007-05-14  Eric Blake  <ebb9@byu.net>
+
+       * cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-04-18  Brian Dessent  <brian@dessent.net>
+
+       * cygwin.sc: Remove duplicated .debug_macinfo section.
+       * dllfixdbg: Also copy DWARF-2 sections into .dbg file.
+
+2007-04-06  Eric Blake  <ebb9@byu.net>
+
+       * include/stdint.h (WINT_MIN): Fix sign.
+
+2007-04-04  Eric Blake  <ebb9@byu.net>
+
+       * include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
+
+2007-03-30  Christopher Faylor  <me@cgf.cx>
+
+       * external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
+       * include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
+
+2007-03-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Fix formatting.  Remove comment.  Set
+       shared_prefix depending only on terminal service capability.
+       * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
+       * fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
+       object.
+       * posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
+       (ipc_cond_init): Ditto.
+       * sec_helper.cc (privilege_name): Make static.  Use LookupPrivilegeName
+       directly to be independent of the state of cygheap.
+       (set_privilege): Take a LUID as parameter instead of an index value.
+       Only print debug output in case of failure.
+       (set_cygwin_privileges): Add comment.  Use LookupPrivilegeValue to
+       get privilege LUIDs.
+       (init_global_security): Call set_cygwin_privileges here.
+       * security.h (privilege_name): Drop declaration.
+       (set_privilege): Declare according to above change.
+       (set_process_privilege): Call privilege_luid to get LUID.
+       (_push_thread_privilege): Ditto.
+       * shared.cc (open_shared): Add comment.  On systems supporting the
+       SeCreateGlobalPrivilege, try to create/open global shared memory first.
+       Fall back to local shared memory if that fails.
+       * thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
+       * wincap.h (wincapc::has_create_global_privilege): New element.
+       * wincap.cc: Implement above element throughout.
+
+2007-03-28  Christopher Faylor  <me@cgf.cx>
+
+       * spawn.cc (spawn_guts): Start pure-windows processes in a suspended
+       state to avoid potential DuplicateHandle problems.
+
+2007-03-13  Eric Blake  <ebb9@byu.net>
+
+       * include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
+       Avoid compiler warnings.
+
+2007-03-07  Christopher Faylor  <me@cgf.cx>
+
+       * signal.cc (handle_sigprocmask): Remove extraneous
+       sig_dispatch_pending.
+
+2007-03-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_proc.cc: Fix formatting.  Drop setting errno when creating
+       proc file content.
+       (format_proc_uptime): Simplify.
+       (format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
+       Evaluate more data, especially for AMD CPUs.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
+       * glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/stat.h (S_TYPEISMQ): Define.
+       (S_TYPEISSEM): Dttio.
+       (S_TYPEISSHM): Ditto.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
+       st_birthtim to useful value.
+       * fhandler_process.cc (fhandler_process::fstat): Ditto.
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
+       additional parameter for creation time.  Fill st_birthtim with it.
+       Accomodate additional creation time parameter throughout.
+       * fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
+       st_birthtim to useful value.
+       * fhandler.cc (fhandler_base::fstat): Ditto.
+       * fhandler_registry.cc (fhandler_registry::fstat): Ditto.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
+       timestruc_t st_birthtim.
+       (struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
+       (st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
+
+2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
+       * syscalls.cc (unlink_nt): Check shared directory for being empty
+       before trying to move and mark for deletion.
+
+2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (get_file_attribute): Avoid compiler warning.
+
+2007-03-01  Christopher Faylor  <me@cgf.cx>
+
+       * fork.cc (fork): Reset child to true after fork since it may have been
+       reset by fork memory copies.
+
+2007-03-01  Christopher Faylor  <me@cgf.cx>
+
+       * Makefile (DLL_OFILES): Remove ntea.o
+       * environ.cc (set_ntea): Delete.
+       (parse_thing): Delete "ntea" setting.
+       * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
+       (check_posix_perm): Ditto.
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
+       (fhandler_base::open_fs): Ditto.
+       (fhandler_disk_file::mkdir): Ditto.
+       * path.cc (symlink_worker): Ditto.
+       * security.cc (get_file_attribute): Ditto.
+       (set_file_attribute): Ditto.
+       * security.h: Remove allow_ntea declaration.
+
+2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (close_user_proc_parms_cwd_handle): Remove.
+       (cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
+       Call set to set cwd with all-sharing handle.
+       (cwdstuff::set): Fix comment.  Don't close cwd handle.  Set in
+       user parameter block instead and close old cwd handle.
+       * syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
+       DeleteFile to allow deleting shared files/directories.
+
+2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
+       case of query_open flag set to query_read_control.  Add case for
+       new query_read_attributes flag.
+       (fhandler_base::fstatvfs): New method.
+       * fhandler.h (enum query_state): Add query_read_attributes flag.
+       (class fhandler_base): Declare new virtual fstatvfs method.
+       (class fhandler_socket): Ditto.
+       (class fhandler_pipe): Ditto.
+       (class fhandler_fifo): Ditto.
+       (class fhandler_disk_file): Ditto.
+       (class fhandler_virtual): Ditto.
+       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
+       query_read_attributes instead of query_read_control.
+       (fhandler_disk_file::fstatvfs): New method.
+       (fhandler_disk_file::facl): Open with query_read_attributes instead of
+       query_read_control.
+       * fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
+       * fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
+       (fhandler_socket::fchmod): Return with EBADF in the default case.
+       (fhandler_socket::fchown): Ditto.
+       (fhandler_socket::facl): Ditto.
+       * fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
+       * ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
+       (struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
+       * pipe.cc (fhandler_pipe::fstatvfs): New method.
+       * syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
+       (statvfs): Ditto.
+       (fstatfs): Call fstatvfs.
+       (statfs): Drop EFAULT handling.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
+       fixed value.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
+       (registry_keys): Drop HKEY_DYN_DATA.
+       * net.cc: Fix comment.
+       * syslog.cc: Ditto.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
+       * mmap.cc (gen_access): Remove.
+       (mmap_record::gen_access): Remove.
+       (mmap64): Don't mention 9x any longer.
+       * syscalls.cc (statvfs): Drop status code consideration for 9x.
+       * libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
+       longer.
+       (get_registry_dns): Drop getting registry key on 9x.  Drop is9x
+       variable.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout remove all usage of wincap.has_security.
+       * environ.cc (environ_init): Drop setting allow_ntsec here.
+       * grp.cc (initgroups32): Drop usage of label "out".
+       * security.cc (allow_ntsec): Set to true by default.
+       * syscalls.cc (seteuid32): Remove label success_9x.
+       * wincap.cc: Remove has_security throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
+       orig_pid and id.  Make hit_eof inline.
+       * fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
+       writepipe_exists, orig_pid and id.
+       * pipe.cc: Ditto throughout.
+       (pipecount): Remove.
+       (pipeid_fmt): Remove.
+       (fhandler_pipe::hit_eof): Simplify.  Move to fhandler.h.
+       (fhandler_pipe::dup): Drop leave label.
+       (fhandler_pipe::create): Drop has_unreliable_pipes case.
+       * wincap.cc: Remove has_unreliable_pipes throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * devices.in: Change native device name to native NT device name for
+       /dev/null, /dev/comX and /dev/ttySx.
+       * devices.cc: Regenerate.
+       * fhandler.cc (fhandler_base::open_9x): Remove.
+       (fhandler_base::open): Don't test for DOS device name, don't call
+       open_9x.
+       (fhandler_dev_null::open): Remove.
+       * fhandler.h (class fhandler_base): Drop open_9x declaration.
+       (class fhandler_dev_null): Drop open declaration.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::need_invisible): Drop
+       pty_needs_alloc_console check.
+       * spawn.cc (spawn_guts): Ditto.
+       (av::fixup): Remove setting iscui.
+       * syscalls.cc (rename): Drop has_move_file_ex checks.  Remove 9x
+       specific code.
+       * wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * exceptions.cc (dummy_ctrl_c_handler): Remove.
+       (init_console_handler): Drop has_null_console_handler_routine checks.
+       * fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
+       * fhandler_serial.cc (fhandler_serial::open): Drop
+       .supports_reading_modem_output_lines check.
+       * miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
+       * shared.cc (open_shared): Drop needs_memory_protection checks.
+       * spawn.cc (spawn_guts): Drop start_proc_suspended check.
+       * uname.cc (uname): Drop has_valid_processorlevel check.
+       * wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
+       supports_reading_modem_output_lines, needs_memory_protection,
+       has_switch_to_thread, start_proc_suspended and
+       has_null_console_handler_routine throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
+       * fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
+       * wincap.cc: Remove lock_file_highword and has_64bit_file_access
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
+       accessors.
+       * external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
+       ability to create hard links.
+       * path.cc (cwdstuff::init): Drop 9x considerations.
+       (cwdstuff::keep_in_sync): Remove.
+       (cwdstuff::set): Take NT for granted.
+       * pinfo.h (cygwin_pid): Just return pid.
+       * wincap.cc: Remove has_hard_links, can_open_directories,
+       has_negative_pids, has_named_pipes, has_try_enter_critical_section,
+       cant_debug_dll_entry and detect_win16_exe throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Drop 9x specific
+       handling of AltGr key.
+       * mmap.cc: Take NT for granted throughout.
+       * wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
+       has_working_copy_on_write, share_mmaps_only_by_name,
+       virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
+       has_working_virtual_lock throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::set_no_inheritance): Always use
+       SetHandleInformation.
+       * fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
+       UnlockFileEx/LockFileEx functions.
+       * net.cc (fdsock): Don't bother to duplicate socket for inheritance.
+       * sysconf.cc (get_nproc_values): Take NT for granted.
+       (get_avphys): Ditto.
+       * syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
+       (get_win95_event_log_path): Remove.
+       (vsyslog): Fix formatting.  Take NT for granted.
+       * wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
+       has_eventlog, has_set_handle_information,
+       has_set_handle_information_on_console_handles and supports_smp
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (rmdir): Move existance check in front of
+       has_dot_last_component check.  Simplify setting errno in latter case.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
+       Simplify seek beyond EOF case.
+       * times.cc (times): Remove wincap.has_get_process_times case.
+       * wincap.cc: Remove has_delete_on_close, has_page_guard,
+       has_get_process_times and has_lseek_bug throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout remove all usage of wincap.access_denied_on_delete.
+       * dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
+       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
+       non-existent dir on 9x share.
+       * syscalls.cc (unlink): Add comment.
+       * wincap.cc: Remove access_denied_on_delete flag throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
+       introduced by switching to NtClose.
+
+2007-02-22  Christopher Faylor  <me@cgf.cx>
+
+       * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
+       guard test.  Increase size of stack reserved and increase size before
+       the current stack pointer.  Use pointers when doing arithmetic.
+       (dll_crt0_1): Initialize exception handler when we notice we're the
+       child of a fork from non-main thread.
+       * fork.cc (frok::parent): Make argument volatile.
+       (frok::child): Ditto.
+       (lock_signals): New class.
+       (lock_pthread): Ditto.
+       (hold_everhthing): Ditto.
+       (frok::parent): Move atforkprepare and atforkparent to lock_pthread
+       class.
+       (fork): Make ischild boolean.  Use hold_everything variable within
+       limited scope to set various mutexes in such a way as to avoid
+       deadlocks.
+       * thread.h (pthread_mutex::tid): New variable, active when debugging
+       for tracking thread id of owner.
+       (pthread_mutex::set_owner): Set tid when debugging.
+       * thread.cc (pthread_mutex::pthread_mutex): Clear tid.
+       (pthread_mutex::_unlock): Ditto when unlocking.
+       (pthread_mutex::fixup_after_fork): Set tid to special value after
+       forking since owner is unknown.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout replace all usage of wincap.shared with the constant
+       FILE_SHARE_VALID_FLAGS.
+       * fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
+       * wincap.cc: Remove shared member throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_IMPORTS): Add libntdll.a.
+       * autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
+       ntdll.dll available on all platforms since NT4.
+
+       Throughout remove all usage of wincap.is_winnt.
+       * dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
+       * fhandler.h (class fhandler_base): Remove has_changed flag.
+       (fhandler_disk_file::touch_ctime): Remove declaration.
+       (fhandler_disk_file::readdir_9x): Ditto.
+       (fhandler_disk_file::touch_ctime): Remove.
+       (fhandler_disk_file::readdir_9x): Remove.
+       (fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
+       * mmap.cc: Throughout call CreateMapping and MapView directly.
+       (VirtualProt9x): Remove.
+       (VirtualProtNT): Remove.
+       (VirtualProtEx9x): Remove.
+       (VirtualProtExNT): Remove.
+       (VirtualProtect): Remove define.
+       (VirtualProtectEx): Remove define.
+       (CreateMapping9x): Remove.
+       (CreateMappingNT): Rename to CreateMapping.
+       (MapView9x): Remove.
+       (MapViewNT): Rename to MapView.
+       (struct mmap_func_t): Remove definition.
+       (mmap_funcs_9x): Remove.
+       (mmap_funcs_nt): Remove.
+       (mmap_func): Remove.
+       (mmap_init): Remove.
+       * net.cc (getdomainname): Drop comment. Use NT4 registry key only.
+       (get_95_ifconf): Remove.
+       * pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
+       (winpids::enum9x): Remove.
+       (winpids::set): Just call enum_processes directly.
+       (winpids::enum_init): Ditto.
+       * pinfo.h (class winpids): Drop enum_processes pointer.  Rename
+       enumNT to enum_processes.  Drop enum9x declaration.  Drop initialization
+       of enum_processes throughout.
+       * registry.cc (get_registry_hive_path): Just create NT key.
+       (load_registry_hive): Only load NT specific file.
+       * syscalls.cc (unlink_9x): Remove.
+       (unlink): Just call unlink_nt.
+       * wincap.cc: Remove is_winnt flag throughout.
+       * wincap.h: Ditto.
+       * winsup.h: Remove mmap_init declaration.
+
+2007-02-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wincap.cc (wincap_unknown): Change settings for unknown to reflect
+       the capabilities of NT4.
+       (wincap_95): Remove.
+       (wincap_95osr2): Remove.
+       (wincap_98): Remove.
+       (wincap_98se): Remove.
+       (wincap_me): Remove.
+       (wincap_nt3): Remove.
+       (wincapc::init): Temporarily bail out on any 9x system.
+
+2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (sem_unlink): Export.
+       * posix_ipc.cc: Include thread.h and semaphore.h.  Remove TODO
+       comment.
+       (ipc_names): Add max_len member.  Set to maximum length of the path
+       before tacking on the prefix path.  Set prefix path for named semaphors
+       to /dev/shm, as on Linux.
+       (enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
+       (check_path): Detect empty paths.  Use ipc_names's max_len member.
+       Use __small_sprintf to create full object path name.  Special case
+       semaphores.
+       (ipc_cond_init): Drop superfluous strcpy.
+       (class ipc_flock): New class to simplify file locking in subsequent
+       code.
+       (struct mq_hdr): Raise size of mqh_uname to allow adding a unique
+       LUID to the name.
+       (mq_open): Fix formatting.  Create unique synchronization object names
+       using AllocateLocallyUniqueId.
+       (struct sem_finfo): New structure defining named semaphore file content.
+       (sem_open): Move here.  Rework implementation to allow kernel
+       persistent implementation of POSIX named semaphores.
+       (_sem_close): Implement sem_close.
+       (sem_close): Move here.  Just call _sem_close with do_close parameter
+       set to true.
+       (sem_unlink): New function.
+       * pthread.cc (mangle_sem_name): Remove.
+       (sem_open): Move to posix_ipc.cc.
+       (sem_close): Ditto.
+       * syscalls.cc (close_all_files): Call semaphore::terminate here.
+       * thread.cc: Fix formatting.  Rearrange semaphore functions so that
+       they are close together.
+       (semaphore::semaphore): Rework to play nicely with new named semaphore
+       implementation.
+       (semaphore::_terminate): Call _sem_close if semaphore is a named
+       semaphore.
+       (semaphore::destroy): Don't destroy named semaphores.  Return EINVAL
+       instead.
+       (semaphore::close): Only destroy named semaphores.  Return EINVAL
+       otherwise.
+       (semaphore::open): Rework to play nicely with new named semaphore
+       implementation.  Loop through existing semaphores to be able to
+       return same sem_t pointer as a former call on the same named semaphore.
+       (semaphore::getinternal): New function called from _sem_close.
+       * thread.h (class List): Make mx and head public.
+       (class semaphore): Fix formatting.  Align method declarations with
+       implementation in thread.cc.  Add members used for named semaphores.
+       (semaphore::terminate): New static method.
+       * include/semaphore.h: Redefine SEM_FAILED.  Fix formatting.
+       (sem_unlink): Add declaration.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-02-20  Christopher Faylor  <me@cgf.cx>
+
+       * exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
+       exit_state indicates that we've visited do_exit.
+       * sync.h (lock_process::lock_process): Use renamed exit_state -
+       ES_PROCESS_LOCKED.
+       * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
+
+2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
+       errno in debug output.
+
+2007-02-19  Christopher Faylor  <me@cgf.cx>
+
+       Remove extraneous whitespace.
+       * pinfo.cc (commune_process): Use default argument to lock_process.
+       * sigproc.cc: Update copyright.
+       * select.cc: Ditto.
+
+2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (mq_open): Avoid compiler warning.  Initialize mqhdr
+       before using it in file exists case.
+       * include/mqueue.h (mqd_t): Make non-pointer type.
+
+2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (ipc_mutex_init): Create global object name.
+       (ipc_cond_init): Ditto.
+       (struct mq_hdr): Add mqh_uname member to store synchronization object
+       name.
+       (mq_open): Create unique synchronization object name and store in
+       mq_hdr->mqh_uname.  Use this name in calls to ipc_mutex_init and
+       ipc_cond_init.
+
+2007-02-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add posix_ipc.o.
+       * cygwin.din (mq_close): Export.
+       (mq_getattr): Export.
+       (mq_notify): Export.
+       (mq_open): Export.
+       (mq_receive): Export.
+       (mq_send): Export.
+       (mq_setattr): Export.
+       (mq_timedreceive): Export.
+       (mq_timedsend): Export.
+       (mq_unlink): Export.
+       * posix_ipc.cc: New file implementing the above functions.  Move
+       shm_open and shm_unlink from syscalls.cc here.
+       * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
+       _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
+       _POSIX_MESSAGE_PASSING.
+       * include/limits.h (MQ_OPEN_MAX): Define.
+       (MQ_PRIO_MAX): Define.
+       * include/mqueue.h: New file.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/stdlib.h (valloc): Declare.
+       (memalign): Declare.
+
+2007-02-09  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
+
+       * libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
+       some obsolete types.
+
+2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (check_shm): New static function to do path checking
+       common to shm_open and shm_unlink.  Check for /dev/shm existance.
+       (shm_open): Call check_shm.
+       (shm_unlink): Ditto.
+
+2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (shm_open): Export.
+       (shm_unlink): Export.
+       * syscalls.cc (shm_open): New function.
+       (shm_unlink): New function.
+       * sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
+       _POSIX_SHARED_MEMORY_OBJECTS.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/mman.h (shm_open): Add prototype.
+       (shm_unlink): Ditto.
+
+2007-02-08  Christopher Faylor <me@cgf.cx>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (__set_ENOMEM): Declare.
+       (MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
+       * malloc_wrapper.cc (malloc) Remove setting errno here.
+       (realloc): Ditto.
+       (calloc): Ditto.
+       (memalign): Ditto.
+       (valloc): Ditto.
+       (posix_memalign): Save and restore errno.
+
+2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
+
+2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
+       * cygwin.din (posix_madvise): Export.
+       (posix_memalign): Export.
+       * fhandler.cc (fhandler_base::fpathconf): Return useful values in
+       _PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
+       * malloc_wrapper.cc (malloc): Set errno here since it's not set in
+       dlmalloc.c anymore.
+       (realloc): Ditto.
+       (calloc): Ditto.
+       (memalign): Ditto.
+       (valloc): Ditto.
+       (posix_memalign): New function.
+       * mmap.cc (posix_madvise): New function.
+       * sysconf.cc (get_open_max): New function.
+       (get_page_size): Ditto.
+       (get_nproc_values): Ditto.
+       (get_avphys): Ditto.
+       (sc_type): New type.
+       (sca): New array to map _SC_xxx options to sysconf return values.
+       (sysconf): Reimplement using sca array.
+       * include/limits.h: Add all missing values as defined by SUSv3.
+       * include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
+       to sys/limits.h.
+       (PTHREAD_KEYS_MAX): Ditto.
+       * include/semaphore.h (SEM_VALUE_MAX): Ditto.
+       * include/cygwin/stdlib.h (posix_memalign): Declare.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/mman.h: Add posix_madvise flags.
+       (posix_madvise): Declare.
+       * include/sys/termios.h (_POSIX_VDISABLE): Move definition to
+       sys/limits.h.
+
+2007-02-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
+       baud rates up to 3000000 baud.  Add missing 128K and 256K cases.
+       (fhandler_serial::tcgetattr): Ditto.
+       * include/sys/termios.h: Add baud rate definitions from B460800 up to
+       B3000000.
+
+2007-02-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
+
+2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
+       mapping addition.
+       (ga_clone): Just call ga_dup from here.
+       (ga_duplist): New function to duplicate list of struct addrinfo.
+       (ga_echeck): Don't check ai_flags, it already happened in
+       cygwin_getaddrinfo.
+       (cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
+       (cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
+       flag rather than wincap.has_gaa_on_link_prefix.  Always duplicate
+       WinSock's addrinfo list to a self-allocated list.  Handle AI_V4MAPPED
+       for pre-Vista platforms supporting getaddrinfo.
+       * wincap.h (wincapc::supports_all_posix_ai_flags): New element.
+       * wincap.cc: Implement above element throughout.
+       * include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
+       Remove superfluous comment.
+
+2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/socket.h: Add IPv6 socket options.
+
+2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
+
+2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
+       Handle AI_NUMERICSERV.  Handle AI_ADDRCONFIG behaviour on Vista.
+       * include/netdb.h (AI_NUMERICSERV): Add missing flag.
+
+2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
+       to debug output.
+       * syscalls.cc (try_to_bin): Enable code to move file to user specific
+       recycler dir to eliminate Vista problem.
+       (unlink_nt): Add comment that rename after opening for delete on close
+       only fails on XP.
+
+2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sigproc.cc (child_info::child_info): Set msv_count to non-zero
+       value only on systems requiring it.
+
+2007-01-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/ftw.h: Include sys/cdefs.h.
+
+2007-01-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
+       on NT by calling unlink_nt.  Check for directory here.
+       * syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
+       (unlink_nt): Make non-static.  Don't use delete-on-close semantics on
+       directories.  Explain why.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
+       memory.
+       (if_indextoname): Ditto.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.h (pop_thread_privilege): Revert to previous state, not
+       to token used for impersonation.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (gai_errmap): Add EAI_OVERFLOW entry.  Fix formatting.
+       (cygwin_gai_strerror): Drop using EAI_MAX.
+       (w32_to_gai_err): Ditto.
+       * include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/netdb.h: Add AI_xxx flags available since Vista.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
+       (if_indextoname): Ditto.
+       (if_nameindex): Ditto.  Remove duplicate indexed entries in result.
+
+2007-01-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSAIoctl): Define.
+       (SendARP): Define.
+       * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
+       if_nametoindex.
+       * fhandler_procnet.cc: Drop including wchar.h.  Drop definitions of
+       GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
+       (fhandler_procnet::exists): Check for has_gaa_prefixes.  Call
+       get_adapters_addresses here.
+       (fhandler_procnet::readdir): Ditto.
+       (prefix): Move to net.cc.
+       (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
+       Simplify allocation.  Use AdapterName rather than FriendlyName as
+       interface name.  Use IfIndex if available, Ipv6IfIndex otherwise.
+       (in6_are_prefix_equal): Move to net.cc.
+       * fhandler_socket.cc: Define old SIOCGxxx values.
+       (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
+       (struct __old_ifreq): Define old struct ifreq.
+       (fhandler_socket::ioctl): Handle old SIOCGxxx values.  Handle new
+       SIOCGIFFRNDLYNAM command.  Simplify copying ifreq data to user space.
+       Call get_ifconf with additional SOCKET parameter.
+       * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
+       (IP_ADAPTER_ADDRESSES_LH): Define.
+       (SIO_GET_INTERFACE_LIST): Define.
+       (sockaddr_in6_old): Define.
+       (sockaddr_gen): Define.
+       (INTERFACE_INFO): Define.
+       (IN_LOOPBACK): Define.
+       (in_are_prefix_equal): New static function.
+       (ip_addr_prefix): New function, replaces prefix function, add AF_INET
+       handling.
+       (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
+       (get_adapters_addresses): New function.
+       (WS_IFF_xxx): Define Winsock interface flag values.
+       (convert_ifr_flags): New function to convert Winsock interface flag
+       values to Cygwin interface flag values.
+       (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
+       (get_2k_ifconf): Fix interface index.  Fix formatting.
+       (get_nt_ifconf): Fix formatting.
+       (get_95_ifconf): Ditto.
+       (get_ifconf): Take additional SOCKET parameter.  Call get_xp_ifconf
+       on XP SP1 and above.
+       (if_nametoindex): New function.
+       (if_indextoname): New function.
+       (if_nameindex): New function.
+       (if_freenameindex): New function.
+       (in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
+       * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
+       (wincapc::init): Assume has_osversioninfoex by default.  Call
+       GetVersionEx with OSVERSIONINFOEX first.  Call with OSVERSIONINFO only
+       if that fails.  Simplify NT4 case and try to avoid strcmp.  Check XP
+       Service Pack using version.wServicePackMajor to avoid strcmp.
+       * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
+       * include/cygwin/if.h: Fix formatting.
+       (IFF_POINTTOPOINT): Define.
+       (IFF_NOARP): Define.
+       (IFF_LOWER_UP): Define.
+       (IFF_DORMANT): Define.
+       (struct if_nameindex): Define.
+       (IFRF_FRIENDLYNAMESIZ): Define.
+       (struct ifreq_frndlyname): Define.
+       (IFNAMSIZ): Redefine as 44.
+       (IF_NAMESIZE): Define.
+       (struct ifreq): Redefine ifru_flags as int.  Define ifru_data.  Pad size
+       to sizeof sockaddr_in6 for further extensions.
+       (ifr_data): Define.
+       (ifr_frndlyname): Define.
+       (if_nametoindex): Declare.
+       (if_indextoname): Declare.
+       (if_nameindex): Declare.
+       (if_freenameindex): Declare.
+       * include/cygwin/version.h: Bump API minor number.
+       (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
+       ifreq structure.
+
 2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
 
        * spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes