2011-04-01  Corinna Vinschen  <corinna@vinschen.de>

	* libc/strptime.c: Remove misleading comment.

2011-03-31  Corinna Vinschen  <corinna@vinschen.de>

	* ntdll.h: Allow usage from plain C code.
	(FSCTL_PIPE_IMPERSONATE): Define.
	(enum _THREAD_INFORMATION_CLASS): Define.
	(RTL_QUERY_REGISTRY_xxx): Define.
	(RTL_REGISTRY_xxx): Define.
	(PRTL_QUERY_REGISTRY_ROUTINE): Define.
	(struct _RTL_QUERY_REGISTRY_TABLE): Define.
	(enum _KEY_VALUE_INFORMATION_CLASS): Define.
	(struct _KEY_VALUE_PARTIAL_INFORMATION): Define.
	(NtAccessCheck): Declare.
	(NtAllocateLocallyUniqueId): Declare.
	(NtCreateKey): Declare.
	(NtDuplicateToken): Declare.
	(NtLoadKey): Declare.
	(NtOpenKey): Declare.
	(NtOpenProcessToken): Declare.
	(NtOpenThreadToken): Declare.
	(NtPrivilegeCheck): Declare.
	(NtQueryInformationToken): Declare.
	(NtQueryValueKey): Declare.
	(NtSetInformationThread): Declare.
	(NtSetInformationToken): Declare.
	(NtSetValueKey): Declare.
	(RtlAbsoluteToSelfRelativeSD): Declare.
	(RtlAddAccessAllowedAce): Declare.
	(RtlAddAccessDeniedAce): Declare.
	(RtlAddAce): Declare.
	(RtlCheckRegistryKey): Declare.
	(RtlCopySid): Declare.
	(RtlCreateAcl): Declare.
	(RtlCreateRegistryKey): Declare.
	(RtlCreateSecurityDescriptor): Declare.
	(RtlEqualPrefixSid): Declare.
	(RtlEqualSid): Declare.
	(RtlFirstFreeAce): Declare.
	(RtlGetAce): Declare.
	(RtlGetDaclSecurityDescriptor): Declare.
	(RtlGetGroupSecurityDescriptor): Declare.
	(RtlGetOwnerSecurityDescriptor): Declare.
	(RtlIdentifierAuthoritySid): Declare.
	(RtlInitializeSid): Declare.
	(RtlLengthSid): Declare.
	(RtlQueryRegistryValues): Declare.
	(RtlSetControlSecurityDescriptor): Declare.
	(RtlSetDaclSecurityDescriptor): Declare.
	(RtlSetGroupSecurityDescriptor): Declare.
	(RtlSetOwnerSecurityDescriptor): Declare.
	(RtlSubAuthorityCountSid): Declare.
	(RtlSubAuthoritySid): Declare.
	(RtlWriteRegistryValue): Declare.

2011-03-31  Corinna Vinschen  <corinna@vinschen.de>

	* uinfo.cc (cygheap_user::init): Don't call GetUserName.  Fetch username
	from Windows environment instead.  Explain why.
	(cygheap_user::env_domain): Use MAX_DOMAIN_NAME_LEN rather than DNLEN
	to specify the size of the domain name buffer.

2011-03-30  Corinna Vinschen  <corinna@vinschen.de>

	* hires.h: Fix copyright.
	* times.cc: Ditto.
	(FACTOR): Add comment.
	(NSPERSEC): Ditto.
	(JITTER): New definition.  Comment.
	(systime_ns): Avoid gratuitous copying of the value returned by
	GetSystemTimeAsFileTime.
	(corelocaltime, localtime, gmtime): Remove very old, unused code block.
	(cygwin_tzset): Remove.
	(hires_ms::timeGetTime_ns): Add missing semicolon in comment.
	(hires_ms::nsecs): Redefine check for difference between internal
	timer value and system time.

2011-03-30  Corinna Vinschen  <corinna@vinschen.de>

	* times.cc (hires_ms::resolution): Make sure resolution is never 0.
	(clock_setres): Ditto.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* cygtls.h (struct _local_storage): Redefine process_ident as wchar_t
	pointer.
	* syslog.cc (CYGWIN_LOG_NAME): Convert to wide char constant.
	(openlog): Convert incoming ident string to wide char.  Fix formatting.
	(vsyslog): Print ident string as wide char string.  Convert message
	string to wide char and call UNICODE Win32 Event functions to make sure
	to use correct codeset.
	* tlsoffset.h: Regenerate.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket.cc (get_inet_addr): Make externally available.
	* autoload.cc (GetUdpTable): Define.
	* syslog.cc (connect_syslogd): Use get_inet_addr rather than _stat64
	to check for local socket file.  Create socket with type returned by
	get_inet_addr.  If connect on UDP socket works, test if there's
	really a listening peer, otherwise fall back to Windows event log.
	(try_connect_syslogd): Use syslogd_inited flag to check if syslogd
	is available.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* uinfo.cc (cygheap_user::env_domain): Use LookupAccountSidW and
	convert user and domain to multibyte strings to make sure to use
	correct codeset.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc (UuidCreate): Remove.
	(UuidCreateSequential): Remove.
	* passwd.cc (internal_getpwsid): Avoid a strict-aliasing compiler
	error with gcc 4.5.1.
	* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Ditto.
	* ntdll.h (NtAllocateUuids): Declare.
	* syscalls.cc (gethostid): Use NtAllocateUuids function rather than
	UuidCreateSequential/UuidCreate to get rid of rpcrt4 dependency.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.din (pthread_spin_destroy): Export.
	(pthread_spin_init): Export.
	(pthread_spin_lock): Export.
	(pthread_spin_trylock): Export.
	(pthread_spin_unlock): Export.
	* posix.sgml (std-susv4): Add pthread_spin_destroy, pthread_spin_init,
	pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock.
	(std-notimpl): Remove pthread_spin_[...].
	* pthread.cc (pthread_spin_init): New function.
	* thread.cc (pthread_spinlock::is_good_object): New function.
	(pthread_mutex::pthread_mutex): Rearrange initializers to accommodate
	protected data in pthread_mutex.
	(pthread_spinlock::pthread_spinlock): New constructor.
	(pthread_spinlock::lock): New method.
	(pthread_spinlock::unlock): New method.
	(pthread_spinlock::init): New method.
	(pthread_spin_lock): New function.
	(pthread_spin_trylock): New function.
	(pthread_spin_unlock): New function.
	(pthread_spin_destroy): New function.
	* thread.h (PTHREAD_SPINLOCK_MAGIC): Define.
	(class pthread_mutex): Change access level of members shared with
	derived classes to protected.
	(pthread_mutex::set_shared): New protected method.
	(class pthread_spinlock): New class, derived class of pthread_mutex.
	* include/pthread.h (pthread_spin_destroy): Declare.
	(pthread_spin_init): Declare.
	(pthread_spin_lock): Declare.
	(pthread_spin_trylock): Declare.
	(pthread_spin_unlock): Declare.
	* include/cygwin/types.h (pthread_spinlock_t): New typedef.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (SIO_BASE_HANDLE): Define.
	(fdsock): If we got an LSP handle, try to create a copy of the base
	handle instead.  Change comment to explain.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 10.

2011-03-29  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc (winmm): Remove time functions.  Don't treat
	unloadable wave functions as fatal.
	* hires.h (hires_ms::timeGetTime_ns): New private method.
	(hires_ms::dmsecs): Call timeGetTime_ns here.
	* ntdll.h (struct _KSYSTEM_TIME): Define.
	(KUSER_SHARED_DATA): Redefine to allow access to InterruptTime.
	(SharedUserData): Define here.
	(NtQueryTimerResolution): Declare.
	(NtSetTimerResolution): Declare.
	* path.cc (SharedUserData): Move to ntdll.h.
	* times.cc (hires_ms::timeGetTime_ns): New private method.
	Use throughout instead of timeGetTime.  Document entire functionality
	of timeGetTime in case we need it.
	(hires_ms::resolution): Try a call to NtQueryTimerResolution
	to fetch current period.  Fall back to heuristic if that fails.
	Cast to DWORD in assignments to minperiod.
	(clock_setres): Align period to possible values per a call to
	NtQueryTimerResolution.  Explain why.  Replace calls to timeBeginPeriod
	and timeEndPeriod with underlying call to NtSetTimerResolution.  Use
	status code from NtSetTimerResolution to compute errno.
	Convert period to ULONGLONG and store 100ns value to simplify code.

2011-03-29  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
	    Corinna Vinschen  <corinna@vinschen.de>

	* include/sys/xattr.h: New file.

2011-03-28  Jon TURNEY  <jon.turney@dronecode.org.uk>

	* thread.cc (semaphore::init, destroy, close): Standards conformance
	fix.  On a failure, return -1 and set errno.
	* thread.h (semaphore::terminate): Save errno since semaphore::close()
	may now modify it.

2011-03-27  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* cygwin.din (strchrnul): Export.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* posix.sgml (std-gnu): Add strchrnul.

2011-03-27  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* dll_init.cc (dll::init): Accommodate ill-behaved dlls who don't fill
	out p.envptr.

2011-03-25  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (mmap64): Add a cheat to let a certain autoconf test succeed
	on 64 bit systems.  Explain why.

2011-03-23  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* wincap.cc (wincap_2003): Set use_dont_resolve_hack to true.

2011-03-23  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* autoload.cc (dll_load): Change error message to make it clear if a
	newer DLL is being run.

2011-03-20  Corinna Vinschen  <corinna@vinschen.de>

	* fenv.cc (_feinitialise): Don't use SSE instructions on systems not
	supporting them.
	* wincap.h (wincaps::supports_sse): New element.
	* wincap.cc: Implement above element throughout.

2011-03-18  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.sc: Raise default cygheap size to 2 Megs.

2011-03-18  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* fhandler.h (DEFAULT_PIPEBUFSIZE): Reset to 64K.

2011-03-18  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (mmap_record::alloc_fh): Initialize name strings in fdev to
	empty strings or suffer a SEGV.  Drop second parameter in call to
	build_fh_dev.

2011-03-18  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (class mmap_record): Pack 4 byte-aligned.  Convert member dev
	to plain int.
	(mmap_record::alloc_fh): Create temporary device from dev and use in
	call to build_fh_dev.

2011-03-18  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (mmap_record::page_map): Define as variable array rather than
	as pointer.
	(mmap_record::alloc_page_map): Remove.
	(mmap_record::free_page_map): Remove.
	(mmap_record::init_page_map): New method.
	(mmap_record::add_record): Take mmap_record parameter by reference
	rather than by value.
	(mmap_record::map_pages): Fix comment.
	(mmap_list::add_record): Allocate space for mmap_record including the
	page_map in a single ccalloc call.  Call init_page_map afterwards.
	(mmap_list::del_record): Remove call to mmap_record::free_page_map.

2011-03-16  Corinna Vinschen  <corinna@vinschen.de>

	* crt0.c (mainCRTStartup): Move call to _feinitialise from here...
	* dcrt0.cc (_dll_crt0): ...to here.

2011-03-16  Corinna Vinschen  <corinna@vinschen.de>

	* winver.rc: Fix copyright dates.

2011-03-14  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only use
	file id as inode number if it masters the isgood_inode check.

2011-03-13  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove
	special treatment for ERROR_NO_SYSTEM_RESOURCES.  Cancel I/O and reset
	the overlapped handle on error.
	(fhandler_base_overlapped::write_overlapped): Limit writes to
	max_atomic_write bytes in blocking case.  Incorporate code from
	now-defunct write_overlapped_fallback.  Fix serious oversight where ptr
	was not advanced as buffer was written.
	(fhandler_base_overlapped::write_overlapped_fallback): Eliminate.
	* fhandler.h (fhandler_base_overlapped::write_overlapped_fallback):
	Ditto for declaration.
	(DEFAULT_PIPEBUFSIZE): Lower size to slightly less than documented
	worst-case atomic write size.
	(fhandler_overlapped::wait_return): Remove unused element.

2011-03-09  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* fhandler.cc (fhandler_base_overlapped::wait_overlapped): Handle
	overlapped_fallback error condition like other error conditions.  Set
	res carefully and specifically for each condition rather than resorting
	to a default.
	(fhandler_base_overlapped::write_overlapped): Preserve errno in
	overlapped_fallback condition.  Correct write_overlapped_fallback to
	avoid inappropriate looping.
	(fhandler_base_overlapped::write_overlapped_fallback): Add some more
	comments.

2011-03-09  Christopher Faylor  <me.cygwin2011@cgf.cx>

	* fhandler.cc (fhandler_base_overlapped::write_overlapp): Oops!
	Accommodate change in arguments to wait_overlapped.

2011-03-09  Christopher Faylor  <me+cygwin@cgf.cx>

	* errno.cc (errmap): Change mapping of NO_SYSTEM_RESOURCES to EFBIG.
	* fhandler.cc (MAX_OVERLAPPED_WRITE_LEN): New constant.
	(MIN_OVERLAPPED_WRITE_LEN): Ditto.
	(fhandler_base_overlapped::close): Accommodate change in arguments to
	wait_overlapped.
	(fhandler_base_overlapped::setup_overlapped): Add __stdcall and regparm
	modifiers.
	(fhandler_base_overlapped::destroy_overlapped): Ditto.
	(fhandler_base_overlapped::has_ongoing_io): Ditto.
	(fhandler_base_overlapped::wait_overlapped): Modify to return an enum
	returning various states.  Accept nonblocking parameter.
	(fhandler_base_overlapped::read_overlapped): Add __stdcall and regparm
	modifiers.  Rework to attempt to be smarter about reacting to states
	returned by wait_overlapped.
	(fhandler_base_overlapped::write_overlapped): Ditto.  Add fallback
	option for when wait_overlapped detects that smaller chunks must be
	written.
	(fhandler_base_overlapped::write_overlapped_fallback): Ditto.
	* fhandler.h (DEFAULT_PIPEBUFSIZE): Move definition here from pipe.cc.
	(fhandler_base::has_ongoing_io): Define with __stdcall and regparm
	modifiers.
	(fhandler_base_overlapped::wait_return): New enum.
	(fhandler_base_overlapped::max_atomic_write): New variable.
	(fhandler_base_overlapped:: wait_overlapped): Accommodate changes
	mentioned above to arguments and modifiers.
	(fhandler_base_overlapped::setup_overlapped): Ditto for modifiers.
	(fhandler_base_overlapped::read_overlapped): Ditto.
	(fhandler_base_overlapped::write_overlapped): Ditto.
	(fhandler_base_overlapped::destroy_overlapped): Ditto.
	(fhandler_base_overlapped::has_ongoing_io): Ditto.
	(fhandler_base_overlapped::fhandler_base_overlapped): Zero
	max_atomic_write.
	* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Set max_atomic_write
	to the size of the DEFAULT_PIPEBUFSIZE.
	(fhandler_fifo::wait): Accommodate change in arguments to
	wait_overlapped.
	* pipe.cc (fhandler_pipe::fhandler_pipe): Set max_atomic_write to the
	size of the DEFAULT_PIPEBUFSIZE.
	(fhandler_pipe::create_selectable): Allow minimum size of DEFAULT_PIPEBUFSIZE.
	(DEFAULT_PIPEBUFSIZE): Delete here, move to fhandler.h.

2011-03-08  Corinna Vinschen  <corinna@vinschen.de>

	* security.cc: Fix copyright dates.

2011-03-08  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.cc (fhandler_base::open): When creating a file on a
	filesystem supporting ACLs, create the file with WRITE_DAC access.
	Explain why.
	* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto for
	directories.
	* fhandler_socket.cc (fhandler_socket::bind): Ditto for sockets.
	* path.cc (symlink_worker): Ditto for symlinks.
	* security.cc (get_file_sd): Always call GetSecurityInfo for directories
	on XP and Server 2003.  Improve comment to explain why.
	(set_file_attribute): Explicitely cast mode_t value to bool in call to
	get_file_sd.
	* wincap.h (wincaps::use_get_sec_info_on_dirs): New element.
	* wincap.cc: Implement above element throughout.

2011-03-04  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_procsys.cc (fhandler_procsys::exists): Rewrite.
	(fhandler_procsys::fill_filebuf): Fill buffer with valid string even if
	reading the symlink fails.

2011-03-03  Corinna Vinschen  <corinna@vinschen.de>

	* posix_ipc.cc (ipc_cond_timedwait): If ipc_mutex_unlock fails, return
	actual error number.
	(_mq_send): Break loop if ipc_cond_timedwait returns with error.
	(_mq_receive): Ditto.

2011-03-03  Corinna Vinschen  <corinna@vinschen.de>

	* errno.cc (__xpg_strerror_r): Add accidentally missing condition.

2011-03-02  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_procsys.cc (fhandler_procsys::open): Call worker exists
	method, rather than wrapper.

2011-03-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* autoload.cc (dll_load): Avoid in_forkee test since this apparently
	fails even when not forked.

2011-03-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 9.

2011-02-28  Christopher Faylor  <me+cygwin@cgf.cx>

	* autoload.cc (dll_load): Only perform DONT_RESOLVE_DLL_REFERENCES hack
	on systems which need it.
	* wincap.cc (use_dont_resolve_hack): Set as appropriate.
	* wincap.h (use_dont_resolve_hack): Define.

2011-02-28  Christopher Faylor  <me+cygwin@cgf.cx>

	* autoload.cc (dll_load): Make inline.  Clarify logic.

2011-02-27  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc (dll_load): Only call LoadLibraryExW with
	DONT_RESOLVE_DLL_REFERENCES if a normal LoadLibrary call failed with
	ERROR_INVALID_ADDRESS.
	(LsaRegisterLogonProcess): Align comment to previous change.

2011-02-26  Christopher Faylor  <me+cygwin@cgf.cx>

	* autoload.cc: Use LoadDLLfuncEx3 for all winmm functions.  Accommodate
	changes to LoadDLLprime.
	(LoadDLLprime): Take an extra argument indicating whether this dll
	needs special handling on fork.  Place this information in the "handle"
	location.
	(LoadDLLfuncEx3): Eliminate "func" handling.  Pass new
	no_resolve_on_fork argument to LoadDLLprime.
	(dll_load): New function.
	(std_dll_init): Accommodate changes to dll_info::handle.  Use dll_load
	to load DLL in both cases where it is used.

2011-02-26  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc: Make autoloaded ntdll function non-optional.  Ditto for
	secur32 functions, except for LsaRegisterLogonProcess.  Change return
	value to ERROR_PROC_NOT_FOUND.  Explain why.
	* sec_auth.cc (lsaauth): Handle ERROR_PROC_NOT_FOUND from call to
	LsaRegisterLogonProcess when generating the errno value.

2011-02-22  Corinna Vinschen  <corinna@vinschen.de>

	* dcrt0.cc: Fix copyright dates.
	* winsup.h: Ditto.
	* syscalls.cc (_read): Move EXPORT_ALIAS to its rightful place.

2011-02-21  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygwin.din: Mark __assert* and _abort as NOSIGFE.

2011-02-21  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket (fhandler_socket::readv): Call recv_internal directly,
	rather than recvmsg.
	(fhandler_socket::writev): Call send_internal directly, rather than
	sendmsg.
	* net.cc (cygwin_recv): Call fhandler_socket::recvfrom directly, rather
	than cygwin_recvfrom.
	(cygwin_send): Call fhandler_socket::sendto directly, rather than
	cygwin_sendto.

2011-02-20  Christopher Faylor  <me+cygwin@cgf.cx>

	* fhandler.cc (fhandler_base_overlapped::close): Finish any pending I/O
	before closing.
	(fhandler_base_overlapped::wait_overlapped): Defensively zero bytes
	read.  Add more info to debugging output.

2011-02-18  Christopher Faylor  <me+cygwin@cgf.cx>

	* dcrt0.cc (dll_crt0_1): Add a CYGHEAP_DEBUG conditional for debugging
	which allocates a lot of space at startup.

2011-02-18  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.sc: Set alignment of .cygheap section to 64K.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode.
	Drop flag if creating new process failed.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* Throughout fix copyright dates.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* devices.in: Throughout use slashes instead of backslashes in the
	native path of devices not backed by native NT devices.
	* devices.cc: Regenerate.
	* globals.cc (ro_u_pmem): Use correct case.
	(ro_u_globalroot): New R/O unicode string.
	* path.cc (path_conv::check): Fix incorrect handling of /proc/sys
	block devices if they are just visited due to a component check.
	(symlink_info::posixify): Fix typo in comment.
	(cygwin_conv_path): Use ro_u_globalroot instead of string constant.
	(fast_cwd_version): New shared variable to store FAST_CWD version
	used on the system.
	(find_fast_cwd_pointer): Rename from find_fast_cwd_pointers.  Don't
	set global fast_cwd_ptr pointer here.  Return pointer value instead.
	(find_fast_cwd): New function to set fast_cwd_ptr and fast_cwd_version.
	(cwdstuff::override_win32_cwd): Call find_fast_cwd from here.
	Check for fast_cwd_version to differ between old and new FAST_CWD
	structure.  Check old_cwd for NULL to avoid SEGV.  Don't set CWD if
	we have neitehr a valid fast_cwd_ptr, nor a valid CWD handle in the
	process parameter block.
	(cwdstuff::set): Create Win32 path taking /proc/sys paths into account.
	* spawn.cc (spawn_guts): Recode creating runpath.  Also take /proc/sys
	paths into account.  Drop special CWD handling when starting non-Cygwin
	processes.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_procsys.cc (fhandler_procsys::opendir): Avoid SEGV if
	opening object directory fails.
	* fhandler_virtual.cc (fhandler_virtual::opendir): Don't leak memory.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
	append slash if there is one already.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	Revert change from 2010-08-31:
	* path.cc (normalize_posix_path): Drop support for //./ and //?/
	prefixes.
	(path_conv::check): Ditto.

2011-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Use POSIX
	path to check for symlink.

2011-02-14  Corinna Vinschen  <corinna@vinschen.de>

	* config/i386/profile.h: Sync with Mingw.

2011-02-13  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (struct _FAST_CWD): Redefine to new layout used since patch
	for KB 2393802.  Adjust comments throughout.
	(struct _FAST_CWD_OLD): Rename former definition.
	(cwdstuff::override_win32_cwd): Check if the OS is using the old or the
	new FAST_CWD structure layout and handle accordingly.

2011-02-11  Christopher Faylor  <me+cygwin@cgf.cx>

	* mkstatic: Make sure that we are not cd'ed to temporary directory on
	exit to avoid bogus warnings on directory cleanup.
	* speclib: Ditto.
	* mkimport: Ditto.

2011-02-11  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygwin.sc: Eliminate __cygheap_mid.
	* cygheap.cc: Ditto.

2011-02-11  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygheap.cc (_cygheap_mid): Drop unneeded section attribute.
	(cygheap_init): Just zero cygheap structure.
	* cygwin.sc: Keep 16 byte alignment but drop all other alignments
	related to cygheap.  Eliminate unused __cygheap_end1.

2011-02-11  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.sc: Raise default cygheap size to 1 Meg.  Set alignment to
	standard 64K.

2011-02-11  Corinna Vinschen  <corinna@vinschen.de>

	* include/endian.h: Move definitions of __BIG_ENDIAN, __LITTLE_ENDIAN,
	and __BYTE_ORDER into ...
	* include/bits/endian.h: New file.
	* include/arpa/nameser_compat.h: Include endian.h rather than defining
	BYTE_ORDER here.
	* include/asm/byteorder.h: Include bits/endian.h.  Drop definition of
	__LITTLE_ENDIAN.
	* include/netinet/ip.h: Include bits/endian.h.  Drop definitions of
	BIG_ENDIAN, LITTLE_ENDIAN, and BYTE_ORDER.  Use underscored variants
	of aforementioned constants.
	* include/netinet/tcp.h: Ditto.
	* include/sys/param.h: Drop disabled definitions of BIG_ENDIAN,
	LITTLE_ENDIAN, and BYTE_ORDER.

	* include/netinet/ip.h: Reformat.  Define setsockopt IP_TOS options
	matching recent RFCs.  Tweak comments.

2011-02-10  Eric Blake  <eblake@redhat.com>

	* errno.cc (includes): Avoid compilation failure if <string.h>
	settles on wrong strerror_r signature.

	* errno.cc (__xpg_strerror_r): New function.
	(strerror_r): Update to copy newlib's fixes.
	(strerror): Set errno on failure.
	(_sys_errlist): Cause EINVAL failure for reserved values.
	* cygwin.din: Export new function.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Combine
	this into minor 236.

2011-02-09  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* cygwin.din (pthread_yield): Export as alias to sched_yield.
	* include/pthread.h (pthread_yield): Declare.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* posix.sgml (std-deprec): Add pthread_yield.

2011-02-09  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygheap.cc: Add some __stdcall decoration where appropriate.
	* lib/cygwin_crt0.c: __attribute -> __attribute__.

2011-02-09  Christopher Faylor  <me+cygwin@cgf.cx>

	* hookapi.cc (hook_or_detect_cygwin): Prevent i from being considered
	uninitialized by gcc.

2011-02-09  Christopher Faylor  <me+cygwin@cgf.cx>

	* exception.h: Remove DEBUG_EXCEPTION left over debugging ifdef.

2011-02-08  Christopher Faylor  <me+cygwin@cgf.cx>

	* dll_init.cc: Fix typo in comment.

2011-02-07  Corinna Vinschen  <corinna@vinschen.de>

	* configure.in: Remove AC_ALLOCA test and test for __builtin_memset.
	* configure: Regenerate.

2011-02-07  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_console.cc (fhandler_console::write_normal): Remove
	erroneous premature return after collecting truncated multibyte
	sequence in trunc_buf.  Rather fall through to printing routine.
	Fix return value to take trunc_buf content into account.  Improve
	comments.

2011-02-05  Christopher Faylor  <me+cygwin@cgf.cx>

	* autoload.cc (wsock_init): Properly define WSAStartup function pointer
	to avoid stack damage.

2011-02-02  Corinna Vinschen  <corinna@vinschen.de>

	* libc/bsdlib.cc: Include err.h.

2011-02-02  Eric Blake  <eblake@redhat.com>

	* include/err.h: Fix loss of semicolons in previous patch.

2011-02-02  Corinna Vinschen  <corinna@vinschen.de>

	* include/err.h (err): Add noreturn attribute.
	(errx): Ditto.
	(verr): Ditto.
	(verrx): Ditto.

2011-02-02  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (conv_path_list): Remove enclosing quotes and trailing
	backslashes from Win32 environment path lists.

2011-02-01  Christian Franke  <franke@computer.org>

	* fhandler.cc (fhandler_base::fsync): Ignore ERROR_INVALID_FUNCTION
	error from FlushFileBuffers().

2011-01-31  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (utmp_data): Fix potential buffer overflow.

2011-01-31  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket.cc (address_in_use): Improve comment readability.

2011-01-30  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket.cc (address_in_use): Disable.  Add comment.
	(fhandler_socket::bind): Change comment to explain setting the
	SO_EXCLUSIVEADDRUSE socket option.  Remove code which checks for
	address in use.
	* net.cc (cygwin_setsockopt): Never set SO_REUSEADDR option.  Improve
	comment to compensate for the deleted comment in fhandler_socket::bind.
	* wincap.cc: Throughout, drop has_enhanced_socket_security from wincaps.
	* wincap.h (struct wincaps): Drop has_enhanced_socket_security flags
	and method.

2011-01-28 Peter Foley <jpfoley2@verizon.net>

	* configure.in: Define LIBSERVER regardless of cross_host.
	* configure: Regenerate.

2011-01-28  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket.cc (fhandler_socket::wait_for_events): Call
	pthread_testcancel in case of timeout to enable pthread_cancel
	on waiting thread.

2011-01-27  Corinna Vinschen  <corinna@vinschen.de>

	* include/features.h (__STDC_ISO_10646__): Move to newlib's
	sys/features.h.

2011-01-26  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Fix
	computation of st_blocks.
	(fhandler_base::fstat_helper): Fix formatting.

2011-01-24  Corinna Vinschen  <corinna@vinschen.de>

	* include/features.h (__STDC_ISO_10646__): Define.  Add comment.

2011-01-21  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (rename): Fix permission problem with symlinks on NFS.
	Rework how NtOpenFile gets called to make it more readable.  Change
	comment.

2011-01-20  Corinna Vinschen  <corinna@vinschen.de>

	* exec.cc: Include pinfo.h.
	* winf.h: Move definitions of _P_PATH_TYPE_EXEC and _P_MODE from here...
	* pinfo.h: ...to here.
	(_P_PATH_TYPE_EXEC): Redefine to be bigger than _P_SYSTEM.
	(_P_MODE): Redefine so as not to mask out _P_SYSTEM.
	* spawn.cc (spawnlp): Add _P_PATH_TYPE_EXEC flag in call to spawnve.
	(spawnlpe): Ditto.
	(spawnvp): Ditto.

2011-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* spawn.cc (av::fixup): Reenable #! handling for all exec functions.
	Return ENOEXEC in !p_type_exec case only for unrecognized files.
	Fix comment formatting.

2011-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* exec.cc (execlp): Add missing _P_PATH_TYPE_EXEC flag in call to
	spawnve.

2011-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* exec.cc: Rearrange functions in alphabetical order.
	(_execve): Drop temporary define and drop export alias.
	(execl): Call spawnve.
	(execle): New function.
	(execlp): New function.
	(execv): Call spawnve.
	(execve): Drop converting NULL envp to emtpy envp.
	(execvp): Call spawnve.
	(execvpe): Drop converting NULL envp to emtpy envp.  Call spawnve.
	(fexecve): Call spawnve.
	* spawn.cc (spawnve): Convert NULL envp to emtpy envp.  Remove outdated
	comment.
	(spawnlp): Call spawnve.
	(spawnlpe): Ditto.
	(spawnvp): Ditto.
	(spawnvpe): Fix formatting.

2011-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* exec.cc (strccpy): Move function from here...
	* strfuncs.cc (strccpy): ...to here.
	* string.h (strccpy): Declare.
	* winsup.h (strccpy): Drop declaration.

2011-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* errno.cc (errmap): Add error codes for invalid binaries.
	* exec.cc (execvp): Call spawnve with _P_PATH_TYPE_EXEC flag
	from here.
	(execvpe): Ditto.
	* spawn.cc (spawn_guts): Filter _P_PATH_TYPE_EXEC from mode and
	store in p_type_exec.  Call av::fixup with addtional p_type_exec
	argument.
	(spawnve): Check for filtered mode.
	(spawnvpe): Add _P_PATH_TYPE_EXEC flag when calling spawnve.
	(av::fixup): Accept additional bool parameter p_type_exec.  Only check
	for script if p_type_exec is true.
	* winf.h (_P_PATH_TYPE_EXEC): Define.
	(_P_MODE): Define.
	(av::fixup): Declare with additional bool parameter.

2011-01-17  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_proc.cc (format_proc_partitions): Fix compiler warning.

2011-01-17  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (path_conv::check): Don't follow reparse point symlinks if
	PC_SYM_NOFOLLOW_REP flag is set.
	(cygwin_conv_path): Set PC_SYM_NOFOLLOW_REP flag when converting from
	POSIX to Win32.
	* path.h (enum pathconv_arg): Define PC_SYM_NOFOLLOW_REP flag.

2011-01-17  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_proc.cc (proc_tab_cmp): Fix typo in comment.
	(fhandler_proc::fill_filebuf): Handle return value of 0 from format
	function as error.
	(format_proc_stat): Set errno when returning 0 size.
	(format_proc_partitions): Rewrite method to fetch partition info.

2011-01-13  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Always set
	st_size of directories to 0.  Explain why.

2011-01-12  Corinna Vinschen  <corinna@vinschen.de>

	* posix.sgml: Add madvise to BSD list.

2011-01-12  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.din (madvise): Export posix_madvise as madvise.
	* include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR.
	* include/sys/mman.h: Define madvise constants, keep Linux-specific
	constants undefined.
	(madvise): Declare.

2011-01-12  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h (struct part_t): New type.
	(class fhandler_dev_floppy): Convert partitions to part_t pointer.
	Add lock_partition method.
	* fhandler_floppy.cc (fhandler_dev_floppy::lock_partition): New method
	to implement ondemand partition locking.
	(fhandler_dev_floppy::write_file): Call lock_partition from here if
	writing failed due to a potential write restriction on a disk
	partition.  
	(fhandler_dev_floppy::open): Don't lock partitions here.
	(fhandler_dev_floppy::close): Keep track of partition handle reference
	count.  Close handles and remove partitions pointer ony if count is 0.
	(fhandler_dev_floppy::dup): Just copy partitions pointer and increment
	reference count.

2011-01-11  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h (MAX_PARTITIONS): New definition.
	(class fhandler_dev_floppy): Add partitions array member.  Add close
	method.
	* fhandler_floppy.cc (fhandler_dev_floppy::fhandler_dev_floppy): Zero
	out partitions array.
	(fhandler_dev_floppy::open): Fix "entire disk" condition for call to 
	DeviceIoControl (FSCTL_ALLOW_EXTENDED_DASD_IO).
	When opening disks for writing, call DeviceIoControl (FSCTL_LOCK_VOLUME)
	on all affected disk partitions starting with Vista.
	(fhandler_dev_floppy::close): New method.
	(fhandler_dev_floppy::dup): Duplicate handles in partitions, if any.
	* wincap.h (wincaps::has_restricted_raw_disk_access): New element.
	* wincap.cc: Implement above element throughout.

2011-01-11  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* termios.cc (cfgetospeed, cfgetispeed): Constify argument per POSIX.
	* include/sys/termios.h (cfgetospeed, cfgetispeed): Declare functions.
	Move macros after declarations and make conditional on !__cplusplus.

2011-01-11  Corinna Vinschen  <corinna@vinschen.de>

	* cygtls.cc (_cygtls::init_thread): Call _REENT_INIT_PTR.  Drop setting
	current locale and calling srand48.

2011-01-02  Christopher Faylor  <me+cygwin@cgf.cx>

	* ChangeLog-2010: Create from ChangeLog.
	* ChangeLog: Start fresh.