diff options
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 1 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-1995 | 177 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-1996 | 2031 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-1997 | 2800 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-1998 | 4490 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-1999 | 3562 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2000 | 4150 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2001 | 5337 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2002 | 6655 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2003 | 5678 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2004 | 3848 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2005 | 5813 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2006 | 3571 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2007 | 2769 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2008 | 3341 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2009 | 3483 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2010 | 3103 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2011 | 5318 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2012 | 3065 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2013 | 2078 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2014 | 2745 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2015 | 2260 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog.64bit | 1877 |
23 files changed, 0 insertions, 78152 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog deleted file mode 100644 index 62f63d500..000000000 --- a/winsup/cygwin/ChangeLog +++ /dev/null @@ -1 +0,0 @@ -Deprecated. See git log instead. diff --git a/winsup/cygwin/ChangeLog-1995 b/winsup/cygwin/ChangeLog-1995 deleted file mode 100644 index 43d28a3a1..000000000 --- a/winsup/cygwin/ChangeLog-1995 +++ /dev/null @@ -1,177 +0,0 @@ -Mon Dec 18 16:44:38 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * configure.in (target_cpu): specify valid Intel x86 architectures - explicitly. - -Mon Dec 18 15:04:29 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * sysdef/*.def: moved to sysdef/i386/. - -Mon Dec 18 15:00:56 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * configure.in: Set DLL_ENTRY and SYSDEF_DIR for i386 and powerpc. - * configure: Regenerated with autoconf 2.7. - - * Makefile.in: Use DLL_ENTRY and SYSDEF_DIR. - -Sat Dec 16 18:36:44 1995 steve chamberlain <sac@slash.cygnus.com> - - Changed the way that file handles are inherited. Now - all files are opened with the inheriting turned on, and they're - closed when necessary. - - Changed the way that children are waited for. Now - you can exec a non-gnuwin32 program and wait for its - result. - - * Makefile.in: Turn off frame-pointer. - * dcrt0.cc (environ_init): Lint. - * dirsearch.cc (opendir): Use new path_conv mechanism. - * exceptions.cc (ctrl_c_handler): Exit with correct status - * exec.cc (file_exists): Moved to paths.cc - (_execve): Moved most of the work into spawn.cc. - * fhandler.cc (*): Much. - * libccrt0.c (foo): Deleted. - (cygwin_crt0): Lint. - * path.cc (readlink): Initialize the SECURITY_ATTRIBUTES struct. - * pipe.cc (pipe, dup*): Reorganized. - * registry.cc (read_in): Create the key in CURRENT_USER. - * wait.cc, spawn.cc (*): Much. - * sysconf.cc (sysconf): Understand SC_PAGESIZE. - * times.cc (utime): New function. - * uname.cc (uname): Dig out more info. - -Wed Dec 13 05:54:55 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * dcrt0.cc (environ_init): Cast alloca return to appropriate type. - * spawn.cc (spawn_guts): Ditto. - - * strace.cc (__small_{v,}sprintf): Add appropriate prototypes. - - * exceptions.cc (_except_list): Only use segments for 386 systems. - (__stack_trace): Add PowerPC support, and do nothing for systems - that are not supported except print stack tracing is not yet - support. - - * sdata.cc (import_term): Only use __attribute__((section)) on 386 - systems. - - * shared.cc (shared_init): Use MARK macro instead of calling mark - directly with incorrect type arguments. - - * fhandler.cc (fhandler_dev_null::{read,write}): Use size_t in - prototype, not unsigned int. - - * fork.cc (find_exec): Fix type errors. - * path.cc (path_to_real_path_keep_rel): Ditto. - * syscalls.h (PATH_TO_REAL_PATH): Ditto. - - * {longjmp,setjmp}.c: #ifdef i386 code. - - * include/wintypes.h (ExitProcess): Add - __attribute__((__noreturn__)) so exit compiles without warnings. - -Tue Dec 12 18:25:05 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * include/wintypes.h (WINAPI): Only define WINAPI for x86 systems. - -Tue Dec 5 16:00:05 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * Makefile.in (all): Only build documentation for info target. - Expect texi2html to not be found most of the time. - -Tue Dec 5 08:08:08 1995 steve chamberlain <sac@slash.cygnus.com> - - Release-B10 - - * cygwin.dll (__assert, wait, spawnv, spawnvp): Deleted. - * dcrt0.c: Quoting rewritten. - * exec.cc (file_exists): Use new path_conv mechanism. - (_execve): Close open child process handles. - * fhandler.cc (fhandler_normal::open): Follow symlinks. - (fhandler_normal::read): Keep track of logical file posision. - (fhandler_normal::lseek): Seek in text files correctly. - (fhandler_normal::fstat): Set IFLNK bit if its a symlink. - (fhandler_normal::init): Maintain is_pipe. - (fhandler_dev_null::fstat): New. - (fhandler_dev_null::get_handle): Return INVALID_HANDLE. - * fork.cc: Use new event mechanism. - * libccrt0.cc: Keep track of _fmode variable. - * misc.c (readlink): Delete. - * path.cc (__path_to_real_path_1): Allow /d<letter> mechanism. - (path_to_real_path_keep_rel): New - (link_cookie:*): Support for symbolic links. - * spawn.cc (spawn_guts): Quoting rewritten. - * times.cc: New. - * syscalls.cc (_stat_worker): New. - (_stat, _lstat): Use _stat_worker. - * sysconf.cc (sysconf): Support _SC_CLK_TCK. - -Tue Nov 28 15:29:38 1995 steve chamberlain <sac@slash.cygnus.com> - - * loads of stuff. When I make < 100k of diffs in a day, - the ChangeLog will be usefull. - -Tue Nov 21 18:01:39 1995 steve chamberlain <sac@slash.cygnus.com> - - * Makefile.in: Build the doc. - * exceptions.cc: lint. - * fork.cc: lint. - * shared.cc (shared_init): If MapViewOfFileEx fails, then try - again, but get the OS to select the address (for win95) - * strace.cc (__sysprintf): Print pid and state in hex. - * syscalls.cc (_unlink): Translate path to realpath. - -Wed Nov 15 23:47:43 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * spawn.cc (_exit): set return value's lower byte to 0 by default. - - Tue Oct 3 10:23:14 1995 Anders Blomdell (anders.blomdell@control.lth.se) - - * spawn.cc (spawn_guts): quote doublequotes correctly - -Tue Nov 14 15:05:33 1995 Jason Molenda (crash@phydeaux.cygnus.com) - - * configure.in: comment out call to cfg-ml-com.in. - -Tue Oct 31 11:19:18 1995 steve chamberlain <sac@slash.cygnus.com> - - * libcerr.cc: New file. - * dcrt0.cc (environ_init): Initialize PATH and friends nicely. - * exceptions.cc (ctrl_c_handler): Default case is to exit. - * fork.cc (__suffixy, find_exec): translate between paths and - real_paths. - * shared.cc (shared_init): Hard wire shared memory at 0xa0000000. - * syscalls.c (__path_to_real_path, real_path_to_path): Always - translate '/' <> '\' - -Mon Oct 30 17:36:10 1995 steve chamberlain <sac@slash.cygnus.com> - - * syscalls.cc (_rename): Fix for win95. - -Fri Oct 27 20:53:47 1995 steve chamberlain <sac@slash.cygnus.com> - - * Everything changed. - -Thu Oct 19 10:47:52 1995 steve chamberlain <sac@slash.cygnus.com> - - * registry.cc, uinfo.cc: New files. - * crt0.c (*uinfo*, *_exe_suffix*): Delete. - (dll_crt0): Call shared_init. - * getlogin.c: deleted. - * shared.cc: Fill in. - * spawn.c (_spawn): Use __exe_suffix function. - * syscalls.c (getuid, getgid): Moved into uinfo.cc - * syscalls.h (*uinfo, __exe_suffix): Deleted - * Makefile.in: Cope with target configury. - * termios.c: Fix stub prototypes. - * win.h: Deleted. - * include/winadvapi.h: Fill in some REG prototypes. - -Thu Oct 19 10:47:52 1995 steve chamberlain <sac@slash.cygnus.com> - - * Makefile.in: Cope with target configury. - -Wed Oct 18 15:34:49 1995 steve chamberlain <sac@slash.cygnus.com> - - * Moved from newlib. diff --git a/winsup/cygwin/ChangeLog-1996 b/winsup/cygwin/ChangeLog-1996 deleted file mode 100644 index 9c786c408..000000000 --- a/winsup/cygwin/ChangeLog-1996 +++ /dev/null @@ -1,2031 +0,0 @@ -Mon Dec 23 13:35:27 1996 Jeremy Allison <jra@cygnus.com> - - * Makefile.in: Added $(srcdir)/../libstdc++/stl -I$(srcdir)/../libio - to the include path. As mmap uses STL then this is needed - to build the cross compiler. Also added mmap.o file. - * cygwin.din: Added mmap, mprotect, msync, munmap. - * dcrt0.cc: Added code to get the module pathname from - a previously unused field in the u area so fork() calls - don't have to search the path. Forwards compatible with - earlier releases as they set this field to zero. - * fork.cc: Added call to recreate_mmaps_after_fork() in - child code. Ensures child has same view of mmap'ed areas - as parent. - * libccrt0.cc: (See dcrt0.cc change). Setup the module - handle so fork can get the path name. - * mmap.cc: New file. Implements mmap, mprotect, msync, munmap, - recreate_mmaps_after_fork. Uses STL. - * select.cc: Added code to set errno to EINVAL if select done - on handles and sockets. Must fix this soon. - * spawn.cc: Set new variable hmodule in u area to zero for child. - * syscalls.cc: Added fsync functionality. No longer a dummy call. - * winsup.h: Decremented internal_reserved array by one to add - hmodule in u area. Added prototype for recreate_mmaps_after_fork(). - * include/sys/mman.h: Fixed include file for mmap calls. - -Tue Dec 17 16:20:52 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (_rename): fix code so we really do - return -1 if _rename fails. - -Tue Dec 17 12:12:29 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.cc: Added Sergeys patch for FakeReadFile. - * cygwin.din: Re-ordered network calls. - -Mon Dec 16 16:47:26 1996 Geoffrey Noer <noer@cygnus.com> - - * configure.in: remove AC_C_CROSS (now part of AC_PROG_CC) - * utils/configure.in: ditto - * configure: regenerate - * utils/configure: regenerate - -Mon Dec 16 14:50:46 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: export cygwin32_getsockopt - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc: don't assume all scripts should be run in - bash -- run the shell specified after the #! - -Fri Dec 13 16:18:22 1996 Jeremy Allison <jra@cygnus.com> - - * path.cc: Added support for UNC paths. - -Fri Dec 13 10:56:21 1996 Jeremy Allison <jra@cygnus.com> - - * cygwin.din: Added h_errno, seteuid, _seteuid. - * exceptions.cc: Made init_exceptions extern "C". - * exceptions.h: Added cplusplus wrappers to enable this to - be used from C. - * net.cc: Added error numbers, fixed gethostbyaddr, added h_errno - fixes. - * stubs.cc: Added seteuid. - * include/mywinsock.h: Added HOST error entries for DNS lookups. - -Tue Dec 10 15:38:46 1996 Geoffrey Noer <noer@cygnus.com> - - * version.h: bump CYGWIN_DLL_VERSION_MINOR to 4 - - patch from Marcus Daniels <marcus@sysc.pdx.edu>: - * fhandler.cc: add fhandler_dev_null::dup (fhandler_base *child) - * fhandler.h: add matching header - - gnu-win32 beta 17.1 release made - -Thu Dec 5 14:03:08 1996 Geoffrey Noer <noer@cygnus.com> - - * select.cc: add missing end comment at about line 933. - gnu-win32 beta 17 release made - -Wed Dec 4 15:53:11 1996 Geoffrey Noer <noer@cygnus.com> - - * version.h: increment minor dll number in conjunction - with gnu-win32 beta 17 release - -Tue Dec 3 15:05:57 1996 Geoffrey Noer <noer@cygnus.com> - - * strsep.cc: new file containing Berkeley-copyrighted strsep - code previously in misc.cc. - * misc.cc: strsep moved to strsep.cc, stop including - unistd.h, strings.h, sys/types.h, stddef.h, and stdarg.h - * Makefile.in: appropriate adjustments to add strsep.cc - -Tue Dec 3 13:50:59 1996 Geoffrey Noer <noer@cygnus.com> - - * include/sys/copying.dj: new file whose presence is - required by include/sys/file.h - -Tue Dec 3 13:37:27 1996 Geoffrey Noer <noer@cygnus.com> - - Throughout all Cygnus-developped source files: put all - code under GPL - -Tue Dec 3 10:54:01 1996 Jeremy Allison <jra@cygnus.com> - - * fork.cc: Changed code to delete [] saved child_hinfo - after allocate_pid called. Needed as child changes this - value in the shared area when it de-linearizes fd array. - Needed to stop race condition with earlier fix. - * winsup.h: Changed definition of item in hinfo to be - a char array rather than fhandler_console. Stops - destructor being called when fork delete [] of - hinfo array called. - * hinfo.cc: Changes (casts) to support winsup.h changes. - -Mon Dec 2 17:22:13 1996 Geoffrey Noer <noer@cygnus.com> - - * include/utime.h: add ifdef _UTIME_U wrapper around header - -Mon Dec 2 15:45:46 1996 Jeremy Allison <jra@cygnus.com> - - * fork.cc: Fixed file descriptor resource leak in parent. - * registry.cc: Removed fatal error if registry key cannot - be opened. Causes errors in service code. - -Wed Nov 27 15:40:15 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: for MS compatibility, also export functions - as _funcname = funcname - * include/netdb: - * include/sys/socket.h: - Do the equivalent thing for functions exported as cygwin32_funcname - -Wed Nov 27 15:14:30 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove exported helper functions that shouldn't - need to be exported (_read et al) - * glob/Makefile.in: add SHELL definition - * utils/Makefile.in: add SHELL definition - -Mon Nov 25 14:24:52 1996 Geoffrey Noer <noer@cygnus.com> - - * include/commdlg.h, ddeml.h, winadvapi.h, winbase.h, wincon.h, - windef.h, windowsx.h, winerror.h, wingdi.h, winkernel.h, winnt.h, - wintypes.h, winuser.h, winversion.h: - Add MS-style header files back, each of which now includes our - windows.h. This should allow compilation of Windows code - that expects normal MS-named headers as long as the information - is in our windows.h somewhere. The appropriate wrappers have - been added to each file so windows.h isn't included more than - once. - * include/windows.h: add paranoia wrapper so it can be included - more than once. - -Mon Nov 18 22:19:40 1996 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: change rules around so new-cygwin.dll is - only rebuilt when necessary - * spawn.cc: include <stdlib.h> - -Mon Nov 18 21:08:15 1996 Geoffrey Noer <noer@cygnus.com> - - * net.cc: remove extern "C"s that shouldn't be there - (get_win95_ifconf, get_winnt_ifconf, get_if_flags) - * syscalls.cc: remove extern "C"s from num_entries, _stat_worker - * winsup.h: add extern "C"s for syscalls protos - -Mon Nov 18 20:35:39 1996 Geoffrey Noer <noer@cygnus.com> - - * winsup.h: include version.h - * Makefile.in: remove dependencies involving version.h, but add - version.h to winsup.h dependency line and also add others that - should also be there. - * dcrt0.cc: - * libccrt0.cc: - * registry.cc: - * shared.cc: delete includes of version.h - -Mon Nov 18 20:16:37 1996 Geoffrey Noer <noer@cygnus.com> - - * stubs.c -> stubs.cc, add extern "C"s - * uname.c -> uname.cc, add extern "C"s - * console.cc: add extern "C"s, remove include windows.h - since its already included in winsup.h - * dirsearch.cc: add extern "C"s - * fcntl.cc: add extern "C"s - * winsup.h: remove LEAN_AND_MEAN define since that's no longer - relevant with new windows headers, include version.h - * malloc.cc: fix typos - -Mon Nov 18 18:02:31 1996 Geoffrey Noer <noer@cygnus.com> - - * grp.c renamed to grp.cc, add extern "C"s - * misc.c renamed to misc.cc, add extern "C"s - -Mon Nov 18 16:08:26 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc: extern "C"'d function calls - * net.cc: extern "C"'d function calls, some respacing - * hinfo.cc: extern "C"'d function calls, some respacing - * syscalls.h: removed defines for MIN, errno, alloca(x), - DEFAULT_GID/UID, NOT_OPEN_FD(fd), STD_RBITS et al, - O_NOSYMLINK - * winsup.h: added what was just deleted from syscalls.h - -Mon Nov 18 15:56:22 1996 Jeremy Allison <jra@cygnus.com> - - * cygwin.din: Added readv - * syscalls.cc: Added readv code. - * syscalls.h: Added readv prototype. - -Wed Nov 13 15:55:14 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: added C++-related exports for stuff in - libgcc.a (from new.o, tinfo.o, tinfo2.o, exception.o). - -Mon Nov 11 15:50:26 1996 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc - * dirsearch.cc - * malloc.cc - * passwd.cc - * path.cc, - * pinfo.cc - * syslog.cc - * utils/kill.cc - * utils/cygwin.cc: - need to #include <stdlib.h> which used to be included - automatically in windows.h included by winsup.h. - * shared.cc: UnmapViewOfFile takes a void *, not a - const void * - * malloc.cc: formatting fixes - -Fri Nov 8 17:31:55 1996 Jeremy Allison <jra@cygnus.com> - - * select.cc: Added fix for HANDLE select sent by - Sergey Okhapkin. - * fhandler.h: Changed dup to return int. Can now - return error to dup2. - * fhandler.cc: Changed dup to return error code. - Corrected fhandler_console::close to return - error code. - * hinfo.cc (dup2): Check return code from - fhandler->dup. - * times.cc: Changed DST calculation as tm struct - month starts at zero, NT wMonth starts at 1. - * TODO: Added the things i'd like to do. - -Wed Nov 6 17:42:31 1996 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: Changed name of base file for cygwin.dll from - base to cygwin.base. Changed name of exp file for cygwin.dll - from win.exp to cygwin.exp. Updated dependency list, removing - recently removed files like libcfork.cc, added missing files, - and added all missing header dependencies. Small formatting - fixes. - -Fri Nov 1 16:38:48 1996 Geoffrey Noer <noer@cygnus.com> - - * TODO: deleted old stuff from a long time ago, added some - new stuff - - * added public domain disclaimers to all files missing them, - reformatting of non-imported code to conform to GNU standards. - Changes to: - delqueue.h, exceptions.h, fcntl.cc, fhandler.h, grp.c, - init.cc, ioctl.cc, key.cc, libcctype.c, libcerr.cc, libcmain.cc, - misc.c, path.h, pold.c, resource.cc, smallprint.c, strerror.cc, - syslog.cc, termios.cc, test.c, version.h, wait.cc - -Fri Nov 1 14:44:29 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.h: Added is_console() method needed by - new select code. - * fhandler.cc (fhandler_console::init): Added c_oflag setting - dependent on bin parameter. - * select.cc: Added code to implement select from console - handles. Ignores keyup events and still blocks. - -Wed Oct 30 16:35:41 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.h: Removed fhandler_console_in, fhandler_console_out - and integrated them both into fhandler_console. Added output_handle_ - so fhandler console has two handles. - * fhandler.cc: Updated to support changes in fhandler.h. It is now - possible to open("/dev/tty") and read/write to the same fd. - * hinfo.cc(build_fhandler): Removed references to obsolete classes. - * spawn.cc: Changed to get correct reference to output_handle_ for - fhandler_console class. - * console.cc: Changed to get output handle rather than input handle. - * winsup.h: Changed definition of prototypes for functions changed - in console.cc - -Wed Oct 30 13:05:33 1996 Geoffrey Noer <noer@cygnus.com> - - * include/custcntl.h - * include/features.h - * include/icmp.h - * include/wchar.h - * include/cygwin32/icmp.h - * include/cygwin32/ip.h - * include/cygwin32/sockios.h - * include/cygwin32/types.h - * include/cygwin32/uio.h - * include/sys/ttychars.h - Added comment with name of header to each so that these are no - longer empty files (some unzip programs won't create - zero-length files which is a problem for headers) - -Sun Oct 27 17:30:03 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: also export "_execl = execl" and the same - for _execle and _execlp - -Thu Oct 24 01:43:29 1996 Geoffrey Noer <noer@cygnus.com> - - * include/windows.h: rewritten to include headers from - the include/Windows32 subdirectory - * winsup.h: no longer define MAX_PATH here since it's defined - in header files dragged in by windows.h - * dirsearch.cc (readdir): change WIN32_FIND_DATAA to WIN32_FIND_DATA - * libccrt0.cc: #include <stdlib.h> - * syscalls.cc (_unlink): chmod file to be unlinked to be - writable and try to delete it again if first delete failed - with permission denied error (rm will now work on read-only files) - (num_entries): change WIN32_FIND_DATAA to WIN32_FIND_DATA - * include/commdlg.h: delete - * include/ddeml.h: delete - * include/winadvapi.h: delete - * include/winbase.h: delete - * include/wincon.h: delete - * include/windef.h: delete - * include/windowsx.h: delete - * include/winerror.h: delete - * include/wingdi.h: delete - * include/winkernel.h: delete - * include/winnt.h: delete - * include/wintypes.h: delete - * include/winuser.h: delete - * include/winversion.h: delete - -Wed Oct 23 10:43:05 1996 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc (api_fatal): Changed locking clear of - process table to unlocking clear. Needed as lock code calls - api_fatal. - * exceptions.cc: Added debug_printfs to follow exceptions in - strace mode. - * pinfo.cc: Added code to ensure fd table is cleared when new - pid entry allocated. Fixed bug when process is terminated - violently by TerminateProcess and leaves fd table non-zero. - * termios.cc: Changed stubbed out syscalls to syscall_printf - rather than small_printf. Stops annoying tcdrain message. - * winsup.h: Made get_empty_pinfo call private to pinfo_list. - Should never be called external to this class. - -Tue Oct 22 16:14:23 1996 Jeremy Allison <jra@cygnus.com> - - * hinfo.cc: Removed previous change. This is not the - correct place to flush input events. - -Tue Oct 22 09:25:32 1996 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc: Fixed up exit code to clean up pinfo array. - * exceptions.cc: Fixed up exit code to clean up pinfo array. - * fork.cc: Tidied up access to inuse_p entry. Added flags - to allow different states to be represented. - * hinfo.cc: Added code to flush pending events if - stdin is a console. - * pinfo.cc (pinfo::record_death): Added code to clean - the pinfo array if we are an exiting parent. - * spawn.cc: Removed erroneous code to clean childs - pinfo entry. - * wait.cc: Changed WAIT_ERROR_RC to Win32 WAIT_FAILED. - Tidied up access to pinfo array. - * winsup.h: Added record_death_nolock to pinfo class. - Added PID_XXX types for inuse_p. - -Tue Oct 22 01:26:52 1996 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Base.h: - * include/Windows32/Functions.h: - * include/Windows32/Structures.h: - * include/Windows32/UnicodeFunctions.h: - Fixes to just commited changes - -Mon Oct 21 19:58:50 1996 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/ASCIIFunctions.h: - * include/Windows32/Base.h: - * include/Windows32/Defines.h: - * include/Windows32/Functions.h: - * include/Windows32/Structures.h: - * include/Windows32/UnicodeFunctions.h: - - Add back items in old include files (commdlg.h, ddeml.h, - shellapi.h, winadvapi.h, winbase.h, wincon.h, windef.h, - windowsx.h, winerror.h, wingdi.h, winkernel.h, winnt.h, - wintypes.h, winuser.h, winversion.h) which should now be able - to be erased and windows.h modified to point to the new headers - without anything nasty happening. - - * include/WINREADME: deleted - * include/mywinsock.h: removed many blank lines - -Mon Oct 21 09:48:00 1996 Jeremy Allison <jra@cygnus.com> - - * select.cc: Re-written from scratch. Take account of - the following cases. (1). All sockets [written&works] - (2). Handles, sockets and always readies [written,not tested] - (3). All handles [written,not tested]. (4). Handles & sockets - with timeout [not yet written,returns -1]. Correctly blocks - and doesn't spin cpu. - * pinfo.cc: Changed to add global lock around pinfo array. - * fork.cc: Changed to use global pinfo lock. - * shared.cc: Fixed bug with fork()->exec()->exec() code. - * net.cc: Removed select_init() call (no longer used). - * spawn.cc: Implemented suggestion that spawn creates - process suspended, then sets up it's dwProcessId entry - in the shared pinfo array. - * wait.cc: Changed to use global pinfo lock. - * winsup.h: Added missing windows_95() call. - * fhandler.h: Changed ifdefs to select new always_ready - methods. - * fhandler.cc (fhandler_console::write): Fixed bug - where return of write_normal was being ignored. - * dcrt0.cc: Added code to use global pinfo lock. - Ensure that process records it's own death. - * exceptions.cc: Added code to clear our entry in pinfo - array when we are exiting. Should reduce dead processes in - pinfo array. - * include/winbase.h: Added MAXIMUM_WAIT_OBJECTS define. - -Mon Oct 21 00:52:17 1996 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: install headers from new Windows32 dir - -Sat Oct 19 00:47:58 1996 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Base.h: change DWORD to unsigned int from - unsigned long, change __WIN32__ checks to _WIN32, change - // comments to /* */ - -Fri Oct 18 17:33:07 1996 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Defines.h: change INFINITE to 0xFFFFFFFF, - add back definitions present in old winsup headers missing from - this file (STATUS_WAIT_0 et al, CONTEXT stuff, FAR, PACKED, - ASCIICHAR) - * include/Windows32/Functions.h: change // comments to /* */ - * include/Windows32/Messages.h: add definitions for WM_NULL, - WM_PENWINFIRST, WM_PENWINLAST - * include/Windows32/Sockets.h: change __WIN32__ checks to _WIN32 - * include/Windows32/Structures.h: add ppc case for CONTEXT - structure, change // comments to /* */ - -Fri Oct 18 17:25:09 1996 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32: new directory for Windows headers - * include/Windows32/ASCIIFunctions.h: - * include/Windows32/Base.h: - * include/Windows32/Defines.h: - * include/Windows32/Errors.h: - * include/Windows32/Functions.h: - * include/Windows32/Messages.h: - * include/Windows32/Sockets.h: - * include/Windows32/Structures.h: - * include/Windows32/UnicodeFunctions.h: - New Win32 headers from Scott Christley's windows32api-0.1.2 package - with no local modifications. - -Wed Oct 16 17:16:33 1996 Geoffrey Noer <noer@cygnus.com> - - * key.cc: remove extra blank lines, change ASCIICHAR to AsciiChar - * registry.cc: remove #include <winbase.h> since it's already - included in windows.h - -Tue Oct 15 09:51:48 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.h: Many changes to support moving fhandler array out of - shared area into locally allocated memory. Removed fhandler class, - fhandler_base is now root of class tree. Re-arranged class definitions - to make it clear what functions are virtual and can be overridden. - Inlined may accessor functions. - * fhandler.cc: Many changes to support moving fhandler array out of - shared area into locally allocated memory. unix_path_name_ is now - always set (all fhandler_base classes have a name). - * hinfo.cc: Many changes to support moving fhandler array out of - shared area into locally allocated memory. Added linearization and - de-linearization functions. - * net.cc(socket): Added code to keep name for fhandler_socket. - * pinfo.cc : Changed allocation of fhandler_base array to be in local - memory rather than in shared area. (modified functions are pinfo_init, - pinfo_list::get_empty_pinfo, pinfo_list::allocate_pid, - pinfo::record_death). - * shared.cc: Added functions to copy fd area for spawned process. - Changed name of shared area to include master version number of - Cygwin32. - * spawn.cc (spawn_guts): Added code to initialize new shared area - for fds. - * syscalls.cc: Changed all code depending on NOFILE to use - getdtablesize(). Added internal setdtablesize() call for exec'ed - processes. - * syscalls.h: Added getdtablesize(). - * sysconf.cc (sysconf): Changed SC_OPEN_MAX to return getdtablesize(). - * winsup.h: Moved fhandler array out of shared area. Changed from - fhandler to fhandler_base (new root of class tree). - * include/mywinsock.h: Updated #endif to make end of - __INSIDE_CYGWIN32__ clear. - * include/winkernel.h: Added UnmapViewOfFile call. - -Mon Oct 14 14:59:16 1996 Geoffrey Noer <noer@cygnus.com> - - * sysdef/i386: replace all files with ones from Scott - Christley's windows32api-0.1.2 package. Still need to - integrate new headers. - -Mon Oct 14 13:41:14 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (_unlink): need to fchmod file to writable - before attempting to delete. This change still needs more - work (fchmod isn't written yet). - * (fchmod): change comment - -Fri Oct 11 22:27:17 1996 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc, fhandler.h: minor fixes to console - support functions (remove missed reference to gotarg2, - definition in fhandler.h) - -Wed Oct 9 17:55:00 1996 Geoffrey Noer <noer@cygnus.com> - - * delqueue.cc: added copyright notice, reformatted file - - from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler.cc, fhandler.h: add/fix ansi/vt100 console support, - and fix a tab bug - (modified functions are fhandler_console_out::clear_screen, - fhandler_console_out::clear_to_eol, - fhandler_console_out::char_command, - fhandler_console_out::write, - FakeReadFile) - -Wed Oct 9 17:32:17 1996 Jeremy Allison <jra@cygnus.com> - - * times.cc: Swapped gmtime and localtime (they were - incorrectly reversed). - Added is_dst determination to them both. - * misc.c: Added swab, ffs. - * fcntl.cc(fcntl): Added capability for lock calls. - * fhandler.h: Added lock method into fhandler class. - * fhandler.cc: Added NT/Win95 semantics locks into ::lock - made them pretend they are POSIX locks. - * syscalls.cc (writev): Fixed return value bug. - * net.cc: Added WSAEOPNOTSUPP error. - * cygwin.din: Added ffs and swab. - * include/strings.h: Added file (just include string.h). - * include/winbase.h: Added defines LOCKFILE_FAIL_IMMEDIATELY - and LOCKFILE_EXCLUSIVE_LOCK. - * include/winerror.h: Added define ERROR_LOCK_FAILED. - -Thu Oct 3 16:19:23 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.h: Many changes - removed all public variables - from classes, replaced with accessor functions. Renamed all - class variables to add a trailing '_'. This makes reading - and understanding which variables are class variables much simpler. - Changed name member to unix_path_name_ and made dynamic rather - than a fixed 31 byte buffer per entry. - * fhandler.cc: Updated varable access for above. - * fcntl.cc: Updated varable access for above. - * hinfo.cc: Updated varable access for above. - * spawn.cc: Updated varable access for above. - * syscalls.cc: Added fsync (null call) and fchmod(null - call at present). - * net.cc: Added ioctls for SIOCGIFCONF and SIOCGIFFLAGS. - Added ntohs, ntohl, static functions get_winnt_ifconf, - get_win95_ifconf and get_if_flags. - * include/cygwin32/if.h: Added structs for new ioctls. - * include/cygwin32/socket.h: Added iovec include. - * include/asm/socket.h: Added defines for above ioctls. - * cygwin.din: Added ntohs, ntohl, fsync, fchmod. - -Wed Oct 2 17:34:21 1996 Geoffrey Noer <noer@cygnus.com> - - * utils/configure.in: add call to AC_CANONICAL_SYSTEM - * utils/configure: regenerate - * Makefile.in: build cygwin.dll as new-cygwin.dll and install as - cygwin.dll to prevent confusion when building winsup natively - -Tue Oct 1 17:27:34 1996 Jeremy Allison (jra@cygnus.com) - - * include/regex.h: Added. - * net.cc: Added WSAECONNRESET, WSAEPFNOSUPPORT to - errmap array. - -Tue Oct 1 15:40:39 1996 Jeremy Allison (jra@cygnus.com) - - * fork.cc (cygwin_fork_helper1): Fixed resource leak of process - handles, added cleanup code. Also fixed timout problem when child - cannot be initialized. - * dirsearch.cc (readdir): Changed comparison to explicitly check for - INVALID_HANDLE_VALUE. Test < 0 fails with void *. - * syscalls.cc (num_entries): Changed comparison to explicitly check for - INVALID_HANDLE_VALUE. Test < 0 fails with void *. - * cygwin.din: Added regcomp, regexec, regerror, regfree. - * Makefile.in: Added EXTRA_OFILES containing ../librx/rx.o. Added - comment to explain makefrag. Added ../newlib/libc/include to include - path. - -Mon Sep 30 16:10:56 1996 Stu Grossman (grossman@critters.cygnus.com) - - * cygwin.din: Remove getopt and friends. - -Fri Sep 27 18:31:28 1996 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc (dll_crt_1): Moved initialization of _reent to correct - position. - -Fri Sep 27 14:24:05 1996 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc (dll_crt_1): Fixed fork bug with _impure_ptr not being - initialized correctly in a forked child. This should fix - the bash echo in a sub-shell bug. - * include/sys/uio.h: Created file. Contains definitions for writev - * include/limits.h: Added IOV_MAX and SSIZE_MAX. - * syscalls.cc: Added writev, changed read and write to return ssize_t. - * syscalls.h: Added writev, changed read and write to return ssize_t. - * cygwin.din: Added writev call. - -Wed Sep 20 13:09:00 1996 Jeremy Allison <jra@cygnus.com> - - * include/mntent.h: Added MOUNTED definition, needed by - some code. - * dcrt0.cc : Added __progname for getopt code. - * misc.c: Added getw code. - * cygwin.din: Added getopt, optarg, opterr, optind - optopt, putw, getw calls. - -Fri Sep 20 03:03:17 1996 Geoffrey Noer <noer@cygnus.com> - - * select.cc: change long millisec to unsigned int, - respaced file - - patch from Sergey Okhapkin <sos@prospect.com.ru>: - * select.cc (polled): fix for select to get keyboard input - working properly (check EventType != KEY_EVENT instead - of checking for KeyEvent.AsciiChar == 0) - * select.cc (cygwin32_select): make int i unsigned int so NULL is - a valid timeout argument for loop - -Fri Sep 13 18:21:52 1996 Jeremy Allison <jra@cygnus.com> - - * fhandler.cc (fhandler_base::read): rewrite text mode read - -Fri Sep 13 14:58:17 1996 Geoffrey Noer <noer@cygnus.com> - - * exceptions.cc (call_handler): fix control-C not working - problem by setting rethere variable before the old value is - clobbered. - -Thu Sep 12 16:27:00 1996 Jeremy Allison <jra@cygnus.com> - - * syslog.cc (pass_handler) : Removed duplicate code - in pass_handler::print(). Added get_win95_event_log_path() - to facilitate moving to registry configuration. - -Thu Sep 12 12:56:00 1996 Jeremy Allison <jra@cygnus.com> - - * syslog.cc : Added real openlog, syslog, logmask, closelog - calls. syslog logs to event log on NT, file on Win95. - * include/winnt.h : added EVENTLOG_xx_TYPE definitions. - * include/winadvapi.h : added ReportEventA, RegisterEventSourceA - DeregisterEventSourceA declarations. - * include/winkernel.h : added LockFile, UnlockFile, LockFileEx, - UnlockFileEx declarations. - * include/wintypes.h : added PSID typedef. - * include/sys/syslog.h : added options flag definitions for openlog. - -Wed Sep 11 15:34:09 1996 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (popen): delete stub in favor of newlib's - (pclose): delete stub in favor of newlib's - -Tue Sep 10 17:20:56 1996 Geoffrey Noer <noer@cygnus.com> - - * configure.in: don't transform names (the only time this might - be a good idea is for unix x cygwin32) - * configure: regenerated with autoconf - -Tue Sep 10 17:20:56 1996 Geoffrey Noer <noer@cygnus.com> - - patch from Sergey Okhapkin <sos@prospect.com.ru>: - * fhandler.cc (FakeReadFile): support arrow keys, stop treating - bringing window to front as a key down (resulting in random - characters being printed in bash). - -Mon Sep 9 19:09:36 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (system): fix system call - -Fri Sep 6 09:33:13 1996 Doug Evans <dje@canuck.cygnus.com> - - * fhandler.h (fhandler_base): Make execable_p public char, not - private signed char. Delete get_execable. - * fhandler.cc (fhandler_base::get_execable): Renamed to - check_execable_p. - (fhandler_base::open): Restore symlink support. - Set execable_p, symlink_p. - (fhandler_base::fstat): Replace call to get_execable with reference - to execable_p. - (fhandler_base::fhandler_base): Set execable_p to 0. - * path.h (symlink_check): Declare it. - * path.cc (symlink_check): New function. - (readlink): Call it. - (symlink_follow): Likewise. New arg EXEC, callers updated. - * syscalls.cc (_stat_worker): New arg CALLER, callers updated. - - * syscalls.cc: Delete all occurences of in/out and MARK. - -Thu Sep 5 18:51:01 1996 Doug Evans <dje@canuck.cygnus.com> - - * fork.cc: Don't include <ctype.h>. Delete find_exec and support. - * spawn.cc: Include <ctype.h>. Move find_exec and support here. - (perhaps_suffix): New argument report_failure_p, callers updated. - (find_exec_1): Use perhaps_suffix when scanning PATH. - (spawn_guts): Replace code to translate posix to win32 path lists - with calls to utility fns that do the job. - -Wed Sep 4 13:30:57 1996 Doug Evans <dje@canuck.cygnus.com> - - * path.cc (readlink): Make more bulletproof. - -Wed Aug 28 16:44:24 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (system): use execlp - * public release beta 16 made - -Tue Aug 27 09:58:14 1996 Doug Evans <dje@canuck.cygnus.com> - - * version.h (CYGWIN_DLL_VERSION_MINOR): Bump up to 2. - -Mon Aug 26 15:12:44 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (system): added basic system() call. - -Mon Aug 26 13:46:30 1996 Doug Evans <dje@canuck.cygnus.com> - - * cygwin.din (cygwin_fork_helper__FPvN30): Delete. - (vfork,select): Add. - * fork.cc (prepare_child): Delete, contents moved into - cygwin_fork_helper1. - (cygwin_fork_helper): Delete, contents moved into __fork. - * winsup.h (cygwin_fork_helper): Delete. - - * path.cc: #include <fcntl.h>. - (symlink,readlink): Reenable, rewrite. - (symlink_follow): New function. - * path.h (symlink): Delete. - (SYMLINK_COOKIE, MAX_LINK_DEPTH): Define. - (symlink_follow): Declare. - * spawn.cc (spawn_guts): Rewrite symlink support. - - * syscalls.cc (_unlink): Make arg a const char *. - * winsup.h (_unlink): Likewise. - - * spawn.cc (spawn_guts): Fix allocation of stack space for sh.exe path. - - * include/sys/errno.h: Deleted. Use newlib's. - -Fri Aug 23 16:00:00 1996 Jeremy Allison <jra@cygnus.com> - - * net.cc (getdomainname): Changed win95 code to open - "System" key rather than "SYSTEM". I think the registry - is case-sensitive. - -Thu Aug 22 17:04:09 1996 Geoffrey Noer <noer@cygnus.com> - - move fork into the dll: - * libcfork.cc: deleted - * fork.cc (vfork): used to be in libcfork.cc - * (__fork): used to be in libcfork.cc - * (fork): used to be in libcfork.cc - * Makefile.in: don't build libcfork.cc any more - * libccrt0.cc: set data_start, etc. from dll structure - * winsup.h: add data_start, etc. to public vars in dll - * cygwin.din: list fork - -Thu Aug 22 01:36:53 1996 Geoffrey Noer <noer@cygnus.com> - - * registry.cc: fix new registry code - * syscalls.cc: make Windows95 check function extern "C" - -Wed Aug 21 16:15:47 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: list vfork - * dirsearch.cc: fix errno setting in readdir that caused - diff to not function on directories - * pipe.cc: reformatted - -Wed Aug 21 15:12:47 1996 Jeremy Allison <jra@cygnus.com> - - * net.cc (domainname): Changed getdomainname to get the - information from the registry. - * registry.h: Modified interface to reg_key. - * registry.cc: Added open(),close() calls, made - get/set string values return error indication, added trailing - underscore to hkey member so it can be seen to - be a class member. - * include/winadvapi.h: Added KEY_READ and KEY write - defines for registry access. - -Mon Aug 19 09:22:35 1996 Doug Evans <dje@canuck.cygnus.com> - - * path.cc (split_path): New function. - * path.h (split_path): Declare it. - * cygwin.din (cygwin32_split_path): Export it. - - * include/winkernel.h (FILE_SHARE_DELETE): Define. - - * syscalls.cc (__do_global_[cd]tors], __main): Move from here. - * dcrt0.cc: To here. - - * dcrt0.cc (recur): Restore (now that we know WHY it was needed). - (dll_crt0_1): Probe forked child's stack out. - - * fork.cc (FORK_WAIT_TIMEOUT): Bump up to two minutes. - - * fork.cc (dump_jmp_buf): New function. - (cygwin_fork_helper1): Call it. - * dcrt0.cc (dll_crt0:1): Call it. - * winsup.h (dump_jmp_buf): Declare it. - - * fork.cc (cygwin_fork_helper1): Reenable child suspend before - stack copy code. - -Sat Aug 17 04:06:36 1996 Geoffrey Noer <noer@cygnus.com> - - * dirsearch.cc: reformatted, removed a couple of gotos - -Thu Aug 15 17:56:08 1996 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: added __eprintf, a newlib function needed by assert. - * times.cc: swap gmtime and localtime (gmtime really was localtime - and vice versa). - -Tue Aug 13 03:46:22 1996 Geoffrey Noer <noer@cygnus.com> - - * signal.cc: renamed all signal variables "sig", - fixed signal range error checking in all relevant functions, - (sigaddset): new - (sigismember): new - (sigfillset): new - (sigemptyset): new - * cygwin.din: added corresponding entries for new signal functions. - * cygwin.h: added protos for them - * fhandler.cc, fhandler.h: major reformat of code - * net.cc (cygwin32_socket): call checkinit() at start to - initialize WinSock in case it isn't already. - * syscalls.cc (access): set errno appropriately when no - write access - * fcntl.cc: reformatting - -Sat Aug 10 16:30:14 1996 Geoffrey Noer <noer@cygnus.com> - - * signal.cc (_raise): rewrite to shorten code, corrected - return values. - * fcntl.cc, net.cc, signal.cc, stubs.c: reformatted, added - public domain notice at the tops if they were missing. - -Fri Aug 9 18:19:12 1996 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (_rename): return -1 if file to be renamed - doesn't exist. Reformatted whole file. - * fork.cc: increase timeout value to 60 sec from 30 sec - -Thu Aug 8 17:44:39 1996 Jim Wilson <wilson@cygnus.com> - - * config/i386/longjmp.c: Increment %eax if it is zero. - -Wed Aug 7 15:51:04 1996 Geoffrey Noer <noer@cygnus.com> - - * include/sys/mman.h: fixed defines for PROT_READ et al to - match what's more normally there in unix - * sysdef/i386/*: removed the extra underscores present in most - of these files that shouldn't have been there - * net.cc: cleaned up whitespace, formatting - -Tue Jul 16 12:43:16 1996 Doug Evans <dje@canuck.cygnus.com> - - * libccrt0.cc (__version): Deleted, unused. - - * uname.c (uname): Print CYGWIN_DLL_VERSION is version field. - -Mon Jul 15 16:48:29 1996 Doug Evans <dje@canuck.cygnus.com> - - * version.h (CYGWIN_DLL_VERSION_MINOR): Bump up to 1. - - Path handling clean up, pass 2 (use //<letter>, not /.<letter>.). - * path.cc (SLASH_DRIVE_PREFIX_LEN): Delete. - (slash_drive_to_win32_path): New function. - (mount_info::posix_path_p): Delete support for $CYGWIN, - always return 1. - (path_conv::path_conv): Call slash_drive_to_win32_path. - (mount_info::conv_to_win32_path): Renamed from - posix_path_to_win32_path. All callers updated. - (mount_info::conv_to_posix_path): Renamed from - win32_path_to_posix_path. All callers updated. - (normalize_posix_path): Keep two leading /'s (or \'s). - (normalize_win32_path): Likewise. - (conv_to_{win32,posix}_path): Renamed from - {posix,win32}_path_to_{win32,posix}_path_keep_rel. - (conv_to_full_{win32,posix}_path): Renamed from - {posix,win32}_path_to_full_{win32,posix}_path. - (posix_path_list_p): New function. - (cygwin32_{unix,dos}_path_to_{dos,unix}_path_keep_rel): Delete. - ({unix,dos}_path_to_{dos,unix}_path): Delete. - ({win32,posix}_to_{posix,win32}_path_list_buf_size): Renamed from - cygwin32_{win32,posix}_to_{posix,win32}_path_list_buf_size. - ({win32,posix}_to_{posix,win32}_path_list): Renamed from - cygwin32_{win32,posix}_to_{posix,win32}_path_list. - (slash_drive_prefix_p): Recognize //<letter>, not /.<letter>. - (build_slash_drive_prefix): Update. - * path.h: Update. - * cygwin.din ({dos,unix}_path_to_{unix,dos}_path): Delete. - (cygwin32_{dos,unix}_path_to_{unix,dos}_path_keep_rel): Delete. - (cygwin32_conv_to_{posix,win32}_path): Renamed from - (cygwin32_{win32,posix}_path_to_{posix,win32}_path_keep_rel. - (cygwin32_conv_to_full_{posix,win32}): New exports. - (cygwin32_posix_path_list_p): New export. - * dcrt0.cc (path_len): Delete. - (PATH_ENV_BUF_SIZE): Delete. - (conv_path_names): Delete all but PATH. - (dll_crt0_1): Rewrite environment variable conversion code. - * fork.cc (find_exec_1): Delete _SC_PATH_RULES support. Determine - path delimiter by calling posix_path_list_p. - * shared.cc (shared_info::initialize): Delete `path_rules'. - * sysconf.cc (sysconf): Delete _SC_PATH_RULES. - * winsup.h (shared_info): Delete `path_rules'. - - * fork.cc (cygwin_fork_helper1): Reset u->forkee after child has - started. - - * pinfo.cc (pinfo::init_from_fork): Delete. Empty function. - * fork.cc (cygwin_fork_helper1): Delete call to it. - - * utils/kill.cc (usage): New function. - (main): Allow multiple pids to be passed. Call usage. - -Mon Jul 15 13:07:23 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * Makefile.in (install): If cross compiling, install the - cygwin.dll file as $target_alias-cygwin.dll in the bin directory, - instead of plain cygin.dll. - Install the cygwin.dll file in the library directory as well. - - * configure.in: Test for cross compiling, and if cross compiling, - transform name of cygwin.dll file in the binary directory. - - * configure: Regenerate. - - * utils/Makefile.in (Makefile): Rebuild Makefile if configure.in - changes. - (install): Use the toplevel install.sh to install the utilities, - and transform the name if cross compiling. - - * utils/configure.in: Test for cross compiling, and if cross - compiling, tranform mount, umount, ps, etc. Do not call - AC_PROG_INSTALL anymore. - - * utils/configure: Regenerate. - -Fri Jul 12 16:25:09 1996 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: also make install in utils subdir so "mount" - et al gets installed. - -Thu Jul 11 17:53:31 1996 Geoffrey Noer <noer@cygnus.com> - - * include/sys/param.h: fixed value of HZ (now 1000 instead of 100). - caused bug that showed up as "time sleep 5" returning 50. - -Thu Jul 11 14:08:09 1996 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc: correct typo in comment - * exceptions.cc: remove definition of sig_func_ptr, replace - occurances with newlib-defined _sig_func_ptr. - -Wed Jul 10 19:12:18 1996 Doug Evans <dje@canuck.cygnus.com> - - * version.h (CYGWIN_DLL_VERSION_{MAJOR,MINOR}): Bump up to 17.0. - * winsup.h (class per_process): New members {public,internal}_reserved. - (SIZEOF_PER_PROCESS): Define. - * dcrt0.cc (dll_crt0_1): Add sanity check of per_process size. - Don't call checkout for forkee. - * libccrt0.cc (cygwin_crt0): Set magic_biscuit to sizeof per_process - again. - - * utils/ps.cc (main): Print uid. - - * hinfo.h: Deleted. Contents moved to winsup.h. - * Makefile.in (WINSUP_H): Update. - - * dcrt0.cc (u, environ): Moved here. - * shared.cc: From here. - - * pinfo.cc (pinfo_init): Renamed from pinfo_init_per_process. - All callers updated. - * hinfo.cc (hmap_init): Renamed from hmap_init_per_process. - All callers updated. - * winsup.h (cygwin_parent_p): Renamed from invoked_by_cygwin_p. - All uses updated. - - * fork.cc (prepare_child): Add debug message. - - * uinfo.cc (uinfo_init): Renamed from uinfo::init. - All callers updated. Call getlogin instead of GetUserName. - (getlogin): Call GetUserName. - * winsup.h (class uinfo): Delete. Members uid,gid moved ... - (class pinfo): To here. All uses updated. - (class shared_info): Delete member `u'. - * fork.cc (cygwin_fork_helper1): Set child's uid,gid. - - * pinfo.cc (pinfo::clearout): Reset strace_mask_ptr. - - * shared.cc (open_shared_file_map): Add debugging message. - -Fri Jul 5 15:36:48 1996 Doug Evans <dje@canuck.cygnus.com> - - * exceptions.cc (sig_func_ptr): New typedef. - (__stack_trace): Make i386 and ppc formats the same. - (sigfunc): Use sig_func_ptr. - (call_handler): Likewise. All callers updated. - (__cygwin_exception_handler): Handle exceptions before dll has - fully initialized. Only call dump_status once, like __stack_trace. - (really_exit): Call _exit, not exit. - - * hinfo.cc: Add copyright. - * uinfo.cc: Likewise. - - * passwd.c: Whitespace cleanup. - (search_for): Make static. - - * pinfo.cc (pinfo_list::init): Delete call to clearout vec[0]. - (pinfo::clearout): Reset more fields. - (pinfo_list::get_empty_pinfo): Delete printing of error messages - if table is full. - - * shared.cc (open_shared_file_map): Mark shared map as not inherited. - - * signal.cc (signal): Delete (void *) coersion of result. - (usleep): Convert microseconds to milliseconds. Delete second copy. - (_raise): Use _sig_func_ptr. - - * syscalls.h: Delete #include mntent.h, sys/types.h, string.h, - stdio.h, setjmp.h, stdlib.h, signal.h, sys/strace.h, unistd.h, - ctype.h, fcntl.h. - * winsup.h: #include sys/types.h, sys/strace.h, setjmp.h, signal.h, - string.h, windows.h. - * All necessary files updated. - - * winsup.h (class pinfo): Delete member localtime_buf. - * times.cc (corelocaltime): Use static local for localtime_buf. - - * winsup.h (class pinfo): Rename the_pid to pid. All uses updated. - Delete handle_valid_p, unused. Rename __sig_mask to sig_mask. - -Thu Jul 4 14:36:01 1996 Doug Evans <dje@canuck.cygnus.com> - - * shared.h: Deleted. All files updated. - * winsup.h: shared.h contents moved here. - * Makefile.in (WINSUP_H): Update. - - * heap.cc: Renamed from pproc.cc. - (heap_init): Renamed from per_process::init. - In forkee initialization, ensure memory being reserved is at same - address as parent's. Commit forkee memory in one chunk. - (_sbrk): Moved here, - * syscalls.cc (_sbrk): From here. - * Makefile.in (DLL_OFILES): Update. - * dcrt0.cc (dll_crt0_1): Call heap_init instead of u->init. - * winsup.h (class per_process): Delete member `init'. - - * dcrt0.cc (recur): Delete. - (dos_argv_to_unix_argv): Delete. - - * delqueue.cc: Delete #include of delqueue.h, winerror.h - * winsup.h: #include delqueue.h. - - * exceptions.cc (ctrl_c_handler): Only require 13 ^c's to quit task. - - * fork.cc (fork_mutex,forkee_stopped,forker_stopped): New static - globals, were in class_shared info. - (fork_init,fork_terminate): New functions. - (prepare_child,cygwin_fork_helper1): Update. - (cygwin_fork_helper1): If fork disabled, return EAGAIN. - Delete unnecessary resetting of forkee_stopped event. - * winsup.h (fork_init,fork_terminate): Declare them. - * dcrt0.cc (dll_crt0_1): Call fork_init. - (_exit): Call fork_terminate. - * shared.c (shared_info::initialize): Delete init of fork stuff. - - * shared.c (h): New static global, was in class shared_info. - (shared_info::terminate): Delete, move contents into shared_terminate. - - * strace.cc (flush_p): New static global. - (strace_init): Don't clobber u->strace_mask if _STRACE_INHERIT set. - (__sys_printf): Only flush buffers if _STRACE_FLUSH. - * include/sys/strace.h (_STRACE_FLUSH,_STRACE_INHERIT): Define. - Reorganize bitmasks. - - * utils/ps.cc (main): Make output prettier. - -Wed Jul 3 12:30:24 1996 Doug Evans <dje@canuck.cygnus.com> - - * utils/Makefile.in (mount,umount,ps,kill): Rewrite rules. - (PROGS): Add cygwin. - (cygwin): New target. - (install): Install all of $(PROGS). - * utils/cygwin.cc: New file. - - * pinfo.cc (pinfo_init_per_process): PID environment variable handling - moved here. Delete setting of u->parent. Set strace_mask_ptr. - Set invoked_by_cygwin_p appropriately. - (vfork_init): Delete, unused. - (pinfo::init_self): Delete setting of root_p. - (pinfo::terminate): root_p renamed to invoked_by_cygwin_p. - * winsup.h (class per_process): Delete initial_pid, no longer used. - (class pinfo): Add strace_mask_ptr. - * fork.cc (cygwin_fork_helper1): Update. - - * winsup.h (class per_process): Delete trace_file, trace_mutex. - Rename estrace to strace_mask. - (system_printf): Declare. - * strace.cc (strace_init): Renamed from per_process::strace_init. - Don't open trace file unless strace environment variable set. - Open trace file with FILE_SHARE_READ so others can read trace file - while tracing in progress. Print error if $strace too big. - (strace_file, strace_mutex): New static globals. - (__sys_printf): Don't do anything if strace file not opened. - (system_printf): New function. - * pproc.cc (per_process::init): Delete call to strace_init. - * dcrt0 (dll_crt0_1): Call strace_init as soon as possible. - - * dcrt0 (dll_crt0_1): Delete local can_glob, use - u->self->invoked_by_cygwin_p instead. - Move PID environment variable handling into pinfo_init_per_process. - Delete setting of u->self->in_bash. - Delete watching for bash. - * winsup.h (class pinfo): Delete in_bash. - - * exceptions.cc (*): Call system_printf, not __sys_printf. - - * shared.h (class shared_info): Delete pp, unused. - - * syscalls.cc (isatty): Replace ttyname with is_tty. - - * winsup.h (registry_init_once_only): Delete, unused. - (stdout_handle,file_handle_from_fd): Likewise. - (CHILD_P,child_p,ALL_FS,loadup_dll,cygwin_s): Likewise. - (unmixedcaseify): Prototype moved to path.h. - * path.h (unmixedcaseify): Declare. - - * fork.cc (FORK_WAIT_TIMEOUT, WAIT_ERROR_RC): Define. - (find_exec_1): Don't search PATH if directory present (not only if - absolute path). Search "." before searching PATH. - (copy): Return boolean indicating success. All callers updated. - (prepare_child): Simplify. Check return code of WaitForSingleObject. - Don't wait an infinite amount of time. - (cygwin_fork_helper1): Simplify. - Check return code of WaitForSingleObject. - Don't wait an infinite amount of time. - Check return code of copy. - Disable code to Suspend/Resume child thread a second time. - - * winsup.h (class per_process): Make initial_sp a char *. - * libccrt0.cc (cygwin_crt0): Update. - - * path.cc (path_conv): If name too long, set path to bogus value. - - * include/winkernel.h (WriteProcessMemory): Fix prototype. - - * include/sys/strace.h: Add extern "C" ifdef __cplusplus. - (_STRACE): Delete. - * dirsearch.cc (rewinddir): Use syscall_printf. - -Tue Jul 2 14:44:18 1996 Doug Evans <dje@canuck.cygnus.com> - - * wait.cc (WAIT_ERROR_RC): Use it instead of ALL_FS. - (wait_found): New argument `options'. If GetExitCodeProcess fails, - ensure `result' contains something reasonable. - (wait_for_single): Check whether `c' is NULL before dereferencing it. - (wait_for_any): Add some comments. Delete unnecessary gotos. - (waitpid): Print message if called with intpid == 0. - -Sat Jun 29 10:49:28 1996 Doug Evans <dje@canuck.cygnus.com> - - * dirsearch.cc (readdir): Clean up syscall tracing. - Mixed case handling temporarily disabled. - -Wed Jun 26 11:54:27 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) - - * Makefile.in (bindir, libdir, datadir, infodir, includedir): - Use autoconf-set values. - (docdir): Removed. - (install-info): Add. - * configure.in (AC_PREREQ): autoconf 2.5 or higher. - * configure: Rebuilt. - * glob/configure.in (AC_PREREQ): autoconf 2.5 or higher. - * glob/configure: Rebuilt. - * utils/Makefile.in (bindir, exec_prefix): Use autoconf-set values. - * utils/configure.in (AC_PREREQ): autoconf 2.5 or higher. - * utils/configure: Rebuilt. - -Tue Jun 25 17:48:56 1996 Doug Evans <dje@canuck.cygnus.com> - - * include/sys/param.h (PATH_MAX,MAXPATHLEN): Change from 1024 to 259. - (BIG_ENDIAN,LITTLE_ENDIAN,BYTE_ORDER): Define. - -Mon Jun 24 16:35:48 1996 Mark Eichin <eichin@cygnus.com> - - * fhandler.cc (read): Replace the old broken igncr code (which has - been disabled for a while anyway) with code that checks for - ENABLE_LINE_INPUT and replace only \r\n with \n. - -Mon Jun 24 00:12:22 1996 Doug Evans <dje@canuck.cygnus.com> - - * dcrt0.cc (dll_crt0_1): Convert argv[0] to posix style if necessary. - -Sun Jun 23 17:21:41 1996 Doug Evans <dje@canuck.cygnus.com> - - * version.h (CYGWIN_DLL_VERSION_MINOR): Bump up to 2. - - * fork.cc (perhaps_suffix): Simplify. - (find_exec_1): Likewise. Always try appending .exe first. - (cygwin_fork_helper1): Clean up (lots more needed still). - Test for split heap before calling CreateProcess. - No longer call find_exec, now done at start up. - * dcrt0.cc (dll_crt0_1): Call find_exec to expand argv[0]. - - * path.cc (conv_path_list_buf_size): New function. - (cygwin32_{win32,posix}_to_{posix,win32}_path_list_buf_size): Ditto. - (conv_path_list): Ditto. - (cygwin32_{win32,posix}_to_{posix,win32}_path_list): Ditto. - * cygwin.din: Export them. - - * misc.c (small_printf): Delete. - (vhangup): Set errno. - - * syscalls.cc (isatty): Print syscall trace message even if error. - - * console.cc (*): Check return codes of win32 api calls. - - * syscalls.cc (chmod): Set errno of SetFileAttributes fails. - Fix call to syscall_printf. - -Thu Jun 20 00:43:52 1996 Doug Evans <dje@canuck.cygnus.com> - - * dcrt0.cc (dll_crt0_1): Save full program name. - * fork.cc (cygwin_fork_helper1): Always call find_exec. - - * path.cc (normalize_{posix,win32}_path): Fix edge case handling. - (path_conv::path_conv): Ensure path is \-ified if win32 path rules. - - * spawn.cc (spawn_guts): Set errno if CreateProcess fails. - -Wed Jun 19 00:18:03 1996 Doug Evans <dje@canuck.cygnus.com> - - * path.h (PATH_RULES macros): Delete. Use ones in unistd.h. - (enum path_rules_enum): Deleted. All uses updated. - (path_conv): Rename member get_native to get_win32. All uses updated. - (*win32_path*): Renamed from *native_path*. - * path.cc (*win32_path*): Renamed from *native_path*. - (mount_info::posix_path_p): Prepend '_' to PATH_RULES. - Fix returning of cached value. - (slash_drive_prefix_p, build_slash_drive_prefix): New functions. - (mount_info::posix_path_to_win32_path): /.<letter>. is a drive spec. - (path_conv::path_conv): Likewise. - (mount_info::win32_path_to_posix_path): Convert unknown drives to - /.<letter>. Normalize win32_path. - (normalize_win32_path): New functions. - (getcwd_inner): New arg `posix_p'. All callers updated. - * shared.cc (shared_info::initialize): Prepend '_' to PATH_RULES. - _PATH_RULES_NATIVE -> _PATH_RULES_WIN32. - * spawn.cc (*win32_path*): Renamed from *native_path*. - * dcrt0.cc: Likewise. - * cygwin.din: Likewise. - - * Makefile.in (WINSUP_H): Add shared.h - - * smallprint.c (rn): Make static. - - * sysconf.cc: Renamed from sysconf.c. - (sysconf): Support _SC_PATH_RULES. - - * screen.c: Deleted. - * Makefile.in (DLL_OFILES): Delete screen.o. - - * fork.cc (cygwin_fork_helper): Don't pass 0 from longjmp to setjmp. - - * path.h (class mount_info): Update posix_path_to_native_path member. - * path.cc (path_prefix_p): Rewrite. - New arg `len'. All callers updated. - (mount_info::binary_native_path_p): Call path_prefix_p. - (path_conv::path_conv): Pass full_path to binary_native_path_p. - (mount_info::posix_path_to_native_path): Delete arg keep_rel_p. - New arg full_native_path. All callers updated. Don't call - getcwd_inner if unnecessary. Rewrite relative path handling. - (mount_info::native_path_to_posix_path): Call path_prefix_p. - Call slashify on `pathbuf', not original argument. - - * syscalls.cc (chdir): Fix lifetime of converted path. - -Tue Jun 18 11:48:51 1996 Doug Evans <dje@canuck.cygnus.com> - - * configure.in (EXE_LDFLAGS): Explicitly link with newlib if necessary. - * configure: Regenerated. - * Makefile.in (EXE_LDFLAGS): Define. - (FLAGS_TO_PASS): Add EXE_LDFLAGS. - (config.status): New target. - (utils-all): Depend on $(LIBNAME). - * utils/Makefile.in (EXE_LDFLAGS): Define. - (mount,umount,ps,kill): Link with $(EXE_LDFLAGS). - - * version.h (CYGWIN_DLL_VERSION_MINOR): Bump up to 1. - -Mon Jun 17 18:29:54 1996 Doug Evans <dje@canuck.cygnus.com> - - Improve pathname handling, first pass. - * path.h (symlink): Renamed from link_cookie. - (class path_conv): New member error. - (path_conv::get_native): Renamed from get_dos, all uses updated. - (path_conv::get_binary): Delete. - (mount_info::{mangle,reverse_mangle}): Delete. - (mount_item::posix_path_to_native_path): Renamed from mangle. - (mount_info::native_path_to_posix_path): Renamed from reverse_mangle. - (path_rules_enum): Define. - * path.cc: Temporarily disable mixed-case and symlink handling. - (mount_info::posix_path_p): New function. - (mount_info::binary_native_path_p): Renamed from binary_dos_path_p. - (path_conv::path_conv): Handle native path rules. - (mount_item::{mangle,reverse_mangle}): Delete. - (mount_info::posix_path_to_native_path): Renamed from mangle. - (mount_info::native_path_to_posix_path): Renamed from reverse_mangle. - (mount_info::from_registry): Set nmounts. Use MAX_PATH. - (mount_info::{add,del}_item): Rewrite. - (slashify): Renamed from flip_slash. - (getcwd_inner): Make static. Don't convert to posix path if using - native path rules. - (file_exists): Delete. - (addmntent,hasmntopt): Delete. - (mount): Only update registry if mount succeeded. - (umount): Only update registry if umount succeeded. - (normalize_posix_path): Renamed from normalize_path. Pass in cwd. - (cygwin32_{posix,native}_path_to_{native,posix}_path_keep_rel): Renamed - from ...{unix/dos}.... - * dcrt0.cc (dos_argv_to_unix_argv): #ifdef out. - (dll_crt0_1): Don't call it. - * fhandler.cc (fhandler_base::open): Temporarily disable symlinks. - * shared.cc (open_shared_file_map): New function. - (shared_init): Call it. - (shared_info::initialize): Fetch `path_rules' from registry. - * shared.h (inited): Make private. - (path_rules): New member. - * spawn.cc: #include "shared.h". - (spawn_guts, env var translation): Don't translate path names if - using native path rules. - * syscalls.cc (symlink): Delete (moved to path.cc). - * cygwin.din (dump__5pinfo): Delete. - (cygwin32_{posix,native}_path_to_{native,posix}_path_keep_rel): Renamed - from ...{unix/dos}.... - - * smallout.cc: Delete. - * sdata.cc: Delete. - * shared.cc (u,s,environ): Define here. - * Makefile.in (glob/libglob.a): Depend on glob/glob.c, glob/fnmatch.c. - (utils-all): New target. - (DLL_OFILES): Delete smallout.o, sdata.o. - (Makefile): Depend on cygwin.din. - (WINSUP_H): Depend on syscalls.h. - - * configure.in (AC_CONFIG_SUBDIRS): Add bin. - (AC_PROG_INSTALL): Call. - * configure: Regenerated. - * utils/{Makefile.in,configure.in,configure}: New files. - * utils/{kill.cc,mount.cc,ps.cc,umount.cc,termcap}: New files. - * Makefile.in (UTILS_ALL): Define. - (all): Depend on $(UTILS_ALL). - (utils-all): New target. - - * dcrt0.cc (recur): Make no-op to see what happens. - (globify): Don't call glob if unnecessary. - Check return code from glob. - (api_fatal): New function. - * fhandler.cc (fhandler_base::read): Dump first few chars read. - (fhandler_base::get_execable): New function. - (fhandler_base::fstat): Use it. - (fhandler_base::fhandler_base): Init execable_p. - (fhandler_disk_file::fhandler_disk_file): Delete execable_p. - (fhandler::{get,set}_execable_bit): Delete. - (fhandler_disk_file::{get,set}_execable_bit): Delete. - * fhandler.h (class fhandler): Delete {get,set}_execable_bit. - (class fhandler_base): New member execable_p. - New member fn get_execable. - * fork.cc: Simplify/cleanup. - (cygwin_fork_helper1): Use MAX_PATH, not MAXPATHLEN. - * pinfo.cc (pinfo::dump): Delete. - * pproc.cc (per_process::set_envname): Delete. - * strace.cc (smallout::do_pline): Delete. - * syscalls.h (readlink): Third arg is an int. - * winsup.h (class pinfo, member progname): Use MAX_PATH. - (class pinfo, member dump): Delete. - (class smallout): Delete. - (smallout): Delete. - (class per_process, member set_envname): Delete. - (file_exists): Delete. - (api_fatal): Declare. - * Makefile.in (LIB{C,CXX}FLAGS_FOR_TARGET): Delete, use {C,CXX}FLAGS. - (FLAGS_TO_PASS): Define. - (glob/libglob.a): Delete duplicate entry. - - * syscalls.cc (_sbrk): Update u->size when heap is grown. - - * hinfo.cc (hmap_init_per_process): Ensure stdout's handle != stderr's. - -Fri Jun 14 06:32:13 1996 Doug Evans <dje@canuck.cygnus.com> - - * register.h, registry.cc: Whitespace cleanup. - -Thu Jun 13 20:57:28 1996 Doug Evans <dje@canuck.cygnus.com> - - * Makefile.in (install): Install cygwin.dll in $(bindir). - -Tue Jun 11 13:46:17 1996 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc: lseek is now only binary mode, interpret control - z characters as EOF when reading from a file. Reformatted some - of the code (cleaned up line spacing, etc.) - -Tue Jun 11 09:50:09 1996 Jason Molenda (crash@kyriath.cygnus.com) - - * path.cc (nofinalslash): move it so it is next to its friends - flip_slash and backslashify. - -Mon Jun 10 18:57:03 1996 Jason Molenda (crash@kyriath.cygnus.com) - - * path.cc (*): Pretty printing. - (unix_path_to_dos_path_with_rel): use "dosnamein" and "unixnameout" - instead of "path" & "real_path". - (dos_path_to_unix_path_keep_rel): delete obsolete code. - (mount_item::mangle): use "unixnamein" and "dosnameout" instead of - "unixname" and "dosname". - (mount_info::mangle): use "unixnamein" and "dosnameout". Remove - obsolete code. - * path.h (mount_item): Update prototypes, add comment. - (mount_info): Update prototypes. - -Mon Jun 10 17:05:23 1996 Jason Molenda (crash@kyriath.cygnus.com) - - * path.cc (mount_item::reverse_mangle): Pretty printing, - add a bit to the comment. - (getcwd_inner): use MAX_PATH not MAXPATHLEN. - (normalize_path): use MAX_PATH not MAXPATHLEN. - (link_cookie::follow): use MAX_PATH not MAXPATHLEN. - -Mon Jun 10 15:36:32 1996 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: changed $(DOC) so it doesn't include html - files; made a new info-html target that does the html - versions of the docs. Since most customers don't have texi2html - installed, the make shouldn't fail because of this. - * configure: regenerated with autoconf 2.8 - -Sun Jun 9 17:10:37 1996 Doug Evans <dje@canuck.cygnus.com> - - * version.c: Deleted. - * version.h: New file. - * winsup.h (VERSION): Deleted. - (class per_process): Add version_major, version_minor. Delete version. - * registry.cc: #include "version.h". - (reg_session::reg_session): Update. - * libccrt0.cc: #include "version.h" - (cygwin_crt0): Delete setting of version, set magic_biscuit to 0. - Set version_major, version_minor. - * dcrt0.cc: #include "version.h". - (cygwin_dll_version_{major,minor}): New static locals. - (dll_crt0_1): Rewrite app/dll compatibility test. - * Makefile.in (LIBCOS): Delete version.o. - (DLL_OFILES): Delete version.o. - (dcrt0.o,libccrt0.o,registry.o): Depend on version.h. - - * exceptions.h: New file. - * exceptions.cc: Massive cleanups (still lots more to go). - #include "exceptions.h". - (init_exceptions): Renamed from __init_exceptions. New argument of - pointer to exception handler list entry. - (init_exception_handler): Renamed from init_thread_exceptions. - Rewrite based on info from Onno Hovers <onno@stack.urc.tue.nl>. - (ppc descriptor_to_{function,gotattr}): Make static. - (i386 __stack_trace): Fix test for top of stack. - * dcrt0.cc: #include "exceptions.h". - (dll_crt0_1): Exception handler list entry must live on stack. - * winsup.h (class pinfo): Delete member myp. - * syscalls.h (struct exception_list): Delete. - (__really_exit, __init_exceptions): Delete. - * Makefile.in (dcrt0.o,exceptions.o): Depend on exceptions.h. - -Fri Jun 7 17:49:28 1996 Jason Molenda (crash@phydeaux.cygnus.com) - - * dcrt0.cc (conv_path_names): Add GCC_EXEC_PREFIX. - -Fri Jun 7 14:38:05 1996 Doug Evans <dje@canuck.cygnus.com> - - * Makefile.in (CC_FOR_TARGET,LD,DLLTOOL): Define. - (AR,RANLIB): Set via configure. - * configure.in (AR,LD,DLLTOOL): Set. - (AC_PROG_RANLIB): Call. - * configure: Regenerated. - -Thu Jun 6 12:11:23 1996 Kim Knuttila <krk@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Removed reference to reent_data._next. - -Tue Jun 4 15:52:29 1996 Geoffrey Noer <noer@cygnus.com> - - * include/winkernel.h: fixed typo - -Tue May 28 13:08:25 1996 Doug Evans <dje@canuck.cygnus.com> - - * syscalls.cc (_sbrk): Fix test of return value from VirtualAlloc. - Delete lincr, make incr signed, and use only it. Misc. minor cleanup. - -Thu May 23 17:31:57 1996 Geoffrey Noer <noer@cygnus.com> - - sac diffs applied: - * path.h: change MAXMOUNTS to 30 instead of 20 - * sysdef/i386/rpcndr.def: add "none" to end of file - * fhandler.cc: fix memset call to say sizeof (*buf) instead - of sizeof (buf). - * include/winuser.h: define MDIS_ALLCHILDSTYLES - * Makefile.in: entry to build glob/libglob.a: - -Thu May 23 10:38:43 1996 Doug Evans <dje@canuck.cygnus.com> - - * fhandler.h (class fhandler_base): Make `name' private and shrink - to 32 bytes. - (set_name): Declare. - * fhandler.cc (fhandler::set_name): New function. - (fhander_base::open): Call it. - (fhander_base::init): Call it. - (fhandler_tty::ttyname): Call get_name instead of accessing `name' - directly. - - * dcrt0.cc (dll_crt0_1): Call ExitProcess instead of exit if - DLL and APP are out of sync. - -Thu May 16 03:07:18 1996 Mark Eichin <eichin@cygnus.com> - - * fhandler.cc (FakeReadFile): new function. Interface like - ReadFile, only called from fhandler_console_in::read, calls - ReadFile unless we're really reading from STD_INPUT_HANDLE and - with ENABLE_LINE_INPUT turned off, in which case we use - ReadConsoleInput instead. When using ReadConsoleInput, always read - all available events, but only block if we don't get at least one - actual character. This would be the place to implement FIONBIO on - the console tty, which doesn't actually exist yet. - (dbg_input_event): copied from select.cc, debugging code to show - detail of what events we're actually getting. - (ioctl): off-by-one on window size. - -Wed May 15 18:11:16 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * fhandler.h (class fhandler_base): Use MAXPATHLEN not 100 for size - of array name. - -Wed May 15 11:14:46 1996 Doug Evans <dje@canuck.cygnus.com> - - * fork.cc (cygwin_fork_helper1): More debugging printf's. - - * dcrt0.cc (num_ms_env_vars): Renamed from ms_env_arity. - (build_argv): Renamed from fill. - (compute_argc): Renamed from prepare. - * libccrt0.cc (cygwin_statu): Make static. - * pproc.cc (per_process::init): Move strace initialization from here, - * strace.cc (per_process::strace_init): To here. - Pass FILE_SHARE_WRITE to CreateFileA. Print error message if open - of log file fails. Create mutex for trace messages. - (__sys_printf): Always write to end of disk files. Use mutex. - (d): Delete. - * winsup.h (class per_process): Add strace_init. Reorganize. - `run_ctors' renamed to `run_ctors_p'. New member `trace_mutex'. - (d): Delete. - (PATH_MAX): Delete. - - * Makefile.in: Add header file dependencies. - - * dcrt0.cc (_exit): Add debugging printf. - * shared.h (class shared_info): Rename member mutex_a to fork_mutex. - * fork.cc (cygwin_fork_helper1): Update. - Return with error if process slot unavailable. - Set errno and release fork_mutex if failed because of split heap. - * shared.cc (shared_info::terminate): Update. - (shared_info::initialize): Update. - -Tue May 14 14:59:32 1996 Doug Evans <dje@canuck.cygnus.com> - - * fork.cc (cygwin_fork_helper1): Avoid SIGSEGV if allocate_pid fails. - - * pproc.cc (per_process::init): Fix test. - - * winsup.h (): Rename member `parent' to `ppid'. - * fork.cc (prepare_child): Update. - (cygwin_fork_helper1): Likewise. - * hinfo.cc (hmap_init_per_process): Likewise. - (hinfo_vec::dup_for_fork): Fix message. - (hinfo_vec::dup2): Fix args to debug_printf. Delete extra printf's. - * pinfo.cc (pinfo_init_per_process): Update. - (pinfo::dump): Likewise. - (pinfo::init_self): Likewise. - * pproc.cc (per_process::init): Open strace file in append mode. - * smallprintf.c (__small_vsprintf): Support %p. - * syscalls.cc (getppid): Update. - * wait.cc (wait_for_any): Likewise. - -Mon May 13 13:45:36 1996 Mark Eichin <eichin@cygnus.com> - - * fhandler.cc (ioctl): fix TIOCGWINSZ handling: (1) check the - error return (2) if we're trying on STD_INPUT_HANDLE, substitute - STD_OUTPUT_HANDLE since GetConsoleScreenBufferInfo only works on - console output (3) check srWindow for the *screen* size, instead - of checking dwSize for the scroll buffer size. - - * include/sys/errno.h (ECONNABORTED): add another errno value. - * net.cc (errmap): add ECONNABORTED case. - - * fhandler.cc (fstat): clear the *entire* stat buf, not just the - first four bytes. - -Fri May 10 17:59:09 1996 Mark Eichin <eichin@cygnus.com> - - * select.cc: change most debugging statements to select_printf. - (dbg_input_event): new function, prints an INPUT_RECORD via select - printf. - (polled): Don't sleep around WaitForMultipleObjects; let it have a - 10ms timeout until we have time to test it with 0. If - WaitForMultipleObjects says that STD_INPUT_HANDLE has data, use - PeekConsoleInput to scan the available events. If the first one is - not a *bKeyDown* with a non-zero *AsciiChar* then use - ReadConsoleInput to rip it off the queue, and pretend it wasn't - there, so that later calls to read (and thus ReadFile) don't block - because they can't find any *real* input. (This could be optimized - later to check the whole queue, and if there are *no* real input - events, nuke them all.) - - * include/sys/strace.h (_STRACE_SELECT, select_printf): new printf - category, because select needs a *lot* of work. STRACE=256 to use it. - - * fhandler.cc (fhandler_console_in::init): IGNCR can't work - without major changes to deal with the interaction with select - (which shouldn't wake up if IGNCR causes the whole input to be - deleted...) so don't make it the default. - (fhandler_console_out::tcgetattr, fhandler_tty::tcgetattr): don't - set IGNCR based on get_r_binary either. - -Wed May 8 20:20:05 1996 Mark Eichin <eichin@cygnus.com> - - * times.cc (__to_clock_t): must cast dwLowDateTime to *unsigned* - before adding it -- otherwise we may subtract it! - (to_time_t): same. - -Wed May 8 18:21:28 1996 Mark Eichin <eichin@cygnus.com> - - * times.cc (corelocaltime): new function. Basic localtime from - newlib, with no conversions. - (gmtime): just calls corelocaltime. - (localtime): uses GetTimeZoneInformation, biases to standard time - first, then uses DaylightDate and StandardDate to figure out if - we're in DST -- and calls corelocaltime a second time with the - rebiased seconds, if we are. - (times): add debug_printf statements which work around apparent - compiler bug and 7+ minute error. - - * select.cc: revert to <sac>'s changes of 4/20 which were - accidentally backed out on 4/24. - -Tue May 7 05:29:42 1996 Mark Eichin <eichin@cygnus.com> - - * times.cc (__to_clock_t): subtract out FACTOR, the difference - between 1601 and 1970, just like to_time_t() does. - -Tue May 7 01:55:06 1996 Mark Eichin <eichin@cygnus.com> - - * times.cc (gmtime): new function. Use GetTimeZoneInformation to - compensate ahead before calling localtime (since the newlib - version doesn't know what timezone we're in.) - (localtime): use SECSPERMIN, not 60, to show that we know what - we're talking about. - - * net.cc (errmap): add WSAEADDRINUSE, WSAECONNREFUSED mappings. - -Sun May 5 00:45:59 1996 Mark Eichin <eichin@cygnus.com> - - * include/sys/socket.h: add recvfrom macro and cygwin32_recvfrom - declaration. Remove htons/htonl misdeclarations as they collide - with the macros in asm/byteorder.h. - - * include/asm/byteorder.h: enable the ntohl/ntohs declarations so - we at least get the macro versions when we optimize, even if the - library hooks aren't there. - -Wed Apr 24 23:42:49 1996 Steve Chamberlain <sac@dilithium.transmeta.com> - - * winsup.h (pinfo, pinfo_list): Remove dummy item. - * fork.cc (*): Revert changes of Apr 2. - -Sun Apr 21 17:00:14 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * wait.cc (wait_for_any): Fix the wait heuristic. - -Sat Apr 20 13:22:03 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * Makefile.in (.cc.o): Pass -fno-rtti. - * dcrt0.cc (globify): A single match is ok. - * exceptions.cc (i386 call_handler): optimize. - * fhandler.cc (fhandler_console_in::read): Handle ICRNL right. - (*:get_name *:always_ready): New. - * select.cc: Understand that console output doesn't signal when it's - ready. - -Fri Apr 12 14:49:34 1996 Doug Evans <dje@canuck.cygnus.com> - - * Makefile.in (glob/libglob.a): Pass -I so glob.c finds right dirent.h. - -Wed Apr 10 16:13:30 1996 steve chamberlain <sac@slash.cygnus.com> - - * Makefile.in (glob/libglob.a): Call glob makefile correctly. - * winsup.h (pinfo, pinfo_list): Reorder elements to avoid - alignment bug in PPC gcc. - -Tue Apr 9 17:23:57 1996 steve chamberlain <sac@slash.cygnus.com> - - * dcrt0.cc (globify): Expand command line wildcards if - run from dos prompt. - - * exceptions.cc (386 call_handler): More fumblings. - * fhandler.cc (fhandler_base::stat): Initialize ino. - (fhandler_console::open): Fix test for RDONLY. - (fhandler_tty::stat): Set ino. - (fhandler_console_out::vt100 stuff): More. - * fork.cc: Lint. - * pinfo.cc (pinfo::init_self): Don't bother to DuplicateHandles - to get process info. - * signal.cc (usleep): Get correct order of magnitude. - * spawn.cc (spawn_guts): Turn of exception handling in - parent of thing which execs. - * syscalls.cc (stat): Look for <file> and <file.exe>. - * wait.cc (wait_for_any): Keep waiting if WaitForMultipleObject - returns invalid result. - -Tue Apr 2 12:45:35 1996 steve chamberlain <sac@slash.cygnus.com> - - * dcrt0.cc (conv_path_names): Add HOME. - (dll_crt0_1): Use u->self->head_sp. - * exceptions.cc (i386 call_handler): Rewritten, now almost works - on win95. - * fhandler.cc (fhandler_base::open): Calculate namehash. - (fhandler_base::fstat): ^ name hash with file index low. - * fork.cc (*): forkee/forkerr events moved from sinfo - into pinfo. - -Fri Mar 29 16:35:02 1996 steve chamberlain <sac@slash.cygnus.com> - - * libcmain.cc: New. - * winsup.h: restore and myp moved from per_process to pinfo class. - * dcrt0.cc (dll_crt0_1): Cope with move. - * exceptions.cc (init_thread_exceptions): Ditto. - * signal.cc (sigprocmask): Ditto. - * fork.cc (cygwin_fork_helper1): Don't fork if split_heap_p. - * pinfo.cc (pinfo::clearout): Zero split_heap_p. - * syscalls.cc (_sbrk): Cope with not being able to - allocate contiguous chunks. - - -Tue Mar 26 09:14:32 1996 steve chamberlain <sac@slash.cygnus.com> - - * exceptions.cc (__cygwin_exception_handler): re-export. - -Fri Mar 22 16:49:29 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * cygwin.din (__stack_trace): Export. - (__cygwin_exception_handler): Ditto. - - * exceptions.cc (i386 exception handling): Move under appropriate - x86 #ifdefs. Use the macro HAVE_INIT_THREAD_EXCEPTIONS to be - whatever a machine needs to do to initialize exceptions in this - thread. Nop for the PowerPC right now. - (__stack_trace): Make it a "C" function so there is no name - mangling, and export it. - (call_handler): Split by architecture before the function, rather - than inside it. First stab at PowerPC exception handling. - (__cygwin_exception_handler): Rename from ehandler3, and export - it. Add more status -> signal mappings. - (ctrl_c_handler, CTRL_LOGOFF_EVENT): Map to SIGHUP, not SIGQUIT. - (__stack_trace): Split into separate machine dependent functions, - rather than #ifdef'ing inside of a common function. Make the - PowerPC messages clearer. - -Mon Mar 18 13:27:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * include/winkernel.h (CreateThread): Correctly declare function - pointer argument. - - * misc.c (wprintf): Convert to use vprintf and fix warnings. - (tgetent): Declare to return int to fix warnings. - (vhangup): Declare to return int to fix warnings. Return -1 also. - - * include/winbase.h (UnhandledExceptionFilter): Declare. - -Tue Mar 12 12:56:28 1996 Doug Evans <dje@charmed.cygnus.com> - - * include/winkernel.h (FlushFileBuffers): Declare. - -Tue Mar 12 11:16:32 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * exceptions.cc (dump_status): Make columns line up for PowerPC. - (call_handler): Right now, call exit(255) for the PowerPC. - - * strace.cc (__sys_printf): Call FlushFileBuffers after writing - out the file to make sure it really gets flushed. - - * include/winkernel.h (PowerPC CONTEXT): Add fields returned if - CONTEXT_DEBUG_REGISTERS is set. - -Sun Mar 10 15:31:17 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * strerror.cc, syslog.cc, net.cc: New files. - * cygwin.din: Add new net functions. - * dcrt0.cc (dll_crt0_1): Fix call to build argv[0]. - * fhandler.cc (fhandler_base::open): Tidy. - * fhandler.h: Add net classes. - * hinfo.cc (hinfo_vec::build_fhandler): Add tape stuff. - * path.cc (*::mangle, *::reverse_mangle): Fix. - (mount_info::init): No trailing / now. - * select.cc (*): Rewrite. - * spawn.cc (spawn_guts): Fix leak. - * syscalls.cc (_sbrk): Keep working until memory really fills up. - -Tue Feb 20 16:53:24 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * dcrt0.cc (dll_crt0_1): Get version from the header. - * fhandler.cc (CHUNK_SIZE): New. - (fhandler_base::read, fhandler_base::write): CRLF conversion - rewritten. - path.cc (path_conv::path_conv): Initialize mixed, binary and silent. - * smallprint.c (__small_vsprintf): Add 'c' option. - * wait.cc (wait_found): Close child handles. - -Mon Feb 19 09:11:57 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * Makefile.in (real-headers): Eliminate real-headers dependency on - mspatches/*.patch, since you can't be guaranteed that it exists. - -Fri Feb 16 14:24:47 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * exceptions.cc (dump_status): On the PowerPC, dump all of the - integer registers. - - * uname.c (uname): Don't assume that the only two NT systems are - i386 and PowerPC. - * exceptions.cc (call_handler): Ditto. - (dump_status): Ditto. - -Thu Feb 15 18:20:33 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * cygwin.din (__empty): Add. - * dcrt0.cc (dos_argv_to_unix_argv): New. - (check, onetimecheck): New. - * exceptions.cc (ehandler3): Always show backtrace - if exception failed. - * fhandler.cc (*::open): Removed dos_path argument. - (fhandler_base::fstat): Use nFileIndexLow as the inode - value. - * hinfo.cc (init_std_file_from_handle): Don't default - to binary. - * paths.cc (*): Use new registry classes. - * registry.cc (*): Rewritten. - * syscalls.cc (open): Call fhandler->open without - the dos filename arg. - -Sat Feb 10 08:18:45 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure.in (ALLOCA for powerpc): Add __allocate_stack. - -Wed Feb 7 16:41:18 1996 Steve Chamberlain <sac@slash.cygnus.com> - - Release-B13 - - * malloc.cc (export_*): New. Changed the way that malloc - stubs are used. - * cygwin.din: Export the export_* stuff as malloc, realloc and free. - * path.cc (link_cookie::create): Keep cookie filenames in unix - format. - (reverse_mangle): Clean up. - (readlink): Ditto. - (qfunc): Sort by name too. - * spawn.cc (spawn_guts): Handle zero length arg. - Only set errno when it's not 0. - * Makefile.in: Build new doc. - * fhandler.cc (fhandler_base::fstat): Round up block used. - * path.cc (escape_char): Now it's ^. - * syscalls.cc (errmap): ERROR_INVALID_NAME yields ENOENT. - (chown): Returns 0. - (sbrk): Clean up. - (_unlink): Only try and DeleteFile once. - -Mon Feb 5 19:15:44 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * dcrt0.cc (dll_crt0_1): Build env string into static buffer. - * dirsearch.c (opendir): Stat on unix pathname. - * paths.cc (*): Support for mixed case filenames. - -Sun Feb 4 15:55:58 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * *.cc: Lint. - (conv_path_names): New. - (dll_crt0_1): Use conv_path_names list. - * fctnl.cc (F_DUPFD): Look from the fd forward. - * fhandler.cc (fhandler_base::open): Understand binary modes. - (fhandler_console_in::init): Call tcsetattr with reasonable start - values. - * spawn.cc (spawn_guts): Use conv_path_names. - (queue_file_deletion): Deleted. - (unlink): Use new queue file stuff. - * delqueue.cc, delqueue.h: New files. - * shared.h: New file. - -Wed Jan 31 11:12:24 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * crt0.cc: Hacks to probe out ppc stack. - * exceptions.cc (ehander3): Don't use 386 context info on the ppc. - * path.cc (mount_info::mangle): Turn /usi or /usp into /usr. - * uname.c (uname): Change sysname and get ppc name right. - -Fri Jan 26 15:47:31 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * pproc.cc (per_process::init): Cope when no memory is needed. - * Makefile.in, configure.in: Cope with config directory. - * setjmp.c, longjmp.c: Moved into config/i386. - * config/ppc/setjmp.S, config/ppc/longjmp.S: New. - -Fri Jan 26 14:57:33 1996 Jason Molenda (crash@phydeaux.cygnus.com) - - * Makefile.in (DLL_OFILES): removed ppc-stub.o - ppc-stub.c: Removed. - configure: regenerated with autoconf 2.7. - -Fri Jan 26 11:18:07 1996 Kim Knuttila <krk@cygnus.com> - - * Makefile.in (DLL_OFILES): added ppc-stub.o - -Thu Jan 25 09:33:24 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * malloc.cc (malloc, free, realloc): Hack for ppc. - -Wed Jan 24 20:22:42 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * cygwin.dll (loadup_dll): Remove. - * dcrt0.cc: lint. - * fhandler.* (*): Move to new class structure. - * hinfo.cc: Use new fhandler glue. - * libcfork.cc: Cope with ppc naming convention. - -Mon Jan 22 10:33:53 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * fhandler.h, hinfo.h: New files. - * winsup.h: Split from here. - * configure.in: Set i386 entry point correctly. - * fhandler.cc (fhandler_normal:open): .com files - are executable too. - * hinfo.cc (init_std_file_from_handle): Inspect - master_fmode_binary. - * misc.cc (wcscmp, wcslen): New. - * dcrt0.cc (probe): Change way a forkee's stack is allocated. - * pproc.cc (per_process::init): Initialize using heap chunk. - * shared.cc (shared_info::initialize): Initialize heap chunk. - * syscalls.cc (_sbrk): If current chunk is used, allocate another. - * wait.cc (wait_found): Fix exit code. - -Thu Jan 18 10:09:45 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * fhandler.cc (fhandler_normal::open) Don't test a - com port to see if it's executable. - * configure.in, cygwin.din: More powerpc configury. - -Wed Jan 17 16:25:36 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * configure.in, Makefile.in: Build powerpc stuff. - * hinfo.cc (build_fhandler): Use new with placement. - (fhandler::operator new): New. - -Wed Jan 3 18:18:57 1996 steve chamberlain <sac@slash.cygnus.com> - - * select.cc: New file. - * Makefile.in: Cope with it. - -Tue Jan 2 08:58:58 1996 steve chamberlain <sac@slash.cygnus.com> - - * version.c: New file. - * Makefile.in: Cope with it. - * cygwin.def (setgrent, cuserid, setpgrp, mount, setmntent, endmntent, umount): New. - * dcrt0.cc: Remove obsolete vfork stuff. - (dll_crt0): Change way environ is built. Check that app is built - with correct version of dll. - * dirsearch.cc, exceptions.cc: Lint. - * fhandler.cc: Lint. Most of termios.c moved into here. - (fhandler_console:*): New. - * hinfo.cc (hinfo_vec::init_std_file_from_handle): Open stdfiles as consoles - if possible. - * libccrt0.cc: Lint. - * malloc.cc: More comments. - * path.cc (*): Cope with mount handling. - * registry.cc: Lint. - (reg_session): New. - * shared.cc: Lint. - * signal.cc (usleep): New. - * spawn.cc: Lint. Removed vfork stuff. - * stubs.c (getmntent, endgrent): Deleted. - * syscalls.c (__seterrno): Now takes arguments. - * termios.c: Much moved info fhandler.c - * times.cc (utime, utimes): New. - * uinfo.c (cuserid): New. diff --git a/winsup/cygwin/ChangeLog-1997 b/winsup/cygwin/ChangeLog-1997 deleted file mode 100644 index 33b001154..000000000 --- a/winsup/cygwin/ChangeLog-1997 +++ /dev/null @@ -1,2800 +0,0 @@ -Wed Dec 31 15:00:32 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * hinfo.cc (hinfo_vec::find_unused_handle): correct - previous patch -- need to fix up vec[i].h pointers - -Wed Dec 31 14:13:22 1997 Ian Lance Taylor <ian@cygnus.com> - - * regexp/Makefile.in (tooldir): New variable. - (install): Install regexp.h. - -Tue Dec 30 19:52:46 1997 Ian Lance Taylor <ian@cygnus.com> - - * net.cc (inet_netof): New function. - (inet_makeaddr): New function. - * cygwin.din: Export inet_netof and inet_makeaddr. - -Tue Dec 23 17:45:07 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (current_directory_name): New static variable. - (current_directory_posix_name): New static variable. - (getcwd_inner): Cache the directory name. - (chdir): Move here from syscalls.cc. Clear directory cache - variables. - * syscalls.cc (chdir): Remove; now in path.cc. - - * environ.cc (setenv): Add cast to avoid warning. - - * security.cc (get_file_attribute): Make file parameter a pointer - to const char. - (set_file_attribute): Likewise. - * winsup.c (get_file_attribute): Update declaration. - (set_file_attribute): Likewise. - - * path.cc (path_conv): Don't pass the root directory to - symlink_check_one. - -Mon Dec 22 16:34:40 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (realpath): Use path_conv to resolve symlinks. - - * path.cc (path_conv::path_conv): Rewrite completely to convert to - win32 path first and then check for symlinks element by element. - (symlink_check_one): New static function based on old - symlink_check_worker, but without path conversion. - (path_prefix_p): Move definition before all uses. - (skip_n_slashes, symlink_expand, symlink_follow): Remove. - (symlink_check_worker, symlink_check): Remove. - (readlink): Rewrite to use new symlink_check_one. - (unmixedcaseify, mixedcaseify): Comment out. - * path.h (symlink_check, symlink_follow): Don't declare. - * fhandler.cc (open): Don't pass O_NOSYMLINK to path_conv. Set - errno from path_conv if it fails. - * dirsearch.cc (opendir): Check errors from path_conv, and set - errno appropriately. - * times.cc (utimes): Likewise. - * syscalls.cc (_unlink, _link, mkdir, rmdir, chdir): Likewise. - (chmod, _rename): Likewise. - (_stat_worker): Don't just pass nofollow to _open, but base - whether to pass O_NOSYMLINK on whether nofollow is set. - (lstat): Pass 1, not O_NOSYMLINK, to _stat_worker. - * strerror.cc (strerror): Add ELOOP. - -Thu Dec 18 12:30:47 1997 Ian Lance Taylor <ian@cygnus.com> - - * fhandler.h (class fhandler_base): Remove inline definitions of - tcflush, tcsendbreak, tcdrain, tcflow, tcsetattr, tcgetattr, - tcsetpgrp, and tcgetpgrp, so that we can set proper errno values. - (class fhandler_tty): Add pgrp_ field, and virtual tcgetpgrp and - tcsetpgrp functions. - * fhandler.cc (fhandler_base::tcflush): New function. - (fhandler_base::tcsendbreak): New function. - (fhandler_base::tcdrain): New function. - (fhandler_base::tcflow): New function. - (fhandler_base::tcsetattr): New function. - (fhandler_base::tcgetattr): New function. - (fhandler_base::tcsetpgrp): New function. - (fhandler_base::tcgetpgrp): New function. - (fhandler_tty::fhandler_tty): Initialize pgrp_. - - * tty.cc (tcsetpgrp): Set errno correctly on failure. - - * include/sys/termios.h (CBAUD): Change to 037. - (B57600, B115200): Change to values that can fit in a speed_t. - - * spawn.cc (spawn_guts): Set errno correctly if we can't find the - executable. - -Mon Dec 15 16:40:07 1997 Geoffrey Noer <noer@cygnus.com> - - patch from msnyder@cygnus.com (Michael Snyder): - * heap.cc (_sbrk): handle situation where newalloc < incr - -Mon Dec 15 16:40:07 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - Allow Cygwin32 to terminate process even when in a blocking - winsock call. - * exceptions.cc (call_handler): call to WSACancelBlockingCall() - removed. - (sighandle): call WSACleanup() before exiting the process to - cancel blocking winsock calls. - * include/mywinsock.h: add proto for WSACleanup(). - -Mon Dec 15 16:40:07 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: compile .cc files with -fno-exceptions to - decrease dll size and increase execution speed a little. - -Mon Dec 15 16:40:07 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * tty.cc (do_input): Detect CTRL-T as a special case when - STRACE_CACHE is active. Dumps the strace cache to disk. - * console.cc (fhandler_console::read): Detect CTRL-T as a special - case when STRACE_CACHE is active. Dumps the strace cache to disk. - -Sat Dec 13 15:12:53 1997 Ian Lance Taylor <ian@cygnus.com> - - * fork.cc: Include <malloc.h>. - (cygwin_fork_helper1): Call __malloc_copy after copying the stack - and heap to the child. - -Thu Dec 11 15:14:40 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * sigproc.cc (proc_subproc): Remove over-enthusiastic test for - process handling readiness or proc_wait will loop attempting to - handle a dying subprocess when signal handlers are not ready. - * fork.cc (cygwin_fork_helper1): Reorganize to ensure that a - forked process is capable of receiving signals when fork() - returns. - -Wed Dec 10 15:43:37 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/sys/termios.h (IXANY): Correct value. - (PARMRK): Define again. - -Wed Dec 10 00:05:23 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (dll_crt0_1): Move start time initialization to a more - logical place (pinfo_init). - (do_exit): Reorganize to attempt to solve races when a cygwin - process occupies two windows pids (i.e., an execed process). - * exceptions.cc (lock_cs): Fix erroneous WFSO logic. - (sighandle): Use new method for determining if process was - initiated via fork. - (events_terminate): Do not close pinfo_mutex. Allow automatic - close by ExitProcess to lengthen the time that the pinfo structure - is locked, minimizing races between an exiting child and a - potentially exiting parent. - * hinfo.cc (hmap_init): Use new method for determining if process - was initiated via fork. - (hinfo_vec::de_linearize_fd_array): Fix a typo in a comment. - * pinfo.cc (clearout): Remove this function. Handled in - allocate_pid. - (pinfo_init): Move start_time setting here from dll_crt0_1. - Remove call to init_self in favor of adding three additional lines - of code. - (pinfo_list::operator []): Implement a very simple hashing - scheme for pid lookup. - (lpfu): New routine controlled by DEBUGGING conditional. When - DEBUGGING is activated, lpfu returns more information about the - state of a timed out pinfo_mutex. - (pinfo_list::get_empty_pinfo): Remove function. Move - functionality to allocate_pid. - (allocate_pid): Implement a (very) simple hashing scheme for - finding an available pid. Take advantage of reorganized pinfo - structure to zero all pertinent fields with one memset. - (pinfo::record_death_nolock): Don't bothering zeroing - inconsequential stuff. - (pinfo::record_death): Leave pinfo_mutex locked with the - understanding that this function will be called just prior to - exiting the process. This minimizes a race between a child which - is exiting at nearly the same time as its parent. - * sigproc.cc: Reformat function calls. - (sigproc_init): Clear new PID_INITIALIZING flag to indicate that - a (possibly execed) process is now capable of receiving signals. - (sig_send): Be more defensive in determining if a signal can be - sent to myself or suffer problems with execed processes. - (sigproc_terminate): Wait for sig_proc to exit to ensure that - all pending signals have been handled. Use new 'proc_terminate' - function to terminate the subprocess handling thread. - (allow_sig_dispatch): Don't bother blocking signals if signal - handling isn't active in this process yet. - (block_sig_dispatch): Don't bother blocking signals if signal - handling isn't active in this process yet. - (sig_proc): Use sig_loop_wait variable to control wait time for - signal semaphores. Uncouples this wait from wait_subproc. - Perform signal cleanup here on thread termination. - (proc_exists): More accurate tests to determine if a process - really exists. - (proc_register): Remove this function in favor of a macro. - (proc_subproc): More stringent test for being "ready" to process - subprocesses. Add more common initialization to PROC_ADDCHILD. - Remove PROC_EXIT in favor of a separate function. - (proc_terminate): New function. Replaces PROC_EXIT functionality - in proc_subproc. Terminates subproc handler thread. - (stopped_or_terminated): use lock_pinfo_for_update when modifying - child stopsig status or suffer a race. - (wait_subproc): Save sig_proc thread handle away for - synchronization when exiting. Set up 'i_am_alive' mutex inherited - by childen. Child's inability to lock this mutex means that the - parent is still alive and processing children. Use proc_loop_wait - to control WFMO. Clean up events queue on thread exit. - (zap_subproc): Clear out pinfo structure for a child. - * sigproc.h: Remove PROC_EXIT constant. Remove obsolete - proc_register declaration. - (alive_parent): New macro to determine if a parent is still alive. - * spawn.cc (spawn_guts): Fix a comment typo. Use proc_terminate - to terminate all subprocess handling prior to an exec. Use new - method for determining if this process was started via a fork. - Attempt to clean up races between execed process, its parent, and - the execed child. - * winsup.h (pinfo): Add a new handle indicating that a parent is - alive. This should be a foolproof way of determining if a parent - has gone away so that a child will know whether to remove itself - from the pinfo table. - Reorganize the structure in such a way that items to be zeroed - are grouped together at the beginning for more efficient zeroing - in allocate_pid. - Add a new PID_* constant. - New lock_pinfo_for_update macro for use when debugging cygwin. - -Wed Dec 10 00:05:23 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - Change the way to inherit fd table on spawn/exec calls. - Use STARTUPINFO structure to pass an fd table to a child process - instead of shared memory area. This is undocumented, but is used - by MSVC runtime. The desktop inheritance code added again, - otherwise user32.dll will fail to initialize after sexec calls. - * pinfo.cc (pinfo_init): delinearize fd array from STARTUPINFO - structure instead of call to copy_shared_fd_table. - * shared.cc (create_shared_fd_mapping_name): remove - (create/copy_shared_fd_table): remove - * spawn.cc (spawn_guts): use lp(cb)Reserved2 fields of STARTUPINFO - to pass fd table to a child. Remove call to - create_shared_fd_table. Inherit window station/desktop on sexec - calls. - * winsup.h: remove prototypes for create/copy_shared_fd_table. - -Fri Dec 5 18:57:42 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * kill.cc (main): Report error if kill() fails. Minor reformat. - * ps.cc (main): Only use month/day in start time when starting - time is > 24 hours in the past, not when it occurs yesterday. - -Fri Dec 5 15:54:41 1997 Geoffrey Noer <noer@cygnus.com> - - * fcntl.cc (_fcntl): reformat - * fhandler.cc (fhandler_tty::open): new, need special open for - ttys. In addition to calling fhandler_base::open, check - flags to handle blocking vs. non-blocking I/O. Should - initialize tty to standard state (9600 bits/sec - 8 - 1 with - no flow control) but this code needs more work still. Ifdef - out for now. - (fhandler_tty::tcsendbreak): new - (fhandler_tty::tcdrain): new - (fhandler_tty::tcflow): new - (fhandler_tty::tcsetattr): add support for action arg. Use - a DCB struct to hold the values we will set. First call - GetCommState to get the current state, then reassign values - based on the contents of the termios struct. Handle the - case where t->c_ospeed is set to B0, otherwise set state.BaudRate. - Set all the other DCB struct values appropriately, based on - the contents of the termios struct. - (fhandler_tty::tcgetattr): do the inverse of tcsetattr. - Call GetCommState to get the current state and use this to set - the appropriate termios struct values. - * termios.cc: reformat - (tcsendbreak): implement -- add duration arg, - call fhandler tcsendbreak as appropriate - (tcdrain): implement -- call fhandler tcdrain as appropriate - (tcflow): implement -- call fhandler tcflow as appropriate - * fhandler.h: add new tc* protos - * include/sys/termios.h: correct values of iflag bits, - define CRTSXOFF and CRTSCTS, CBAUD, B57600 and B115200. - Add protos for tc* functions. - -Wed Nov 26 17:06:17 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (perhaps_suffix): resolve symlinks to .exes. - -Mon Nov 24 17:10:49 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove crypt - * syscalls.cc (crypt): remove crypt stub - -Sun Nov 23 17:34:42 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (spawn_guts): save the path of the script itself, - use the saved path while building the command line to execute. - -Thu Nov 20 22:58:23 1997 Geoffrey Noer <noer@cygnus.com> - - * stubs.cc: delete file, move unimplemented stubs to the - files in which they would normally belong. - * grp.cc (setgrent): implement (was in stubs.cc) - * syscalls.cc: move regfree, mknod, setgid, set(e)uid, sync, - crypt, and PPC __chkstk/_alloca/dll_entry stubs here from stubs.cc - (sync): just return zero for now instead of -1 - (crypt): return -1 instead of 0 - -Thu Nov 20 22:41:57 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * spawn.cc (spawn_guts): A premature close of the spawned filehandle - was possible when reparenting an exited process. Fix this. - * dcrt0.cc (do_exit): Only do minimal cleanup if "pid focus" - has moved to another windows process or the other process will - become confused. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * sigproc.cc (getsem): set errno to EPERM if existing semaphore - cannot be opened. - (wait_subproc): allow access to signal semaphores to process's - owner only except for SIGCHLD (needed for SIGCHLD delivery after - sexecXX calls). - -Thu Nov 20 00:52:58 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * syscalls.cc (hash_path_name): Ignore trailing backslash when - calculating pathname hash. - * hinfo.cc (hinfo_vec::de_linearize_fd_array): Set use_tty - if /dev/ttyn is detected in the shared_fd_table. Before this - change, executing "set CYGWIN_TTY=1", "bash", "unset CYGWIN_TTY", - "/bin/pwd" would result in pwd printing nothing because - the de_linearize code would use the wrong fhandler_xxx when - reading from the buffer inherited from the parent process. - * cygwin.din: Add new ctermid function for export. - * syscalls.cc (ctermid): New function - * exceptions.cc (call_handler): If called during a P_OVERLAY - spawn, merely set appropriate flags and return. The spawn - code will then clean up and exit. - * sigproc.cc (proc_exists): Reorganize to better detect defunct - processes. Don't clean up pinfo if process has a parent since the - parent should clean up eventually. - * spawn.cc: New global exec_exit. Set by signal handler to - value which should be used on exit from aborted spawn. - (spawn_guts): Try harder to let the child terminate (if it is - going to) before exiting on a signal. Remove obsolete code. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exec.cc (file_exists): Removed - * spawn.cc (spawn_guts): call perhaps_suffix to convert filename - to win32 form and to check file existance; prog variable - removed, all references changed to real_path variable. - Do not inherit parent's window station/desktop on sexecXX calls. - They are no longer needed with the new signal handling. - (_spawnve): extra file existance check removed - * winsup.h: file_exists prototype removed - -Wed Nov 19 16:23:47 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: add missing exports for random -- initstate - and setstate (accessed by gawk among others?) - -Tue Nov 18 22:27:10 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: Add spaces after colons in rules for make - -Mon Nov 17 22:35:25 1997 Geoffrey Noer <noer@cygnus.com> - - patch from proven@cygnus.com (Chris Provenzano): - * Makefile.in: set SHELL = @SHELL@, set VPATH to only @srcdir@. - Remove mingw from directories to build for now, adapt rules - for building sysdef files without fancy VPATH - * configure: regenerate - * config/i386/makefrag: add rules to build setjmp/longjmp - * regexp/Makefile.in: set SHELL = @SHELL@ - * regexp/configure: regenerate - * utils/Makefile.in: set SHELL = @SHELL@ - * utils/configure: regenerate - -Mon Nov 17 18:36:50 1997 Geoffrey Noer <noer@rtl.cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler.cc (fhandler_disk_file::open): calls to symlink_XXX - replaced with path_conv class calls. - * path.cc (path_conv::path_conv): comments added, O_NOSYMLINK case - added. - * path.h (class path_conv): symlink_p, exec_p - new class members. - * spawn.cc (spawn_guts): call path_conv instead of symlink_follow. - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (do_exit): Use new pinfo element in debug statement. - * pinfo.cc (pinfo_init): Eliminate use of "PID" environment - variable in favor of scanning the process table for a - SpawnedProcessId field matching current windows process id. - Should speed up spawned process startup slightly. Delay setting - of dwProcessId until process is capable of processing signals - since this field is used to build signal semaphores. - * signal.cc (kill_worker): Perform a `proc_exists' on the pid - in question if signal == 0. This will verify that the process - actually exists and was not abnormally terminated. - * sigproc.cc (sigproc_init): Initialize dwProcessId field after - signal processing has been initialized. - (sigproc_terminate): Remove events[0] close. - (getsem): Use GetCurrentProcessId to find the windows pid since - this dwProcessId field is not yet set up. Use proc_exists to - determine if error should be printed on OpenSemaphore error. - (proc_exists): New function. Makes more exhaustive test of - process existence. Determines if process died without going - through normal shutdown. - (wait_subproc): Close wakeup event only on thread exit. - * spawn.cc: Remove pExeced. Use new field in pinfo. - (spawn_guts): Initialize dwSpawnedProcessId field. - * utils/ps.cc (main): Perform a kill(pid, 0) on any pids that - appear to be active. This will clear out pids that have died - abnormally. 'ps -f' bypasses this. - * winsup.h (class pinfo): Add dwSpawnedProcessId field. - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * pinfo.cc ((pinfo_init): use dwProcessId for execed/spawned - check, set subproc_ready event only if the process is exec'ed. - * spawn.cc (spawn_guts): initialize hProcess and dwProcessId - fields of pinfo on exec, keep progname field on spawn. - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@rtl.cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc: remove commented out code - * spawn.cc: fix misapplied patch problem - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * fhandler.cc (fhandler_dev_null::open): Open Windows 'nul' - device rather than "faking" a real open. - (fhandler_dev_null::close): delete. - (fhandler_dev_null::fstat): delete. - (fhandler_dev_null::ioctl): delete. - (fhandler_dev_null::read): delete. - (fhandler_dev_null::write): delete. - (fhandler_dev_null::lseek): delete. - (fhandler_dev_null::dup): delete. - * fhandler.h (class fhandler_base): delete above methods from - class. - * hinfo.cc (hinfo_vec::build_fhandler): Use new fhandler_dev_null - class which opens 'nul' device. Treat /dev/null similarly to - other Windows devices. This allows redirection of /dev/null to - non-cygwin processes. - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (do_exit): Use EXIT_* flags to determine how exit - should proceed. Honor new EXIT_NOCLOSEALL to avoid - close_all_files. - * exceptions.cc (__cygwin32_exception_handler): Use new - EXIT_SIGNAL define to indicate exiting due to signal. - * signal.cc (sigprocmask): Slightly more defensive check against - being called prior to complete cygwin setup. - (_raise): Defensive check to guard against being called prior to - complete cygwin setup. - * sigproc.cc (stopped_or_terminated): Use new EXIT_SIGNAL define - to detect exiting due to signal. - * sigproc.h: Define flags to be used during exit process as - EXIT_*. - * spawn.cc (spawn_guts): Use EXIT_* constants to control how - do_exit proceeds after _P_OVERLAY. - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> - - * sysconf.cc (sysconf): return 1048576 for ARG_MAX until - we figure out the right value (_POSIX_ARG_MAX is only 4K - which is too small). - -Sun Nov 16 15:54:27 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc (dll_crt0_1): call winsock_init if neccesary. - * fhandler.cc ((fhandler_socket::fhandler_socket): moved to net.cc - * fhandler.h (class fhandler_socket): destructor prototype added. - * fork.cc (cygwin_fork_helper1): set PID_SOCKETS_USED in the - child's pinfo if parent has open socket descriptors; call - winsock_init in child code if necessary. - * net.cc: static variable winsock_init_p removed; - number_of_sockets is new global variable containing number of - opened sockets. - (winsock_init): made global, save "winsock inited" flag in process - state field. - (cygwin32_winsock calls): condition for winsock initialisation - changed - (fhandler_socket::fhandler_socket): new, moved from fhandler.cc; - increment number_of_sockets on constructor call. - (fhandler_socket::~fhandler_socket): new. Decrement - number_of_sockets on destructor call, check for negative value. - (fhandler_socket::ioctl): check for winsock initialisation added. - * spawn.cc (spawn_guts): handle PID_SOCKETS_USED in child's pinfo. - * winsup.h: PID_SOCKETS_USED - new enum value; number_of_sockets - and winsock_init() prototypes added. - -Wed Nov 12 23:02:34 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * exceptions.cc: Substitute do_exit for _exit as appropriate. - do_exit allows full 32 bits of exit value. The upper 16 bits - are used for special cygwin operations. - * winsup.h: Change definition of do_exit to allow calling from - signal handler. - * dcrt0.cc (do_exit): Change to allow calling from signal handler - in place of _exit. This is necessary to ensure that only cygwin - internal applications can exit with the upper order 16 bits set - to non-zero. - -Wed Nov 12 23:02:34 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (do_exit): New function. Subsumes functionality of - _exit but takes a DWORD argument. Changed to avoid some shutdown - activities when called with REPARENTING bit set in argument. Also - explicitly kills any executing non-cygwin subprocess from a - spawn(P_OVERLAY)... - (_exit): Use do_exit for exiting. Ensure that only low order 1 - bits of status are used or confusion will result if exiting with - some higher order bits set. - * exceptions.cc (set_process_mask): Reflect new method for - sig_send to send signals to self. - (handle_sigsuspend): Reflect new method for sig_send to send - signals to self. - * fork.cc: A handle name was changed in the pinfo structure to - be more reflective of its use. Change forkee_stopped to - subproc_ready everywhere. - * pinfo.cc (pinfo::clearout): Change forkee_stopped to - subproc_ready. - (pinfo_init): Use PID_EXECED flag to determine if this process has - been execed. If so, signal the remaining stub in the process - which invoked us so that the stub can terminate and let us take - over as this pid. - * sigproc.cc (sig_send): Change method for determining if sending - signals to myself. A NULL pointer means communicate with my - signal handler. This is necessary to allow communication with - our own signal processors after reparenting an execed process. - Also, add an additional test to detect if a process goes away in - the middle of attempting to send it a signal. - (allow_sig_dispatch): Reflect new method for sig_send to send - signals to self. - (getsem): Use dwProcessId in names for signal semaphores. Allows - communicating with both parts of a process that is temporarily - "split in two" while execing. - (sig_proc): Avoid printing an error if WAIT_FAILED and exiting - anyway. Process requests even if loop_wait == 0. - (proc_subproc): Defensive check for manipulating processes prior - to initialization or after terminating sigproc. - Use different check for subprocesses that have been reparented. - Hopefully this will eliminate WFSO, error 6 problems. - (wait_subproc): Only exit when loop_wait == 0 and not dealing with - a process. - * spawn.cc: Set up two global variables, used on exit when - execing a non-cygwin process: hExeced - handle of non-cygwin - process which is being waited for by a stub, pExeced - windows pid - of the process. - (spawn_guts): Reorganize to always (temporarily) wait for the new - process when P_OVERLAY. If a cygwin process is invoked, then the - wait will return when an event is signalled and the new process - will be "reparented" in the ppid. If a non-cygwin process is - invoked, wait until the process exits or a signal is received - which terminates the process. In this case, the do_exit function - will terminate the non-cygwin process. - * winsup.h: Rename forkee_stopped to subproc_ready since this - event now has a dual role which is better defined by this new - name. Add a new flag (PID_EXECED) for process_state. Define a - new function `do_exit' which operates similarly to _exit - but takes > 16 quantities with the high order bit signifying - different exit actions. - -Mon Nov 10 17:11:08 1997 Geoffrey Noer <noer@cygnus.com> - - * include/utime.h: remove (moved to newlib/libc/sys/cygwin32/sys) - so as not to conflict with the one in newlib/libc/include. - -Mon Nov 10 15:11:42 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exceptions.cc (__cygwin32_exception_handler): exit with - "core dumped" exit code after writing "core" file. - -Mon Nov 10 15:11:42 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * console.cc: Add convenience macros and structures for handling - scrolling. - (fhandler_console::fillin_info): New function to fill in the `info' - struct. - (fhandler_console::scroll_screen): Change to scroll only the visible - portion of the screen. Honor scroll regions more stringently. - (fhandler_console::open): Use new fillin_info function. - (fhandler_console::ioctl): Use new fillin_info function which - automatically calculates screen size. - (fhandler_console::clear_screen): Use new fillin_info function. - Only clear visible portion of screen. - (fhandler_console::cursor_set): Add a flag to indicate whether - cursor positioning is absolute within buffer or is screen relative. - Use new fillin_info function to get screen information. - (fhandler_console::cursor_rel): Use new fillin_info function. - Change for new cursor_set parameter. - (fhandler_console::cursor_get): Use new fillin_info function. - (fhandler_console::char_command): Use new fillin_info function - where appropriate. Change for new cursor set parameter where - appropriate. Scroll only visible portion of screen when required. - * fhandler.h (class fhandler_console): Add fillin_info, change - cursor_set to reflect additional argument. - -Mon Nov 10 15:11:42 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (dll_crt0_1): Register process start time. - * fork.cc (cygwin_fork_helper1): Register process start time. - * utils/ps.cc (main): Report process start time. - (start_time): New function to format time similarly to UNIX ps. - A time from today shows as HH:MM, times from previous days just - show the month and day. - * winsup.h (class pinfo): Add start_time field. - -Mon Nov 10 11:54:27 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Defines.h (TIME_ZONE_ID_INVALID): Define. - * times.cc (gettimeofday): The error return from - GetTimeZoneInformation is TIME_ZONE_ID_INVALID, not - TIME_ZONE_ID_UNKNOWN. - -Sun Nov 9 17:08:30 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * Makefile.in: add ../libiberty/strsignal.o - * cygwin.din: add exports for strsignal, strtosigno - * utils/kill.cc: changes to allow accepting signal name - as argument - -Sun Nov 9 17:08:30 1997 Geoffrey Noer <noer@cygnus.com> - - * include/limits.h: define PATH_MAX here instead of - include/sys/param.h, define _POSIX_NGROUPS_MAX as 0 not 1 - (system invariant value, not implementation-specific) - * include/sys/param.h: remove PATH_MAX, change NOFILE from 64 - to 8192, delete PATHSIZE, remove safety wrapper around - MAXHOSTNAMELEN, add comments - * sysconf.cc (sysconf): return NGROUPS_MAX not zero, - return _POSIX_SAVED_IDS not zero. Return _POSIX_CHILD_MAX - not 4096. Return _POSIX_CHILD_MAX, not 8. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * winsup.h: add proto for setdtablesize, define NOFILE_INIT - and NOFILE_INCR - * hinfo.cc (hmap_init, hinfo_vec::find_unused_handle): change to - support virtually unlimited numbers of fds. Remove setdtablesize - proto - * syscalls.cc: initialize dtable_size to NOFILE_INIT instead of - NOFILE - -Thu Nov 6 13:14:09 1997 Geoffrey Noer <noer@cygnus.com> - - * exceptions.cc (__cygwin32_exception_handler): don't - print "In cygwin32_except_handler" for exceptions Cygwin32 - isn't going to handle. Print "(progname PID) Exception: <type>" - to console. Redirect all detailed information including the - stack trace to <progname>.core. This should reduce confusion - about what's causing the exception (a lot of people would see "In - cygwin32..." and think the problem was in Cygwin32 when most of - the time it was in some other program). - * syscalls.cc: add fixme - * times.cc: add fixme - -Wed Nov 5 19:23:10 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * Makefile.in: force .c.os and .cc.os to be built in same - directories as source - -Wed Nov 5 19:23:10 1997 Geoffrey Noer <noer@cygnus.com> - - * drct0.cc (dll_crt0_1): stop initializing winsock on process - startup since that slows down startup time of all processes, even - ones that don't end up making Winsock calls. - * fork.cc (cygwin_fork_helper1): don't need to call uinfo_init - or socket_checkinit after fork -- the appropriate functions will - do the necessary initialization if they are ever called. - * net.cc: init winsock_init_p to zero and make it static - (all exported functions): call winsock_init before making - any WinSock calls since this no longer happens in dcrt0.cc - startup code. Only do this if !winsock_init_p. - (winsock_init): checkinit renamed. Now just inits winsock - without checking whether it has been already initialized. - Make it static. - * uinfo.cc (uinfo_init): after we call getpwnam, we know - the passwd file has been read in so don't check initialization - of it. However, we do need to read_etc_group() if group_in_memory - isn't set. - * passwd.cc: rename global i variable to pw_pos, rename - passwd_in_memory to passwd_in_memory_p to match net.cc scheme. - Add comments. - (read_etc_passwd): make static - (various): make sure to read_etc_passwd() if passwd_in_memory - isn't set - * grp.cc: add comments, rename idx global to grp_pos, - rename group_in_memory to group_in_memory_p to match net.cc - scheme, group_in_memory_p no longer static (needs to be accessed - by uinfo_init) - * winsup.h: remove proto for socket_checkinit since that's - renamed and static within net.cc - -Tue Nov 4 01:02:20 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * signal.cc (sigprocmask): Newer versions of gcc will call - sigprocmask when a builtin constructor is activated. If this - happens prior to the setup of u->self, then a NULL dereference - will occur. Guard against this. - -Mon Nov 3 17:00:45 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * hinfo.cc (hinfo_vec::build_fhandler): Open a console for - /dev/tty when !use_tty. - -Thu Oct 30 10:28:15 1997 Tom Tromey <tromey@cygnus.com> - - * include/mapi.h: New file. - * sysdef/i386/mapi32.def (MAPISendMail@20): New export. - -Thu Oct 30 15:08:13 1997 Geoffrey Noer <noer@cygnus.com> - - * times.cc: add comments listing standards funcs are defined in - (dump_filetime): remove unused local func - * net.cc (fail): remove local func, replace one reference with - equivalent debug_printf, add standards comments, reformat a little - (fhandler_socket::close): simplify handling of res - (fhandler_socket::fstat): set ENOSYS (unimplemented) - * stubs.cc: set ENOSYS in unimplemented funcs - * uname.cc: add standards comment - * ntea.cc: reformat - -Wed Oct 29 22:43:57 1997 Geoffrey Noer <noer@cygnus.com> - - * times.cc (settimeofday): set ENOSYS instead of EPERM - since ENOSYS maps to "Function not implemented" which is the - case here. - * syscalls.cc (seterrno): on failure, set EACCES instead of EPERM - which is better for the unknown error case - -Fri Oct 24 01:24:07 1997 Geoffrey Noer <noer@cygnus.com> - - patch from green@cygnus.com (Anthony Green): - * dcrt0.cc: new host_dependent_constants object with a global - instance of it which allows constants that are different in Win 95 - and NT to be saved here instead of having forks in the code and - having to check the OS type each time. Add two constants for - fhandler, one for sharing attributes and one for upper word value - for locking files. - (dll_crt0_1): call host_dependent init function - * fhandler.cc (fhandler_base::open): use above object for - setting shared attributes - (fhandler_disk_file::lock): get upper word for locking from - host_dependent_constants - * winsup.h: define host_dependent_constants class and add extern - for global instance of it - -Wed Oct 22 02:27:53 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: Export getenv, putenv, setenv and unsetenv instead - of cygwin32_ wrappers - * dcrt0.cc: External variable environ removed - (dll_crt0_1): strip executable's path on console title if - environment variable CYGWIN_TITLE set to "strip", references to - environ removed. - * environ.cc: New file. Code derived from newlib sources. - * exec.cc: include stdlib.h - (execl, execv): new (derived from newlib sources). - (sexecve): reference to environ removed. - (sexecvpe): call getenv instead of cygwin32_getenv. - * grp.cc: new static variable group_in_memory - (read_etc_group): skip blank lines - (getgrgid, getgrnam, getgrent): call read_etc_group when necessary. - * misc.cc (cygwin32_getenv/putenv/setenv/unsetenv): remove - wrappers. - * passwd.cc: new static variable passwd_in_memory - (read_etc_passwd): skip blank lines - (search_for, getpwent): call read_etc_passwd when necessary. - (setpwent): fixed incorrect initialization of i var. - * pinfo.cc (pinfo_init): initialize uid with illegal value to - force read of /etc/passwd and /etc/group. - * spawn.cc: call getenv instead cygwin32_getenv - (spawn_guts): force read of /etc/passwd and /etc/group on sexec - calls. - * uinfo.cc (uinfo_init): read /etc/passwd and /etc/group only if - uid is undefined. - * winsup.h: remove protos for environ, cygwin32_getenv, - cygwin32_putenv - -Wed Oct 22 02:08:54 1997 Geoffrey Noer <noer@cygnus.com> - - * utils/aclocal.m4: new file. Define autoconf macros for - determining whether we're compiling for the cygwin32 environment - or not and determine the executable suffix - * utils/configure.in: call AM_CYGWIN32 and AM_EXEEXT - * utils/configure: regenerate - * utils/Makefile.in: add $(exeext) after executable names so - programs will be built with the .exe suffix - -Wed Oct 22 00:50:27 1997 Geoffrey Noer <noer@cygnus.com> - - Now that it is possible to use gdb using a stable - cygwin.dll to debug a program using a newer, potentially buggy - cygwin.dll, the strace mechanism will probably end up being - used more and more for debugging timing/race-condition bugs that - aren't easily exposed in a gdb session. The following changes - make the strace facility better for debugging timing issues by - storing the last few commands in a buffer instead of writing - to disk each function call. - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (dll_crt0_1): Change to strace_init call to take - an argument (for planned future registry changes). - (_exit): Call strace_dump when appropriate. Add a debugging - printf. - * include/sys/strace.h: Add _STRACE_CACHE, _STRACE_EXITDUMP, - strace_dump (). - * strace.c (strace_init): Allow hexadecimal, octal setting of - strace flags in environment variable. Handle new cache option. - (strace_printf): Display number of seconds from last message. - Handle _STRACE_CACHE. - (strace_dump): New function. Dump cached messages to disk. - -Wed Oct 22 00:08:40 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: export socket calls without cygwin32_ prefix - * net.cc: remove unused herror function in favor of - cygwin32_herror which is exported as herror - * include/netdb.h: we are now exporting the socket calls without - the cygwin32_ prefix so we don't need the nasty remapping in - header files - * include/arpa/inet.h: ditto - * include/sys/socket.h: ditto - * select.cc (select): make extern C - -Tue Oct 21 22:52:29 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * sigproc.cc (sigproc_terminate): Fix flawed attempt to signal - any processes waiting for signal notification success when the - process receiving the signal is terminating. - (wait_subproc): Report on errors when opening the - sync_proc_subproc mutex. Move initialization of events[0] - "wakeup" signal prior to wait_subproc_inited or risk a (miniscule) - chance for a reference to a NULL handle. - * strace.cc (ta[]): Change WM_ASYNCIO entry to reflect previous - changes to WM_ASYNCIO constant. - -Tue Oct 21 14:30:14 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * sigproc.cc (proc_subproc): fix minor error output problem - -Mon Oct 20 20:19:02 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: change DLL_NAME to cygwin97r2.dll - -Mon Oct 20 20:16:47 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * window.cc (alarm): When there is a previous alarm() request - with less than one second remaining, then the return from a call - to alarm() is supposed to return 1. - -Mon Oct 20 20:16:47 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * Makefile.in: Add sigproc.o target. Add sigproc.h dependency - where appropriate. Add -s to intermediate ld of cygwin.dll to - speed up the process of building the .dll. - * dcrt0.cc: Add new sigproc.h include. - (dll_crt0_1): Replace window_init with sigproc_init for - initialization of signal/sub process handling. Change to use new - process_state field in pinfo. - (_exit): Remove spurious debugging statement. Terminate sigproc - processing. Remove signal blocking obviated by previous signal - termination. Remove SIGCHLD notification of parent as it is now - handled automatically in the parent. - (api_fatal): Terminate sigproc processing. - * exceptions.cc: Add new sigproc.h include. Change name of - ourhThread. - (ctrl_c_handler): Change to static as this is no longer called - outside of this module. - (lock_cs): Change to a function which will optionally grab new - signal dispatch mutex. Don't wait forever for cs mutex. - (unlock_cs): Change to a function which will optionally release - new signal dispatch mutex. - (init_exceptions): Detect errors from SetConsoleCtrlHandler. - Initialize new sig_dispatch mutex. This mutex is used to - control dispatching to a function on signal receipt. - (sig_dispatch_pending): New function. Called from signal - processing thread to dispatch pending signals. - (set_process_mask): Block signal dispatch during setting of new - mask, if possible. Contact signal thread to dispatch pending - signals. - (handle_sigsuspend): New function. Attempts to implement a - sigsuspend which will not lose signal notification. Called from - sigsuspend. - (call_handler): Use sigproc_printf where appropriate. - (ctrl_c_handler): Use _raise to invoke the correct signal. - (sighandle): New function. Subsumes most of ctrl_c_handler. - Change to mark as suspended signals which would dispatch for which - the sig_dispatch mutex is unavailable. Use sigproc_printf where - appropriate. - (events_init): Remove application_stopped mutex made obsolete by - new sigproc handling. - (events_terminate): Remove application_stopped mutex made - obsolete by new sigproc handling. - * fork.cc: Add new sigproc.h include. - (cygwin_fork_helper1): Use process_state field in pinfo (replaces - inuse_p). Call proc_register to add a new subproc to sigproc - handling. Call sigproc_init for new subprocess. Remove obsolete - window_init. - * heap.cc (_sbrk): Use process_state field in pinfo (replaces - split_heap_p). - * hinfo.cc (hmap_init): Use process_state field in pinfo (replaces - cygwin_parent_p). - * include/sys/strace.h: Add tracing for signal/subprocesses. - * init.cc: Add new sigproc.h include. Add waitq_storage global - for new sigproc handling. - (dll_entry): Add initialization, destruction of structures needed - by new sigproc handling. - * net.cc (fhandler_socket::ioctl): Use gethwnd() function to find - hwnd of hidden window. - * pinfo.cc: Add new sigproc.h include. - (pinfo::clearout): Use process_state field in pinfo (replaces - split_heap_p). Explicitly initialize various handles to NULL. - (pinfo_init): Use process_state field in pinfo (replaces - cygwin_parent_p). - (pinfo_list::operator): Use process_state field in pinfo (replaces - inuse_p). - (pinfo_list::alocate_pid): Initialize process_state field. - (pinfo::init_self): Remove obsolete initialization of hProcess. - (pinfo::record_death_nolock): Changes for new sigproc handling. - (pinfo::record_death): Move bulk of this code to sigproc.cc. - (pinfo::terminate): Remove function made obsolete by sigproc - handling. - (pinfo::init_from_exec): Use process_state field (replaces - inuse_p). - * signal.cc: Add new sigproc.h include. - (kill_worker): Call new sig_send function to send signals to - cygwin processes. - (_kill): Use process_state field in pinfo (replaces inuse_p). - (sigsuspend): Call handle_sigsuspend in exceptions.cc to handle - sigsuspend in a non-raceable way. - * sigproc.cc: New signal/subprocess handling module. Replaces - SendMessage method for signals with a method using semaphores. - Also detects changes in the state of child processes. - * sigproc.h: New header file defining constants and functions for - signal/subprocess handling. - * spawn.cc: Add new sigproc.h include. Clean up trailing spaces. - (spawn_guts): Reorganize to use new sigproc handling. - Use new pinfo process_state field (replaces inuse_p). - * syscalls.cc (_read): Use new pinfo process_state field (replaces - inuse_p). - (_write): ditto. - * tty.cc (tty_init): Use new pinfo process_state field (replaces - cygwin_parent_p). - * utils/ps.cc (main): Use new pinfo process_state field (replaces - inuse_p). Detect "zombie" processes similarly to UNIX ps. - * wait.cc: Add required includes. - (wait_found): Function obsoleted by new sigproc handling. - (wait4): Reorganize to use new sigproc handling. - * window.cc: Changes for new sigproc handling. - (WndProc): Remove SIGNAL handling obsoleted by new sigproc - handling. Use static window handle since the field has been - removed from pinfo. Use _raise where appropriate to send signals. - (Winmain): Replace global window handle with static since the - field has been removed from pinfo. - (window_init): Remove obsolete function. - (gethwnd): New function to allocate hidden window on demand rather - than at startup. - (window_terminate): Kill hidden window only if allocated. - (setitimer): Use gethwnd function to retrieve hidden window - handle. - * winsup.h: Remove stuff made obsolete by sigproc handling. Move - some constants to new sigproc.h header file. Remove inuse_p, - cygin_parent_p, split_heap_p. Replace with a single process_state - field. Define bit fields for process_state in an enum for easier - debugging. - -Mon Oct 20 19:17:33 1997 Geoffrey Noer <noer@cygnus.com> - - * sysdef/i386/winserve.def: remove ancient version of cygwin.din - * include/sgtty.h: remove since Cygwin32's tty handling doesn't - support bsd syntax/semantics - * include/sys/termios.h: change winsize struct to include - ws_xpixel and ws_ypixel members - * cygwin.din: remove export of ScreenCols, ScreenGetCursor, - ScreenRows, ScreenSetCursor, get_pid__5pinfo, getkey, _getkey, - kbhit, _kbhit, __small_printf = small_printf__FPCce - * key.cc: remove. Similar functionality exists in ncurses - which can be compiled for Cygwin32 - * console.cc (ScreenCols, ScreenGetCursor, ScreenSetCursor, - ScreenRows): delete and delete SCREEN_ROWS/COLS defines - * pold.c: remove old pipe-related code that's no longer used - * include/regex.h: remove, it's not a part of cygwin.dll - * syscalls.cc: started to add comments including standards - information - (truncate): new - (ftruncate): length is an off_t, not a size_t. Add missing - return value to debug printf - * syscalls.h: ftruncate length is an off_t, add proto for truncate - - patch from cgf@bbc.com (Chris Faylor): - * console.cc (fhandler_console::write): Recognize '@' as a valid - character to follow a '\e[' sequence or get 'Bad escape' errors. - -Wed Oct 15 18:44:25 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: restore __main as an export - -Mon Oct 13 18:41:09 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: revert renaming of __assert since that's - actually what it's supposed to be called - * assert.cc: ditto - -Fri Oct 10 19:25:49 1997 Tom Tromey <tromey@cygnus.com> - - * include/Windows32/Base.h: Moved typedefs of CHAR, SHORT, etc, - before all other uses in file. - -Fri Oct 10 17:50:12 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Base.h: Only typedef CHAR, SHORT, and LONG if - VOID is not defined - -Thu Oct 9 00:46:40 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove all libgcc.a exports. They don't - belong here since libgcc.a doesn't really relate to the - purpose of cygwin.dll, and (to make things worse) the contents - change over time. - * assert.cc: rename __assert to __cygwin32_assert - * exceptions.cc: rename __stack_trace to __cygwin32_stack_trace, - __cygwin_except_handler to __cygwin32_except_handler - * version.h: increment major and minor numbers - -Tue Oct 7 12:52:25 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc (_exit): under Win 95, don't send SIGCHLD - unless special env variable is set. This works around a - problem where exiting a process can hang under Win 95. - -Mon Oct 6 23:41:34 1997 Geoffrey Noer <noer@cygnus.com> - - * regexp: new directory containing free regexp code by - Henry Spencer. Taken from the most recent release of NetBSD. - Write configure.in and Makefile.in, based on files from - winsup/utils. - * Makefile.in: build regexp directory and include objs in - cygwin.dll. - * stubs.cc: remove all reg* stubs except for regfree which - isn't provided by above code. - -Mon Oct 6 13:35:48 1997 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc: remove asm idata3 terminator, now that ld is fixed - such that this is no longer necessary. - * libccrt0.cc: ditto - -Mon Oct 6 13:14:00 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (spawn_guts): return child's PID on - spawn (_P_NOWAIT,...) instead of child's handle. - (cwait): rewritten as a wrapper to waitpid. - -Mon Oct 6 13:02:01 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * net.cc (socketpair): new - * cygwin.din: add socketpair export - -Mon Oct 6 13:01:51 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc: Remove obsolete call to fork_terminate. - * exceptions.cc: Respace, remove extraneous trailing whitespace. - Change critical section to mutex since there are supposedly - multi-processor problems with critical sections under NT. - Use "lock_cs" and "unlock_cs" macros to lock/unlock critical - regions. - (init_exceptions): Change critical section initialization to mutex - initialization. - (set_process_mask): Use locking macros to control access to - sig_mask. - (ctrl_c_handler): Use lock_cs/unlock_cs to control access. - (events_init): Use standard cygname function to create names for - shareable objects. - (events_init): Close cs mutex. - * fork.cc: Use event flags which are specific to the child being - forked. This prevents one process from prematurely activating - another. It also makes fork slightly more thread-safe. - (fork_init): Remove event initialization. - (fork_terminate): Remove function. - (cygwin_fork_helper1): Initialize events on a per-fork basis. - Events are inherited in child's pinfo structure. - Remove child->hThread initialization as it not needed. Use - pi.hThread where child->hThread is used. - Work around Windows 95 bug where a WaitForSingleObjects will - sometimes return ERROR_INVALID_HANDLE when it is resumed after - a suspend. - * pinfo.cc: Remove references to hThread field whereever it occurs. - * strace.cc: Use standard cygname function to create name for - strace_mutex. Prevents confusion between different .dll versions. - * wait.cc (wait_found): Remove reference to hThread. - * winsup.h (class pinfo): Remove reference to hThread. Add - per-process fork control event handles. - * include/limits.h: Increase NGROUPS_MAX from 0 to 1 to reflect - recent change to getgroups. - -Mon Oct 6 11:06:22 1997 Geoffrey Noer <noer@cygnus.com> - - Oops. ../libio refers to objdir and is not the same - as $(srcdir)/../libio. - -Thu Oct 2 23:12:19 1997 Geoffrey Noer <noer@cygnus.com> - - Revert patches to sources applied after Sept 16. Removed - relevant portions of ChangeLog entries. Some of those changes - may reappear later (removing the entries makes this log easier - to understand). - -Thu Oct 2 15:34:03 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: remove hardcoding of SHELL to /bin/sh, remove - ../libio from INCLUDES since $(srcdir)/../libio is already - included. - * glob/Makefile.in: remove hardcoding of SHELL to /bin/sh - -Mon Sep 29 14:06:24 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: add exports for rcmd, rresvport, rexec - * net.cc (cygwin32_rcmd): new - (cygwin32_rresvport): new - (cygwin32_rexec): new - * include/mywinsock.h: add protos for Winsock calls associated - with functions called by the above. - -Mon Sep 29 13:26:24 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * grp.cc (getgrent): Change overlooked comment to reflect new - behavior. - -Thu Sep 25 18:35:49 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: remove debugdll defs since the shared memory - overlap problem is solved by the timestamp addition of Sept 23 - * version.h: rework explanations of version numbers - -Thu Sep 25 16:21:49 1997 Geoffrey Noer <noer@cygnus.com> - - * spawn.cc: add missing cast to debug printf - -Thu Sep 25 16:14:17 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (conv_to_win32_path): Call backslashify on a win32 - path. - -Tue Sep 23 17:58:17 1997 Geoffrey Noer <noer@cygnus.com> - - Fixes for things that were causing compile-time warnings: - * exec.cc (_execve): add missing const to args to match def - of execve in newlib which this calls. - (sexecve): add missing const to def - (sexeclpe): don't need to cast argv in sexecvpe call - (sexecvpe): add missing const to def - * winsup.h: correct _execve proto, add protos for login/logout - * syscalls.h: correct sexecve, sexecvpe protos - * include/Windows32/Base.h: NULL should be defined differently - for C++ - * init.cc: respacing - -Tue Sep 23 17:05:50 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc (dll_crt0_1): don't use alloca for allocating storage - for environment blocks because setenv() uses realloc! - -Tue Sep 23 17:05:50 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * Makefile.in (LD_STUFF): Add datestamp.o after DLL_OFILES. - (datestamp.o): New target. datestamp.c is generated whenever .o - files change. It creates a file containing a "date stamp" - which is used by the function "cygname" to create named - shared memory, events, mutexes, and semaphores used by - cygwin.dll. The unique datestamp allows multiple loading of - different cygwin.dll's even when they have incompatible use - of shared memory areas. - * init.cc (dll_entry): Create the name string used by cygname - from the name of the invoking .dll + the datestamp of the - .dll from the auto-generated datestamp.c - * misc.cc (cygname): New function. Creates a standard Cygnus - shared resource name given a prefix, a name (e.g., pinfo_mutex), - and a numeric suffix (e.g., a pid). Replaces custom code in - several files. Uses cygwin_dlldate from datestamp.c to construct - names that are unique for a given cygwin load. - * shared.cc (open_shared_file_map): Use standard cygname function - to create names for sharable objects. Use static handle 'h' - so that it can be closed later by shared_terminate. - (shared_terminate): Guard against calling CloseHandle with a - NULL handle. - (create_shared_fd_mapping_name): Use cygname function to generate - the name for the "fd_map". - -Tue Sep 16 23:34:36 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fcntl.cc (_fcntl): correct errno value (EBADF instead of - EBADFD). - -Tue Sep 16 17:22:28 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * include/Windows32/Defines.h: add missing defines needed - for NTEA usage. - * ntea.cc: remove them from here - * syscalls.cc (_link): call CreateFile with FILE_WRITE_ATTRIBUTES - flag instead of GENERIC_WRITE - -Tue Sep 16 17:22:28 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * pinfo.cc (pinfo_init): Fix a NULL pointer dereference when PID - environment variable contains garbage. - -Thu Sep 11 16:51:40 1997 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (ftruncate): read file pointer location at - beginning of function and restore it at the end - -Thu Sep 11 15:35:10 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (backslashify): Don't turn a single trailing slash into - a double trailing slash. - -Wed Sep 10 11:40:55 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Structures.h: Add PACKED to PRINTDLG. - * include/Windows32/Functions.h: Add STDCALL to a few function - declarations. - -Tue Sep 9 02:12:18 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * syscalls.cc (_link): Implement hard links under NT with NTFS - using the backup API. Default to copying the file (what we did - before). - -Mon Sep 8 20:19:09 1997 Geoffrey Noer <noer@cygnus.com> - - Merge in the following changes: - - Thu Aug 21 13:30:12 1997 Ian Lance Taylor <ian@cygnus.com> - * assert.cc: New file. - * Makefile.in (DLL_OFILES): Add assert.o. - (assert.o): New target. - * pinfo.cc (cygwin32_winpid_to_pid): New C function. - * cygwin.din: Add cygwin32_winpid_to_pid. - * include/sys/cygwin.h: Include <sys/types.h>. - (cygwin32_winpid_to_pid): Declare. - * pinfo.cc (pinfo_init): Add debug_printf showing pid and pgid. - - Wed Aug 20 13:24:30 1997 Ian Lance Taylor <ian@cygnus.com> - * spawn.cc (env_sort): New static function. - (spawn_guts): Sort the environment before passing it to - CreateProcess. - * exceptions.cc (exit_already): New file static variable. - (__cygwin_exception_handler): If exit_already is set, just - return. If we get an exception we don't recognize, let the next - exception handler handle it. Just ignore the INVALID_HANDLE - exception. - (really_exit): Remove file static exit_already variable; use the - global one. - (events_terminate): Set exit_already. - * include/Windows32/Defines.h (EXCEPTION_INVALID_HANDLE): Define. - (STATUS_INVALID_HANDLE): Define. - * include/Windows32/Functions.h: Declare some shell functions. - -Mon Sep 8 17:40:46 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc (_exit): Kill the foreground process group on session - leader exit only if job control is in progress. - * exceptions.cc (ctrl_c_handler): protect the code with critical - section. This helps stability under Win 95. - * include/sys/strace.h: add new wm_printf macro - * signal.cc (kill_worker): window message number changed (window - messages WM_USER-WM_USER+0x100 reserved for common controls on - windows95). Debug print added. - * spawn.cc (spawn_guts): removed unneeded flag DETACHED_PROCESS. - * strace.cc: defines for SIGNAL and ASYNCIO messages added. - * tty.cc (create_tty_master): initialize speed fields of termios - structure. - (fhandler_pty_master::open): likewise. - * window.cc (WndProc): debug print added, window message number - changed. - * winsup.h: WM_ASYNCIO number changed. - -Mon Sep 8 16:40:46 1997 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * fhandler.h: set_w_binary/set_r_binary now defined to - return void - * grp.cc (getgroups): always return an array of length 1 where - the element is the user's gid. - * pinfo.cc (pinfo_init): verify that we haven't exceeded the - maximum number of processes - (pinfo_list::allocate_pid): ditto - * include/Windows32/Functions.h: add noreturn attrib to ExitProcess - * include/sys/strace.h: change strace defs so strace-related - printfs will automatically add __FUNCTION__: to the beginning, - rename __sys_printf to strace_printf. - * *.cc: remove function names from debug printfs in favor of the - new scheme where they are automatically added, change __sys_printf - references (now strace_printf). - * smallprint.c (__small_vsprintf): new function displayer code - to support the above changes - -Wed Sep 3 12:44:45 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: split subdir_do into subdir_dobefore and - subdir_doafter to reflect whether the subdir in question - should be built before or after the top level is built - (e.g. glob needs to be built before libcygwin.a but libcygwin.a - needs to be built before utils). - -Thu Aug 28 12:09:39 1997 Geoffrey Noer <noer@cygnus.com> - - * configure.in: when setting up EXE_LDFLAGS, correct the - location of crt0.o to ../../newlib since EXE_LDFLAGS is used - by Cygwin32 subdirectories where newlib is two directories up - instead of one. - * configure: regenerate with autoconf - -Thu Aug 28 00:13:11 1997 Geoffrey Noer <noer@cygnus.com> - - Replace all licensing-related headers in all Cygnus-owned - files. Instead of listing terms at the top of each file, now - we simply refer to: - * CYGWIN32_LICENSE: new file listing Cygwin32 licensing terms - -Wed Aug 27 17:40:16 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: export random, srandom - -Wed Aug 20 16:56:39 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: remove unused winsock-related build rules - that were commented out, minor comment changes, remove - test.exe build rule. - -Wed Aug 20 14:45:17 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: link cygwin.dll with -lm -lgcc -lc -lgcc instead - of -lc -lm -lm -lgcc so lgcc finds abort(). Add definitions that - will eventually be used to build a cygwindebug.dll used by gdb - so gdb can debug a buggy cygwin.dll. Change some variable names - to have underscores in them (DLL_NAME, LIB_NAME, DEF_FILE, etc.). - Comment out text.exe build rule. - -Tue Aug 19 20:41:51 1997 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc: respace, modify some comments slightly - -Tue Aug 19 16:17:57 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: include ../libiberty/random.o, stop including - librx since it is LGPL'd code. - * stubs.cc: add stubs for regcomp, regexec, regerror, regfree - * dcrt0.cc (dll_crt0_1): default to not support tty/pty devs, - default to not displaying the running process in the title bar. - -Fri Aug 15 18:23:43 1997 Rob Savoye <rob@cygnus.com> - - Add mingw directory for the minimalist cygwin environment. - See mingw/ChangeLog for changes specific to that directory - - * configure.in: Add mingw to AC_CONFIG_SUBDIR. - * configure: Regenerated from autoconf 2.12 with Cygnus patches. - * Makefile.in: Use subdir_do which uses the value of $SUBDIRS - rather than having seperate target for each directory. - * glob/Makefile.in: Add a phony target for install. - * configure.in: Add mingw to AC_CONFIG_SUBDIR. - -Fri Aug 15 01:12:19 1997 Geoffrey Noer <noer@cygnus.com> - - * times.cc: add missing extern "C"s around exported functions - -Thu Aug 14 17:00:32 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * console.cc (fhandler_console::input_tcsetattr): clear iflag_ and - lflag_ when tty support enabled. - (FakeReadFile): do not interrupt read when tty support enabled. - Do not reset signal_arrived event. - * cygwin.din: add exports - cf(g)set(i)ospeed, login, logout, ttyslot - * dcrt0.cc (_exit): kill orphaned childs with SIGHUP and SIGCONT - on group leader exit, kill foreground process group on session - leader exit. - * dirsearch.cc (closedir): check for FindFirst() was called - * exceptions.cc: include mywinsock.h. - (call_handler): call WSACancelBlockingCall to try to interrupt - blocking winsock call, do PulseEvent() instead of SetEvent(). - (ctrl_c_handler): clear pending SIGCONT on stop signals, clear all - pending stop signals on SIGCONT, suspend the thread before resuming - to avoid W95 bug, process pending signals on SIGCONT, add signals to - pending if the process is stopped. - * fcntl.cc (fcntl): some code rearrangement to always do debug printfs - on call exit. - * hinfo.cc: include stdio.h - (hinfo_vec::build_fhandler): always add ttynum to tty's filename - (hinfo_vec::dup2): fix return value initialization and errno setting. - * include/netdb.h: typedef for sig_t removed - * include/sys/termios.h: octal constants changed to hexadecimals - to simplify debugging. - * misc.cc: include unistd.h and utmp.h - (login): new - (logout): new - * pinfo.cc (lock_pinfo_for_update): debug printf added - (pinfo::record_death): mark processes as orphaned on group leader - exit. - * select.cc (cygwin32_select): ResetEvent() removed - * signal.cc: unneeded ResetEvents removed - (_kill): ignore stop signals from a member of orphaned process group, - kill self process the last on group kill. - (sigaction): reset pending SIGCHLD when the disposition is set to - default. - * spawn.cc (spawn_guts): ResetEvent removed - (cwait): do not interrupt the call - * strerror.cc: include stdio.h, reenable disabled cases, remove - duplicated cases, return decimal error value in the default case. - * syscalls.cc (setsid): set process group id to process id when setsid - called. - (setpgid): check for negative pgid - * syslog.cc (syslog): %m macro support added - * termios.cc (cfg(s)eti(o)speed): new fuctions needed to support - NIST PCTS requirements. - * tty.cc: include utmp.h. - (ttyslot): new - (tty_list::terminate): fill in utmp on tty master exit - (tty_list::allocate_tty): check for tty master pocess alive - (create_tty_master): fill in utmp - (do_input): restart tty output on interrupt - (fhandler_tty_slave::fhndler_tty_slave): ttynum logic moved to - build_fhandler. - (fhandler_tty_slave::open): set tty's session id to sid of the calling - process. - (fhandler_tty_slave::write): check for TOSTOP bit - (fhandler_tty_slave::fstat): allow access to tty to everyone - (fhandler_tty_slave::ioctl): check for TOSTOP bit - * tty.h: ttyslot prototype added - * wait.cc (wait4): check for valid value of option argument added - * winsup.h: define PID_ORPHANED, move tty_list array to the end - of shared area. - -Thu Aug 14 11:42:59 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (slash_unc_prefix_p): Correct check of path[3]. Permit - numbers after the host name. - - * include/Windows32/Defines.h: Correct value for SM_CMETRICS, - SM_CXDRAG, SM_CYDRAG, SM_CXEDGE, SM_CYEDGE, SM_CXFIXEDFRAME, - SM_CYFIXEDFRAME, and add SM_MOUSEWHEELPRESENT. - -Wed Aug 13 20:11:52 1997 Ian Lance Taylor <ian@cygnus.com> - - * fork.cc (cygwin_fork_helper1): If we don't have a console, pass - DETACHED_PROCESS to CreateProcess. - * spawn.cc (spawn_guts): Likewise. - -Tue Aug 12 19:51:32 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Structures.h (IMAGE_DOS_HEADER): Remove - dos_message and nt_signature fields; they aren't present in the - Windows header file. - -Wed Aug 6 16:27:13 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Structures.h: Define LPMEASUREITEMSTRUCT as a - pointer to MEASUREITEMSTRUCT. - - * syscalls.cc (_stat_worker): In directory case, only set - STD_WBITS in st_mode if FILE_ATTRIBUTE_READONLY is clear. - (access): Remove special case for directory. - - * include/Windows32/Defines.h (HKEY_DYN_DATA): Define. - (REG_FULL_RESOURCE_DESCRIPTOR): Define. - (REG_RESOURCE_REQUIREMENTS_LIST): Define. - -Mon Aug 4 21:15:05 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * glob/Makefile.in: Add include of newlib/libc/sys/cygwin32 to - explicit .c.o rule so that dirent.h is found. - -Thu Jul 24 02:14:24 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: fpathconf, initgroups - new exports - * console.cc: new static variable CONSOLE_SCREEN_BUFFER_INFO info - (fhandler_console::scroll_screen): local variable info removed - (fhandler_console::open): likewise - (fhandler_console::ioctl): likewise - (fhandler_console::clear_screen): likewise - (fhandler_console::cursor_set): likewise - (fhandler_console::cursor_rel): likewise - (fhandler_console::cursor_get): likewise - (fhandler_console::write_normal): fixed scroll region bug, termcap - "cs" entry works now - * dcrt0.cc (dll_crt0_1): set file API to use OEM charset, convert - command line from ANSI to OEM charset. - (_exit): clear stopsig value on process exit - * exceptions.cc (call_handler): add one millisecond delay before - SetEvent() - (ctrl_c_handler): clear pending stop signals on SIGCONT, do not send - SIGCHLD to parent on process resuming; some debug printfs added; do - not call _exit() in a context of signal handling thread (would cause - more harm than good); fixed a bug with SA_NOCLDSTOP flag. - * fhandler.cc (fhandler_base::open): use full win32 path name to - generate inode number namehash instead of unix filename. - * fork.cc (cygwin_fork_helper1): block all signals while child and - parent are in fork() code - * grp.cc (initgroups): new stub added - * include/limits.h: new posix defines added - * include/sys/termios.h: typedef speed_t as unsigned char - * path.cc (mount_info::conv_to_posix_path) bugfix - * pinfo.cc (pinfo_list::operator []): PID_NOT_IN_USE check added - (pinfo::record_death): set child's ppid to 1 on parent exit - * signal.cc (sleep): correct return value if sleep call was - interrupted - (_kill): correct return value if killed pid was not found. - (sigaction): correct return value on handling non-handlable - signals, clear pending ignored signals - (sigsuspend): sigsuspend call should always return -1 and set errno - to EINTR. - * spawn.cc: respace - * syscalls.cc: map ERROR_NO_DATA to EPIPE instead of ENODATA - (isatty): fixed return value - (fpathconf): new - (pathconf): rewritten - (ttyname): fixed return value - * sysconf.cc (sysconf): misc fixes - * termios.cc (tcsendbreak): corrected errno set - (tcdrain): likewise - (tcflush): likewise - (tcflow): likewise - (tcsetattr): likewise - (tcgetattr): likewise - (tcgetpgrp): likewise - (tcsetpgrp): likewise - * tty.cc (fhandler_tty_slave::ioctl): TCGETA/TCSETA support added - * wait.cc (_wait): wait() syscall should do not terminate if - a child is stopped. - (wait4): wait calls should wait childs only; fixed a bug with - nprocinfo count; fixed signal handling. - -Thu Jul 24 02:10:25 1997 Geoffrey Noer <noer@cygnus.com> - - * uname.cc: uname now outputs Cygwin32_NT or Cygwin32_95 - instead of Cygwin32/NT or Cygwin32/95. - -Thu Jul 24 02:10:25 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: sexecve, sexecl, sexecle, sexeclp, sexeclpe, - sexecv, sexecp, sexecvpe - new exports - * exceptions.cc (ctrl_c_handler): do not raise SIGHUP on - CTRL_LOGOFF_EVENT to prevent termination of cygwin application - run as NT service on user logoff, raise SIGHUP instead of SIGQUIT - on system shutdown, clear stopped status in inuse_p on SIGCONT, - set stopped status on stop signals, call _exit() on process - termination in a context of signal thread to terminate while - in a blocking win32 syscall. - * exec.cc: include unistd.h and ctype.h. - (_execve): code moved to sexecve, call sexecve with a NULL hToken - handle. - (sexecve): new, check path, argv[0] and envp to null values, - pass nToken handle to spawn_guts(). - (sexecl): new (code derived from spawn family of functions in - spawn.cc) - (sexecle): new - (sexeclp): new - (sexeclpe): new - (sexecv): new - (sexecp): new - (strccopy): new - (sexecvpe): new - * fhandler.cc (fhandler_base::fstat): add STD_RBITS and STD_WBITS - to st_mode of non-file handles. - (fhandler_dev_floppy::open): clear O_TRUNC bit. - (fhandler_dev_tape::open): likewise - * fhandler.h (fhandler_pty_master): new member pktmode (flag to - indicate pty's packet mode) - * fork.cc (cygwin_fork_helper1): call uinfo_init () in a child code - to read /etc/passwd, /etc/group into memory. - * hinfo.cc (hinfo_vec::build_fhandler): check socket names for right - inheritance on exec(). - * include/Windows32/Defines.h: fixed a typo in LPSTR_TEXTCALLBACKA - definition - * include/Windows32/Functions.h: added prototype for - ImpersonateLoggedOnUser() API call. - * net.cc (cygwin32_socket): duplicate socket handle as inheritable - to avoid Windows95 socket inheritance bug, close the original socket. - (cygwin32_accept): likewise. - * path.cc (mount_info::conv_to_win32_path): do not add trailing - backslash to UNC device names like "\\.\a:", "\\.\tape0:" etc. - * pinfo.cc (pinfo::record_death_nolock) set PID_WAITING_FOR_PARENT - bit to inuse_p instead of assignment - inuse_p is a bit set now. - (pinfo::record_death): check PID_WAITING_FOR_PARENT bit instead of - comparison. - * select.cc (fd_pipe_map::convert_to_unix_fdset): deal with pipe - errors. - (pipethread): likewise - * shared.cc (create_shared_fd_table): allow any process to access - shared arg, needed for sexec() family implementation - * signal.cc (kill_worker): fixed a typo in debug printf - * spawn.cc (spawn_guts): new hToken argument (security token of - logged on user for sexec() calls implementation), added checks for - zero prog_arg and argv[0], if hToken is not NULL run - CreateProcessAsUser() on the current window station/desktop, or - just CreateProcess() otherwise, close hToken after the process is - created. - (_spawnve): pass NULL hToken to spawn_guts(). - * syscalls.cc (_read): set process's read status while in a read call - (_write): set process's write status while in a write call - (stat_worker): if GetFileAttributes() fails, try to call fstat to - support raw devices - * syscalls.h: include windows.h, added sexec() family functions - prototypes. - * sysdef/i386/kernel32.def: ImpersonateLoggedOnUser - new export - * tty.cc: tty attachment logic changed - tty_list::count field - counts now number of tty opens, but not a number of processes, - attached to a tty. - (tty_init): do not call attach_tty() in a exec'ed process - (attach_tty): correct return value if !use_tty. - (tty::init): initialize pgid and hwnd fields. - (tty_list::terminate): clearout tty on master exit. - (tty_list::allocate_tty): fixed a bug in a tty allocation. - (fhandler_tty_master::init): on NT allow any process to open - tty-master process for handle duplication, create synchronisation - events with a world-wide access, initialize winsize structure with - a default values. - (fhandler_tty_slave::open): if a tty doesn't have process group set, - set it to a process group of current process. - (fhandler_tty_slave::write): added missed \n to debug print, tty - write synchronization moved to a more correct place. - (fhandler_tty_slave::read): Sleep time changed for conformance with - other sleeps. - (fhandler_tty_slave::tcsetattr): synchronization added - (fhandler_tty_slave::ioctl): initialize arg.winsize with a tty-stored - value, copy the result of ioctl call to winsize. - (fhandler_pty_master::fstat): small fix - (fhandler_pty_master::open): on NT allow any process to open - pty-master process for handle duplication, initialize winsize - structure with a default values. - (fhandler_pty_master::read): check for pipe errors, changes to support - packet mode - (fhandler_pty_master::ioctl): rewritten, no longer a stub. - (fhandler_pty_master::linearize/de_linearize): save/restore pktmode - value. - * tty.h (class tty): winsize - new member - * utils/ps.cc: show process status just after tty number field - * winsup.h: defines for new bits in inuse_p added, spawn_guts() - prototype changed. - -Thu Jul 24 02:10:25 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: Add tty.o to link and dependency lists, add - tty.h to headers list - * console.cc (fhandler_console::open): save open call flags - (fhandler_console::input_tcsetattr): clear all console modes if - tty support enabled - (FakeReadFile): restart read on signal delivering, changed CTRL - macro to CONTROL to avoid conflict with sys/termios.h, copy as - much as possible chars to output buffer instead of call to - undo_input after every char to prevent timeouts problem. - * cygwin.din: srandom, ptsname, grantpt, unlockpt - new exports. - * dcrt0.cc: include tty.h, new use_tty global variable. - (dll_crt0_1): call events_init() on application startup, set - use_tty to FALSE if CYGWIN_NOTTY environment variable is defined, - do not change console title if CYGWIN_NOTITLE environment - variable set, call tty_init(). - (_exit): call tty_terminate(), events_terminate() and others - in the right order. All modifications of console title are - mutexed to allow tty code to obtain console window handle right. - * exceptions.cc (exception_init): initialization of signal_arrived - event moved to events_init(). - (call_handler): raise signal arrived event after resuming main - thread. - (__cygwin_exception_handler): raise signal instead of calling - ctrl_c_handler, because exception handler is called in a context - of the thread, caused exception, and SuspendThread in call_handler - blocks itself :-) - (ctrl_c_handler): clear stopsig on SIGCONT delivery, call - ResumeThread until suspend count > 1, notify parent about child's - status changed. Care about handling SIGCONT signal. On stop - signals release vital mutexes used by stopped thread, save - signal number for wait(WUNTRACED) calls, notify parent about child's - status change. Do not stop processes running without job control - (when pgid == 0). Ensure that main thread is unblocked before - call _exit(). - (events_init): new - (events_terminate): new - * fcntl.cc (_fcntl): use saved open flags on F_GETFL/F_SETFL instead - of game with access_ variable. Is this variable longer needed? - * fhandler.cc (fhandler_base::linearize/de_linearize): save/restore - openflags_ variable. - (fhandler_base::open): save file open flags. - * fhandler.h (fhandler_base): new openflags_ member, new member - functions get_flags/set_flags, new virtual functions ptsname, - dup_for_fork, tcget(set)pgrp - (fhandler_pipe): remove always_write/except_ready because pipes - are always write ready (not true...) and selectable on read. - new classes fhandler_tty_slave, fhandler_pty_master, - fhandler_tty_master - * fork.cc (cygwin_fork_helper1): inherit control tty number on fork, - call tty_init on child startup. - * hinfo.cc: include stdlib.h and ctype.h. - (hmap_init): take care on exec'ed processes. - (init_std_file_from_handle): open /dev/tty for standard handles if - tty usage enabled. - (build_fhandler): check for tty slave and pty master devices. - * include/exceptions.h: exception handler returns "int" (exception - handling code), not "void". - * include/termios.h: new defines, struct winsize must contain - ws_xpixel and ws_ypixel members (commented now to avoid - incompabilities with existing binaries. Should be uncommented in - next release. - * net.cc (gethostbyaddr): corrected return value - * passwd.cc (parse): remove trailing newline from password - lines (user's shell was reported with trailing newline before). - * pinfo.cc (lock_pinfo_for_update): open mutex code moved to - events_init() in exceptions.cc. - (destroy_pinfo_lock): removed, pinfo_mutex is now closed in - events_terminate() in exceptions.cc. - (init_self): the initial value for pgid must be 0 (no job-controlled - process). - * select.cc: all debug_printf's changed to select_printf. - (fd_pipe_map): new class to implement (polling...) select on pipes. - (pipethread): new - (cygwin32_select): comment out socket only case since generic - code (select on different types of handles) works for sockets too - but is interruptable. The case for always_ready_used is used now - and for polling select (zero timevalue). Changes to support - select on pipes. - * shared.cc (shared_info::initialize): initialize tty table. - * signal.cc (sleep/usleep/sigsuspend/pause): signal_arrived moved - from u area to dll's address space, signal_arrived is manual reset - event now. - (_raise): implemented as kill (self, sig). - (kill_worker): new. Use SendMessage instead of PostMessage to avoid - some timing problems. - * spawn.cc: include tty.h. - (spawn_guts) call close_all_files() on exec, call tty_terminate() - before process exit. Some changes due to moving signal_arrived to - dll's address space. - (_spawnve): inherit control tty number on spawn. - * syscalls.cc (close_all_files): reenabled. The code is ok after - all! The troubles were due to incorrect usage on exec() calls. - (setsid): no longer a stub - (ptsname): new - * termios.cc: all syscall_printf's changed to termios_printf. - (tcget(set)pgrp): rewritten, no longer a stub. - * times.cc (utimes): It looks like Win32 does not allow changing - times of directories, so just return success in this case. - * tty.cc: new file - (tty_init): new - (tty_terminate): new - (attach_tty): new - (detach_tty): new - (tty::init): new - (tty_list::terminate): new - (tty_list::connect_tty): new - (tty_list::free_tty): new - (tty_list::init): new - (tty_list::allocate_tty): new - (fhandler_tty_master::fhandler_tty_master): new - (create_tty_master): new - (fhandler_tty_master::init): new - (doecho): new - (do_input): new - (process_input): new - (do_output): new - (process_output): new - (process_ioctl): new - (fhandler_tty_slave::fhandler_tty_slave): new - (fhandler_tty_slave::open): new - (fhandler_tty_slave::init): new - (fhandler_tty_slave::close): new - (fhandler_tty_slave::write): new - (fhandler_tty_slave::read): new - (fhandler_tty_slave::linearize): new - (fhandler_tty_slave::de_linearize): new - (fhandler_tty_slave::dup): new - (fhandler_tty_slave::dup_for_fork): new - (fhandler_tty_slave::fstat): new - (fhandler_tty_slave::tcgetattr): new - (fhandler_tty_slave::tcsetattr): new - (fhandler_tty_slave::tcflush): new - (fhandler_tty_slave::tcsetpgrp): new - (fhandler_tty_slave::tcgetpgrp): new - (fhandler_tty_slave::send_ioctl_request): new - (fhandler_tty_slave::ioctl): new - (fhandler_pty_master::fhandler_pty_master): new - (fhandler_pty_master::fstat): new - (fhandler_pty_master::open): new - (fhandler_pty_master::close): new - (fhandler_pty_master::write): new - (fhandler_pty_master::read): new - (fhandler_pty_master::tcgetattr): new - (fhandler_pty_master::tcsetattr): new - (fhandler_pty_master::tcflush): new - (fhandler_pty_master::ioctl): new - (fhandler_pty_master::ptsname): new - (fhandler_pty_master::linearize): new - (fhandler_pty_master::de_linearize): new - (fhandler_pty_master::dup_for_fork): new - (grantpt): new - (unlockpt): new - * tty.h: new - * utils/ps.cc: display process's control tty number. - * wait.cc (wait_for_single): removed. - (wait_for_any): all code moved to wait4(). - (wait4): rescan process table on child status changes, support for - WUNTRACED flag, avoid time races on child exit, correct return - value on timeout. - * window.cc: misc changes to wait creation of process's hidden - window to avoid race conditions on multiprocessor systems. - * winsup.h: misc changes to support all of the above. - -Thu Jul 24 02:10:25 1997 Geoffrey Noer <noer@cygnus.com> - - * net.cc (cygwin32_shutdown): New implementation to replace - stub previously present - -Tue Jul 22 14:59:22 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove random, srandom - * Makefile.in: remove random/srandom-related lines - -Tue Jul 22 14:10:32 1997 Ian Lance Taylor <ian@cygnus.com> - - * path.cc (realpath): New C function. - * cygwin.din: Export realpath. - - * cygwin.din: Export srandom. - -Wed Jul 9 12:26:03 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: libiberty random.o ends up in winsup, link - in that obj for now - -Tue Jul 8 14:02:41 1997 Ian Lance Taylor <ian@cygnus.com> - - * libcmain.cc (main): Pass wShowWindow field from startup info to - WinMain. - -Mon Jul 7 17:47:48 1997 Geoffrey Noer <noer@cygnus.com> - - * path.cc: respace, reword comments - * times.cc (utimes): add FIXME - -Tue Jun 24 18:31:27 1997 Geoffrey Noer <noer@cygnus.com> - - * winsup.h: adjust protos to reflect the above, add enum os_type - which contains {winNT, win95, win32s, unknown} - * security.cc (is_nt): Delete - * syscalls.cc (windows_95): Delete - (get_os_type): New local function which returns os_type. Replaces - windows_95() and is_nt(). - - * fhandler.cc: Reformat. Call get_os_type() instead of - windows_95() and/or is_nt(), reorder so NT cases are first. - * mmap.cc: ditto - * net.cc: ditto - * syscalls.cc: ditto - * syslog.cc: ditto - - * uname.cc (uname): call get_os_type to fill new our_os local - variable, check that when filling out utsname struct, default - to i386 when we can't find out the specific Intel processor - variant. - * fhandler.cc (get_file_owner): remove doit variable - (get_file_group): ditto - * mmap.cc: extern "C" individual functions instead of wrapper - around most of file. - * misc.cc: minor reformat - * heap.cc (_sbrk): split a = b = c statement into two to - make code clearer and avoid invalid C++ casting warning during - compile. - * path.cc (symlink_follow): initialize syml_p and exec_p to zero - * select.cc: respace - (selectthread): cast first arg of WINSOCK_FD_SET - * ntea.cc (NTReadEARaw): add missing casts in front of malloc calls - * utils/mount.cc: remove mixed option since that hasn't been - supported for quite some time - -Sun Jun 22 17:27:03 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/windows.h: If RC_INVOKED is defined, don't include - limits.h, stdarg.h, Structures.h, Functions.h or Sockets.h, and - don't typedef BOOL. - * include/Windows32/Base.h: Don't do any typedefs if RC_INVOKED is - defined. - - * include/Windows32/Sockets.h (MAXHOSTNAMELEN): Don't define if - already defined. - * include/sys/param.h (MAXHOSTNAMELEN): Likewise. - -Fri Jun 20 11:06:09 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * include/sys/wait.h: correct operator precidence bug - in WIFSIGNALED - -Thu Jun 19 12:58:45 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - Handle unblocked pending signals on sig_mask changes - * exceptions.cc (return_handler): renamed to set_process_mask - (set_process_mask): new; use to set process mask instead of direct - u->self->sig_mask manipulations. - * winsup.h: rename return_handler proto to set_process_mask - * signal.cc: throughout file, call set_process_mask() instead of - direct manipulations of u->self->sig_mask. - (pause): new - * cygwin.din: add pause() export - * syscalls.cc (system): correct return value - -Wed Jun 18 22:01:56 1997 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: add $(srcdir)/../newlib/libc/sys/cygwin32 to - the list of includes since that's where sys/dirent.h is - supposed to live - * include/sys/dirent.h: moved to newlib/libc/sys/cygwin32/sys - -Wed Jun 18 13:56:47 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * signal.cc (sigsuspend): deal with pending unblocked signals - * winsup.h: add proto for return_handler (sigset_t) - -Wed Jun 18 02:02:13 1997 Geoffrey Noer <noer@cygnus.com> - - respaced console.cc, fhandler.cc, syscalls.cc, pinfo.cc, - fork.cc, spawn.cc - -Tue Jun 17 14:57:09 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: add getpgid, killpg exports, delete duplicate - random export - * fork.cc (cygwin_fork_helper1): inherit pgid and sid on fork - * misc.cc (cygwin32_*env): save environ value in __cygwin_environ - too. Is __cygwin_environ variable really neccessary? Why not - export cygwin.dll's environ variable with "__cygwin_environ" name? - * pinfo.cc (pinfo::init_self): initialize pgid and sid - * signal.cc (kill_worker): new - (_kill): rewritten to support process groups - (killpg): new - * spawn.cc (_spawnwe): inherit pgid and sid on spawn family calls - * stubs.cc (setpgrp, getpgrp): remove stubs - * syscalls.cc (setpgid, getpgid, setpgrp, getpgrp): new - * termios.cc (setpgid): remove stub - * utils/ps.cc (main): add pgid to output, change output - format - * wait.cc (wait_for_any): add intpid argument, arrays ctable and - ptable have now fixed MAXIMUM_WAIT_OBJECTS size to avoid extra - scan of process table, changes for process groups support. - (wait4): misc changes to support process groups - * winsup.h (pinfo class): add new variables pgid, sid. - Define __cygwin_environ. - -Mon Jun 16 18:30:21 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (spawn_guts): set child->hProcess and child->hThread, - CloseHandle on pi.hThread at end of spawn_guts instead of right - after starting the child process, - _P_WAIT needs to be handled separately from _P_OVERLAY - -Sun Jun 15 23:51:10 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: remove setenv/getenv-related exports, - export cygwin32_ equivalents - * exec.cc: check ? - * misc.cc (cygwin32_getenv): new - (cygwin32_putenv): new - cygwin32_setenv): new - (cygwin32_unsetenv): new - * spawn.cc: call cygwin32_getenv instead of getenv, - call spawn with *u->envptr instead of environ - * winsup.h: define **environ as extern, define *cygwin32_getenv - -Sun Jun 15 20:51:09 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: add ../libiberty/random.o to EXTRA_OFILES - * cygwin.din: remove exports of tgetent and _tgetent, added random - * exception.cc (exceptions_init): make OurThread handle - noniherittable, remove unused buf array. - (return_handler): add restmask argument (sig_mask value before - calling signal handler) - (call_handler): save sig_mask in user's stack before calling signal - handler, change PulseEvent() call to SetEvent() -- there were - losses of signal_arrived events if main thread was not in wait - state. - (ctrl_c_handler): add support for SIGIO signal. - * fhandler.cc (fhandler_base::linearize/delinearize): - save/restore async_ flag - (fhandler_base::fhandler_base): clear async_ flag - * fhandler.h: add async_ as new variable in fhandler_base, - add get_async/set_async functions - * misc.cc (tgetent): remove stub - * net.cc (fhandler_socket::write): raise SIGPIPE if write to - disconnected socket. - (cygwin32_accept): check the result of find_unused_handle() before - accept() call, set errno if no more file descriptors available. - (fhandler_socket::ioctl): add support for async I/O on sockets - * pinfo.cc (pinfo::clearout): clear sig_pending mask - * syscalls.cc (readv, writev): rewrite - * window.cc (WndProc): add support for async I/O - * winsup.h: define WM_ASYNCIO - -Mon Jun 9 18:51:09 1997 Geoffrey Noer <noer@cygnus.com> - - * include/winsock.h: fix protection wrapper name - -Fri Jun 6 12:41:09 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Defines.h: Define CommonDlgExtendedError - return values (CDERR_*, PDERR_*, CFERR_*, FNERR_*). Define - TEXTMETRIC tmPitchAndFamily values (TMPF_*). - - * include/dlgs.h: New file; just includes windows.h. - * include/cderr.h: Likewise. - - * libcmain.cc (main): Don't pass the program name to WinMain. - - * cygwin.din: Export strlwr and strupr. - - * include/winreg.h: New file; just includes windows.h. - * include/winsock.h: New file; just includes windows.h and - Windows32/Sockets.h. - * include/Windows32/Sockets.h: Don't define u_char, et. al. if - _SYS_TYPES_H is defined. Undefine fd_set if it is defined. - - * include/Windows32/Functions.h: Define MoveMemory, FillMemory, - and ZeroMemory as macros. - - * times.cc (_timezone, _daylight, _tzname): New global variables. - (tzset): New function. - * cygwin.din: Don't set _timezone to timezone. Export tzset and - _tzset. Export _timezone, _daylight, and _tzname. - - * dcrt0.cc (__cygwin_environ): New global variable. - (dll_crt0_1): Set __cygwin_environ to environ. - * cygwin.din: Export __cygwin_environ. - -Thu Jun 5 17:52:02 1997 Ian Lance Taylor <ian@cygnus.com> - - * times.cc (gettimeofday): Check return values and set tz_dsttime - correctly. - -Wed Jun 4 00:04:33 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_pipe::lseek): new virtual function - * fhandler.h: add lseek to fhandler_pipe class - -Tue Jun 3 19:20:47 1997 Ian Lance Taylor <ian@cygnus.com> - - * include/Windows32/Defines.h (IMAGE_DOS_SIGNATURE): Define. - (IMAGE_NT_SIGNATURE): Define. - * include/Windows32/Structures.h (IMAGE_DOS_HEADER): Define. - -Tue Jun 3 13:05:26 1997 Geoffrey Noer <noer@cygnus.com> - - * console.cc: respace - * fhandler.h: add virtual off_t lseek to fhandler_socket and - fhandler_tty defs, respacing - -Mon Jun 3 12:21:20 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * cygwin.din: export wait3, wait4 - * dcrt0.cc (_exit): call fill_rusage - * exceptions.cc (ctrl_c_handler): increment rusage_self.ru_nsignals++ - * fhandler.cc (fhandler_pipe::fhandler_pipe): new stub - * fhandler.h: add fhandler_pipe class - * hinfo.cc (hinfo_vec::build_fhandler): call - GetNumberOfConsoleInputEvents instead of GetConsoleScreenBufferInfo, - handle fhandler_pipe class - * pinfo.cc: include sys/resource.h, - (pinfo::clearout): erase memory associated with rusage_self - and rusage_children - * resource.cc (getrusage): rewrite - (add_timeval): new helper function - (add_rusage): new helper function - (fill_rusage): new helper function - * shared.cc (create_shared_fd_table): pass file mapping handle to - children letting them close it - * spawn.cc (spawn_guts): call fill_rusage and add_rusage as - appropriate - (cwait): ditto - * times.cc (__to_clock_t): add flag arg which says whether or not - to substract FACTOR from total - (times): also fill in tms_cstime and tms_cutime, add flag arg to - __to_clock_t calls - (totimeval): add extra flag passed on to __to_clock_t - (gettimeofday): add extra flag passed on to totimeval - * wait.cc (wait_for_single): add extra rusage arg, change - wait_found calls to account for extra arg - (wait_for_any): ditto - (_wait): call wait4 instead of waitpid - (wait_found): add rusage arg, deal with it calling add_rusage as - appropriate - (wait_pid): now just calls wait4 - (wait4): was wait_pid but adds extra rusage arg and deals with it - (wait3): new, calls wait4 - * winsup.h: include sys/resource.h, add rusage_self and - rusage_children to pinfo class, fix totimeval proto, add protos - for fill_rusage and add_rusage - * passwd.cc: include termios.h - (getpass): new - * stubs.cc (getpass): delete old stub - -Tue Jun 3 14:51:47 1997 Ian Lance Taylor <ian@cygnus.com> - - * times.cc (ftime): New function. - * cygwin.din: Export ftime. - -Mon Jun 2 14:34:00 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * include/limits.h: NGROUPS_MAX should be 0 - * include/asm/socket.h: add missing additional options - including SO_SNDBUF, SO_RCVBUF, et al - * include/sys/wait.h: include sys/resource.h, add protos for - wait3() and wait4(). - -Mon Jun 2 15:26:35 1997 Ian Lance Taylor <ian@cygnus.com> - - * utils/configure.in: Call AC_PROG_INSTALL. - * utils/configure: Rebuild. - -Mon Jun 2 11:44:14 1997 Geoffrey Noer <noer@cygnus.com> - - * grp.cc (getgroups): new - * cygwin.din: export getgroups - -Fri May 30 16:47:38 1997 Geoffrey Noer <noer@cygnus.com> - - * uname.cc (uname): completely rewrite, using more of the - SYSTEM_INFO struct to figure out information (now x86 type is - set correctly in Windows 95. - * version.h: increment CYGWIN_DLL_VERSION_MINOR - * include/Windows32/Structures.h: SYSTEM_INFO struct's first - member is dwOemId, not dwOemID according to MS docs - -Fri May 30 16:47:38 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * window.cc: new file - * Makefile.in: add window.cc to lists of source, object files, - and dependencies. - * console.cc: include <stdlib.h>, scroll_screen() added to - fhandler_console class, - add support for default screen attributes, - (open): set default_color on tty open - (linearize/delinearize): pass default_color to the child process - (clear_screen): fix Win95-specific bug, add support for - default_color. - (clear_to_eol): remove - (fhandler_console::fhandler_console): set default_color to - white on black - (char_command): add invisible screen attribute, misc changes - (FakeReadFile): do not convert AltGr-char to ESC-char sequence - to support international keyboards. - * cygwin.din: export setitimer, getitimer - * dcrt0.cc (dll_crt0_1): add call to window_init(), uppercase - environment vars only if started by a win32 process. - (_exit): add call to window_terminate() - * fhandler.cc: add mode argument to open() calls, - (fhandler_base::open): do not check for symlink in path_conv - calls, calls to set/get_file_attribute() instead of NTRead/WriteEA. - (fhandler_base::fstat): use get_file_attribute if possible - (fhandler_disk_file::open): remove unneeded unixattr checks - * fhandler.h: changes to support above. - * fork.cc (cygwin_fork_helper_1): pass umask value to the child, - call window_init() in child - * ntea.cc: enable EA calls, add FILE_FLAG_BACKUP_SEMANTICS - to CreateFile calls to support EA of directories. - * path.cc (symlink): add mode argument to _open call, remove - unneeded stuff - (symlink_check_worker): add checks for "system" attribute and EA. - * security.cc (get/set_file_attribute): new. Calls EA code now, - placeholders for NTFS security support. - * signal.cc (alarm): remove in favor of new implementation in - window.cc - (RemoteThread): remove - (_kill): use window messages to emulate signals on both NT and Win95 - * spawn.cc (spawn_guts): call window_terminate on exec() - (cwait): correct return result code - (_spawnve): add umask inheritance, some bug fixes - * syscalls.cc (_open): add mode argument, umask support - (umask): rewritten - (chmod): try to set file attributes, set system bit on symlinks - (stat_worker): fix nlinks of directories, add mode argument - to _open() call. - * syscalls.h: add mode argument to _open() prototype - * winsup.h: changes to support above - -Tue May 27 12:22:19 1997 Geoffrey Noer <noer@cygnus.com> - - * times.cc (gettimeofday): return 0 on success instead of 1 - (utimes): init res to 0 - -Wed May 21 11:29:24 1997 Geoffrey Noer <noer@cygnus.com> - - * include/limits.h: define NGROUPS_MAX - -Tue May 20 14:13:59 1997 Geoffrey Noer <noer@cygnus.com> - - * passwd.cc: rename function setpwend to setpwent (typo) - * cygwin.din: ditto, also remove name__C9type_info from - exports list. - -Wed May 14 17:38:39 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * signal.cc (sleep): call WaitForSingleObject instead of Sleep - (usleep): ditto - -Wed May 7 15:34:07 1997 Geoffrey Noer <noer@cygnus.com> - - Public gnu-win32 beta 18 release made - -Sun May 4 15:34:07 1997 Geoffrey Noer <noer@cygnus.com> - - patch from Mikey <jeffdb@netzone.com>: - * console.cc (FakeReadFile): FlushConsoleInputBuffer if - flags & ENABLE_LINE_INPUT and then return ReadFile - -Fri May 2 10:53:10 1997 Geoffrey Noer <noer@cygnus.com> - - * signal.cc: make exported functions extern "C" - * include/cygwin32/socket.h: replace values assigned to - IP_ definitions with ones suitable for use with WinSock. - * cygwin.din: add exports for sigpending, sigsuspend, remove - exports for __9type_infoPCc and before__9type_infoRC9type_info - * winsup.h: remove signal-related protos from winsup.h in favor - of newlib/libc/include/sys/signal.h - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * signal.cc: (sigpending) new - (sigsuspend): new - * utils/termcap: replace with one from Linux - -Tue Apr 29 19:03:29 1997 Geoffrey Noer <noer@cygnus.com> - - * utils/ps.cc: print Win32 pid as unsigned int so Windows 95 - pids don't show up as negative values - -Tue Apr 29 17:20:57 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (spawn_guts): allocate new cygwin PID for a child - created with spawn(!_P_OVERLAY) - -Tue Apr 29 13:24:59 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * console.cc: assorted console fixes - * select.cc (fd_socket_map::convert_to_unix_fdset): only - do full debug_printf if used_ valid - * exceptions.cc: correct constants used for checking size of - stack (should be negated) - * fhandler.cc (fhandler_base::open): fix syscall_printf typo - - patch from marcus@cathcart.sysc.pdx.edu (Marcus Daniels): - * include/sys/mman.h: define MAP_ANON MAP_ANONYMOUS (typo fix) - -Mon Apr 28 15:19:44 1997 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove libgcc2.a internal functions - -Mon Apr 28 14:57:04 1997 Michael Meissner <meissner@cygnus.com> - - * cygwin.din (before__9type_infoRC9type_info): Remove, the - type_info::before(type_info const &) function no longer seems to - exist. - -Mon Apr 28 14:19:44 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * console.cc (undo_input): new - (scroll_screen): new - (fhandler_console::output_tcsetattr): fix debug printf - (fhandler_console::input_tcsetattr): no longer call set_w_binary - (fhandler_console::cursor_get): fix base_chars - (fhandler_console::char_command): make savex, savey globals, - add char buf, add code to handle clears better, many other - additions - (fhandler_console::write_normal): assorted fixes - (fhandler_console::write): move screen scroll code to - scroll_screen(), support Reset Linux terminal, Restore cursor - position, Save cursor position, Skip orig_colors - (FakeReadFile): enlarge keytable to include shift/control/alt - values - Command set still missing set pelette, character sets, and - UTF codes. - -Mon Apr 28 12:19:44 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_base::open): only include - FILE_SHARE_DELETE in shared when running NT (Win 95 doesn't - support it). - -Thu Apr 24 18:57:21 1997 Geoffrey Noer <noer@cygnus.com> - - patch from Jeremy Allison <jra@cygnus.com>: - Correct problem caused by setting /dev/null fd to -1 which is - same as INVALID_HANDLE_VALUE. - * fhandler.h: set DEV_NULL_HANDLE_VALUE to -2 - * fhandler.cc (fhandler_dev_null::open): set handle to - DEV_NULL_HANDLE_VALUE instead of INVALID_HANDLE_VALUE - * hinfo.cc (hinfo_vec::build_fhandler): add case for - handle == (HANDLE) DEV_NULL_HANDLE_VALUE - -Thu Apr 24 15:12:13 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_base::write): catch return of raw_write - and return -1 if it failed - -Thu Apr 24 10:42:01 1997 Geoffrey Noer <noer@cygnus.com> - - path.cc (symlink): restore chmod call for now since the NTEA code - isn't quite up to the task yet. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exceptions.cc (ctrl_c_handler): corrections to Apr 18 patch - * fhandler.cc: ditto - * dcrt0.cc (dll_crt0_1): move console title setting code, - set up default signal handlers - * fork.cc (cygwin_fork_helper1): also set child->sigs and - child->sig_mask - * spawn.cc (spawn_guts): if mode _P_OVERLAY, set up child - signal handlers. - -Mon Apr 21 22:29:49 1997 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/ASCIIFunctions.h: remove old def of - GetEnvironmentStringsA, add new one based on def from Functions.h - * include/Windows32/Functions.h: define GetEnvironmentStrings as - GetEnvironmentStringsA when not unicode, remove definition of - GetEnvironmentStrings in favor of ones in ASCIIFunctions.h and - UnicodeFunctions.h - * include/Windows32/Defines.h: add missing XTYP_ definitions, - change value of XTYPF_NOBLOCK to 0x0002 from 0x2 - * include/Windows32/Sockets.h: comment out redefinitions of - errno.h-type constants since MS doesn't define them and we - have our own in errno.h - -Fri Apr 18 10:40:30 1997 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Structures.h: add typedefs for - LPDLGITEMTEMPLATE, PDLGITEMTEMPLATE. - * include/Windows32/Defines.h: define FW_REGULAR FW_NORMAL - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exceptions.cc (ctrl_c_handler): do not reset signal - handler to SIG_DFL while processing the signal, instead - block the signal while handler executes. - * signal.cc (_raise): fixes related to the above - -Thu Apr 17 23:50:50 1997 Geoffrey Noer <noer@cygnus.com> - - * path.h: increase path length in mount table to MAX_PATH - in size instad of 30. This will increase cygwin.dll memory - usage by 20K. We need to remove static allocations from - path code. - -Thu Apr 17 10:11:50 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exceptions.cc (ctrl_c_handler): CTRL_CLOSE_EVENT should - generate SIGHUP instead of SIGQUIT - * signal.cc (_raise): rewrite - -Wed Apr 16 10:42:46 1997 Geoffrey Noer <noer@cygnus.com> - - * version.h: increment CYGWIN_DLL_VERSION_MINOR - * syscalls.cc (system): use spawnvp instead of fork/exec - * ntea.cc: make all functions return false for now; they - were causing an obscene performance hit - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * console.cc (FakeReadFile): patch to support EINTR, EIO - * exceptions.cc: add support for return_handler, remove - control-C counter - (return_handler): new - (ctrl_c_handler): handle SIGCHLD, other assorted fixes - * fhandler.cc (fstat): reset errno to 0 - * passwd.cc (search_for): correct location of a debug printf - * select.cc: patches to handle signals better, respacing - * signal.cc (_raise): misc fixes - (_kill): call OpenProcess with PROCESS_ALL_ACCESS instead of - PROCESS_TERMINATE - * spawn.cc: more signal fixes - * syscalls.cc: add two new errors to errmap[] - (_stat_worker): fill out buf struct when stating directories - * wait.cc (wait_for_single): use INFINITE instead of large value - for timeouts - (wait_for_any): init nprocinfo to 1, not 0, other small fixes - * winsup.h: add signal_arrived to per_process class, reduce - amount of reserved space, add sig_pending to pinfo class - -Tue Apr 15 17:01:34 1997 Geoffrey Noer <noer@cygnus.com> - - * utils/mkpasswd.c: change default shell to /bin/sh - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * utils/kill.cc: support sending numbered signals using - signal code instead of just calling TerminateProcess - -Tue Apr 15 15:24:55 1997 Ian Lance Taylor <ian@cygnus.com> - - * utils/Makefile.in (INSTALL): Set to @INSTALL@. - (INSTALL_PROGRAM): Set to @INSTALL_PROGRAM@. - (INSTALL_DATA): Set to @INSTALL_DATA@. - (INSTALL_XFORM): Remove. - (install): Depend upon installdirs. Use $(program_transform_name) - directly, rather than using $(INSTALL_XFORM). - (installdirs): New target. - -Mon Apr 14 16:32:05 1997 Ian Lance Taylor <ian@cygnus.com> - - * utils/Makefile.in (INSTALL): Change install.sh to install-sh. - -Mon Apr 14 12:33:22 1997 Geoffrey Noer <noer@cygnus.com> - - * registry.cc: change key name to "Cygnus Solutions" instead - of "Cygnus Support" - * security.cc: don't include windows.h, already in winsup.h - * Makefile.in: add dependencies section entries for security.cc - and ntea.cc - -Fri Apr 11 00:03:49 1997 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc: add harmless cast to FreeEnvironmentStrings call - * registry.cc: added more presumed-harmless casts - * shared.cc: and another, and respacing - * utils/Makefile.in: don't need to link with -lkernel32 since it's - included automatically - * fhandler.cc: fhandler_console and FakeReadFile moved to - console.cc, stop including sys/stat.h, sys/param.h, sys/types.h, - stdio.h, ctype.h, pwd.h, grp.h, stdlib.h - reordered/respaced code so now we have all of fhandler_base, then - all of fhandler_disk_file, then all of fhandler_tty, etc... - (fhandler_base::ioctl): delete unused switch statement - * console.cc: added fhandler_console and FakeReadFile from - fhandler.cc, add includes necessary for this code - * grp.cc, Makefile.in: fix copyright dates - * ntea.cc: include string.h - -Thu Apr 10 22:00:43 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * path.cc (symlink): do NTWriteEA instead of chmod using same - flags - -Thu Apr 10 17:36:43 1997 Geoffrey Noer <noer@cygnus.com> - - patch from gunther.ebert@ixos-leipzig.de (Gunther Ebert): - * Makefile.in: add libnetapi32.a to DLL_IMPORTS list, build security.o - * fhandler.cc (get_file_owner): new - (get_file_group): new - (fhandler_base::fstat): do another path_conv and check for error, - use get_file_owner and get_file_group to set buf->st_uid and - buf->st_gid - * fhandler.h: add protos for get_file_owner() and get_file_group() - * grp.cc (add_grp_line): new helper function - (read_etc_group): new helper function - (getgrgid): rewritten, no longer a stub - (getgrnam): rewritten, no longer a stub - (endgrent): rewritten, no longer a stub - (getgrent): rewritten, no longer a stub - * include/Windows32/ASCIIFunctions.h, include/Windows32/Base.h, - include/Windows32/Functions.h, include/Windows32/Defines.h, - include/Windows32/Structures.h, include/Windows32/UnicodeFunctions.h: - misc security/uid-related additions - * passwd.cc (add_pwd_line): new - (read_etc_passwd): new - (search_for): rewrite - (setpwend): rewritten, no longer a stub - (getpwent): rewritten, no longer a stub - (endpwent): rewritten, no longer a stub - * security.cc: new file - (get_world_sid): new - (world_full_access): new - (get_id_from_sid): new - (is_nt): new - * stubs.cc (endgrent): remove - (getgrent): remove - * syscalls.cc (rel2abssd): new - (set_process_privileges): new - (chown): now implemented for real for NT, still a stub in Win95 - (_stat_worker): use get_file_owner and get_file_group to set - buf->st_uid and buf->st_gid - * uinfo.cc: add protos for read_etc_passwd, read_etc_group - (uinfo_init): call read_etc_passwd(), read_etc_group() - * utils/Makefile.in: build mkpasswd, mkgroup - * utils/mkgroup.c: new, use to make an /etc/group file - * utils/mkpasswd.c: new, use to make an /etc/passwd file - * winsup.h: add protos for is_nt(), get_id_from_sid() - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: build ntea.o - * dcrt0.cc (dll_crt0_1): move console title code here from spawn_guts - * exceptions.cc (ctrl_c_handler): small signal fixes, prepare - things so we can eventually reset the signal handler to SIG_DFL - * fhandler.cc (fhandler_disk_file::open): first check for EA info - about exec/symlink status before doing it the hard way - (fhandler_make_pipe): u->self->hmap.build_fhandler takes extra arg - (fhandler_base::open): make use of NTEA - * fhandler.h: remove init_std_file_from_handle, build_fhandler - protos - * hinfo.cc: include mywinsock.h and sys/socket.h, define - __INSIDE_CYGWIN_NET__, __INSIDE_CYGWIN32__ - (hinfo_vec::build_fhandler): takes an additional handle arg, - call GetConsoleScreenBufferInfo with it to see if are - fhandler_console, call GetCommState with it to see if we're - an fhandler_tty, call getpeername with it to see if we wamt - fhandler_socket. Old determining methods still work too. - * path.cc (symlink): chmod file to ((S_IFLNK) | (STD_RBITS) | - (STD_WBITS) | (STD_XBITS)) permissions - * select.cc: include stdio.h - (cygwin32_select): fix typo (missing an &), - assorted fixes for mixed socket/handles case - * shared.cc (create_shared_fd_table): set sa.bInheritHandle to 1 - to support reparenting - * signal.cc (_kill): add FIXME, cleanup return codes - * spawn.cc (spawn_guts): remove console title code, add code - to support reparenting of child processes - * syscalls.cc: add new third arg to hmap.build_fhandler calls - (chmod): make use of NTWriteEA - * ntea.cc: new file, NTEA handling routines - * times.cc: fix value of NSPERSEC - (utimes): fix return value - * wait.cc: changes to support reparenting, change INFINITE to - constant 500 to avoid "blocking win32 syscalls and signals" - problem - * winsup.h: add NTReadEA, NTWriteEA protos, define REPARENTING, - fix build_fhandler proto to add new arg, add handles hrProcess and - hrThread - -Tue Apr 9 00:25:33 1997 Geoffrey Noer <noer@cygnus.com> - - * libcerr.cc: remove fixed size of sys_errlist array, figure out - sys_nerr from the sizeof the array rather than hard coding it. - * shared.cc (open_shared_file_map): add typecast - * signal.cc (_kill): SIGKILL should avoid exception handler - * fork.cc (cygwin_fork_helper1): don't call ExitProcess with a - negative arg on recreate_mmaps_after_fork failure - * include/Windows32/Defines.h: define VER_PLATFORM_WIN32_WINDOWS - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc: move reent_data from private address space to cygwin.dll - * fork.cc: copy parent's reent_data to the child - * cygwin.din: export reent_data - * winsup.h: add as public struct _reent reent_save to pinfo class - - another patch from sos@prospect.com.ru (Sergey Okhapkin): - * winsup.h: add ctrl_c_handler prototype - * exceptions.cc (init_exceptions): don't use u->self->hThread - since for a spawned process, this contains thread id of parent - Win32 process, not the child's. Instead use GetCurrent* funcs - to get thread handle. - (ctrl_c_handler): add more signal support, especially for kill - * signal.cc (_kill): more signal support, using CreateRemoteThread - under NT. Win95 only supports SIGKILL since it doesn't have this - call. - * syscalls.cc (windows_95): first version check should be an & - of 0x80000000 instead of 0x8000000 - (close_all_files): hmap[i] doesn't always exist, for now comment - out code - - patch from marcus@sysc.pdx.edu (Marcus Daniels): - * path.cc (skip_n_slashes): new local function - (symlink_check_worker): new local function, used to be symlink_check - (symlink_check): calls symlink_check_worker and returns - whether path is a symlink or not. - (symlink_expand): new local function, expand a symlink into - a file or directory path using symlink_check_worker - (path_conv::path_conv): takes extra follow_mode arg - (symlink_follow): call symlink_expand - * fhandler.cc, syscalls.cc: fix path_conv references - * path.h: fix path_conv prototype - -Mon Mar 24 19:44:28 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * select.cc: fix Feb 19 patch to select - * syscalls.cc: add statfs() and fstatfs() calls - * include/sys/vfs.h: new header file to support these - * cygwin.din: add them to dll export list - -Tue Mar 18 18:10:24 1997 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc: change idata3 asm section to have five null fields - instead of eight to conform to how MS does this section. - -Sun Mar 9 13:10:55 1997 Geoffrey Noer <noer@cygnus.com> - - * include/sys/resource.h: add missing struct members to rusage struct - * resource.cc: added setting of missing fields, mostly to 0 until - we investigate how to set correct values. - -Wed Feb 19 17:44:06 1997 Jeremy Allison <jra@cygnus.com> - - * select.cc: Added fixes from sos@prospect.com.ru (Sergey Okhapkin) - to implement blocking select on sockets/handles. This isn't - the way I finally want to do this, but I won't get chance - to do the re-write for a month or two so... - * include/Windows32/Defines.h: Added defines for NT ACL - stuff. - -Tue Feb 18 12:28:11 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler.cc: support reverse index escapes in console code - -Fri Feb 14 18:55:01 1997 Jeremy Allison <jra@cygnus.com> - - * path.cc: Fixed normalize_posix_path() so that double slashes - are removed, except for those starting a UNC path. The command - ls .///////FILE_IN_DIRECTORY works now. - -Thu Feb 13 14:06:04 1997 Geoffrey Noer <noer@cygnus.com> - - * path.cc: remove SLASH_P define and - * winsup.h: define it here instead - patch from scottk@utig.ig.utexas.edu (Scott Kempf): - dirsearch.cc (opendir): fix problem with accessing "/" - -Mon Feb 10 13:57:11 1997 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * misc.cc: replace nice () stub with Win32 implementation - * spawn.cc - * fork.cc: use priority returned by GetPriorityClass - -Wed Feb 5 16:56:23 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc, syscalls.cc: minor reformat - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc: set console title to reflect what's running - * winsup.h: TITLESIZE define added - -Mon Feb 3 16:53:10 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.h: fix typo - * fhandler.cc: check_execable_p should only take one arg now - -Mon Feb 3 16:16:39 1997 Jeremy Allison <jra@cygnus.com> - - * fhandler.cc: Removed open_helper, turned it into - fhandler_base::open and added fhandler_disk_file::open. More - correct C++. - fhandler_disk_file: Moved check_execable_p into fhandler_disk_file. - tty ports are now closed correctly. - * fhandler.h: Changes to support the above. - -Fri Jan 31 19:14:34 1997 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_base::open_helper): new function - containing the common open() code. symlink and executable - status defaults to 0. - (fhandler_tty::open): new function that calls - fhandler_base::open_helper - (fhandler_base::open): remove common code now in open_helper, - leaving symlink checking and executable checking - * fhandler.h: changes for the above, open_helper is protected - -Thu Jan 30 15:23:15 1997 Geoffrey Noer <noer@cygnus.com> - - * hinfo.cc: also treat com3 and com4 as special files - * spawn.cc (spawn_guts): check return of WaitForSingleObject - in _P_WAIT case, some reformatting - -Tue Jan 28 10:46:16 1997 Jeremy Allison <jra@cygnus.com> - - * net.cc: Added errors "WSAEINVAL", "WSAEFAULT" as these - can be returned for net calls. - * fhandler.cc: Added FILE_SHARE_DELETE to open share modes. - Much closer to POSIX on NT now (ignored on '95). - -Fri Jan 17 13:32:26 1997 Geoffrey Noer <noer@cygnus.com> - - * configure.in: - * utils/configure.in: define LIB_AC_PROG_CC to get around - autoconf 1.12 problem. Invoke it instead of AC_PROG_CC. - * configure: - * utils/configure: regenerate - -Thu Jan 16 12:35:41 1997 Geoffrey Noer <noer@cygnus.com> - - * mmap.cc: added missing copyright notice - -Tue Jan 14 12:51:12 1997 Jeremy Allison <jra@cygnus.com> - - * cygwin.din: Added get_osfhandle, cwait and all the - spawn functions. - * exec.cc: Added include of process.h. Changed call to - spawn_guts to add extra parameter. - * libcerr.cc: Added extra error messages. Ensured - messages start at zero. - * spawn.cc: Changed spawn_guts to do wait and nowait - calls. Added all spawn functions. - * syscalls.cc: Added get_osfhandle. - * winsup.h: Removed incorrect spawn definitions, - corrected prototypes for spawn_guts and file_exists - calls. - * include/io.h: New file. Added for get_osfhandle. - -Thu Jan 9 14:20:01 1997 Jeremy Allison <jra@cygnus.com> - - * exceptions.h: Moved from winsup to winsup/include. - * include/mywinsock.h: Added getprotobynumber and - getservbyport. - * Makefile.in: Moved exceptions.h dependency. - * cygwin.din: Added cygwin32_getprotobynumber and - cygwin32_getservbyport. - * net.cc: Added cygwin32_getprotobynumber and - cygwin32_getservbyport. - -Wed Jan 8 14:15:35 1997 Jeremy Allison <jra@cygnus.com> - - * fhandler.cc: Fix from Scott Kempf (scottk@rimu.ig.utexas.edu) - to ensure creation_disposition is set correctly in open. - -Fri Jan 3 12:10:22 1997 Jeremy Allison <jra@cygnus.com> - - * fork.cc: Added parameter to recreate_mmaps_after_fork - in child, and added set_child_mmap_ptr() call in parent. - Needed as cygwin.dll statics are not copied accros a fork. - * mmap.cc: Added parameter to recreate_mmaps_after_fork, - added set_child_mmap_ptr() call. - * winsup.h: Added mmap_ptr to pinfo struct. Removed obsolete - comments. - * Makefile.in: Added -I../libio, needed to rebuild source - using STL. Also added -nostdinc++ on recommendation of - Mike Stump (mrs@cygnus.com). - -Thu Jan 2 17:23:10 1997 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc: Added a call to initialize winsock on app - init. - * fork.cc: Added call so child initializes winsock before - returning from the fork. This makes many network daemons - run correctly that did not before (apache soon...). - * net.cc: Removed calls to checkinit, this is now done on - app startup. Renamed checkinit to socket_checkinit and - removed static scope. - * winsup.h: Added prototype for socket_checkinit(). - -Thu Jan 2 12:25:06 1997 Jeremy Allison <jra@cygnus.com> - - * dcrt0.cc (api_fatal): Check that u and u->self are - not zero before indirecting through them. - * fork.cc: Changed security descriptor for fork - mutexes to allow access by all. - * pinfo.cc: Changed security descriptor for shared - area to allow access by all. - * shared.cc: Added get_null_sd() call to return - security descriptor allowing access by all. Needed - when a cygwin32 service is running and also interactive - cygwin32 apps by the current logged in user. - * winsup.h: Added prototype for get_null_sd(). diff --git a/winsup/cygwin/ChangeLog-1998 b/winsup/cygwin/ChangeLog-1998 deleted file mode 100644 index aa657e01e..000000000 --- a/winsup/cygwin/ChangeLog-1998 +++ /dev/null @@ -1,4490 +0,0 @@ -Thu Dec 31 16:50:32 1998 DJ Delorie <dj@cygnus.com> - - * mmap.cc: replaced all references to libstdc++ templates with - inline classes to remove build dependency on libstdc++ - -Thu Dec 31 00:02:40 1998 Geoffrey Noer <noer@cygnus.com> - - * sysdef/uuid.def: remove useless stub. - * sysdef/oldnames.def: ditto. - * sysdef/largeint.def: ditto. - * sysdef/rpcndr.def: ditto. - -Wed Dec 30 20:33:09 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/cygcheck.cc: clean up misc. warnings relating to - signed vs. unsigned, char * vs. const char *, etc... - -Wed Dec 30 21:41:25 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Remove previous dwProcessId - change as it presumes too much knowledge about signalling - in the wrong place in the code. - * sigproc.cc (sigproc_terminate): Move the dwProcessId - assignment here but only do it when it is necessary or - programs will die abnormally. - * fhandler.h: Add raw_write method to fhandler_serial. - * fhandler_serial.cc (raw_write): New method. Accommodates - overlapped I/O that now must be used with serial. - * utils/kill.cc (main): Allow `0' signal. Just checks - for existence of process. - -Wed Dec 30 00:01:18 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: bump API_MINOR to 8 to mark - recently exported _ctype_, _sys_errlist, _sys_nerr. Briefly - describe all API_MINOR changes to date. - -Wed Dec 30 01:31:34 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Set myself->dwProcessId so that - some exit routines will not falsely believe that this - process has been execed. - * select.cc (peek_serial): Remove debugging statements. - * sigproc.cc (sigproc_terminate): Detect state where - myself->dwProcessId == 0 as indicative of not being - an exec stub. - -Tue Dec 29 21:13:33 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (alloc_stack_hard_way): Fix a couple of thinkos - in calculating size of the new stack. Just use the size - passed from the parent. - (dll_crt0_1): Set up new frame pointers here, if appropriate. - * fork.cc (fork): Move frame pointer setup into dll_crt0_1. - -Tue Dec 29 12:57:38 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/mkpasswd.c: Include wchar.h. - * utils/mkgroup.c: Ditto. - -Tue Dec 29 12:53:23 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: remove dep for libcerr.o - -Mon Dec 28 22:02:15 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Make fhandler_serial io_status public since - select needs it. Add 'saw_error' field to select_record so - that select can detect error conditions. - * fhandler_serial.cc (fhandler_serial::raw_read): Detect - "operation aborted" error and retry. This seems to indicate - an attempt to retry an overlapped operation. - * select.cc (select_stuff::wait): Honor saw_error field when - appropriate. - (peek_serial): Rewrite to operate similarly to - fhandler_serial::raw_read. - * include/sys/termios.h: CBAUD mask was still not right. - -Mon Dec 28 09:09:27 1998 Christopher Faylor <cgf@cygnus.com> - - * libcerr.cc: Make obsolete. Move into errno.cc - * libctype.c: Make obsolete. Use newlib table. - * Makefile.in: Remove obsolete entries from LIBCOS. Define - __INSIDE_CYGWIN__ explicitly for .c -> .o compilation. - * cygwin.din: New exports: _ctype_, _sys_errlist, _sys_nerr. - * errno.cc: Move _sys_errlist and _sys_nerr here. - * dlfcn.cc: Reorganize includes to put ctype.h after winsup.h - so that __INSIDE_CYGWIN__ will be defined for use in ctype.h. - * fhandler_console.cc: Ditto. - * fhandler_tty.cc: Ditto. - * path.cc: Ditto. - * spawn.cc: Ditto. - -Sat Dec 26 00:20:48 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * include/Windows32/CommonFunction.h: Added proto for - NetUserChangePassword(). - -Thu Dec 24 16:15:40 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Add more debugging output. - * ioctl.cc (ioctl): Can't use TC[GS]ET ioctls for pty master as - it conflicts with TIOCPKT. - * passwd.cc (passwd): Bypass tc[gs]etattr call in favor of appropriate - method or conversion confusion will result due to attempts to - appropriately convert to old-style termios structures in tc[gs]etattr. - * strace.cc (strace_vsprintf): Define t explicitly. - * termios.cc (tcsetattr): Reorganize to allow meaningful debugging - output. - (tcgetattr): Ditto. - -Wed Dec 23 15:02:11 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Reorganize include order to allow thread-safe build. - -Wed Dec 23 11:45:33 1998 DJ Delorie <dj@cygnus.com> - - * strace.cc (strace_microseconds): new function; returns elapsed - time in microseconds, using performance counters if available. - (strace_vsprintf): print timestamps and deltas as microseconds, - not seconds. - -Wed Dec 23 11:35:02 1998 DJ Delorie <dj@cygnus.com> - - * times.cc (__to_clock_t): Change return value to unsigned long - long to prevent overflow. - -Tue Dec 22 19:37:55 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Reflect fhandler_*::init argument reordering. - Add dup and init methods to fhandler_serial. - * fhandler.cc (fhandler_base::init): Reorder arguments to mirror - open(). - * fhandler_console.cc (fhandler_console::init): Ditto. Initialize - using fhandler_base rather than fhandler_serial as console is - now being slowly uncouple from fhandler_serial. - * fhandler_serial.cc (fhandler_serial::fhandler_serial): Set size - of data structure or suffer strange behavior on exec(). - (raw_read): Add debugging output. - (fhandler_serial::init): New method. - (fhandler_serial::open): Detect call from init method and avoid - calling fhandler_base::open. Don't worry about non-blocking reads - since they are now handled correctly by _read(). - (fhandler_serial::tcsetattr): Honor ICANON in a kludgey sort of way. - (fhandler_serial::tcgetattr): Ditto. - (fhandler_serial::dup): New method. Ensures duplication of all - elements of fhandler_serial class. - * fhandler_tty.cc (fhandler_tty_master::init): Reflect init argument - reordering. - (fhandler_tty_slave::init): Ditto. - * hinfo.cc (hinfo::init_std_file_from_handle): Remove unnecessary - argument. - (hinfo_init): Reflect change to init_std_file_from_handle. - (cygwin_attach_handle_to_fd): Use more appropriate types for - arguments. - (hinfo::build_fhandler): Add some slop to allocated buffer just - for paranoia's sake. - (hinfo::dup2): Avoid dereferencing a NULL pointer when oldfd==newfd. - * pipe.cc (make_pipe): Reflect init argument change. - * shared.h: Another immigrant from winsup.h - * winsup.h: Reflect change to init_std_file_from_handle. Relocate - a declaration to shared.h so that it can be used in fhandler.h. - * include/sys/cygwin.h: Reflect change to cygwin_attach_handle_to_fd. - -Mon Dec 21 16:22:48 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::open): Detect serial device as a special - case requiring an overlapped open. - * fhandler.h (fhandler_serial): Add several methods. Add new 'fixup after - fork required' field. - * fhandler_serial.cc (raw_read): Rewrite to come closer to handling VMIN - VTIME parameters and to allow EINTR. - (fhandler_serial::open): Initialize overlapped event here. Make error - messages more explicit. - (fhandler_serial::close): Close status event. - (fhandler_serial::tcsetattr): Store vtime_ as milliseconds. Attempt to - handle VMIN > 0, VTIME == 0 better. - (fhandler_serial::fixup_after_fork): Initialize a new event handle after - a fork. - (fhandler_serial::de_linearize): Ditto. - * hinfo.cc (hinfo::fixup_after_fork): Call fork fixer upper if close_on_exec - of need_fork_fixup set. - -Sun Dec 20 16:05:25 1998 Geoffrey Noer <noer@cygnus.com> - - * include/shellapi.h: replace with stub that includes windows.h - like similar headers already do. - * scandir.cc (scandir): add parens around assignment used as truth - value. - -Sat Dec 19 00:42:44 1998 Christopher Faylor <cgf@cygnus.com> - - * thread.cc: Fix copyright info. - * thread.h: Ditto. - * libcmain.cc: gcc is now more picky about requiring a type - for main(), so add one. - * include/pthread.h: Add attribution for net contributor. - -Fri Dec 18 19:21:30 1998 Geoffrey Noer <noer@cygnus.com> - - * pthread.cc: fix copyright header. - * shared.h: ditto. - -Fri Dec 18 19:21:30 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * cygwin.din: export scandir and alphasort. - * Makefile.in: add scandir.o to deps - * scandir.cc: New file with scandir and alphasort implementations. - * include/cygwin/version.h: bump API_MINOR to 7. - -Fri Dec 18 16:44:07 1998 Geoffrey Noer <noer@cygnus.com> - - * include/pthread.h: clean up, remove C++-style comments, - remove pthread_getsequence_np proto. - -Fri Dec 18 15:26:33 1998 Christopher Faylor <cgf@cygnus.com> - - Throughout, prepend cygwin_ to functions that are exported - as cygwin_* which previously needed to be aliased. - - * path.cc (cygwin_conv_to_win32_path): Resolve symbolic links. - Return success or failure value. - (cygwin_conv_to_full_win32_path): Ditto. - (cygwin_conv_to_posix_path): Return success or failure value. - (cygwin_win32_to_posix_path_list): Ditto. - (cygwin_posix_to_win32_path_list): Ditto. - * shared.h: New include file that incorporates parts of - winsup.h, fhandler_tty.h, path.h, and delqueue.h. - * Makefile.in: Remove old include files. - * cygwin.din: cygwin_* aliases are no longer required. - * libccrt0.cc: Store api_minor in per_process structure. - * select.cc: Change meaning of second argument to ready_for_read - to indicate whether read_ahead should be ignored. - * fhandler.h: Reflect change in second argument to ready_for_read. - * syscalls.cc (_read): Ditto. - * termios.cc: Throughout, detect attempt to use old style termios - structure and convert as appropriate. - * ioctl.cc (ioctl): Detect use of ioctl requiring termios field - and call appropriate tc[gs]et* function to handle it. - * fhandler_console.cc (fhandler_console::ioctl): Remove TC* calls - that are now handled in main ioctl. - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Ditto. - * include/cygwin/version.h: Added TERMIOS defines. Bump API_MINOR - to 6. - * include/sys/cygwin.h: Reflect change in return value for some - cygwin_conv_* calls. - * include/sys/termios.h: Reformat slightly. Add conversion macros - for dealing with old style termios structure. - * include/pthread.h: add - -Fri Dec 18 15:03:33 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Cleanup pthread usage. - -Fri Dec 18 14:35:59 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove obsolete header dependency for - thread-safe build. - -Fri Dec 18 14:16:04 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle): Avoid suspending top-level - processes. - * trace.cc: Remove unneeded include. - -Thu Dec 17 19:19:53 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove pthread_getsequence_np, _reent_clib - -Thu Dec 17 16:48:15 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: correct two typos in comments - -Thu Dec 17 19:11:31 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * include/Windows32/Defines.h: Add values for using Windows - function `DeviceIoControl()'. - -Thu Dec 17 18:00:34 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): exception_list is not a struct. - * debug.cc (thread_stub): Ditto. - -Thu Dec 17 08:24:37 1998 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Remove leading underscores from pthread functions. - * include/cygwin/version.h: Bump DLL major version to 21, DLL minor - version to 0, and API_MINOR to 5. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - Merge in thread-safe branch changes. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * pthread.cc: Include winsup.h. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * thread.cc: Reformat. - * pthread.cc: New file. - * cygwin.din: Add pthread interface functions - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Add some --enable options. - * configure: Regenerate. - * Makefile.in: Reorganize CFLAGS to recognize new --enable options. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (stack_base): Store slightly different information - in child_info_fork structure for later use in alloc_stack_hard_way. - (fork): Set frame pointer information if stack has been reallocated. - * dcrt0.cc (alloc_stack_hard_way): Reflect change in - child_info_fork structure. - (dll_crt0_1): Make thread initializers "static" and NO_COPY or death - of the main thread causes death of other threads. - * winsup.h (child_info_fork): Change structure. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * thread.h: Remove extraneous declaration. - * include/sys/strace.h: Make a new thread_printf function - for use by new thread-safe code. - * thread.cc: Use thread_printf throughout. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Marco Fuykschot (marco@ddi.nl) - * Throughout sources add locking control for preliminary - thread-safe cygwin operation. - -Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (getprogname): Should be a static. - (alloc_stack): Extend to allow forking from another - thread. - (alloc_stack_hard_way): New function used by alloc_stack. - (dll_crt0_1); Don't pass parameters since stack may be - "funny". Use statics instead. Move fork/spawn checking - into dll_crt0. - (dll_crt0): Do fork spawn checking here. alloc_stack() - will call dll_crt0_1 if forked from a non-main thread. - * fork.cc (stack_base): New function determines base - (and other values) of this thread's stack. - (fork): Use new PROC_FORK1 method for forking. Provides - more data to forkee. Use stack_base to set stack - values. - * winsup.h (child_info_fork): Changes for PROC_FORK1. - -Wed Dec 16 16:15:29 1998 Geoffrey Noer <noer@cygnus.com> - - * include/shellapi.h: fix typo in DragQueryPoint proto. - -Mon Dec 14 12:37:43 1998 Geoffrey Noer <noer@cygnus.com> - - * net.cc: minor respacing - (get_ifconf): new local function, combines get_winnt_ifconf and - get_win95_ifconf. - (get_win95_ifconf): delete - (get_winnt_ifconf): delete - (fhandler_socket::ioctl): adjust ifconf calls in light of above, - check returned value for safety. - * include/cygwin/version.h: bump CYGWIN_VERSION_API_MINOR to 4 - in honor of newly supported socket ioctls. - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * include/asm/socket.h: Added defines for ioctl() calls - SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK. - * net.cc (get_winnt_ifconf): Check the registry entries - instead of just calling get_win95_ifconf(). Added what argument - to support the new ioctl() calls. - (get_win95_ifconf): Check the Windows 9x registry entries as - described by Tim Newsham. - (fhandler_socket::ioctl): Support the ioctl() commands - SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK. - (get_if_flags): Check for a down interface. - -Wed Dec 9 18:11:31 1998 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_disk_file::open): check for shell scripts - regardless of Win32 OS type. - -Sun Dec 6 19:38:11 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * fhandler_console.cc (fhandler_console::tcgetattr): Fix typo. - ISIG should be ored with c_lflag. - -Tue Dec 1 16:28:56 1998 Geoffrey Noer <noer@cygnus.com> - - * include/utmp.h: delete, moved to newlib/libc/sys/cygwin/sys. - -Thu Dec 3 15:41:51 1998 Geoffrey Noer <noer@cygnus.com> - - Released 20.1 update. - -Thu Dec 3 22:24:18 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (set_process_mask): Add `sync' parameter - to control whether signals should be synched on exit. - (handle_sigsuspend): Provide second argument to set_process_mask - - don't sync. - (call_handler): Ditto for asm handler. - * signal.cc (sigprocmask): Ensure that signals are synchronized - by calling set_process_mask with sync == 1. - * sigproc.cc (__release_signal_mutex): Third argument is not - strictly a BOOL, so change it. - * sigproc.h: Reflect above parameter changes. - -Thu Dec 3 15:30:44 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_console): Work around NT bug that - caused strange behavior with ReadFile after this - function was invoked. - -Tue Dec 1 14:43:35 1998 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sigproc_init): Set maintid and signal_mutex early - to avoid races in wait_sig initialization. - (__get_signal_mutex): Improve debug output. - (__release_signal_mutex): Ditto. - * spawn.cc (spawn_guts): Allocate more space for string when building - up from #! and absolute path is not known. Otherwise weird stuff - like infinite recursion or unknown file errors occur. - -Tue Dec 1 08:34:18 1998 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Accommodate lack of timezone in date output so that - year shows up correctly. - -Mon Nov 30 14:30:51 1998 Jeff Johnston <jjohnstn@cygnus.com> - - * times.cc (times): Altered function so that on non-Windows-NT systems - it does not use the GetProcessTimes() API which is not supported. - -Mon Nov 30 00:38:54 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Fix incorrect use of struct on exception_list - typedef. - * debug.cc (thread_stub): Ditto. - * dll_init.cc: Ditto. - * include/Windows32/Structures.h: Correct typo where - typedef SYSTEM_POWER_STATUS was being used as a struct. - -Sun Nov 29 22:03:17 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * fhandler_console.cc (fhandler_console::ioctl): - Added ioctl commands TCGETA, TCSETA, TCSETAW, TCSETAF. - -Fri Nov 27 22:30:58 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Set aside NOEINTR bit. When this is set - cygwin will not allow the read on this device to be - interrupted by a signal. - * pipe (_pipe): Set NOEINTR bit for read end of pipes - created using this method. The vague rationale for this - is that these pipes are supposed to be more like Windows - pipes than UNIX pipes. - * syscalls.cc (_pipe): Honor NOEINTR flag. - * getopt.c: Clean up some gcc warnings. - * libcerr.c: Ditto. - -Fri Nov 27 21:56:03 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (SIG_NONMASKABLE): Update for new signal - mask method. - (handle_sigsuspend): Release of signal mutex must be - synchronous -- the signal must be delivered before the - function returns. Otherwise, there will be races in - the caller code. - * sigproc.cc (sigproc_terminate): Minor cleanup. - -Thu Nov 26 20:26:17 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Attempt to work around - potential race when setting signal_arrived. This - particularly affects sigsuspend. - (handle_sigsuspend): Reset signal_arrived prior to - grabbing the mutex. This should reduce the probability - of a race. - * sigproc.cc (sig_send): Don't reset signal_arrived in - the SIGSUSPEND case since this could introduce a race. - -Thu Nov 26 12:19:16 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * select.cc (MAKEready): Don't wait for signal prior to - testing for read. That introduces an unnecessary delay. - -Wed Nov 25 23:03:47 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Make `isdirsep' an alias for SLASH_P. - Implement isabspath convenience macro. - Change sigprotect to a macro since it appears to - be impossible to send __FILE__ type macros to a - constructor. Change use of sig_protect throughout. - * dcrt0.cc (dll_crt0_1): Use new path macro. - * dlfcn.cc (get_full_path_of_dll): Ditto. - * path.cc (path_conv::path_conv): Ditto. - (normalize_posix_path): Ditto. - (slashify): Ditto. - (backslashify): Ditto. - * syscalls.cc (num_entries): Ditto. - * lock.cc: Redefine lock methods to pass debug info to - {get,release}_signal_mutex. - * environ.cc (environ_init): Correct strncmp test for - TERM=, otherwise it's impossible to set TERM. - * exceptions.cc: Eliminate lock_cs and unlock_cs macros. - Use {get,release}_signal_mutex throughout. - (signal_init): Don't initialize signal_mutex here. - (set_process_mask): Remove vestiges of old mutex code. - (handle_sigsuspend): Ditto. - (call_handler): Move signal_arrived SetEvent back here. - It was being triggered too often before. - Detect when the signal thread is exiting. - (sig_handle): Remove inappropriate SetEvent(signal_arrived). - (events_terminate): Move close of signal_mutex elsewhere. - * glob.cc: Increase "MAXPATHLEN" size for arguments that - are not necessarily pathnames. - * pinfo.cc (lpfu): Lower timeout for reporting possible - problem with INFINITE wait. - * sigproc.cc (wake_wait_subproc): Make this a macro with - no arguments so that its use in the code is a little - clearer. - (proc_terminate): Eliminate signal blocking here since - this should already be handled by the caller. - (sigproc_init): It makes sense to initialize signal_mutex - here, so do so. - (__allow_sig_dispatch): Rename. Take debugging arguments. - Pass arguments on to release_signal_mutex. - (__block_sig_dispatch): Rename. Take debugging arguments. - Pass arguments on to get_signal_mutex. Detect signal - thread exiting confition. - (__get_signal_mutex): Take debugging arguments. Maintain - a stack of nested mutex calls for later display in - __release_signal_mutex. Detect signal thread exit - condition. Don't bother with locking if signal thread is - executing or if just an exec stub. - (__release_signal_mutex): Don't bother with locking if signal - thread is executing or if just an exec stub. - * sigproc.h: Reflect renamed functions above. Provide - wrappers to pass in diagnostic information. - * spawn.cc (spawn_guts): More fixes to deal with nested - #! and to properly report posix argv[0] when invoked as a - script. - -Wed Nov 25 12:41:12 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Reinstate libwinspool.a/winspool.drv creation. - -Tue Nov 24 18:48:56 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: add CFLAGS_COMMON and CFLAGS_CONFIG to CFLAGS - and CXXFLAGS in FLAGS_TO_PASS. - - * include/sys/select.h: new file with select proto. Avoid - potential conflict with Winsock inclusion by Cygwin internals. - * include/sys/socket.h: remove select proto. - * winsup.h: define __INSIDE_CYGWIN__. Include windows.h after - Unix include files. - * include/mywinsock.h: delete file - * include/Windows32/Sockets.h: add ndef __INSIDE_CYGWIN__s - around portions that conflict with Unix definitions. This - yields what used to be mywinsock.h which is a blend of Unix - sockets and Winsock needed by Cygwin internals. - * exceptions.cc: define Win32_Winsock to include - Windows32/Sockets.h. No longer define __INSIDE_CYGWIN__. - * hinfo.cc: ditto - * net.cc: ditto - * select.cc: ditto - - * include/exceptions.h: change wrapper define to _EXCEPTIONS_H. - * include/sys/resource.h: move includes outside __cplusplus check. - * include/sys/wait.h: ditto. - -Sun Nov 22 23:33:19 1998 Geoffrey Noer <noer@cygnus.com> - - * sigproc.cc (__release_signal_mutex): revert Nov 3d change. - -Sun Nov 22 17:04:44 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * regexp/Makefile.in: Add additional bits necessary to - allow correct installation of include file. - -Fri Nov 20 17:04:48 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Set "Warn about writable strings" option in CFLAGS. - * fhandler_tty.h: Fix for writable strings detection. - * grp.cc (add_grp_line): Ditto. - * mkvers.sh: Ditto. - * path.h: Ditto. - * registry.cc: (reg_key::reg_key): Ditto. - * smallprint.c (__small_vsprintf): Ditto. - * tty.cc (tty::get_event): Ditto. - * winsup.h: Give up on read_ready_thread. Move sig_protect - here since it needs to use information set up after the sigproc.h - include. - * dcrt0.cc: Ditto. - * debug.cc (WFSO): New function. Used to ensure that - function shows up on stack trace. - (WFMO): Ditto. - * debug.h: Define the above. - * exceptions.cc (ctrl_c_handler): Record last signal - for signal handler. - * select.cc (MAKEready): New macro for constructing - fhandler_*::ready_for_read function. - (fhandler_*::ready_for_read): Use macro to construct this - method throughout. - * sigproc.cc (sig_send): Work around race on process termination - where the event being waited for may disappear. - (sigproc_terminate): #ifdef code here that attempted to deal with - the above condition in sig_send. - * sigproc.h: Move sig_protect to winsup.h. - * spawn.cc (perhaps_suffix): Don't return pointer into an - automatic variable. - (find_exec): Always point known_suffix to something. - * syscalls.cc (read_handler): Refine debug output. - (read_ready_thread): Delete. - (_read): Eliminate use of read_ready_thread. Call ready_for_read - directly as appropriate. - -Thu Nov 19 15:26:40 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: remove -Wunused since that's already in -Wall - * dlfcn.cc (check_path_access): rename winenv arg to mywinenv - * path.cc (symlink): change save_errno var to saved_errno - * spawn.cc (find_exec): rename winenv arg to mywinenv - (spawn_guts): rename sigprotect handle to starting_here - * winsup.h: remove trailing comma from process_state flags - enum - * utils/aclocal.m4: regenerate - * utils/configure: regenerate - -Thu Nov 19 11:16:38 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use correct libpthread.a target when - thread-safe is enabled. - -Thu Nov 19 10:49:27 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv): Correct error reporting. - -Wed Nov 18 20:07:50 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/Makefile.in: remove termcap file install rule - -Wed Nov 18 18:14:18 1998 Geoffrey Noer <noer@cygnus.com> - - More minor cleanup: - * environ.cc (winenv): don't define len twice. - * fork.cc (sync_with_parent): should NOT use rc since - this is a macro and that could have interfered with rc in - the calling function. Renamed to psync_rc. - * fhandler_serial.cc (fhandler_serial::open): change - access to myaccess since it shadows global decl. - * hinfo.cc: ditto throughout - * path.cc: ditto throughout - (path_conv::path_conv): change error to err. - -Wed Nov 18 16:17:58 1998 Geoffrey Noer <noer@cygnus.com> - - * profil.c: include stdio.h - (print_prof): comment out unused func - (profile_ctl): should return an int - -Wed Nov 18 16:17:58 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/ps.cc: include sys/cygwin.h, make pname buf - MAXPATH in size. - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * utils/ps.cc (main): converting windows paths to posix - paths in output. - -Wed Nov 18 15:34:46 1998 Geoffrey Noer <noer@cygnus.com> - - * include/wchar.h: include stddef.h. - -Wed Nov 18 17:39:15 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Fix incorrect TERM= detection. - -Tue Nov 17 17:28:09 1998 Geoffrey Noer <noer@cygnus.com> - - * gcrt0.c: include stdlib.h, add proto for monstartup. - -Tue Nov 17 16:47:42 1998 Geoffrey Noer <noer@cygnus.com> - - * include/wchar.h: add protos for wcslen and wcscmp. - * syscalls.cc: minor reformat. - -Tue Nov 17 15:38:45 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::fhandler_base): Default non-disk - devices to binary mode. - * fhandler.h: Reformat slightly. - -Tue Nov 17 11:19:23 1998 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Copy progname using strcpy to - save on time. - * path.h: Add new enums for more fine-grained control - of path_conv. - * dir.cc (opendir): Use enum argument to path_conv. - (mkdir): Ditto. - (rmdir): Ditto. - * dlfcn.cc (get_full_path_of_dll): Ditto. - * fhandler.h: Add new set_readahead_valid to set actual - readahead. - * fhandler.cc (raw_read): Remove extraneous variable. - (fhandler_base::read): Rework to allow readahead when - not text mode. - (fhandler_disk_file::fstat): get_symlink_p() only returns - true/false now. - (fhandler_disk_file::fhandler_disk_file): Use enum argument - to path_conv. - (fhandler_disk_file::open): Ditto. - * spawn.cc (perhaps_suffix): Ditto. - * syscalls.cc (_unlink): Ditto. - (_link): Ditto. - (stat_worker): Ditto. - (_rename): Ditto. - * fhandler_serial.cc (fhandler_serial::open): Always reset timeouts. - * path.cc (path_conv::path_conv): Honor new enum arguments. - Specifically, use SYMLINK_CONTENTS for readlink interface. - (readlink): Use SYMLINK_CONTENTS argument to path_conv. - * select.cc: Rework serial support which has apparently never - worked. - -Mon Nov 16 16:15:20 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: FLAGS_TO_PASS should pass CFLAGS and CXXFLAGS - not ALL_CFLAGS and ALL_CXXFLAGS. Rework handling of CFLAGS - variables to remove duplication and make it possible to - build mingw directory. - -Mon Nov 16 09:40:21 1998 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_open): Use new macro to check for - NULL or empty pathname and return appropriate error. - * path.cc (check_null_empty_path*): Move macro to - path.h. - * path.h: Move macros here. - -Sun Nov 15 20:23:10 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: bump API_MINOR to 3 to mark - addition of dll_noncygwin_dllcrt0 to exports list. - -Sun Nov 15 23:05:21 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (check_null_empty_path): New macro. - (check_null_empty_path_errno): Ditto. - (path_conv::path_conv): Check for NULL and empty - path names here and set appropriate error. - (conv_to_win32_path): Ditto. - (conv_to_full_win32_path): Ditto. - (conv_to_posix_path): Ditto. - (conv_to_full_posix_path): Ditto. - (mount_info::conv_wo_win32_path): Back out previous - change. - (mount_info::conv_to_posix_path): Ditto. - -Sun Nov 15 19:29:19 1998 Geoffrey Noer <noer@cygnus.com> - - * include/limits.h: define CHILD_MAX to be 63. - * sysconf.cc (sysconf): return CHILD_MAX when asked for - instead of _POSIX_CHILD_MAX. - -Sun Nov 15 18:25:22 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * path.cc (mount_info::conv_to_posix_path): Handle NULL and - empty pathnames. - (mount_info::conv_to_win32_path): Likewise. - -Sun Nov 15 18:09:06 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: export dll_noncygwin_dllcrt0. - * {libccrt0.cc, winsup.h}: minor reformat. - -Sat Nov 14 22:14:51 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Use sizeof for string lengths - rather than hard-coded values. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * dll_init.cc (dll_foreign_dllcrt0): Rename to - dll_noncygwin_dllcrt0. - * winsup.h: Ditto. - * include/cygwin/cygwin_dll.h: Ditto. - -Sat Nov 14 14:09:33 1998 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::de_linearize_fd_array): Reset first fd - for open to zero after an exec. - -Sat Nov 14 01:29:23 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork): No need for intermediate jmp_buf variable. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * libccrt0.cc (cygwin_attach_foreign_dll): New function. - * dll_init.cc (dll_foreign_dllcrt0): New function to initialize - DLLs loaded by non-cygwin apps. - (dll_dllcrt0_1): Initialize process table entry. - (dll_dllcrt0): Revert last change to do partial initialization. - * winsup.h (dll_foreign_dllcrt0): Prototype. - * include/cygwin/cygwin_dll.h (_cygwin_foreign_dll_entry): New - entry point that does partial initialization for non-cygwin apps. - -Fri Nov 13 16:17:28 1998 Geoffrey Noer <noer@cygnus.com> - - Assorted -Wall cleanup: - * utils/mount.cc (show_mounts): remove unused var i. - * utils/cygcheck.cc (dll_info): comment out unused var ofs. - (dump_sysinfo): return a void, not an int. Comment out unused - var len in two places. Add parens around assignment used as - truth value. - * utils/kill.cc (main): remove unused var i - * utils/mkpasswd: include <ctype.h> and <stdlib.h>. - (enum_users): remove unused var rc. - (enum_local_groups): ditto. - * utils/ps.cc (main): Add parens around assignments used as - truth values. - * utils/mkgroup.c: include <ctype.h> and <stdlib.h>. - (enum_groups): return void, not int. Remove unused var rc. - * gmon.c: include <stdio.h> and <unistd.h>. - (_mcleanup): remove unused vars buf and profdir. - -Fri Nov 13 16:17:28 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * include/sys/sysmacros.h: new file, define major, minor, makedev - -Fri Nov 13 17:03:52 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Reflect a variable name change. - * fhandler.h: *::ready_for read takes an additional argument. - * fhandler_console.cc (get_non_ascii_key): New function derived - from fhandler_console::read1. - (fhandler_console::read1): Use new function. - * select.cc (*::ready_for_read): Add new "nonblocking" argument. - (peek_console): Be more diligent in detecting when a usable - character has been entered or false positives will be returned. - (fhandler_tty_common::ready_for_read): Detect attempt to perform - a "background" read. - * syscalls.cc (read_handler): Remove code for dealing with slow - devices. Just deal with non-blocking here. - (read_ready_thread): Renamed function. Rewritten to only detect - when an fd has data ready to be read. Actual reads happen in - the main thread. - (_read): Rely on read_handler to read data for everything. Use - the read_ready_thread to indicate when data is ready to be read. - Gut the read_thread_info class since it no longer needs to return - much information. - * winsup.h: Reflect above changes to read_thread_info. Rename - to read_ready_thread_info. - -Fri Nov 13 15:09:26 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de> and - Ron Parker <rdparker@butlermfg.org>: - * path.cc (mount_info::conv_to_win32_path): Refined recognition of - UNC devices. - -Fri Nov 13 12:37:00 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Fix a typo. - -Fri Nov 13 10:59:43 1998 DJ Delorie <dj@cygnus.com> - - * Makefile.in: "make" uses new "ld -shared" by default internally. - -Fri Nov 13 00:58:38 1998 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (find_exec): Make sure that return value is correct - in all cases. Document. - * fhandler.h (fhandler_tty_common): Give unit number to constructor. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Give - unit number to descriptor. Create correct UNIX path name for - tty so that ttyname() will work correctly. - * select.cc (fhandler_tty_common::ready_for_read): Don't worry - about read_for_read since the tty read routines are already - interruptible. - * syscalls.cc (_read): Reset read thread events on signal. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * dlfcn.cc (ctype.h): Include. - (check_access): Document. - (check_path_access): Document. - (get_full_path_to_dll): Rework to handle general filenames and - symlinks. - -Thu Nov 12 17:01:52 1998 DJ Delorie <dj@cygnus.com> - - * Makefile.in (shared): "make shared" uses the new "ld -shared" - * cygwin.din: add LIBRARY and BASE tags for "ld -shared" - -Wed Nov 11 17:16:17 1998 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Add --enable options for various cygwin defines - including preliminary thread-safe defines. - * configure: Regenerate - * Makefile.in: Honor new --enable options. - * glob.h: Move BSD defines to sys/cdefs.h. - * include/sys/cdefs.h: Move __P definition here. - -Wed Nov 11 14:00:45 1998 DJ Delorie <dj@cygnus.com> - - * cygwin.din (getpwnam): remove duplicates - -Tue Nov 10 18:27:09 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/aclocal.m4: regenerate with aclocal - * utils/configure.in: don't call AM_CYGWIN32 - * utils/configure: regenerate - -Tue Nov 10 15:56:03 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Gary V. Vaughan <gvaughan@oranda.demon.co.uk>: - * dlfcn.cc (dlopen): return an introspective handle to the - current module if name arg is NULL. The Single UNIX - Specification, Version 2 has this as a requirement. - -Mon Nov 9 16:29:27 1998 Geoffrey Noer <noer@cygnus.com> - - * errno.cc (strerror): all errnos in - newlib/libc/include/sys/errno.h are now listed here. - -Mon Nov 9 16:29:27 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: up DLL version, bump API_MINOR to 2 - to mark following change. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * cygwin.din: add exports for some of the newlib bessel - functions (j1, jn, y1, yn). - -Mon Nov 9 15:10:06 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (_link): rewrite FIXME. - -Mon Nov 9 14:51:03 1998 Geoffrey Noer <noer@cygnus.com> - - * errno.cc (strerror): add string for EDEADLOCK. - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * errno.cc (errmap[]): add END_OF_MEDIA and additional Win32 - error codes. - -Sun Nov 8 21:28:01 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: fhandler_pipe cannot be is_slow under - Windows9[58]. There is no way to check for EOF on a pipe - without performing a read on that system. - * syscalls.cc (read_handler): Don't check for ready_for_read - unless this is a "slow" device. - * winsup.h: Reorganize to accomdate fhandler.h requirement - for os_type. - -Sat Nov 7 23:27:05 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_console): Add a new function declaration. - * fhandler_console.cc (fhandler_console::read1): New function - renamed from console_read to allow use of class fields. - Detect readahead situation when doing line buffering and - buffer does not contain \n. - (fhandler_console::read): Reflect function name change. - * select.cc (cygwin_select): Changes for better handling - of < 1000 usec timeouts. - (select_stuff::wait): Perform a poll on timeout to - set any fd's that may have become active. - (peek_pipe): More debugging. Honor write_ready if set. - (peek_console): Can't always use WaitForSingleObject. - Detect readahead conditions set in fhandler_console::read1. - Honor write_ready if set. - (peek_windows): Honor write_ready if set. - * times.cc (__to_clock_t): Return clock_t value. - (times): Add some debugging printfs. - -Fri Nov 6 20:15:20 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * spawn.cc (spawn_guts): find_exec() argument mismatch - resulted in inability to run !# scripts which did not - begin with '/'. - -Tue Nov 3 16:12:59 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Don't wait for signal - completion. - (ctrl_c_handler): Ditto. - * fhandler.h (fhandler_*): Declare new ready_for_read functions. - * select.cc: Reorganize all methods into a peek_*, a poll_*, - and a fhandler_*::ready_for_read. This is to allow the _read - function to query the state of an fd without starting a thread. - * signal.cc (kill_worker): If sending a signal from a non-main thread - don't wait for completion. - * sigproc.h (myself_nowait_nonmain): New define for use by sig_send. - * sigproc.cc (sig_send): Honor myself_nowait_nonmain. Don't wait - if not in main thread. - (__release_signal_mutex): Revert to calling ReleaseMutex only - once or mutex is released prematurely. - * syscalls.cc (read_handler): Use new ready_for_read method to - determine if an fd has data for reading. This function optionally - blocks until there is data to read. - (read_helper): Add debugging statement. - (_read): Move signal_arrived reset to before sig_protect to avoid - a race. Force read_handler thread to longjmp back to read_handler - function on signal. - -Tue Nov 3 12:18:31 1998 DJ Delorie <dj@cygnus.com> - - * utils/cygcheck.cc (dump_sysinfo): Note when not finding a - program (like cpp) on the path is a good thing. - -Tue Nov 3 01:26:08 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Kazuhiro Fujieda <fujieda@jaist.ac.jp>: - * environ.cc (environ_init): correct size arg to parse_options - -Mon Nov 2 21:40:32 1998 Christopher Faylor <cgf@cygnus.com> - - * regexp/regexp.c (regatom): Respond to compiler warning. - -Mon Nov 2 21:36:48 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): cygwin should not - print exception information if the exception is trapped - via signal(). - Also use consistent timings for lock_cs() throughout. - -Mon Nov 2 16:46:28 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: For now, also include newlib/libc/sys/cygwin. - Eventually will stop including newlib/libc/sys/cygwin32. - -Mon Nov 2 19:38:30 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * syscall.cc (gethostname): function deleted - * net.cc (gethostname): new function 'gethostname' which - first calls wsock32::gethostname and only if it fails, - calls GetComputerNameA. - -Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: up DLL version to 20.0 in honor - of new Net release. - -Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * dll_init.cc (doGlobalCTORS): Fix invocation order. - (doGlobalDTORS): Likewise. - -Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: add include/exceptions.h to dll_init.cc deps. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * dll_init.cc (exceptions.h): Include. - (dll_dllcrt0_1): New function to initialize Cygwin DLL guts - properly when a non-Cygwin app uses the Cygwin DLL. - (dll_dllcrt0): Call dll_dllcrt0_1 when user_data is NULL. - -Tue Oct 27 17:35:00 1998 Geoffrey Noer <noer@cygnus.com> - - * syslog.cc: drop "32" from CYGWIN32_LOG_NAME - -Tue Oct 27 16:09:09 1998 DJ Delorie <dj@cygnus.com> - - * utils/cygcheck.cc (usage): cygwhich->cygcheck - -Mon Oct 26 17:47:10 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: fix deps for dll_entry.o and dll_main.o, - add dep for glob.o. - - patch from Mumit Khan <khan@xraylith.wisc.edu>: - * dll_entry.cc: New file for user DLL entry point. - * dll_main.cc: New file for user DLL main. - * Makefile.in (LIBCOS): Add dll_entry.o and dll_main.o. - -Mon Oct 26 13:47:10 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: add back install of include/net which was - removed by accident. - -Mon Oct 26 15:25:22 1998 Christopher Faylor <cgf@cygnus.com> - - * strace.cc (get_strace_mutex): Don't reset last windows - error. - (strace_printf): Preserve last windows error. - -Mon Oct 26 11:01:46 1998 Christopher Faylor <cgf@cygnus.com> - - * uname.cc (uname): Remove slash from system name. - -Mon Oct 26 02:11:44 1998 Geoffrey Noer <noer@cygnus.com> - - * include/asm/byteorder.h: add missing __cplusplus wrapper. - -Mon Oct 26 00:46:33 1998 Christopher Faylor <cgf@cygnus.com> - - * uname.cc (uname): Remove space from the system name. - -Sun Oct 25 23:47:56 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (console_read): Several typos caused flaky - behavior when \r or \n detected under ENABLE_LINE_INPUT. Also ignore - first \n detected under ENABLE_LINE_INPUT if it isn't preceded by a \r. - This avoids problems when switching from "raw" mode into "cooked mode. - -Sun Oct 25 12:28:21 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove unnecessary __cygwin32_stack_trace and - __cygwin_stack_trace exports. - -Sat Oct 24 21:18:46 1998 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * path.cc (symlink): Standard protection for symlink should - be 0777. - * syscalls.cc (num_entries): Calculated links for directory - entry should only include directories. - -Sat Oct 24 20:51:08 1998 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Modify check for CVS/Tag to work around ash bug. - * sigproc.cc (wait_sig): Fix detection of non-blockable signals. - -Fri Oct 23 18:24:43 1998 Geoffrey Noer <noer@cygnus.com> - - * environ.cc: CYGWIN32 environment variable is now called CYGWIN - * window.cc: lose "32" in Cygwin32WndClass - * syslog.cc: lose "32" in WIN95_EVENT_LOG_PATH and - CYGWIN32_LOG_NAME. - -Fri Oct 23 16:32:59 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/cygcheck.cc: reformat, add copyright notice - -Fri Oct 23 18:15:28 1998 DJ Delorie <dj@cygnus.com> - - * utils/cygcheck.cc: new file - * utils/Makefile.in: build cygcheck.exe - -Fri Oct 23 16:48:41 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (signals_init): Add error to api_fatal. - (events_init): Ditto. Collapse printfs into one. - (winsock_init): Ditto. - * net.cc (winsock_init): Remove "Cygwin" from error message. - -Fri Oct 23 13:48:10 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: install include/cygwin headers, losing the "32". - * include/cygwin32: remove - -Fri Oct 23 14:36:31 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Avoid reallocating environ array. - * exec.cc: Increase number of arguments to 1024 throughout. - * fhandler.cc (fhandler_disk_file::open): Revert to checking - a file for '#!' to find out if it is executable but add - extra check for NTEA which, if set, eliminates the need for - the read. - * sigproc.cc (sigproc_terminate): Close hwait_sig and set it - to NULL prior to closing other handles since this flags some - routines that the process is going down. - -Fri Oct 23 00:31:27 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/*: remove "32"s from cygwin32_foo function calls - -Fri Oct 23 00:24:27 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: increment CYGWIN_VERSION_DLL_MINOR - and CYGWIN_VERSION_API_MINOR since I'm changing the API in a - meaningful but backwards-compatible fashion. - - * exceptions.cc: strip "32" from cygwin32_exception_handler - debug printfs - - * net.cc: strip "32" from all net functions - * select.cc, syscalls.cc, winsup.h: lose "32" from cygwin32_select - * cygwin.din: adjust for these changes (no backwards - compatability issues here). - - * cygwin.din: rename all cygwin32_foo functions, aliasing as - cygwin_foo for backwards compat. for now but intend to lose them - at a later date. - * include/sys/cygwin.h: copy all cygwin32_ protos and make them - usable without the "32". We will remove the cygwin32_ ones at a - later date. - * external.cc, external.h: lose "32" from cygwin32_internal - * shared.cc, winsup.h: lose "32" in cygwin32_getshared - * path.cc, path.h: lose "32" in cygwin32_foo comments - * dll_init.cc: lose "32" in cygwin32_detach_dll - * hinfo.cc: lose "32" in cygwin32_attach_handle_to_fd - * libccrt0.cc: lose "32" in refs to cygwin32_attach_dll - * pinfo.cc: lose "32" in cygwin32_winpid_to_pid - - * include/cygwin32: remove all files except cygwin32_dll.h which - some people may already be including. Aim to remove this - remaining file at a later date. - * include/cygwin: move all include/cygwin32 files here. - * cygwin/cygwin_dll.h: change protos to reflect loss of "32"s - * include/net/if.h, include/netinet/in.h, include/netinet/ip.h, - include/netinet/ip_icmp.h, include/asm/socket.h: - include/sys/socket.h: include the headers in include/cygwin - * Makefile.in, winsup.h: fix references to - include/cygwin32/version.h - - * libcctype.c, smallprint.c, test.c: lose "32" in Cygwin32 refs in - comments - * include/dlfcn.h, include/exceptions.h, include/mapi.h, - include/winsock.h, include/mywinsock.h: ditto - * config/*: ditto - * profil.c: ditto, and respace - -Thu Oct 22 22:52:40 1998 Geoffrey Noer <noer@cygnus.com> - - * net.cc, exceptions.cc, hinfo.cc, select.cc, - include/mywinsock.h: rename __INSIDE_CYGWIN32__ to - __INSIDE_CYGWIN__ - -Thu Oct 22 17:39:06 1998 Geoffrey Noer <noer@cygnus.com> - - First round of Cygwin32 -> Cygwin renaming. In all files, - rename Cygwin32 to Cygwin in comments. - * CYGWIN32_LICENSE: delete and - * CYGWIN_LICENSE: add it back under this name - -Thu Oct 22 20:10:24 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc: Eliminate cs mutex. Just use signal_mutex - throughout. Rename sig_dispatch_mutex to signal_mutex throughout. - (lock_cs): Rewrite to be a front-end for get_signal_mutex. - (unlock_cs): Rewrite to be a front-end for release_signal_mutex. - (set_process_mask): Synchronize signals after resetting mask. - * sigproc.cc (release_signal_mutex): Report on success or - failure of signal_mutex release. - * include/Windows32/Defines.h (FILE_FLAG_WRITE_THROUGH): Make - unsigned to avoid a compiler warning. - -Thu Oct 22 14:23:49 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/Makefile.in: disable building cygwin.exe. - -Thu Oct 22 14:16:10 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle): Minimize life of cs lock during - handling of signals to reduce the potential for a race. - -Thu Oct 22 10:23:19 1998 Christopher Faylor <cgf@cygnus.com> - - * include/sys/strace.h: Minor addition from threadsafe-branch. - -Thu Oct 22 09:03:18 1998 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (close_handle): Error condition needs a return value. - * environ.cc (parse_thing): char pointers should all be constant. - (add): Ditto. - * heap.cc (heap_init): Provide a little more information in - fatal printf. Use api_fatal to print errors. - * sigproc.cc (sigproc_terminate): Move code executed on - thread termination here from wait_sig since this function - may actually be executing in the signal thread. - * strace.cc (strace_open): Argument should be const. - (strace_init): Ditto. - * winsup.h: Ditto. - * include/cygwin32/version.h: Note that original shared memory - version was 0 for 98r2. - -Wed Oct 21 08:41:39 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (__api_fatal): Remove "cygwin" identifier. - * fhandler.cc (fhandler_disk_file::open): Set symlink flag - appropriately for previous change. - * shared.cc (shared_name): Initialize static buffer to - (hopefully) force it into NO_COPY segment. - * mkvers.sh: Reorganize, add cvs tag detection, and output - cygwin "info" defines. - -Tue Oct 20 18:42:50 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin32/version.h: rewrite versioning comments, - updating for new scheme but keeping historical information. - -Mon Oct 19 23:45:24 1998 Geoffrey Noer <noer@cygnus.com> - - * include/windows.h: remove Objective-C BOOL ifdef, now taken - care of within the include/Windows32 header files. - * fhandler_console.cc: fix KeyEvent references in light of - changes to the KeyEvent struct in the Windows32 headers. - - Update include/Windows32 header files. Changes from - Mumit Khan <khan@xraylith.wisc.edu>, Corinna Vinschen - <corinna.vinschen@cityweb.de>, and me. - * include/Windows32/CommonFunctions.h: new file, contents from - Functions.h. - * include/Windows32/*.h: Misc updates. - -Mon Oct 19 20:26:15 1998 Christopher Faylor <cgf@cygnus.com> - - * debug.cc: Throughout, avoid calling *_printf while lock - is active. Previous lock count was not thread-safe. - * fhandler_console.cc (console_read): Avoid sending a - \r to caller if ENABLE_LINE_INPUT. - (fhandler_console::read): Rely on console_read to handle - \r\n conversion. - -Mon Oct 19 12:10:09 1998 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Use more portable constructs to allow running - this with /bin/sh, bash, and ksh. - -Mon Oct 19 11:19:58 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::from_registry): Missed "b15.0" part - for writing mount information back to registry. - (mount_info::init): Remove obsolete stuff. - -Mon Oct 19 10:42:17 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Avoid newer GNU make construction when building - version.cc. - -Mon Oct 19 00:09:06 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: invoke mkvers.sh with $(SHELL) - -Sun Oct 18 15:19:17 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (set_name): Accept unit argument for generating - win32_name. - (fhandler_base::fhandler_base): Ditto. - (fhandler_dev_floppy::fhandler_dev_floppy): Ditto. - (fhandler_dev_tape::fhandler_dev_tape): Ditto. - (fstat): Set symlink bit only if symlink_p is positive. - * fhandler.h: Reflect unit argument changes. - * fhandler_serial.cc (fhandler_serial::fhandler_serial): Accept - unit argument for generating win32_name. - * hinfo.cc (hinfo::build_fhandler): Pass unit argument to constructor - where apropriate. - * path.cc (path_conv::path_conv): Set symlink_p to a positive - value if !nofollow, negative otherwise. - (windows_device_names): Can't default to \dev\comx. \dev part - doesn't work. - (get_device_number): Accept just "comN" for backwards compatibility. - -Sat Oct 17 01:58:15 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (globify): Fix problem with argument corruption - due to use of pointer freed by realloc. - -Sat Oct 17 00:10:53 1998 Christopher Faylor <cgf@cygnus.com> - - Change NOT_OPEN_FD to dtable.not_open throughout. - * Makefile.in: Change .dll name to cygwin1.dll. Increment - the '1' when there are API/shared memory changes. Make - version.cc file every time .dll is linked. Remove datestamp - stuff. - * mkvers.sh: New file. Creates version.cc. - * cygwin.din: Export setdtablesize. - * dcrt0.cc: Remove obsolete version variables. - (build_argv): Use issep() macro rather than isspace since - isspace includes whitespace that the shell does not consider - a command separator. - (check_sanity_and_sync): Use new cygwin version defines and - structures for compatibility checking. - (dll_crt0_1): Ditto. - (__api_fatal): Renamed from api_fatal. Now always called from - macro which tacks program name to beginning of fmt. Increase - size of buffer. - * environ.cc (regopt): Use new reg_key class constructor - functionality. - * net.cc (getdomainname): Ditto. - * path.cc (read_mounts): Ditto. - (mount_info::from_registry): Ditto. - (mount_info::to_registry): Ditto. - (hash_path_name): No need for this to be a "C" function. - * external.cc (cygwin32_internal): Export version info strings. - * external.h: Add CW_GETVERSIONINFO. - * fhandler.cc (fhandler_base::write): Eliminate use of MIN macro. - * init.cc (set_dllname): Obsolete function. Handled in version.cc. - (dll_entry): Remove reference to set_dllname. - * libccrt0.cc (this_proc): Renamed from cygwin_statu. - (cygwin_crt0_common): Record api version in this_proc. - * mmap.cc (recreate_mmaps_after_fork): No need for this to be - a "C" function. - * syscalls.cc (close_all_files): Ditto. - * pinfo.cc (lock_pinfo_for_update): Eliminate a compiler warning. - * registry.cc: Eliminate reg_session class. Augment reg_key to handle - functionality of reg_session. - * registry.h: Ditto. - * shared.cc (shared_name): No need for this to be a "C" function. - Use new cygwin version structure. - (shared_info::initialize): Use new reg_key class constructor - functionality. - * smallprint.c (__small_vsprintf): Accept %P as a format specifier. - Signifies the program name. - * spawn.cc (spawn_guts): Quote *all* of the stuff the dcrt0.c considers - special. - * tty.cc (tty::inuse_event_exists): Remove debugging printf. It results - in too much output to strace log. - * uinfo.cc: Add a needed include. - * uname.cc (uname): Use new cygwin version structure to fill in utsname - fields. - * winsup.h: Regroup into sections. Add new version structure. - * include/utmp.h: Move login/logout function declarations here. - * include/cygwin32/version.h: Define new CYGWIN version/info - stuff here. - -Fri Oct 16 00:13:35 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: enable building mingw subdir by default - -Thu Oct 15 12:01:08 1998 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Set all security attributes - for CreateProcess so that sexec will work properly. - -Thu Oct 15 08:49:12 1998 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::dup2): Avoid a null pointer dereference - in a debugging printf. - -Wed Oct 14 18:06:51 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * fhandler_console.cc (fhandler_console::dup): reset - default_color since the console fhandler forgets its default - colorizing when it's `dup'ed. - (fhandler_console::fhandler_console): remove unnecessary - erasing in constructor of fhandler_console. - -Mon Oct 12 22:20:59 1998 Christopher Faylor <cgf@cygnus.com> - - * fcntl.cc (fcntl): According to the "Single UNIX Specification", - F_DUPFD should *not* close its argument. Revert to previous - behavior. - * hinfo.cc (dup2): Guard against closing target fd too early. - * pinfo.cc: Always initialize myself to a dummy value so that - myself != NULL checks are avoided. - * include/sys/strace.h (strace): Remove NULL check for myself. - * dcrt0.cc (api_fatal): Ditto. - * exceptions.cc (handle_exceptions): Ditto. - * signal.cc (sigprocmask): Ditto. - (_raise): Ditto. - * strace.cc (get_strace_mutex): Ditto. - -Mon Oct 12 15:19:47 1998 DJ Delorie <dj@cygnus.com> - - * utils/ps.cc (main): use const char *pname - -Fri Oct 9 12:32:23 1998 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (getw): Simplify. - -Thu Oct 8 23:09:34 1998 Geoffrey Noer <noer@cygnus.com> - - * times.cc: add missing syscall_printfs to time functions, - slight reformatting. - -Thu Oct 8 21:56:37 1998 DJ Delorie <dj@cygnus.com> - - * hinfo.cc (cygwin32_attach_handle_to_fd): allow to pass -1 - for dup() simulation; return allocated fd. - * pinfo.cc (lock_pinfo_for_update): if the mutex is broken, - fail instead of looping. If you do loop, don't use 100% CPU. - -Thu Oct 8 18:33:02 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Add another per-thread object for strace. - (quoted): Fix misconception of method used to quote - quotes. - (globify): Optionally output arguments. - (build_argv): Ditto. - (dll_crt0_1): Fix typo in line reassignment. - * debug.cc (class locker): Avoid calling lock multiple times. - * exceptions.cc (call_handler): Set strace recursion flag - to zero when invoking a signal handler. - * fcntl.cc (_fcntl): F_DUPFD should close its argument. - * fork.cc (fork): Move determination of parent process to - a safer place. - * sigproc.cc (get_sig_dispatch_mutex): Rename. Use macro - interface to provide the name of the caller for strace output. - (release_sig_dispatch_mutex): Ditto. - * sigproc.h: Define *_dispatch_mutex wrappers. - * strace.cc (strace_printf): Use new per-thread object to - guard against recursion. - * winsup.h: Define per_thread_strace_protect. Redo per_thread - base class for a little more clarity. - -Wed Oct 7 22:30:43 1998 Geoffrey Noer <noer@cygnus.com> - - * fhandler_tty.h: up NTTYs from 16 to 128 - -Wed Oct 7 09:15:55 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (console_read): Distinguish between - 0 byte return from CTRL-C and EOF condition. - -Tue Oct 6 22:31:44 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (build_argv): Rewrite. Now: 1) allocates argv on - the fly, 2) inserts '@' files as they are found, 3) uses - sh-style quoting using either " or ' which may be embedded - in an argument. - (insert_file): Don't scan command line. Accept already - parsed arguments from build_argv. - (quoted): New function for parsing quoted strings. - (globify): Don't scan argv list. Accept element from - build_argv which will be tacked to end of argv as it - is being built. Extend quoting options to allow - tilde, braces, and quotes. - (dcrt0_dll_1): Simplify argv processing. Just call - build_argv, which handles everything. - -Tue Oct 6 11:04:43 1998 Christopher Faylor <cgf@cygnus.com> - - Change Create[A-Z]* calls throughout to use sec_none_nih - to avoid subprocesses accidentally inheriting handles. - * grp.cc: Hold group structures in group_buf rather than - an image of the /etc/group file. - (parse_grp): New function to parse a group line into a - struct group. - (add_grp_line): Use parse_grp to add line from /etc/group - into internal cache. - (read_etc_group): Avoid redundant feof call. Set up - default group. - (getgrgid): Just return appropriate entry from group_buf - rather than reparsing internal representation. - (getgrnam): Ditto. - (getgrent): Ditto. - * hinfo.cc (hinfo::select_*): Set errno value when attempt - is made to use an unopened fd. - * passwd.cc: Hold passwd structures in passwd_buf rather than - an image of the /etc/passwd file. - (parse_pw): New function to parse a passwd line into a - struct passwd. - (add_pw_line): Use parse_pw to add line from /etc/passwd - into internal cache. - (read_etc_passwd): Avoid redundant feof call. - (search_for): Just scan passwd_buf for matching entries. - (getpwent): Just return appropriate entry from passwd_buf - rather than reparsing internal representation. - -Mon Oct 5 18:06:31 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * sysdef/kernel32.def: add missing GetDiskFreeSpaceEx lines - -Sat Oct 3 23:52:23 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (si): Initialize so that NO_COPY will work. - * debug.cc (class locker): Fix previous change. Critical - sections are still required, so protect them if operating - in main thread to avoid signal problems. - Make any previously static use of locker global since that - appears to be the only foolproof way of marking the variable - NO_COPY. Rename these variables to something that is not - likely to be collided with. - * exceptions.cc (call_handler): Signal arrival of a dispatched - signal here and wait a long time for the mutex before giving - up. Should increase performance slightly. - * sigproc.cc (maintid): New external symbol. - * sigproc.cc (maintid): Make this global since it is used - in other places now. - (sig_dispatch_pending): Don't wait for wait_sig to complete - if there are no pending signals. Avoids a race and should - be faster. - (wait_sig): Don't set signal_arrived event here. Do it in - call_handler. - * strace.cc (strace_printf): Remove previous recursion check - since it is not signal safe. - * syscalls.cc (_read): Remove duplicate CreateEvent typo. - -Fri Oct 2 09:54:42 1998 DJ Delorie <dj@cygnus.com> - - * strace.cc (strace_printf): protect against recursion - -Thu Oct 1 17:08:47 1998 Geoffrey Noer <noer@cygnus.com> - - * utils/ps.cc (main): add more detailed usage printfs - -Thu Oct 1 11:05:16 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Fix typo in debug.o dependency. - * debug.cc (class locker): Give up on using critical sections - since they are not safe to use in the main thread due to signals. - -Wed Sep 30 22:34:42 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork): Close parent's parent_alive handle - if there is one or suffer a handle leak. - * syscalls.cc (_read): Make all events no access and - non-inheritable or suffer potential handle leak. - * windows.cc (gethwnd): Ditto. - -Wed Sep 30 17:22:29 1998 Geoffrey Noer <noer@cygnus.com> - - * include/io.h: add missing setmode proto - -Tue Sep 29 23:33:11 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_pty_master::close): Make sure - both sides of both pipes associated with a tty master are - closed or suffer handle leaks. - -Tue Sep 29 16:55:00 1998 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::init): remove default mounts for - raw devices. - * utils/mount.cc (reset_mounts): ditto - (main, usage): new -f flag disables warning messages about - missing mount point directories. Two new flags, disabled for - now: -c will create missing mount point directory, -g will - select adding the mount point to the global registry location. - * include/sys/mount.h: add MOUNT_GLOBAL define, for future use. - -Tue Sep 29 14:20:30 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (exception): Use %p to denote some hex - values. - * winsup.h (read_info): Add jmp_buf to structure. Required - for syscalls.cc change below. - -Mon Sep 28 19:36:41 1998 Syd Polk <spolk@cygnus.com> - - * include/{tchar.h, direct.h}: Added so that - tcl8.1a2 can be compiled with cygwin. - -Mon Sep 28 19:36:41 1998 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (thread_reset): Yet another method for - handling interruptible reads. - (_read): Use thread_reset to reset reads after a signal. - -Sun Sep 27 21:11:46 1998 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: New alias for __cygwin32_stack_trace. - * debug.cc (find_handle): Avoid leaving function without - unlocking. - (newh): Ditto. - * exceptions.cc (__cygwin32_stack_trace): Rename to just - `stack'. Shortens stack trace output. - (exception): Use %p to distinguish register values. - * fhandler_console.cc (fhandler_console::init): Remove - debugging sig_protect. - * init.cc (dll_entry): Move definition to avoid a - compiler warning. - * path.cc (mount_info::conv_to_win32_path): Detect - case of root directory when setting win32 relative - path. - (mount): Remove obsolete label. - * syscalls.cc (thread_sync): New function for exiting - the read helper thread. - (_read): Use new method for exiting the read helper - thread. - -Sun Sep 27 11:25:06 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * delqueue.cc (delqueue_list::process_queue): Clear queue - entry if file cannot be deleted for a reason other than - sharing violation. - -Fri Sep 25 08:52:50 1998 Christopher Faylor <cgf@cygnus.com> - - * debug.cc: locker variables should all be static. - * syscalls.cc (_read): Call ForceCloseHandle on - thread handle since it is protected. - -Thu Sep 24 18:59:25 1998 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount): don't verify that path is an existing - directory. Instead - * utils/mount.cc: verify that path is an existing directory - and print warning if it's not. Still do the mount. - -Thu Sep 24 11:45:04 1998 Christopher Faylor <cgf@cygnus.com> - - * debug.cc: locker class variables must be NO_COPY since - they contain data that should not be precisely duplicated - after a fork. This hopefully fixes a "SIGSEGV" problem. - * select.cc (peek_pipe): Pipes apparently should set both - "read" and "exception" flags on EOF. - -Wed Sep 23 18:26:31 1998 DJ Delorie <dj@cygnus.com> - - * doc/doctool.c (main): typo checking for --help - -Wed Sep 23 17:46:06 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_check_one): Try much harder to ensure that - CloseHandle is called on the file which was opened to check - for a symlink. Avoid obsolete check for NULL buf. - -Wed Sep 23 17:11:50 1998 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_read): Close thread handle or suffer a leak. - * dir.cc (opendir): Simplify logic. - (readdir): Ditto. Close handle explicitly when hit end - of files. - (rewinddir): Close directory handle or suffer leak. - (closedir): Simplify logic. - -Wed Sep 23 14:42:12 1998 Christopher Faylor <cgf@cygnus.com> - - patch from DJ Delorie <dj@cygnus.com>: - * path.cc (symlink_check_one): Don't re-define res or symlinks - will be undetectable. - -Wed Sep 23 12:02:39 1998 Christopher Faylor <cgf@cygnus.com> - - * Change calls to api_fatal throughout to avoid need for \n - (see below). - Adapt some *_printf()/ExitProcess combinations to use api_fatal. - * winsup.h (SIGTOMASK): Generate signal mask correctly for - programs linked with newer cygwins. - * dcrt0.cc (check_sanity_and_check): Set subtract constant for - signal mask calculation based on whether binary was linked with - "older" or "newer" cygwin. - (do_global_ctors): Accept a second argument indicating whether - the ctors should always be run. Necessary in forked processes - for cygwin constructors which may do more than just allocate memory. - (checkout): Remove obsolete function. - (dll_crt0_1): Remove obsolete function call. Call do_global_ctors - with second argument TRUE. - (api_fatal): Change to a print-style function, allowing arguments. - Always emit a "\n" after a message. - (__main): Do not force running of constructors in forked processes. - * exceptions.cc (call_handler): Simplify arguments passed to this - function. Eliminate potential race by setting signal masks here. - (sig_handle): Just calculate current sigaction pointer once. - Change call_handler arguments. - * fhandler_console.cc (fhandler_console::write_normal): Output - unknown characters to screen. - (fhandler_console::write): Make signal protection synchronous. - * fork.cc (fork): Reorganize slightly to eliminate a compiler warning. - * init.cc (dll_entry): Temporarily remove freeing of waitq_storage - on thread detach until a more robust scheme is developed. - * signal.cc (signal): Make signal protection synchronous. - (sigaction): Ditto. - * sigproc.cc (get_sig_dispatch_mutex): More debug info. - (release_sig_dispatch_mutex): Work around potential bug in windows - with double allocation of a mutex when WaitForSingleObject is - interrupted. Save errno here only if about to call sig_send - where it may be changed. - (wait_sig): Remove unnecessary sig_sign stuff. Add some debugging - output. - * termios.cc (tcflow): Signal protection. - (tcgetattr): Ditto. - (tcsetattr): Make signal protection synchronous. - * winsup.h: Add new extern for SIGTOMASK macro. Use it in SIGTOMASK - macro. Move errno stuff to end so that it can benefit from previous - declarations. - * configure.in: Move AC_CANONICAL_SYSTEM up a little to avoid having - configure generate some code (like the check for host type) twice. - * configure: Regenerate. - -Wed Sep 23 11:49:55 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_check_one): Fix handle leak resulting - from open of file to check for symlink magic. Suggested - by Corinna Vinschen <corinna.vinschen@cityweb.de> . - -Wed Sep 23 08:33:26 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler_tty.cc (process_ioctl): Use console handle - for ioctl operations. - -Tue Sep 22 23:58:20 1998 Geoffrey Noer <noer@cygnus.com> - - based on patch from sos@prospect.com.ru (Sergey Okhapkin): - * utils/ps.cc (main): rewrite ps to give it more options, - including a, e, f, l, and u. - -Tue Sep 22 15:18:41 1998 Geoffrey Noer <noer@cygnus.com> - - * path.cc (umount): remove initial system_printf - (mount): stat path, verify that it's an existing directory, - otherwise fail. - (strncasematch, strcasematch): return 0 instead of FALSE - * utils/mount.cc (reset_mounts): reset / to System drive, - not C: as was done in the old days. - -Mon Sep 21 18:18:18 1998 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount, umount, setmntent, getmntent, endmntent): - make extern "C" - -Mon Sep 21 20:37:16 1998 DJ Delorie <dj@cygnus.com> - - * doc/configure.in: don't try to find cc until we can correctly - configure it for a native cc in a cross build. - -Mon Sep 21 17:17:14 1998 Geoffrey Noer <noer@cygnus.com> - - * fhandler.cc (fhandler_disk_file::check_execable_p): - don't check for .shc since that's non-standard. Check for - .exe first. - -Mon Sep 21 14:57:50 1998 Geoffrey Noer <noer@cygnus.com> - - * doc/Makefile.in: reference -db2html in case docbook - tools aren't installed. - -Mon Sep 21 14:43:40 1998 Geoffrey Noer <noer@cygnus.com> - - patch from DJ Delorie <dj@cygnus.com>: - * doc/doctool.c (scan_file): correct off by one error in - malloc - -Mon Sep 21 14:28:38 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (select_record): Clear memory in constructor. - -Mon Sep 21 08:49:22 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * select.h: Use unsigned int to hold count in fd_set - structure or suffer alignment problems. - (WINSOCK_FD_ZERO): Back out previous change as it - is no longer needed due to the above. - -Sat Sep 19 22:58:18 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (console_read): Keep looping in - ENABLE_LINE_INPUT mode when no characters are read. - This apparently means that a CTRL-C has been hit. - * select.cc (select_record::operator new): Remove. - (setlect_stuff::~select_stuff): Use delete to remove - record. - (pipe_cleanup): Remove unneeded statement. - (poll_socket): Add debugging statement. - (start_thread_socket): Add debugging statements. - * fhandler.h: Remove new operator from select_record. - * select.h: Make WINSOCK_FD_ZERO more aggressive. - * sigproc.cc (allow_sig_dispatch): Use new errno - saving method. - * syscalls.cc (_read): Reorganize stack freeing - code to avoid overhead when it's not needed and - to actually decommit stack memory. - -Sat Sep 19 19:16:32 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * select.cc (socket_cleanup): Avoid using a pointer - after it has been deleted. - -Fri Sep 18 13:57:37 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: Really remove extra slash in INCLUDES. - Previous change didn't work. - pipe.cc (make_pipe): set close-on-exec flag for non-inheritable - pipes. - -Thu Sep 17 15:26:14 1998 Christopher Faylor <cgf@cygnus.com> - - * doc/Makefile.in: Add dummy install target. - -Thu Sep 17 12:30:49 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h (per_thread*): New classes for storing and - manipulating per_thread information. - (threadstuff): New array of per_thread objects which are - manipulated after a fork. - (read_helper_thread_info): read() thread local storage. - (waitq_storage): wait() thread local storage. - * debug.cc (class locker): New class for generic locking - of debug table manipulation. Use this throughout for - locking access to thread/debug tables. - (debug_init): Remove in favor of automatic constructor. - * debug.h: Ditto. - * fork.cc (fork): Iterate through threadstuff looking - for thread information to clear out. Should solve some - problems for Windows 95/98. - * init.cc (dll_entry): Remove thread storage initialization. - Use per_thread class for DLL_THREAD_DETEACH. - * sigproc.cc: Use system_printf rather than alert_printf - throughout since system_printf now has the same functionality. - (sigproc_init): Use method to initialize per-thread storage. - * sigproc.h: Remove waitq_storage declaration. - * syscalls.cc (_read): Use per_thread class to manipulate - per-thread information. - * wait.cc (wait4): Ditto. - -Wed Sep 16 12:58:49 1998 Christopher Faylor <cgf@cygnus.com> - - * syscalls.c (_read): Lower timeout for signal detection after - EOF on device. Should fix recent configure performance problems. - * Makefile.in: Extend clean target into regexp directory. - -Wed Sep 16 11:44:14 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::set_name): Honor no_free_names(). - (fhandler_base::linearize): Remove unneeded check for NULL - get_win32_name(). - (fhandler_disk_file::fhandler_disk_file): Set path names - to a standard constant. They should eventually be filled - out by fhandler_disk_file::open. - (fhandler_disk_file::open): Detect if win32_path_name_ is - a dummy path. Fill it out from real_path, if so. - * hinfo.cc (hinfo::init_std_file_from_handle): Improve debugging - statement. - (hinfo::linearize_fd_array): Remove unneeded check for NULL - get*_name (). - * path.cc (path_conv::path_conv): Correct problem with - symlinks found at places like E:\. - -Wed Sep 16 02:25:33 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler.cc (fhandler_disk_file::open): fix typo. - -Tue Sep 15 23:52:44 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Remove side effects from SLASH_P. - -Tue Sep 15 18:36:08 1998 Ben Elliston <bje@cygnus.com> - - * sysdef/kernel32.def: Add definition for the Win32 API function - `TryEnterCriticalSection'. - -Tue Sep 15 12:26:48 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove extra slash in INCLUDES. - * hinfo.cc (hinfo::dup2): Always clear close-on-exec - flag for duplicated handle (problem and fix determined - by Sergey Okhapkin, sos@prospect.com.ru). - * fhandler.cc (fhandler_base::set_name): Avoid use of empty - path names. - (fhandler_base::raw_read): Show error code on failure. - (fhandler_base::linearize): Avoid copying NULL names. - (fhandler_base::open): Use NULL detection in small_printf. - (fhandler_base::dup): Move set_close_on_exec_flag to dup2 - so it is caught in all cases. - (fhandler_disk_file::fhandler_disk_file): Set "no free names" - flag. - (fhandler_disk_file::open): Clear "no free names" flag since - names have been allocated to the fhandler structure at this point. - * fhandler.h (set_no_free_names): Newconditional "no free names" - function. - * hinfo.cc (hinfo::dup2): Clear close on exec here. - (hinfo::linearize_fd_array): Avoid copying NULL names. - * path.cc (normalize_posix_path): Avoid copying trailing slash - if root. - (nofinalslash): Rename variable. - * path.h: Add flag for future use. - * regexp/regerror.c: Avoid including RCS strings in product. - * regexp/regsub.c: Ditto. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * select.cc (thread_pipe): Sleep for 10ms on every iteration. - (start_thread_pipe): Set the handle in the select structure - so that it will be properly identified in select_stuff::wait. - -Tue Sep 15 12:28:30 1998 DJ Delorie <dj@cygnus.com> - - * added documentation and doctool.c - -Tue Sep 15 08:37:26 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Fix LIBGCC definition for native builds. - Remove CFCOMMON in favor of configure solution. - * configure.in: Default CXXFLAGS to be == CFLAGS. - * configure: regenerate. - -Sun Sep 13 19:52:04 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: include ../libio when building - -Sun Sep 13 19:30:58 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin32/version.h: bump version minor now that - we've merged in all that new code... - -Sun Sep 13 21:34:33 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_global_ctors): Reverse call order - of constructors thanks to insight from Mumit Khan - (hkan@xraylith.wisc.edu). - (do_global_dtors): Reflect above change: invoke destructors - in the proper order. - * smallprint.c (__small_vsprintf): Gracefully detect a - null pointer for '%s' format. - * syscalls.cc (_read): Set correct flags to retrieve stack - information or suffer sporadic failures due to uninitialized - flag. - * regexp/regexp.c: Comment out RCS string. This provides - no useful information in the .dll. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - Merge in experimental-980602 branch changes. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_check_one): known_suffix needs to be - determined here in some cases, so deal with it here. - (path_conv::path_conv): More effort needed to propagate - the known_suffix back to caller in every case. - (has_suffix): Return suffix found. - (readlink): Avoid two passes through symlink_check_one. - * spawn.cc (find_exec): Propagate known_suffix from - perhaps_suffix back to caller, if appropriate. - (spawn_guts): Use suffix returned from find_exec to - determine if file should be scanned as a script when - a #! file is found. Avoids a duplicate call to - perhaps_suffix. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * path.h (suffix_info): New struct for dealing with standard - suffix (.exe, .bat, etc.) information. - (path_conv): Constructor now takes a suffix_info argument. - (std_suffixes) Standard array of suffixes to consider "special". - * path.cc (path_conv): Constructor now takes a suffix_info - argument. Record any known suffix in path_conv known_suffix - field. - (has_suffix): New function for determining if a path already - has a known suffix. - (next_suffix): New function for returning the next suffix from - a list of suffixes. - (symlink_check_one): Take an optional suffix_info argument - for suffixes to consider or tack on. - * spawn.cc (std_suffixes): Standard list of executable suffixes. - (perhaps_suffix): Pass std_suffixes to path_conv. Use - new known_suffix field in path_conv to determine if a - suffix has been detected. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - Substitute new str{,n}casematch for strcasecmp throughout. - This implementation is faster since it only tests equality. - - Change fhandler*::open throughout to return true/false - since the pointer returned was never used for anything. - - * Use strcasestr throughout for case insensitive matches for - filenames. - * Makefile.in: Use GNU make construct for determining gcc lib. - * dcrt0.cc (check_sanity_and_sync): Make error message more - explicit. - * debug.h: Better defines for dummy functions when !DEBUGGING. - * fhandler.cc (fhandler_base::fstat): Don't bother zeroing buf - here since it is always done in the caller. - (fhandler_base::~fhandler_base): Recognize cases where *_path_name_ - should not be freed. - (fhandler_disk_file::open): Split into two functions. First - function performs a path_conv and does testing on same. This - calls new fhandler_disk_file::open with path_conv data. New - function is called by stat_worker to avoid extra path tests and - mallocs. - Also, fix long standing off-by-one typo looking for #! magic. - Also, reapply test for != WinNT when checking files for magic. - Otherwise there is a tremendous slowdown in file opening, especially - for stat(). - * fhandler.h: Add support for setting/detecting when *_path_name - should not be freed. - Add new fhandler_disk_file::open declaration. - * hinfo.cc (digits): Remove obsolete function. - (hinfo::build_fhandler): Add default name for FH_DISK. - * path.cc (path_prefix_p_): Don't check beyond len1 for leading - slash. Responsible for reported performance problems? - (path_conv::path_conv): Ensure that fileattr is filled out - correctly in all cases. Return immediately when a file - is detected in !follow_mode. - (nofinalslash): Simplify. - (strncasematch): New function similar to strncasecmp except - that it only checks for =/!= and benchmarks faster than same. - (strcasematch): Ditto, re. strcasecmp. - (strcasestr): New function which does a case-insensitive strstr. - Needed for filename matching. - * smallprint.c (__small_vsprintf): Fix off-by-one in %.ns processing. - * spawn.cc (exe_exts): Make global for eventual use by other modules. - * syscalls.cc (_fstat): Zero buf prior to use. - (stat_worker): Rename from _stat_worker. Reorganize to minimize - mallocs and path name conversions. Should now perform only one - path conversion and 0 malloc/frees. - * winsup.h: Declare new functions. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - Clean up error messages throughout using new strace_printf - options. - * smallprint.c (__small_vsprintf): Add %E option for printing - error code. Understand %.n syntax. - * strace.cc (strace_vsprintf): Common routine for formatting - strace output. Default to always ending with \n unless - string ends with \b. - (strace_write): Common routine for writing to strace output. - (strace_printf): Use above two routines. - (system_printf): Ditto. - * path.cc (path_conv): Scan path to be converted from right - to left for efficiency. Implement extension searching - which is passed from spawn to symlink_check_one to minimize - overhead. - (symlink_check_one): Check extensions for existence for use - with spawn. - (readlink): Accommodate changes to symlink_check_one. - * spawn.cc (perhaps_suffix): Use new extension checking - capabilities of path_conv. - (find_exec_1): Delete. - (find_exec): Generalize to allow searching on any PATH like - environment variable. - * dllfcn.cc (check_path_access): Use find_exec to find a path. - This also ensures that paths are in Windows format which was - not the case before. - * environ.cc (conv_envvars): Add LD_LIBRARY_PATH. - * fork.cc (fork): Clean up dll loading slightly. - * Makefile.in: Turn on compiler warnings. - * winsup.h (save_errno): New class for saving errno from - being clobbered. - * include/sys/strace.h: Make system_printf a macro similar - to strace_printf_wrapper. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Attempt to work around Windows strangeness - when thread interrupted while waiting for completion event. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Remove debugging function DELETEME (). - * fhandler.cc (fhandler_base::fstat): Respond to compiler warning. - * signal.cc (sleep): Reset signal_arrived event before using it or - we could wake up immediately. - (usleep): Ditto. - (pause): Ditto. - * spawn.cc (spawn_guts): Ditto. Respond to compiler warning. - * sigproc.cc (sig_send): More debugging info. - (sig_dispatch_mutex): Only ping wait_sig when needed. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (socket_cleanup): Close thread handle or suffer - handle leak. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (verify_true): New function. - (fhandler_socket::select_*): Use verify_true for verification - function to avoid multiple calls to socket select. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (select_stuff::wait): Scan entire list of fds - when WFMO wakes up. - (set_bits): Add some strace debugging output. - (thread_socket): Ditto. - (verify_ok): Return result of set_bits rather than always 1. - (start_thread_socket): Set the handle in the select structure - so that it will be properly identified in select_stuff::wait. - (fhandler_windows::select_read): Verification routine should - be `poll_windows'. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc: Change some sigproc_printfs to only occur when - #ifdef DEBUGGING. - * spawn.cc (perhaps_suffix): Search for (PROG is the pathname to - the executable file) PROG.exe, PROG.com, PROG.bat, PROG.cmd, and - PROG and return extension found or NULL if no matching file. - (spawn_guts): If the file name of the executable ends in either - .exe, .com, .bat, or .cmd we assume that it is not a script file - and therefore do not open the file to determine if it is. - Fix "wait_failed" error when exec() called and non-cygwin parent. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (rmdir): Set correct errno when non-empty directory and - Windows9x. - * pipe.cc (pipe): Use binary mode by default for pipes. - * syscalls.cc (_read): Wait for terminated thread to exit before - clearing its stack memory. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::fixup_after_fork): Start initial fd search - to zero forked processes so that a close(0)/dup(fd) will work. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler_windows::set_close_on_exec: Deal with possible - NULL handle. - (fhandler_windows::fixup_after_fork): Ditto. - * select.cc (select_stuff:wait): Handle return from - MsgWaitForMultipleObjects correctly for windows case. - * sigproc.cc (sig_send): Reset completion event for main thread. - * syscalls.cc (_read): Better handling of stack free condition. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Exit earlier if just running - in an exec'ed stub since the stub may own the sig_dispatch mutex, - but we still want to exit. - * select.cc (select_stuff::wait): Fix check for window activity - from MsgWaitForMultipleObjects. Handle infinite wait correctly. - (poll_windows): Add debugging output. - * spawn.cc (spawn_guts): Protect against signals interrupting - at an inopportune moment. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (select_stuff:test_and_set): Take appropriate action - when a select record uses a window_handle. - (fhandler_windows::select_read): Set handle and windows_handle - appropriately. - (fhandler_windows::select_write): Ditto. - (fhandler_windows::select_except): Ditto. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (cygwin32_select): Need to reset signal_arrived before - testing it or suffer loop. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (resume_child): Give up on SuspendThread synchronization - and use subproc_ready/forker_finished events. - (sync_with_parent): Ditto. - * sigproc.cc (wait_sig): Make sigcomplete_main manual reset to - allow handling of nested interrupts. - (wait_sig): Fix stupid typo on exit that would cause a - loop to run for a long time. Are exits faster now? - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (unlock_cs): Leave decision to release - sig_dispatch_mutex to the caller. - (set_process_mask): Call release_sig_dispatch_mutex explicitly - if needed. - (handle_sigsuspend): unlock_cs no longer takes an argument. - (call_handler): Try to acquire the strace mutex prior to - suspending the main thread to ensure that the mutex is always - released. - (sig_handle): Call release_sig_dispatch_mutex explicitly. - * fhandler_console.cc (fhandler_console::write): Protect against - signals while writing. - * signal.cc (signal): Protect against signal dispatch. - (sigaction): Ditto. - * sigproc.cc (sig_dispatch_pending): Return status no longer needed. - (sig_send): Assume pending_signals if sending signal to self. - (allow_sig_dispatch): Accept synchronize argument to control whether - to wait for wait_sig to do its thing. - (release_sig_dispatch_mutex): Just awaken wait_sig loop and wait - for acknowledgement if waitfor is TRUE. - (wait_sig): Don't ever zero pending_signals to avoid a possible race. - Set pending_signals for blocked signals, too. - * sigproc.h: Add __SIGFLUSH signal. - (class sig_protect): Allow destructor to wait for signal dispatch, - or not given constructor argument. - * strace.cc (get_strace_mutex): Renamed from waitfor_strace_mutex. - (release_strace_mutex): External function for use by call_handler. - This replaces raw calls to ReleaseMutex throughout. - * syscalls.cc (_read): Use sig_protect to protect against signals. - Other cosmetic cleanups. - (_close): Protect function with sig_protect. - * termios.cc (tcsetattr): Protect function with sig_protect. - -Thu Sep 10 21:09:51 1998 DJ Delorie <dj@cygnus.com> - - * syscalls.cc (_read): typo in matching printf format to args. - - * fhandler.cc (write): Switch to the Microsoft/DJGPP way of - writing out text files: pass \r but prepend \r to \n. - (read): Don't collapse multiple \r's. - - * delqueue.cc: rewritten for speed. Don't check *every* entry in - the list if we know the list is empty, plus check for duplicates. - * delqueue.h: ditto. - * path.cc (path_conv): If a path component is missing, short- - circuit the symlink check. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Reorder fhandler status field so that device is - in lower bits. This allows gcc to optimize access to the device. - * hinfo.cc: Inline not_open(). - * winsup.h: Inline hinfo::not_open(). Make hinfo::[] operator a - simple array reference. - * strace.cc: Change strace() to a macro. - * include/sys/strace.h: Ditto. - * syscalls.cc (read_handler): New function. Called directly from - _read for "non-slow" devices or via read_handler for slow devices. - (_read): Use read_handler for reading. - (read_helper): Ditto. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Don't ignore signals if reparenting. - Besides being a race, this screws up the process which is - actually executing. - * fork.cc (fork): Don't create a new process group when - forking or subprocesses won't respond to CTRL-C. - * syscalls.cc (_read): Ensure correct setting of EINTR errno. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (sync_with_child): Consider it a success if the child - has set the subproc_ready signal regardless of whether it has - exited or not. - * init.cc (dll_entry): Set read_helper_thread_info stuff to 0 - on dll initialization. Windows 95 seems to keep garbage here, - despite documentation to the contrary. - * syscalls.cc (_read): Report on errors to create read_helper - events. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (compute_argc): Limit debug_printf string argument size - or suffer a buffer overrun. - (do_exit): Add debugging statement. - * exceptions.cc (call_handler): Remove extraneous sigproc_printf. - Consolidate signal_arrived event with sig_was_dispatched. - (events_terminate): Consolidate signal_arrived event with - sig_was_dispatched. - * fhandler.h: Rename a field to something more mnemonic. - * fhandler_tty.cc: Throughout: Only set up fhandler_tty_master when - actually using ttys. Change tty_master `f' field to `console'. - * tty.cc: Ditto. - * fork.cc (sync_with_child): Add more information to "child died" - error. - * hinfo.cc (hinfo::build_fhandler): Call tty master constructor - when appropriate. - * select.cc (select_stuff::wait): Consolidate signal_arrived event - with sig_was_dispatched. - * sigproc.h: Ditto. - * syscalls.cc (_read): Ditto. - * winsup.h: Ditto. - * sigproc.cc: Ditto, throughout. - (block_sig_dispatch): Don't reset signal_arrived. Causes races. - * spawn.cc (spawn_guts): Limit debug_printf string argument size - or suffer a buffer overrun. - * include/sys/strace.h: Implement strace_minimal for very minimal - output which, hopefully, will not affect the behavior of traced - programs as much. - -Thu Sep 10 21:09:51 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: build libwinspool.a with the dll name winspool.drv - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (build_argv): Remove verbose debug_printf. - (dll_crt0_1): Use shared data handle passed in from parent process - when appropriate. Remove extraneous debug_printf. - * environ.cc (getwinenv): New function. Returns (possibly cached) - native version of an environment variable. - (win_env::add_cache): Add cached version of posix and win env - variables to local table. - (posify): Modify for use with native caching. - (setenv): Convert special environment variables to native here, - when they are set. - (struct parse_thing): Simplify struct. - (struct parse_things): Extend table to accommodate "envcache" - setting. - (parse_options): Add "envcache" option to control whether special - environment variables are cached. Simplify handling of remembered - parameters. - (winenv): Modify for use with getwinenv. - * exceptions.cc (unlock_cs): release_sig_dispatch takes an argument - now. - (set_process_mask): unlock_cs now wakens wait_sig when appropriate. - (handle_sigsuspend): Reorganize to take advantage of new behavior - of release_sig_dispatch_mutex and hopefully avoid a race. - (handle_sig): Avoid waking wait_sig if we couldn't get the dispatch - mutex. - * exec.cc (strccpy): Change to modify second argument to point - to position where "parse" stopped so that it doesn't have to be - recalculated by the caller. - (sexecvpe): Use find_exec () to find program to run. If you've - got a function for this, you might as well use it. - * fhandler_tty.cc (fhandler_pty_master::process_input_to_slave): - Report on signal being sent in termios_printf. Use kill_pgrp - interface. - * fork.cc (fork_copy): Just copy everything at once rather than - in individual pieces. - (fork): Potentially move up sbrk() when DEBUGGING so that parent - and child heaps are in sync. Pass cygwin_shared_h to child. - * path.cc (path_conv::path_conv): Make sure that a file is not - a symlink when returning immediately. - * sigproc.cc (sig_dispatch_pending): Return TRUE if signals were - pending. - (sigproc_init): Move sig_was_dispatched initialization here so - that it will always be available to other functions which rely - on it. Otherwise these functions would have to wait for wait_sig - to complete its initialization. - (sig_send): Rework SIGSUSPEND handling. - (release_sig_dispatch_mutex): Wait for signal to be dispatched - after releasing mutex if argument is TRUE. - (wait_sig): Remove sig_was_dispatched initialization from here. - * sigproc.h: release_sig_dispatch takes an argument. - * spawn.cc (perhaps_suffix): Take an optional argument indicating - whether the path has already been converted to win32. - (find_exec_1): Use getwinenv to get windows version of PATH. Use - windows version of individual directories to avoid posix lookups. - (spawn_guts): Call strace_dump here to cause strace output to - be slightly more synced when using strace caching. - (spawnvpe): Use find_exec () to find program to run. If you've - got a function for this, you might as well use it. - * syscalls.cc (_read): Only block signals for "slow" devices. - * winsup.h: Changes needed for previous checkin and getwinenv. - -Thu Sep 10 21:09:51 1998 DJ Delorie <dj@cygnus.com> - - * path.cc (path_conv): bug fix when path ends in slash - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::set_name): Use fhandler - method for determining native name. Avoid path_conv - when possible. - (fhandler_disk_file::get_native): New function, returns - windows name of disk file. - * fhandler.h: Add get_native() method to fhandler_* - classes. - * fhandler_serial.cc (fhandler_serial::get_native): Return - windows name of serial port. - * fhandler_tty.cc (fhandler_tty_master::init): Use consistent - name for tty master. - * fork.cc (fork_copy): Experimental change to avoid loop. - * grp.cc (add_grp_line): Use realloc to extend group buffer. - * hinfo.cc (hinfo::release): fd object should be deleted, - not freed or suffer a memory leak. - (init_std_file_from_handle): Reset first_fd_for_open to - signal that std* locations have been opened. Avoids use - of these locations prior to full dtable setup. - * passwd.cc (add_pwd_line): Use realloc to extend passwd buffer. - * path.cc (path_conv::path_conv): Avoid checking for symlinks on - network shares. Check for existence of file prior to taking - it apart for symlink checking (this needs more work). - (windows_device_names): Make global. - (get_device_number): Detect tty master. - * sigproc.cc (wait_sig): Maintain a flag which indicates when - signals are queued due to the wait_sig's inability to get a - sig_dispatch mutex. - (sig_dispatch_pending): Don't wake up the wait_sig thread if - unless there are signals queued (see above) or force argument. - (allow_sig_dispatch): Only wait for signal dispatch if something - is queued. - * sigproc.h: allow_sig_dispatch takes a (defaulted) argument now. - * syscalls.cc (_open): Use default hinfo::find_unused_handle call. - * net.cc: Ditto, throughout. - * pipe.cc: Ditto. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Ignore user initiated signals here. - * fhandler.cc (fhandler_disk_file::open): Detect error condition - on fhandler_base::open. - * fhandler_console.cc (undo_input): Respond to compiler warnings. - * grp.cc (getgrgid): Ditto. - * times.cc (_tzname): Ditto. - * fhandler_tty.cc (fhandler_Tty_slave::open): Cosmetic changes. - * fork.cc: Clean up debugging output. - * pinfo.cc (pinfo_init): Set pgid and sid to different values - initially. Let user program set sid appropriately if it is - to be the owner of a tty. - * sigproc.cc (allow_sig_dispatch): Try harder to detect when we - should wait for a signal dispatch. - * strace.cc (strace_open): Revert to previous mutex behavior. - * include/sys/strace.h: Ditto. - * syscalls.cc (_open): Detect error from fhandler open. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - Global changes: - Store win32 name in fhandler structure to avoid multiple translations. - Support close_on_exec at the Win32 level for all but sockets. - Respond to gcc warnings. - Use single fstat() call for devices. - *::set_close_on_exec modified. - * dir.cc (opendir): Use win32 name in stat to speed things - up a little. - * debug.cc: New file. Provides routines for extra debugging - when -DDEBUGGING is specified. - * debug.h: New file. Definitions for debug.cc. - * exceptions.cc (signals_init): Break out signal initialization - from exceptions. - (dump_status): Add thread name to stack dump output. - (handle_exceptions): Renamed. - (set_process_mask): Don't ever mask non-maskable signals. - (ctrl_c_handler): Preliminary change to allow propagation of - cygwin signals back to gdb. - (sig_handle): Call do_exit directly from signal thread rather than - attempting to redirect the main thread. - * fhandler.cc (set_name): Store win32 name in fhandler structure. - (*::open) name field is extraneous now. Use get_win32_name () to - retrieve stored win32 name. - (fhandler_base::fstat): Default to performing fstat on a device. - (fhandler_disk_file::fstat): Renamed from fhandler_base::fstat. - Operate only on disk files. - (fhandler_base::set_close_on_exec_flag): New function sets flag - without touching the handle. - (fhandler_base::~fhandler_base): Free unix/win32 path names. - (fhandler_disk_file::close): Only call delqueue.process_queue from - this function since disk files are the only things that can - be unlinked, currently. - (fhandler_dev_null::open): Delete. - (set_inheritence): New function. Set handle inheritence. - (fhandler_*::fork_fixup): New functions. Inherit fhandler data - after a fork. - fhandler.h: *::set_output_handle - new method. - Setup methods for use by select(). - fork.cc (fork): Call fixup_after_fork in child to inherit - handles marked as non-inheritable on CreateProcess. - hinfo.cc (hinfo::build_fhandler): Use new function to detect - devices. - (dup_for_exec): Delete obsolete function. - (hinfo::dup2): Remove extraneous tests. - (hinfo::select_*): Interfaces into select(). - (hinfo::release): Free fd in dtable. - (hinfo::fixup_after_fork): New function. Inherit close-on-exec - handles from parent after fork. - path.cc (mount_info::posix_path_p): Make inline. - (path_conv::path_conv): Short circuit when path resolves to a device. - (digits): Move here from hinfo.cc. - (windows_device_names): Win32 names for Cygwin devices. - (get_device_number): New function. Return devie number given device - name. - (win32_device_name): New function. Decode a windows device name - and an optional "unit". - (mount_info::conv_to_win32_path): Short circuit when path resolves to - a device. - * path.h: add device and unit fields to path_conv class. - * select.cc: Rewrite for more structure, more OO. - * sigproc.cc: (get_sig_dispatch_mutex): New function. - (release_sig_dispatch_mutex): New function. - * sigproc.h: sig_protect class. Automatic protection from signals - when used. - * syscalls.cc (stat_dev): New function. - (stat_worker): Short-circuit when a cygwin device is detected. - * utils/ps.cc: Don't lock_pinfo when -f. Compress format to fit - more on a line. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Register name for main thread. - * exceptions.cc (dump_status): Add thread name to diagnostic output. - (__cygwin32_exception_handler): Rename to handle_exceptions. Avoid - creating a .core file. - * exec.cc (sexecve): Reflect spawn_guts argument change. - * fhandler_tty.cc (fhandler_tty_master::init): Use makethread to - create a new thread. - * select.cc: Create pipe/socket threads each time select is called. - Use thread termination as indication of fd readiness. - * sigproc.cc (sigproc_init): Use makethread to create a new thread. - (wait_sig): Simplify default signal call slightly. - * spawn.cc (spawn_guts): Accept child pinfo pointer rather than - pid. Reorganize so that common initialization is handled once. - * strace.cc: Set strace_mutex to NULL initially to catch CreateMutex - errors. - * window.cc (gethwnd): Use makethread to create a new thread. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add debug.o target. - * cygwin.din: Separate pipe from _pipe. - * dcrt0.cc (alloc_stack): New, more precise method for allocating - stack space after a fork. - (dll_crt0_1): Use new child_proc_info class to retrieve information - from possible parent process. Remove #ifdef erroneously checked in. - Remove extraneous syscall_printf. - * exceptions.cc (signals_init): New function. - * fhandler.cc (fhandler_make_pipe): Move to pipe.cc. - * fhandler.h (fhandler_base): New = operator preserves unix_path_name_. - * fhandler_tty.cc: Strip some tty functions from here into tty.cc. - * fork.cc: Remove obsolete ifdefs. Reorganize, streamline with new - fork. - * hinfo.cc: Speed up build_fhandler. - * libccrt0.cc: Remove obsolete ifdefs. - * pinfo.cc (pinfo_init): Simplified by new fork/spawn info passing - method. - * pipe.cc (make_pipe): Moved from fhandler.cc. Handles MS-style - _pipe. - (pipe): Use new arguments to make_pipe. - (_pipe): New MS-compatible function. - * shared.cc: cygwin_shared_h make global so that it can be inherited - via new fork/spawn info passing method. - (open_shared_file_map): Detect if shared info is already set up from - fork/spawn. - * sigproc.cc (sigproc_init): Initialize signals with signals_init here. - Use new fork/spawn info passing method. - * spawn.cc (spawn_guts): Pass information in a structure to spawned - process. Identify structure type with a "magic number". - * strace.cc (strace_printf): Only print program full path spec once - to save space and clutter. Preserve any windows error. - * syscalls.cc (_open): Detect and avoid error return from - build_fhandler. - * tty.cc: Accept some non-fhandler functions formerly found in - fhandler_tty.cc - * winsup.h (pinfo): Remove some fields obsoleted by new fork/spawn - info passing method. - (child_info*): New classes for passing information to forked/spawned - process. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add debug.o target. - * console.cc (fhandler_console::char_command): Fix failed merge. - * dcrt0.cc (alloc_stack): New, more precise method for allocating - stack space after a fork. - (dll_crt0_1): Use new child_proc_info class to retrieve information - from possible parent process. Remove #ifdef erroneously checked in. - Remove extraneous syscall_printf. - -Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com> - - Global changes: - Replace pinfo hmap entry with "dtable" reference. - Replace cygwin_shared .t field with '.tty' and allow indexing via - tty into this array. - Make fhandler_ constructors set the size of the structure into any - created class. - Change fhandler settings into a bit mask. Use methods to access. - Record device type in fhandler class. - Remove old linearize/de_linearize code in favor of newer method - uses more bullet-proof method for determing device type of inherited - files. - Protect various important handles from closing when operating - under -DDEBUGGING. - * dcrt0.cc (do_global_ctors): Renamed, made static and reused - for calling from dll_crt0_1 to initialize cygwin.dll constructors. - (do_global_dtors): Renamed. - (dll_crt0_1): mark noreturn. Use new do_global_ctors function. - Call debug_init to initialize features turned on by -DDEBUGGING. - Call dtable_init to initialize dtable, hinfo_init to initialize - standard fds. - (dll_crt0): Mark noreturn. Move constructor calls to dll_crt0_1. - (__main): Use new do_global_ctors (). - Remove OLDWAY and _PPC_ conditionals. - * environ.cc (environ_init): Use appropriate strace printf. - * exceptions.cc (set_process_mask): Don't ever mask out unmaskable - signals. - * init.cc (dll_entry): Initialize storage for read_helper. - * pinfo.cc (init_from_exec): Delete obsolete function. - * sigproc.cc (sig_send): Implement myself_nowait to allow - sending a signal to myself without waiting for synchronization. - (wait_sig): Change method for determining whether signal should - be examined slightly. - * strace.cc (strace_printf): Add ability to report on thread from - which message originated. - (threadname): New function - * syscalls.cc (read_helper): New function. Invoked in separate thread - from _read. - (_read): Use a separate thread for reads that can be interrupted - with a TerminateThread(). Allows EINTR. - (setdtablesize): Use new method for extending the size. Callable - from anywhere. - (getdtablesize): Use new method for getting the current dtable size. - * tty.cc: Remove use count in favor of a method which checks tty - availability via an event. Some code cleanup. - (tty::inuse): New function for determining if a tty is - in use by any process. - (tty_list::terminate): Use new method for determining if a tty is in - use. Should avoid hangs waiting for non-existent processes to - free up a tty. - (tty::common_init): Common initialization for tty/pty master. - (fhandler_tty_master::init): New function. - (do_output): Use new method for determining if a tty is in use. - (fhandler_pty_master::open): Use comon initialization code. - (fhandler_pty_master::ptsname): static buffer is ok now. - * tty.h: Reflect inuse changes and tty.cc cleanup. - * winsup.h: Include debug.h for use when -DDEBUGGING. Remove - stuff previously here which was conditionally compiled with -DDEBUGGING. - (hinfo_vec): Rename to hinfo. Maintain argv style list of pointers - to open fds. Add methods to deal with above changes. - (pinfo): Removals due to above changes. - (shared_info): Rename t to tty. - Add common defines to extern "C" section. - -Wed Sep 9 22:24:50 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_prefix_p_): Rewrite to avoid false match - against root when remote path or \\x style disk device. - * include/sys/strace.h: Implement new macro for use by - malloc_printf which does not default to "on" if STRACE=1. - This avoids massive strace logs. - -Tue Sep 8 11:31:42 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Remove ill-advised ifdef NEEDOEM. - -Thu Sep 3 17:54:18 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Speed up dll links. - * path.cc (chdir): Fix previous change. - -Mon Aug 31 12:23:33 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Protect free from potential signal race. - -Fri Aug 28 15:59:27 1998 Geoffrey Noer <noer@cygnus.com> - - * dlfcn.h: delete, move it - * include/dlfcn.h: here - -Thu Aug 27 14:20:38 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * path.cc (path_conv::path_conv): remove trailing backslash from - full win32 name, otherwise the last component of the path isn't - checked for symlink. - -Wed Aug 26 14:15:22 1998 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_base): Make set_name() public and implement - clear_name() to accommodate dup2. - * hinfo.cc (dup2): Previous change exposed problem with dup2. - Same unix_path_name_ ptr was being used in two separate fds. - Fix this. - -Wed Aug 26 12:10:27 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * malloc.cc: Use malloc_printf throughout. - * path.cc (getcwd_inner): Allocate buffer with realloc to - avoid a memory leak. - * syscalls.cc (_close): delete unix_path_name_ explicitly since - destructor is never called. - * include/sys/strace.h: Add strace_malloc stuff. - -Mon Aug 24 15:45:59 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/ioctl.h: variable names in protos should start - with two leading underscores. - * include/sys/mman.h: ditto. - * include/sys/mount.h: ditto. - * include/sys/resource.h: ditto. - * include/sys/smallprint.h: ditto. - * include/sys/socket.h: ditto. - * include/sys/strace.h: ditto. - * include/sys/vfs.h: ditto. - * include/sys/wait.h: ditto. - * include/mntent.h: ditto. - -Tue Aug 18 17:00:20 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Trevor Yann (TYann@vet.com.au): - * uname.cc (uname): report processor type for win98 - -Tue Aug 18 16:09:13 1998 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (cygwin_fork_helper1): Start initial fd search - to zero forked processes so that a close(0)/dup(fd) will work. - -Mon Aug 17 16:58:09 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h (hinfo): Remember initial fd to start searching - for new fds. This avoid assigning std/in/out/err to - files opened early in initialization. - (hinfo_vec::find_unused_handle): New default way to search - for a new handle. Avoids using std/in/out/err until the - proper time in the initialization. - * fhandler.cc (fhandler_make_pipe): Use default method for - finding unused handle. - * net.cc: Ditto throughout. - * pipe.cc (dup): Ditto. - * syscalls.cc (_open): Ditto. - * hinfo.cc (hinfo_vec::init_std_file): Set initial fd for open - search to include std/in/out/err. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * spawn.cc (perhaps_suffix): Use translated win32 path when - determining if a .exe extension should be added or suffer adding - a .exe extension twice. - -Mon Aug 10 15:08:49 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin32/version.h: up minor version number - -Mon Aug 10 07:04:13 1998 DJ Delorie <dj@cygnus.com> - - * delqueue.cc: rewritten for speed. Don't check *every* entry in - the list if we know the list is empty, plus check for duplicates. - * delqueue.h: ditto. - -Sat Aug 8 14:03:52 1998 Eric Bachalo <ebachalo@cygnus.com> - - * spawn.cc (perhaps_suffix): If report_failure_p is non-zero this - function will search for (PROG is the pathname to the executable - file) PROG.exe, PROG, PROG.com, PROG.bat, and PROG.cmd and return - either the full path name if found or NULL if not. - (spawn_guts): If the file name of the executable end in either - .exe, .com, .bat, or .cmd we assume that it is not a script file - and therefore do not open the file to determine if it is. - -Thu Aug 6 22:25:38 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv): If a path component is missing, short- - circuit the symlink check. Bug fix for case where path ends - in a slash. - (path_conv::path_conv): Make sure that a file is not - a symlink when returning immediately. Avoid checking for - symlinks on network shares. Check for existence of file prior - to taking it apart for symlink checking (this needs more work). - -Sun Aug 2 19:17:59 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (cleanup_pipe_thread): Cleanup thread handle or suffer - handle leak. - (cleanup_socket_thread): Ditto. - * sigproc.cc (proc_subproc): Make wait thread manual reset to - solve problem with nested waits not waiting correctly. - * fhandler_tty (fhandler_tty_slave::open): Don't create the output - mutex, just open it. If it can't be opened, its an error. - -Wed Jul 29 12:08:19 1998 Eric Bachalo <ebachalo@loony.cygnus.com> - - * include/Windows32/Defines.h: Added Virtual-Key Code defines - for the Win95 keys - VK_LWIN, VK_RWIN, and VK_APPS. - -Tue Jul 21 14:47:59 1998 DJ Delorie <dj@cygnus.com> - - * path.cc (path_prefix_p): optimize calls by comparing first - characters inline. - (path_conv): optimize by not checking both foo and foo/ for - symbolic links. - -Tue Jul 21 14:39:03 1998 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (pinfo_init): Set myself->sid to 1 so that - a program started up outside of cygwin will not trump - other opens of ttys. Fixes problem with pgid change below. - -Tue Jul 21 12:59:21 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Force chdir to disk device to go to the root - directory. - -Tue Jul 21 09:32:23 1998 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (pinfo_init): 0 is a very bad value for a default pgid. - -Fri Jul 16 15:09:50 1998 Stan Cox <scox@cygnus.com> - - * (gcrt0.c, gmon.c, profil.c, mcount.c, gmon.h, profil.h, - config/i386/profile.h): New files for gprof cygwin support. - Some code contributed by Tim Newsham for Secure Networks, Inc. - * Makefile.in (LIBGMON_A, GMON_START, GMON_OFILES): New for gprof. - -Mon Jul 13 19:29:00 1998 Eric Bachalo <ebachalo@loony.cygnus.com> - - * dcrt0.cc (insert_files): Now both -@file and @file work as - command line file insertion options. - * fhandler_serial.cc (fhandler_serial::open): Enabled RTS Control - Line by default to make full handshaking cables work for the - D10V board. (CDB.fRtsControl) - (fhandler_serial::tcsetattr): same as above - -Wed Jul 8 15:53:35 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Avoid redundant strace_printf. - -Wed Jul 8 15:05:10 1998 DJ Delorie <dj@cygnus.com> - - * fhandler.cc (fhandler_base::lseek): Note lseek so that next - write() can check for the Win95 "gap" bug. - (fhandler_base::write): If Win95 and lseek past eof - followed by write, use WriteFile to force the "gap" to be filled - with zeros rather than left to the "undefined" data Win32 specifies. - (fhandler_base::fhandler_base): initialize check_win95_lseek_bug_. - * fhandler.h (class fhandler_base): Add check_win95_lseek_bug_ - for bug: when seek past EOF and write, win95 fills with random - data (security hole). - -Thu Jul 2 10:45:15 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (winenv): Be more paranoid when restoring special - win32 environment variables beginning with '='. - -Thu Jul 2 09:19:32 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc: Previous change was not rigorous enough. - Track environment variables to convert in a structure which - records the correct function for converting the environment - variable from/to POSIX format. - (isspecial): New function. - (parse_options): Use template to initialize parse array. - (posify): Use new conversion function. - (winenv): Ditto. Also restore special win32 environment variables - beginning with '='. - * path.cc (conv_path_list): Source argument should be const. - (win32_to_posix_path_list): Ditto. - (posix_to_win32_path_list): Ditto. - * path.h: Reflect changes to path.cc. - -Tue Jun 30 14:00:32 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (winenv): Avoid converting environment variables to - windows style if they begin with something like a 'C:'. - -Sun Jun 28 20:59:16 1998 Christopher Faylor <cgf@cygnus.com> - - * include/Windows32/Structures.h (MINMAXINFO): Add a missing - *LP... - -Thu Jun 25 10:45:38 1998 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (sigpending): Stop from always reporting pending signals - when no signals are actually pending. - -Tue Jun 23 15:38:45 1998 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add a new target. - * cygwin.din: Add cygwin32_internal interface. - * dcrt0.cc (dll_crt0_1): Don't call main if no main set. Allows - initialization from a .dll. - * utils/ps.cc: Use new internal/external interface to cygwin to - provide an unchanging interface to some cygwin internals. - * external.h: Preliminary stab at an interface to cygwin32 for - getting at the "naughty bits". - * external.cc: External interfaces to some cygwin internal stuff. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * exceptions.cc (sig_handle): When abnormally terminating, - close_all_files in signal thread context to prevent socket hangs. - -Thu Jun 18 15:17:06 1998 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (pinfo_list::allocate_pid): Wrap pids at SHRT_MAX - or ash complains. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * window.cc (WndProc): Always kill timer before starting up - a new one or eventually suffer a timer proliferation. - -Mon Jun 15 09:40:30 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc: Cosmetic change. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * syscalls.cc (system): Ignore SIGINT, SIGQUIT and SIGCHLD while - in a system() call. - -Thu Jun 11 18:37:02 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/syslog.h: add missing LOG_LOCALn bits - -Tue Jun 9 22:29:26 1998 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (DllNameIterator::operator const char* ()): Add - a missing \n to a *_printf. - * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto. - (fhandler_tty_slave::ioctl): Ditto. - * errno.cc (errmap): Add an unrepresented windows error. - Simplify table. - -Tue Jun 9 17:21:44 1998 Christopher Faylor <cgf@cygnus.com> - - * errno.cc (errmap): Make sure that errmap array is - terminated with a NULL or suffer a SIGSEGV. - -Tue Jun 9 10:30:02 1998 Christopher Faylor <cgf@cygnus.com> - - Change `sprintf' to `__small_sprintf' throughout cygwin. - * cygwin.din: Don't export exception handler. - * exceptions.cc (__cygwin32_exception_handler): Rename to - handle_exceptions. Make static. Redo core file generation - slightly so that __small_sprintf can be used. - (call_handler): Remove use of `rethere' in asm code. Don't - probe stack as this is potentially dangerous unless done - meticulously. - * select.cc (select): Redo to create thread whenever needed - for pipe/socket. Thread termination denotes fd readiness. - -Mon Jun 8 14:31:11 1998 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (set_std_handle): New function to set windows - "standard" handles from cygwin handles. - (hinfo_vec::dup2): Set windows standard handle if appropriate. - * syscalls.cc (_open): Set windows standard handle if appropriate. - -Sun Jun 7 16:34:00 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler_console.cc (fhandler_console::scroll_screen): Add a - workaround for Win95 ScrollConsoleScreenBuffer bug which allowed - scrolling to work correctly in both directions. - (fhandler_console::char_command): Simulate underscore with cyan - instead of magenta like on a real linux console. - -Sat Jun 6 00:01:18 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Remove obsolete PPC and OLDWAY defines. - * exceptions.cc: Remove obsolete PPC defines. - -Fri Jun 5 22:18:01 1998 Christopher Faylor <cgf@cygnus.com> - - * utils/Makefile.in: install should build products if necessary. - -Fri Jun 5 17:47:11 1998 Geoffrey Noer <noer@cygnus.com> - - * errno.cc (seterrno): shouldn't & against 0xff since there - are error codes above 255. - -Fri Jun 5 14:35:36 1998 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (ctrl_c_handler): Ignore CTRL_LOGOFF_EVENT or - everybody gets signalled when a user logs off. Allow program - to clean up when receiving a CTRL_CLOSE_EVENT or CTRL_SHUTDOWN_EVENT. - * spawn.cc (_spawnve): Delete hmap.vec from created child since - it just gets overwritten in the child anyway. - * pinfo.cc (lpfu): u -> user_data. - -Thu Jun 4 22:45:12 1998 Geoffrey Noer <noer@cygnus.com> - - * mmap.cc (mprotect): 3rd arg to VirtualProtect call should - be new_prot, not prot. Also, fix check for PROT_NONE (==, - not &). - -Wed Jun 3 16:37:43 1998 Geoffrey Noer <noer@cygnus.com> - - * exceptions.cc: Fix typo in comment - (ctrl_c_handler): Add comments, return FALSE on CTRL_CLOSE_EVENT, - CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT events. Otherwise, - we handle the console event ourselves, send a SIGINT, and return - TRUE. - -Wed Jun 3 14:36:08 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * path.cc (conv_to_win32_path, conv_to_full_win32_path): resolve - symlinks before converting. - -Wed Jun 3 02:11:23 1998 Geoffrey Noer <noer@cygnus.com> - - * exceptions.cc (ctrl_c_handler): return zero when a - CTRL_LOGOFF_EVENT occurs. - -Wed Jun 3 01:01:17 1998 Geoffrey Noer <noer@cygnus.com> - - Reorganize fhandler-related file layout. - * Makefile.in: Remove console.o, add fhandler_console.o. Add - fhandler_serial.o. Remove tty.o, add fhandler_tty.o. - * fhandler_console.cc: Was console.cc. - * console.cc: Delete. - * fhandler_serial.cc: Was code in fhandler.cc. - * fhandler.cc: Delete fhandler_serial routines. - * fhandler.h: Fix comments describing fhandler file layout. - * fhandler_tty.cc: Was code in tty.cc. - * tty.h: Delete. - * fhandler_tty.h: Was tty.h. - * tty.cc: Delete code moved to fhandler_tty.cc. - * winsup.h: Include fhandler_tty.h instead of tty.h. - -Tue Jun 2 23:34:42 1998 Geoffrey Noer <noer@cygnus.com> - - Don't need processor-specific sysdef directories: - * sysdef/powerpc: remove all files - * sysdef/i386: move all files to top of sysdef directory - * configure.in: stop setting processor-specific sysdef variable - * configure: regenerate - * Makefile.in: build .a files from top-level sysdef files. - -Tue Jun 2 16:52:18 1998 Geoffrey Noer <noer@cygnus.com> - - patch from lhall@rfk.com (Larry Hall): - * console.cc (fhandler_console::fhandler_console): call - fillin_info() to check if console attributes have already been - set. If so, set the default foreground color to be the default - for the console, otherwise set it to white. - (fhandler_console::char_command): use the default color to set fg, - bg, and bold for all cases. - -Mon Jun 1 14:05:01 1998 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (writable_directory): Avoid a malloc. - (opendir): Convert to fully qualified path spec. Use inode from - stat as hash instead of recalculating. - (readdir): Try hard to generate the same inode for filenames - as inodes returned from stat(). Handle '.' and '..' inodes - differently than normal files. Note that '..' will still fail - in certain pathological conditions. - * fhandler.cc (fstat): Preserve errno around path conversion. - * path.cc (path_conf::path_conv): Add an extra argument signifying - whether caller wants a fully qualified Windows spec. - (get_current_directory_name): New function. Retrieves current - directory name into internal buffer. - (getcwd_inner): Reorganize. Use get_current_directory_name() - to retrieve a (possibly cached) directory name. - (hash_path_name): Move function here from syscalls.cc. Rewrite to - deal (simplistically) with non-absolute path specs. Use - get_current_directory_name to absolutize path. - * path.h: Reflect additional argument for path_conv. - * select.cc (cygwin32_select): Remove newline from select_printf(). - * syscalls.cc (hash_path_name): Move to path.cc. - (stat_worker): Always use full path spec so that inodes are - calculated correctly. - * uinfo.cc (getlogin): Make extern "C". - * include/sys/resource.h: Put extern "C" around this file. - -Mon Jun 1 13:16:03 1998 Christopher Faylor <cgf@cygnus.com> - - * console.cc: Comment out small_printfs which issue errors - on things like invalid escape sequences. This is very much - unlike a normal terminal, or even like linux which console.cc - purports to emulate. - (console_read): Renamed from FakeReadConsole. Streamline - slightly. - (fhandler_console::read): Ditto. - -Fri May 29 22:41:18 1998 Geoffrey Noer <noer@cygnus.com> - - * hinfo.cc: Include unistd.h, not fcntl.h. - -Fri May 29 21:38:10 1998 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::binary_win32_path_p): Don't allow - the root mount to replace a //drive or //host specification. - -Fri May 29 08:20:28 1998 Geoffrey Noer <noer@cygnus.com> - - * winsup.h: Remove exports section in favor of external - include files. Fix some comments. - * {console.cc, fcntl.cc, pipe.cc}: Include unistd.h. - * dcrt0.cc (__main): Make extern "C". - * strace.cc: Include time.h. - * wait.cc (_wait): Make extern "C". - * version.h: Bump minor version to 3 in honor of /dev/windows - support. - -Fri May 29 03:11:28 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: Add fhandler_windows.o target - * fhandler.h: Include <sys/ioctl.h>. fhandler_windows: new - fhandler class that handles access to Windows message queue. - (fhandler_base::is_windows): new virtual member function - * fhandler_windows.cc: New file, fhandler_windows class - implementation. - * hinfo.cc (hinfo_vec::build_fhandler): build fhandler_windows - class for "/dev/windows". Include <sys/ioctl.h>. - * select.cc: New fd_windows_map class - (fd_windows_map::convert_to_unix_fdset): New, check for Windows - messages in a queue. - (cygwin32_select): check for windows fd is passed to select call, - increase size of harray by one to support windows pseudo-handle, - do MsgWaitForMultipleObjects if windows fd passed to select call. - -Thu May 28 18:22:24 1998 Ian Lance Taylor <ian@cygnus.com> - - * utils/cygpath.cc: New file. - * utils/Makefile.in (PROGS): Add cygpath$(EXEEXT). - (cygpath$(EXEEXT)): Ne target. - - * include/sys/cygwin.h: Declare more path conversion functions. - -Thu May 28 15:56:26 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/ioctl.h: need to include <sys/cdefs.h> - * syscalls.h: remove ioctl proto - -Wed May 27 01:34:06 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: add sethostent/endhostent exports - * net.cc (sethostent, endhostent): new stubs - -Fri May 22 17:31:50 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin32/in.h: correct typo in IPPORT_WHOIS define - -Fri May 22 17:00:48 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/ioctl.h: add ioctl proto - -Wed May 20 18:52:31 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/param.h: delete, file overlaps with newlib's. - Move it to newlib/libc/sys/cygwin32/sys where such files - are supposed to go. - -Wed May 20 18:20:35 1998 Geoffrey Noer <noer@cygnus.com> - - * select.cc (auto_del_fd_set_map::auto_del_fd_set_map): correct - C++ problem -- can't use parens in call to new. - -Wed May 20 17:03:25 1998 Geoffrey Noer <noer@cygnus.com> - - based on patch from newsham@lava.net (Tim Newsham): - * select.cc: FIXMEs added/adjusted - (select_sleep): new static select helper function - (cleanup_sockthread): ditto - (cleanup_pipethread): ditto - (cygwin32_select): remove degenerate goto in favor of calling - select_sleep, call cleanup_sockthread and cleanup_pipethread - instead of previously duplicated code. - -Wed May 20 02:21:37 1998 Geoffrey Noer <noer@cygnus.com> - - patch from Christopher Faylor <cgf@cygnus.com> - * fhandler.cc (fhandler_serial::raw_read): When - vmin_ == 0, vtime_ > 0, don't force only one char at a time - to be read. - (fhandler_serial::tcsetattr): set to.ReadIntervalTimeout - and to.ReadTotalTimeoutMultiplier appropriately so reads - will time out properly when vmin_ == 0, vtime_ > 0. - -Tue May 19 09:05:46 1998 Christopher Faylor <cgf@cygnus.com> - - * init.cc (set_dllname): Use consistent "cygwin32" name for dll - if the name of the dll is actually cygwin. This will allow - better interoperability between dlls which have been renamed, - i.e., cygwindevo.dll -> cygwin98r1.dll. - -Mon May 18 22:39:35 1998 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Remove sig* undefs since this is now done in newlib. - Define SIGTOMASK define for use by signal mask operations. - * exceptions.cc (__cygwin32_exception_handler): Use SIGTOMASK. - (sig_handle): Ditto - * signal.cc (sigpending): Ditto. - (sigaddset): Use SIGTOMASK. Disallow signal 0. - (sigdelset): Ditto. - (sigismember): Ditto. - * strace.cc (strace_printf): It is possible for strace_mutex to - be an invalid handle. Open the mutex if so. Call ReleaseMutex - until exhausted since a signal may have interrupted an strace_printf. - (strace_dump): Call ReleaseMutex until exhausted. - * tty.cc (do_output): Remove strace printf to avoid filling up strace - output. - (fhandler_tty_slave::read): Use SIGTOMASK. - -Mon May 18 09:11:38 1998 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Clear errno before calling main. - -Thu May 14 00:37:01 1998 Geoffrey Noer <noer@cygnus.com> - - * dcrt0.cc: add comments, reformatting - -Wed May 13 17:47:23 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * times.cc (to_time_t): prevent stat from returning incorrect - file modification time (one second less) on fat partitions due - to round-up error. - -Wed May 13 16:03:07 1998 Geoffrey Noer <noer@cygnus.com> - - * select.cc: add comments, FIXMEs, respace, delete old - sockets-only case that was previously commented out. - (cygwin32_select): in case where handles and sockets are - set, don't check that always_ready_used is zero (that case is - covered before). - * syscalls.cc: delete unused file_queue struct. - -Tue May 12 18:36:25 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (get_os_type): add FIXME - -Tue May 5 14:02:12 1998 Christopher Faylor <cgf@cygnus.com> - - Throughout Cygwin replace use of "sa" SECURITY_ATTRIBUTE variables - with appropriate global variables. - * shared.cc (shared_init): Initialize global security attribute - variables for use in various places around cygwin. - * fork.cc (fork_init): Remove. Functionality replaced by above. - * dcrt0.cc (dll_crt0_1): Remove obsolete fork_init() call. - -Sat May 2 17:40:51 1998 Christopher Faylor <cgf@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * tty.cc (create_tty_master): Fill in ut_host utmp field with - local host name instead of "local" to avoid "who" command timeouts. - -Fri May 1 22:38:20 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc: Add a global to control com port reset behavior. - (parse_options): Recognize "reset_com" as a CYGWIN32 option. - * fhandler.cc (fhandler_serial::raw_read): Handle vmin and vtime - more like UNIX. - (fhandler_serial::open): Revive code to reset com port on open. - Only reset the port if reset_com global is not set and if this - function is being called explicitly by open. - (fhandler_serial::tcsetattr): Make CRTSCTS flow control more - like UNIX -- it should turn on hardware handshaking in both - directions. Handle vmin and vtime in a manner more consistent - with UNIX. - (fhandler_serial::tcgetattr): Reflect CRTSCTS changes above when - reporting this state. - * include/sys/termios.h: Move CRTSCTS and CRTSXOFF (sic) into - 16 bits or they will never be capable of being set. - -Thu Apr 30 15:05:45 1998 Christopher Faylor <cgf@cygnus.com> - - * console.cc (fhandler_console::init): If resetting stdin, - make sure to reset the ConsoleCtrlHandler. - * exceptions.cc (set_console_handler): New function broken out - of init_exceptions(). Sets the function responsible for handling - CTRL-C. - (init_exceptions): Snipped out set_console_handler. - -Thu Apr 30 14:11:30 1998 Christopher Faylor <cgf@cygnus.com> - - * include/sys/cygwin.h: Remove cygnus-specific declaration. - * winsup.h: Move cygnus-specific cygwin32_attach_handle_to_fd - declaration here. This function may eventually be replaced by - an osf_* function. - -Tue Apr 28 17:07:46 1998 Geoffrey Noer <noer@cygnus.com> - - * passwd.cc (parse, getpass): remove unneeded uses of NO_COPY - * grp.cc (getgrgid, getgrnam): ditto - -Tue Apr 28 16:18:03 1998 Geoffrey Noer <noer@cygnus.com> - - * version.h: bump minor version to 2 - * errno.cc: add FIXME - -Wed Apr 22 15:43:56 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (cygname): delete - * shared.cc (shared_name): new, was cygname - * strace.cc, exceptions.cc, sigproc.cc, shared.cc: fix - cygname references in light of above - -Wed Apr 22 14:12:09 1998 Christopher Faylor <cgf@cygnus.com> - - * select.cc (fd_set_map::remove_pair_by_handle): minor optimization - * strace.cc (strace_printf): change format for consistency - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * dcrt0.cc (dll_crt0): Call global constructors explicitly - * tty.cc (create_tty_master): Remove code which attempted to - invoke tty constructor - -Tue Apr 21 16:18:27 1998 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (ucenv): inline - (posify): Ditto - (environ_init): remove obsolete function use - * path.cc (symlink_check_one): Set errno here where appropriate. - (readlink): Rely on errno set by symlink_check_one rather than - defaulting to EINVAL. Should fix problems with RCS. - -Tue Apr 21 15:36:41 1998 Christopher Faylor <cgf@cygnus.com> - - * Implement a NOSTRACE preprocessor define to allow building - Cygwin32 without any STRACE code. - * configure.in: Add entries for architecture specific programs - to allow easier cross-compile builds - * configure: Ditto - * Makefile.in: Ditto - * console.cc (fhandler_console::char_command): Fix two problems - with cursor position report: 1) it reported position relative - to beginning of buffer rather than beginning of screen, 2) it - reported y, x in reversed order - * dcrt0.cc: Remove NO_COPY from variables that don't need it. - Remove variables obsoleted by NO_COPY. - (dll_crt0_1): strace settings are now inherited. Don't try - to initialize strace early. Remove initialization of variables - which are now handled automatically by NO_COPY. Set error mode - for Cygwin32 to fail on critical errors rather than popping up - a dialog box. - * spawn.cc (spawn_guts): Always use default error mode when - spawning a new process. Move error message to more generally - useful location. Terminate signal handling in a cygwin parent - process or two processes will be handling signals. - (_spawnve): Inherit strace stuff - * exceptions.cc (events_init): Provide more information on - "Catastrophic failure". Change error message wording slightly. - * fork.cc: Remove obsolete structure - (cygwin_fork_helper1): Remove use of obsolete structure. Inherit - strace settings in child processes. - * sigproc.cc (sigproc_init): Set wait_sig priority immediately - after thread creation. - * smallprint.c: Remove unneeded include - * strace.cc: Reorganize to handle NOSTRACE - (strace_open): Use strace entries in pinfo structure which are - now inherited - (strace_dump): ditto - (strace_init): preprocessor define STRACE_HHMMSS causes strace - output to use alternate log file format. - (strace_printf): ditto - * syscalls.cc (access): Remove SetErrorMode in favor of global - cygwin32 setting in dll_crt0_1. - * fhandler.cc: Handle NOSTRACE - * tty.cc: Ditto - * window.cc: Ditto - * include/sys/strace.h: Ditto - * winsup.h: Move strace_file handle from per_process to pinfo so - that it can be inherited. Remove obsolete pinfo entry. - -Tue Apr 21 14:30:52 1998 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (cygwin32_attach_handle_to_fd): New function - * include/sys/cygwin.h: Ditto. - * cygwin.din: Export new cygwin-specific function - -Tue Apr 21 02:32:08 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc: comment out file_queue struct that doesn't - seem to be used for anything anymore. Don't need to include - stdarg.h or sys/socket.h. Include utmp.h. Minor respacing. - Move all functions from misc.cc here. - (_read): change strace debug printf function name to _read - (logout): rename success to res - * misc.cc: delete file - * Makefile.in: adjust for above change - -Tue Apr 21 01:45:05 1998 Geoffrey Noer <noer@cygnus.com> - - * dir.cc: new file for directory-related functions, was - dirsearch.cc. - (mkdir, rmdir, writable_directory): move here from syscalls.cc, - writable_directory no longer static - * dirsearch.cc: delete file - * winsup.h: add proto for writable_directory. - * errno.cc: new file for errno-related functions, move errmap - struct here from syscalls.cc - (seterrno): move from syscalls.cc - (strerror): move from strerror.cc - * strerror.cc: delete file - * syscalls.cc: delete everything moved to any of the above files - * Makefile.in: adjustments for above - -Thu Apr 17 16:43:23 1998 Geoffrey Noer <noer@cygnus.com> - - * termios.cc: add comments, add extern "C" in front of exported - calls, move debugging local functions to end of file - * winsup.h: remove fork_terminate proto for function that is no - longer with us. Add strccpy proto. - * spawn.cc (_spawnve): make static - (strccpy): remove in favor of identical function in exec.cc - * exec.cc (strccpy): no longer static - - patch from newsham@lava.net (Tim Newsham): - * select.cc (cygwin32_select): fix off by one error, stop - using memcpy to copy memory over itself - -Thu Apr 16 16:23:00 1998 Geoffrey Noer <noer@cygnus.com> - - * net.cc: respace, put all fhandler_socket functions together - (getsockopt): fix case statement bug resulting in faulty strace - output - (setsockopt): ditto - * shared.cc: throughout, rename global h to cygwin_shared_h - * strerror.cc: make error global a local variable - * fhandler.h: add comments, add virtual function always_read_ready - to fhandler_serial which should return zero to allow non-blocking - serial I/O. - * Makefile.in: select.cc should depend on select.h - -Wed Apr 15 16:14:01 1998 Geoffrey Noer <noer@cygnus.com> - - * select.h: new file, containing macros used by select.cc. - * select.cc: remove them from here, include select.h - -Wed Apr 15 15:23:55 1998 Geoffrey Noer <noer@cygnus.com> - - * ntea.cc (NTReadEARaw): mark as static, don't check allow_ntea - since this is only accessed by functions that have already checked - it. - -Tue Apr 14 14:07:54 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: export truncate call - -Mon Apr 13 23:15:13 1998 Geoffrey Noer <noer@cygnus.com> - - Throughout Cygwin32, rename *u for per_process data *user_data. - Likewise, rename *s for shared memory data *cygwin_shared. - Respace where necessary. - * registry.cc: minor respace - * registry.h: ditto - * net.cc: ditto - * fhandler.cc (fhandler_base::read): don't redeclare int len - * syslog.cc: add FIXME, reformatting, remove extern "C" around - whole file, add before exported functions - (syslog): rename second cp char pointer cp2 - (setlogmask): comment out unused function - -Mon Apr 13 17:55:43 1998 Geoffrey Noer <noer@cygnus.com> - - * environ.cc (parse_options): add "ntea" setting to CYGWIN32 - env variable. Setting determines whether NTEA is used or not. - * ntea.cc: Add allow_ntea global which is inited to FALSE. - Now instead of immediately returning FALSE, make all - functions check allow_ntea variable and use or not use NTEA - based on its value. - * ps.cc (main): widen Win32_pid field by one to better handle - Win 95 pids. - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * shared.cc (shared_info::initialize): increase default - heap_chunk_size to 128 mb to get around the problem that - Cygwin32 still can't cope with a split heap properly. - -Wed Apr 8 18:04:07 1998 Geoffrey Noer <noer@cygnus.com> - - * net.cc (cygwin32_bind, cygwin32_getsockname, cygwin32_listen, - cygwin32_shutdown): if should check sock, not s. - -Wed Apr 8 15:00:46 1998 Geoffrey Noer <noer@cygnus.com> - - Eliminate warnings revealed by -Wshadow -Wall: - * console.cc (FakeReadFile): fix aggregate with partly bracketed - initializer (add missing brackets). - * tty.cc (fhandler_tty_slave::close): remove unused variable tty - (fhandler_tty_slave::dup): ditto - (fhandler_tty_slave::send_ioctl_request): ditto - -Wed Apr 8 03:04:11 1998 Geoffrey Noer <noer@cygnus.com> - - Eliminate warnings revealed by -Wshadow -Wall: - * console.cc (FakeReadFile): change variable name index to - modifier_index. - (fhandler_console::read): remove second definition of flags - * dcrt0.cc (build_argv): rename s to start, e to end - (insert_files): reformat, add parens around assign used as truth - value, make i a DWORD, remove dup def of i. - * dlfcn.cc (set_dl_error): rename s to str - (checkAccess): rename to check_access - (checkPathAccess): rename to check_path_access - (getFullPathOfDll): rename to get_full_path_of_dll, don't - redeclare len - * dll_init.cc (DllList::detachDll): rename index to dll_index - * fork.cc (cygwin_fork_helper1): rename index to dll_index, - reformat slightly, rename res in dll load section to loadres, - don't redeclare rc two additional times - (dump_jmp_buf): rename s to sbuf - * grp.cc (initgroups): rename group arg to grp - * hinfo.cc (digits): rename s to str - (hinfo_vec::build_fhandler): rename first buf variable to - buf_info, the second to buff. - (hinfo_vec::linearize_fd_array): cast sizeof return to int, - declare i in for loop - (hinfo_vec::de_linearize_fd_array): declare i in for loop - * misc.cc (nice): rename pri to priority, index to curr - (cygname): rename s to str - (login): rename tty to currtty - (logout) put missing parens around arg to sizeof calls - * net.cc (DuplicateSocket): rename function to duplicate_socket, - rename s arg to sock - (fhandler_socket::fhandler_socket): rename s arg to sock - (socketpair): rename sin to sock_in - (cygwin32_rexec): rename passwd arg to password - * passwd.cc (parse): rename stat array to tmpbuf - * resource.cc (fill_rusage): rename creation to creation_time, - exit to exit_time, kernel to kernel_time, user to user_time - (getrusage): rename rusage arg to rusage_in - * sigproc.cc (proc_terminate): move i declaration outside of - loop, get rid of extra declaration - (getsem): rename s to str - (proc_strace): declare i at top of function, remove extra two - declarations of it later - * smallprint.c: include ctype.h for isalnum proto - (__small_vsprintf): put parens around assign used as truth value - * spawn.cc (spawn_guts): rename both s variables to str, remove - redeclarations of i - * strace.cc (mark): rename s arg to str - * syscalls.cc (chown): remove unused vars group, passwd - (access): rename s to st - (ctermid): rename s to str - * termios.cc (cfsetospeed, cfsetispeed): rename s to speed - * times.cc (times): rename creation to creation_time, - exit to exit_time, kernel to kernel_time, user to user_time - (time_t_to_filetime, timeval_to_filetime): rename time to time_in - * tty.cc (create_tty_master): rename utmp variable our_utmp - (fhandler_tty_master::init): rename ttynum arg ttynum_in - -Tue Apr 7 17:18:05 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (seterrno): add FIXME - * path.cc (symlink_check_one): change comment wording - - patch from Tom Tromey (tromey@cygnus.com) - * syscalls.cc (access): Call SetErrorMode to turn off critical - errors dialog. - - patch from Mikey (jeffdb@netzone.com): - * fhandler.cc (fhandler_disk_file::open): under Win95, set - S_IXOTH|S_IXGRP|S_IXGRP if the first two bytes of a file contain - a '#!'. - (fhandler_disk_file::check_execable_p): consider shell scripts - execable - -Mon Apr 6 20:55:06 1998 Geoffrey Noer <noer@cygnus.com> - - * include/sys/cygwin.h: add protos for cygwin32 path conversion - functions. - -Wed Apr 1 16:12:58 1998 Geoffrey Noer <noer@cygnus.com> - - * {fhandler.cc, fhandler.h, hinfo.cc, console.cc}: Rename - fhandler_tty class to fhandler_serial - -Tue Mar 31 16:27:36 1998 Geoffrey Noer <noer@cygnus.com> - - * ntea.cc: temporarily disable reading/writing NTEA information - due to the large penalty incurred on NT fat partitions. - -Fri Mar 27 13:35:30 1998 Geoffrey Noer <noer@cygnus.com> - - * environ.cc (parse_options): change struct to union to avoid - references to uninitialized fields. - -Thu Mar 26 19:03:00 1998 Eric Bachalo <ebachalo@cygnus.com> - - * dcrt0.cc (insert_files): added this function to replace - -@file in the command line with the contents of the file - (dll_crt0_1): calls insert_files before building argv - -Wed Mar 25 15:25:26 1998 Geoffrey Noer <noer@cygnus.com> - - And more: - * {fhandler.cc, fhandler.h, tty.cc, net.cc, console.cc}: make - ioctl calls' cmd arg unsigned, ditto for access arg of init calls. - * console.cc (fhandler_console::fillin_info): add parens around - assignment used as truth value. - (FakeReadFile): make copied_chars a size_t - (fhandler_console::read): make i in loop unsigned - * environ.cc (setenv): make l_value unsigned, add parens around - assignments used as truth values. - * exceptions.cc (call_handler): supposed to return an int and - wasn't at the end of control flow. Now returns 1 there. - * fhandler.h (~fhandler_base): destructor should be marked virtual - * misc.cc (login): add parens around assignment used as truth - value. - * net.cc: cast INVALID_SOCKET to int in comparisons - (fhandler_socket::ioctl): remove int cast to FIONBIO since cmd - is now unsigned - (get_win95_ifconf): add cast to signed vs unsigned int comparison. - * ntea.cc (NTReadEA): add cast to signed vs unsigned int - comparison. - * path.cc (getcwd_inner): make len a size_t - * pinfo.cc (cygwin32_winpid_to_pid): add comment - * select.cc (cygwin32_select): make wait_ret an int - * signal.cc (kill_worker): add parens around assignments used as - truth values. - * sigproc.cc (wait_sig): make rc a DWORD - (sig_send): add parens around assignment used as truth value. - * strace.cc: make inqueue global a static DWORD - * tty.cc (do_output): add cast to signed vs unsigned int - comparison. - (fhandler_pty_master::open): remove unused handle nh - -Tue Mar 24 18:03:59 1998 Geoffrey Noer <noer@cygnus.com> - - More spring cleaning: - * net.cc: move LOAD macro definition out of winsock_init, - correction to make it valid ANSI C++. - * grp.cc (read_etc_group): pass default line directly to - add_grp_line call - -Mon Mar 23 19:21:00 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - * spawn.cc (spawn_guts): Don't call close_all_files if a cygwin - process has been spawned. Otherwise, we close tty handles twice. - -Fri Mar 20 23:01:24 1998 Geoffrey Noer <noer@cygnus.com> - - * pinfo.cc (pinfo_list::init): Initialize next_pid to PBASE. - (pinfo_list::operator []): Now index is given by pid mod size(). - (pinfo_list::allocate_pid): Allow more pid numbers than spaces in - the process table. Pids now can range from PBASE (1000) to - INT_MAX. At that point they wrap to 1000 again. For speed, use - modular arithmetic to map pids into table. - * winsup.h: move PBASE to pinfo.cc, rename next_pid_index to - next_pid - * utils/ps.cc (main): reorg of what's printed where, listing pid - first. - -Thu Mar 19 15:05:07 1998 Geoffrey Noer <noer@cygnus.com> - - * winsup.h: Change section name in NO_COPY definition. We were - using a .data$nocopy section to avoid copying certain data on - fork. The linker used to include this between __data_start__ and - __data_end__, but that broke building the cygwin32 dll. The fix - is to rename the section ".data_cygwin_nocopy" and explictly - include it after __data_end__. - -Wed Mar 18 15:03:51 1998 Geoffrey Noer <noer@cygnus.com> - - * tty.h: fix ttyslot proto; it returns an int - * glob.h: fix glob proto; it returns an int - -Mon Mar 16 16:16:40 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: stop installing the dll in the lib directory as - well as the bindir. - * environ.cc (parse_options): don't need to call malloc - -Mon Mar 16 11:56:23 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - * tty.cc (fhandler_tty_slave::dup): Don't set flags to 0. Flags - have already been set in wrapper. - * net.cc: Rename `s' variable which shadows global `s'. - * termios.cc: ditto - * time.cc: ditto - -Tue Mar 10 15:54:04 1998 Geoffrey Noer <noer@cygnus.com> - - * version.h: up CYGWIN_DLL_VERSION_MINOR - -Tue Mar 10 15:41:29 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - * spawn.cc (spawn_guts): Make argument handling after `#! pgm' - handle spaces similarly to UNIX. Close "linearized" file handles - when a non-cygwin32 binary is executed or suffer hangs on exit. - Reorganize lpReserved2 buffer to avoid conflicts with Microsoft - usage which resulted in incorrect stdin/stdout operation with - programs compiled using MSVC. - * pinfo.cc (pinfo_init): Accommodate change to lpReserved2 - organization. - -Mon Mar 9 19:27:17 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (_open): modify to take a variable number of - arguments to match newlib's fcntl.h. - * environ.cc (parse_options): rewrite struct known to conform - to ANSI standards. Can't statically initialize, so do so - dynamically at the beginning of the function instead. - - patch from jeffdb@netzone.com (Mikey): - * dcrt0.cc (build_argv, compute_argc): need to escape quotes - -Sat Feb 28 16:41:54 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * fhandler.cc (fhandler_base::init): call set_flags based on - access arg. - * net.cc: include fcntl.h - (fhandler_socket::fhandler_socket): made sockets O_RDWR - -Thu Feb 26 23:41:54 1998 Geoffrey Noer <noer@cygnus.com> - - Beta 19 release made. - -Sun Feb 22 23:46:31 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * Makefile.in: Do not link cygwinb19.dll with libwsock32.a - * exceptions.cc: add proto for i_WSACleanup. - (sig_handle): call *i_WSACleanup if winsock was inited. - * hinfo.cc: add proto for i_getpeername. - (hinfo_vec::build_fhandler): call *i_getpeername if winsock - was inited - * net.cc: wsock32, i_wsockimports - new globals. Throughout - file, call winsock functions via indirect pointers. - (winsock_init): dynamically load wsock32.dll and resolve addresses - of exports. - (cygwin32_rcmd, cygwin32_rexec, cygwin32_rresvport): resolve - addresses of exports. - * select.cc: add protos for i___WSAFDIsSet, i_WSAGetLastError, - i_select, i_socket, i_closesocket. WINSOCK_FD_ISSET changed to - use indirect pointer. Direct winsock calls changed to indirect. - (cygwin32_select): initialize winsock before calling select in - degenerate case. - * winsup.h: remove protos for ScreenRows, ScreenCols, - ScreenGetCursor, ScreenSetCursor. - -Sun Feb 22 17:44:55 1998 Geoffrey Noer <noer@cygnus.com> - - * environ.cc (parse_options): comment out -- no longer - compiles with egcs. Will rewrite/enable later. - -Sun Feb 22 13:49:10 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.h: remove protos for _open, _read, _write since - they are in newlib headers that are already included - * syscalls.cc (_read): return int, not ssize_t - (_write): ditto - -Sat Feb 21 14:21:17 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: rename dll to cygwindevo.dll - -Sat Feb 21 01:33:56 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove dup definition of endpwent - -Thu Feb 19 14:20:21 1998 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin32/cygwin_dll.h: Correct protection wrapper - -Tue Feb 17 20:21:24 1998 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Structures.h: tagBITMAPFILEHEADER should - be packed. - -Tue Feb 17 19:34:41 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - * cygwin.din: export sigpause - * signal.cc (sigpause): New "compatibility interface" to - sigsuspend function. Used currently by inetutils. - -Tue Feb 17 11:43:27 1998 Ian Lance Taylor <ian@cygnus.com> - - * tty.h (class tty): Add slave_opened field. - * tty.cc (fhandler_tty_master::init): Initialize slave_opened. - (do_output): Only return with EOF if the slave has been opened. - (fhandler_tty_slave::open): Set slave_opened. - (fhandler_pty_master::open): Initialize slave_opened. - - * tty.cc (fhandler_pty_master::read): Change type of n to DWORD. - If there are no characters to read, and the descriptor is in - nonblocking mode, just return EGAIN. - -Mon Feb 16 15:11:25 1998 Ian Lance Taylor <ian@cygnus.com> - - * tty.h (class tty): Remove handle_pid and slave_handles fields. - (class tty_list): Add getcount method. - * tty.cc (tty::init): Initialize input_handle and output_handle. - (tty_list::free_tty): If we just freed the last reference to this - tty, close input_handle and output_handle. - (fhandler_tty_master::init): Don't initialize handle_pid and - slave_handles. - (do_output): Instead of just calling ReadFile, loop using - PeekNamedPipe and check whether the tty has been closed. Return 0 - on EOF and -1 on error. - (process_output): Only print debugging error message if error - occurs in do_output. - (fhandler_tty_slave::open): Always duplicate handles from master. - Never close handles in source. Don't change slave_handles. - (fhandler_tty_slave::close): Don't change slave_handles, and don't - close tty handles. - (fhandler_tty_slave::linearize): Call attach_tty. - (fhandler_tty_slave::de_linearize): Don't call attach_tty. - (fhandler_tty_slave::dup): Don't increment slave handles. - (fhandler_pty_master::open): Don't initialize handle_pid and - slave_handles. - (fhandler_pty_master::close): Don't check slave_handles, and don't - close tty handles. - (fhandler_pty_master::read): Handle EOF return value from - do_output. - (fhandler_pty_master::linearize): Call attach_tty. - (fhandler_pty_master::de_linearize): Don't call attach_tty. - - * fork.cc (cygwin_fork_helper1): Copy strace_mask from parent to - child. - -Thu Feb 12 20:33:57 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - * utils/cygwin.cc: Modify -s option to use new strace_mask entry - in pinfo. Prepare for future ability to specify an strace file. - -Thu Feb 12 11:57:26 1998 Geoffrey Noer <noer@cygnus.com> - - * grp.cc (read_etc_group): add a default /etc/group in memory - if /etc/group isn't found - (getgrnam): return NULL if requested group isn't found instead - of returning a default group - -Wed Feb 11 15:59:10 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * strace.cc (strace_open): do not close u->strace_file if it - points to stderr. - * malloc.cc (malloc_init): do not check for application's malloc - in a forkee, this breaks memory coherency in a forkee and forker. - use_internal_malloc flag now copies on fork. - -Tue Feb 10 18:11:30 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor) - Throughout sources, mark statics and globals as NO_COPY where - appropriate. - * fork.cc (cygwin_fork_helper1): Remove #if 0 around fork_copy of - cygwin data/bss. Remove __malloc_copy since it is no longer - necessary. - -Tue Feb 10 15:30:19 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor) - * console.cc (fhandler_console::write): Implement xterm style - escape sequences for setting title in the console title bar. - * fhandler.h: Define constants for console title escape sequence. - -Tue Feb 10 14:16:17 1998 Geoffrey Noer <noer@cygnus.com> - - * include/a.out.h: remove junk chars introduced by mailer - when this header was sent to us - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * libccrt0.cc: rename cygwin_attach_dll to cygwin32_attach_dll - - patch from cgf@bbc.com (Christopher Faylor): - * environ.cc: fix off by one problem - -Mon Feb 9 14:56:00 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: add registry.h to environ.o deps - -Mon Feb 9 14:42:24 1998 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (DLL_OFILES): Rename dllinit.o to dll_init.o. - - * tty.cc (fhandler_tty_slave::close): Don't close the tty handles - if the slave and the master are the same process. - - * path.cc (read_mounts): Change key parameter to reference, to - avoiding running the destructor. - -Mon Feb 9 13:53:50 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Christopher Faylor): - Moves all environment manipulation into environ.cc. - Switches to CYGWIN32 for settings: - set CYGWIN32=[no]title [no]strip_title [no]binmode [no]glob - strace=mask:cache,file [no]tty - (set STRACE=whatever is still honored). - Propagates tty settings to all subprocesses regardless of - unsetting of environment variable. - Moves strace mask into pinfo structure for easier future - manipulation by external program. Moves strace_file into the - vacated position for automatic use in forked processes. - Propagates old title to execed processes so that they can - correctly restore the correct title when they exit. - * console.cc: Use PID_USETTY setting in process_state so that - tty state can be easily inherited. - (set_console_title): New function to set console title. - * syscalls.cc: Use PID_USETTY setting in process_state so that - tty state can be easily inherited. - * tty.cc: Ditto. - * hinfo.cc: Ditto. - (hinfo_vec::de_linearize_fd_array): Return last location in buffer - for further potential processing. - * dcrt0.cc: Add global variables for control of glob and title, - set by environ_init. Mark some variables as NO_COPY. - Remove routines and variables for dealing with environment. - (dll_crt0_1): Move environment initialization into separate - function. Honor 'noglob' CYGWIN32 setting. - * environ.cc (environ_init): New function to initialize the - environ table. Also scans for CYGWIN32 environment variable, - setting appropriate values. - (ucenv): New function. Upper cases an environment variable. - (parse_options): New function. Parse CYGWIN_* environment - variable. - (posify): New function. Convert a Windows env path spec to - cygwin. - (env_sort): New function. Sort an environ block. - (winenv): New function. Returns a windows style environment - block. - * fhandler.cc (fhandler_base::read): Reflect change to location of - strace_mask. - * fork.cc (cygwin_fork_helper1): Remove save/restore of some - settings since this is automatic now with new dll data copy. Save - PID_USETTY setting in child process_state. - * strace.h: Cosmetic change. - * pinfo.cc (pinfo_init): Call environ_init here since it may - affect further processing in this function. Use old console title - from "parent" process if execed process. Reflect change to - location of strace_mask. - * spawn.cc (spawn_guts): Remove environment manipulation code. - Use new winenv function call instead. Save old title in block of - memory copied to newly execed process if title is being displayed. - * strace.cc: Changes to reflect new location for strace_mask and - strace_file. These are now automatically inherited on fork. - * winsup.h: Move strace_mask into pinfo to allow possible - manipulation by other processes. Put u->strace_file in uptr - structure so that it will be automatically duplicated on fork, - removing the necessity of initializing strace in a forked - process. Add functions/variables associated with environment - manipulation and console title setting. - -Mon Feb 9 03:06:56 1998 Geoffrey Noer <noer@cygnus.com> - - Extensive reformatting in new files from next patch. - Rename dllinit.h file to dll_init.h and likewise for dll_init.cc. - Rename cygwin_detach_dll to cygwin32_detach_dll throughout. - Similarly, rename cygwin_attach_dll and _cygwin_dll_entry. - And rename sanityAndSyncCheck to check_sanity_and_sync. - Also: - * dll_init.h: don't include winsup.h - * dll_init.cc: include winsup.h here instead - * dlfcn.cc: include winsup.h, don't include windows.h - * cygwin.din: rename cygwin_detach_dll to cygwin32_detach_dll. - - patch from giac@dalim.de (Philippe Giacinti): - Copy data areas of cygwin-compiled dlls on fork(), - implement dlopen/dlsym/dlclose/dlerror calls. - * Makefile.in: add dlfcn.o and dllinit.o to DLL_OFILES, add - dllinit.h dependencies - * cygwin.din: dll_dllcrt0, cygwin_detach_dll, dlopen, dlclose, - dlsym, dlerror, dlfork -- new exports. - * dcrt0.cc: include dllinit.h, mark u pointer as NO_COPY. - (sanityAndSyncCheck): new, code moved from dll_crt0_1. - Initialize all linked dlls before calling main(). - * dlfcn.cc: new file. - * dllinit.cc: new file. - * dllinit.h: new file. - * exceptions.cc: mark some variables with NO_COPY. - * fork.cc: include dllinit.h; declare cygwin.dll data/bss - start/end. - (cygwin_fork_helper1): copy data/bss of cygwin.dll itself to child - process (the code is disabled now); copy data areas of - linked/loaded dlls (if any); free loaded dll list on cleanup. - * include/cygwin32/cygwin_dll.h: new file. - * include/dlfcn.h: new file. - * libccrt0.cc (cygwin_crt0_common): new, code derived from - cygwin_crt0, MainFunc parameter added. - (cygwin_crt0): call cygwin_crt0_common. - (cygwin_attach_dll): new. - * shared.cc: mark some data as NO_COPY - * strace.cc: mark some data as NO_COPY - * winsup.h: add dll_dllcrt0 proto, NO_COPY macro. - -Sun Feb 8 17:51:26 1998 Geoffrey Noer <noer@cygnus.com> - - * getopt.c: new. Import Berkeley getopt code modified for use - in Cygnus' kerberos implementation (including the writing of - getopt_long by Chris Provenzano (proven@cygnus.com)) then modified - a bit more to get it working in Cygwin32. Although we were - going to remove getopt, it appears that too many programs would - need fixing to remove it completely. Whether getopt should be - included in Cygwin32 should be decided at a later time. - * include/getopt.h: new. Import Berkeley getopt.h. - * Makefile.in: add getopt.o to LIBCOS - * utils/Makefile.in: remove include of ../../include since - getopt.h is now in winsup/include, also revert recent change - of addition of GETOPT_OBJS. - -Fri Feb 6 16:28:19 1998 Geoffrey Noer <noer@cygnus.com> - - * cygwin.din: remove set_new_handler and cygwin_set_attributes - exports - * version.h: up major version number - * Makefile.in: rename dll to cygwinb19.dll - * syscalls.cc (cygwin_set_attributes): axe - -Thu Feb 5 18:28:37 1998 Geoffrey Noer <noer@cygnus.com> - - * include/Windows32/Functions.h: add protos for - DdeCmpStringHandles and DdeCreateDataHandle - * Makefile.in: stop including ../libiberty/getopt* since - we aren't exporting or using them - * utils/Makefile.in: add new variable for libiberty getopt objs - which is linked in for cygwin.exe - -Thu Feb 5 17:59:12 1998 Geoffrey Noer <noer@cygnus.com> - - syscalls.cc: move ppc dll_entry asm code to... - dcrt0.cc: ...here - - Import new globbing code from NetBSD 1.3 - * glob: delete subdirectory - * glob.c: new file - * glob.h: new file - * Makefile.in: remove glob from submakes, remove glob/libglob.a - from DLL_IMPORTS, fix dcrt0 glob.h dependency - * configure.in: don't configure glob subdirectory - * configure: regenerate - * dcrt0.cc: include glob.h, not glob/glob.h. - (globify): don't call glob with GLOB_NOESCAPE which isn't a valid - flag with this glob - -Wed Feb 4 16:14:13 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - Allow system administrator to enter into the HKLM registry tree - a predefined mount table inherittable by all cygwin users. The - predefined mounts are non-mandatory so the user's mount table has - a higher priority than the default one. Cygwin reads HKLM tree - in read-only mode. - * path.cc (read_mounts): new, code derived from - mount_info::from_registry(). - (mount_info::from_registry): call read_mounts from user's table, - then from system-wide mount table. - * registry.cc (reg_session::reg_session): key and access arguments - added. - (reg_key::init): access argument added. - (reg_key::reg_key): access argument added. - * registry.h (class reg_key): init prototype changed, default - argument of reg_key added. - (class reg_session): default arguments of constructor added. - -Wed Feb 4 15:38:59 1998 Geoffrey Noer <noer@cygnus.com> - - * include/a.out.h: new coff header file - -Wed Feb 4 01:55:18 1998 Geoffrey Noer <noer@cygnus.com> - - * uinfo.cc: define DEFAULT_UID/GID here - * winsup.h: removed DEFAULT_UID/GID defs and unused - set_console_title proto. Did some major reorganizing, - and a little reformatting, commenting. - -Tue Feb 3 23:59:23 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - Replace u->self and this_procinfo () with new `myself' pointer - wherever appropriate. Also replace get_pid() calls with a - simple ->pid reference. - -Mon Feb 2 12:34:49 1998 Geoffrey Noer <noer@cygnus.com> - - patch from sos@prospect.com.ru (Sergey Okhapkin): - * console.cc (FakeReadFile): limit bytes to read to 30000 due to - Win NT 4.0 SP3 bug. Kill foreground process group with SIGWINCH - on console buffer size change if tty support enabled. - * include/sys/termios.h: define more constants. - * tty.cc (fhandler_pty_master::ioctl): kill foreground process - group with SIGWINCH on window resizing. - -Mon Feb 2 12:14:49 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * dcrt0.cc (dll_crt0_1): Initialize u->self here, early in a - forked process so the correct pid is used in strace output and so - signals do not end up being erroneously sent to the parent. - * exceptions.cc: Make a global variable static. Some minor - optimizations. - (call_handler): Make sure that the signal mask is restored when - sig_dispatch mutex is unavailable. - Reorder asm statements to prevent clobbering of flags register by - preceding ors or risk random inexplicable behavior when returning - from a signal handler. - * fork.cc (cygwin_fork_helper1): Put setjmp restore in child's - pinfo. Have the child figure out its pid earlier in the - initialization process. Don't print a "child failed" error if the - child failed during initialization due to a CTRL-C. This is still - not quite right (see comment). - * sigproc.cc (sig_send): Remove unlock/lock_pinfo or suffer - consistent hangs in zsh. Make {allow,block}_sig_dispatch globally - available. - (wait_sig): Fix problem where blocked signals would still be - processed if queued. Add debugging SIGNOQUEUE conditional to turn - off signal queueing, making cygwin more like traditional UNIX. - * sigproc.h: Add {allow,block}_sig_dispatch functions. - -Mon Jan 26 17:33:57 1998 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::init): don't hardcode C: as the default - slash mount. Instead, use the drive letter that the OS is loaded - on. - -Mon Jan 26 13:33:57 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * fork.cc (cygwin_fork_helper): Move setting PID_INITIALIZING - process_state here to avoid erroneously setting it permanently - via proc_register(). - * pinfo.cc (pinfo_init): Delay notifying "parent" when execing - until this process is ready to receive signals or risk a race - condition if exec parent calls sigproc_terminate prior to - the child exec. - * sigproc.cc (proc_subproc): Don't set PID_INITIALIZING here. - It is too late in the process creation. - (sig_send): Reset sigsuspend mutex prior to use to avoid a race. - (wait_sig): Create sigsuspend mutex as an auto reset to attempt - to avoid a race condition. Notify parent that this process is - ready if we were execed (code moved from pinfo_init). Change - PulseEvents to SetEvents to avoid races - * spawn.cc (spawn_guts): Move setting PID_INITIALIZING - process_state here to help avoid race. - -Fri Jan 23 12:31:37 1998 Ian Lance Taylor <ian@cygnus.com> - - * malloc.cc (malloc_critical_section): New static variable. - (malloc_init): New function. - (__malloc_lock, __malloc_unlock): New functions. - * winsup.h (malloc_init): Declare. - * heap.cc (heap_init): Call malloc_init. - -Thu Jan 22 18:46:40 1998 Ian Lance Taylor <ian@cygnus.com> - - * tty.h (class tty): Change slave_handles to int. - * tty.cc (fhandler_tty_slave::open): Check for invalid tty - handles. If this is the first slave, set slave_handles to 2; - otherwise, increment slave_handles. - (fhandler_tty_slave::close): Only close the tty handles if the - slave_handles field drops to 1. - (fhandler_tty_slave::write): Add a debugging message if WriteFile - fails. - (fhandler_tty_slave::dup): Set ttynum of new fhandler. Increment - slave_handles if appropriate. - (fhandler_pty_master::close): Only close the tty handles if the - tty is no longer allocated. - - * tty.h (class tty): Add handle_pid and slave_handles fields. - * tty.cc (attach_tty): Call connect_tty even if use_tty is not - set. - (detach_tty): Don't check use_tty. - (fhandler_tty_master::init): Initialize handle_pid and - slave_handles of tty. - (do_input): Treat \r as end of line character. - (do_output): Only set output_done_event if it is not NULL. - (fhandler_tty_slave::open): Don't worry if we can't open - output_done_event. Check slave_handles field of tty to decide - from where to duplicate the handles. Call detach_tty on error. - If we are now the owner of the slave handles, mark the tty - appropriately. - (fhandler_tty_slave::close): Only close output_done_event if it is - not NULL. Check for errors from CloseHandle. Close the tty - handles if we own them. - (fhandler_tty_slave::write): Only wait for output_done_event if it - is not NULL. - (fhandler_tty_slave::read): If nobody owns the tty, return EOF. - (fhandler_tty_slave::dup): Attach the tty. Don't duplicate - output_done_event if it is NULL. Detach the tty on error. - (fhandler_pty_master::open): Initialize handle_pid and - slave_handles of tty. Don't create output_done_event. - (fhandler_pty_master::close): Only close output_done_event if it - is not NULL. Check for errors from CloseHandle. Only close the - tty handles if we own them. - (fhandler_pty_master::read): Only set output_done_event if it is - not NULL. - * hinfo.cc (de_linearize_fd_array): Don't set use_tty just because - we find a tty to delinearize. - -Wed Jan 21 21:58:27 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * sigproc.cc: Changes in wait_sig/sig_send semaphore/event - signaling to attempt to eliminate races. - -Tue Jan 20 16:11:05 1998 Geoffrey Noer <noer@cygnus.com> - - Remove last remnants of the mixed case handling support. - * path.cc (path_conv::path_conv): remove mixed_p init - (mount_info::from_registry): don't check for fmixed - (mount_info::to_registry): ditto - (mount_item::getmntent): when setting ret.mnt_opts, only consider - text vs binary flag - (mount_item::init): remove init of mixed - * path.h: remove mixed_p, mixed from path_conv class. Remove - unmixedcaseify proto. - * include/sys/mount.h: comment out MOUNT_MIXED define, protect - header against multiple inclusion - - A little header file cleanup. Mostly to protect headers against - multiple inclusion. Some aren't strictly speaking necessary but... - * include/sys/cygwin.h: protect header against multiple inclusion - * include/sys/smallprint.h: ditto, also add cplusplus wrapper - * include/sys/strace.h: comment last endif - * include/cygwin32/in.h: change _LINUX_IN_H protect defines - to _CYGWIN32_IN_H - * include/arpa/inet.h: protect header against multiple inclusion - * include/asm/types.h: ditto - * include/net/if.h: ditto - * include/netinet/ip.h: ditto - * include/netinet/ip_icmp.h: ditto - * include/netinet/in.h: ditto, remove commented out real header - file - * include/fcntl.h: protect header against multiple inclusion - * include/memory.h: ditto - * include/mntent.h: ditto - * include/strings.h: ditto - * include/syslog.h: ditto - * include/termio.h: ditto - -Tue Jan 20 12:51:59 1998 Ian Lance Taylor <ian@cygnus.com> - - * strace.cc (strace_stderr): New static variable. - (strace_init): Set strace_stderr. - (system_printf): If not strace_stderr, use debug_printf to put the - message in a trace file. - - * fhandler.h (fhandler_pty_master): Add neednl_ field. - * tty.h (RESTART_OUTPUT_EVENT): Change to be different from - IOCTL_DONE_EVENT. - * tty.cc (fhandler_tty_master::init): Initialize neednl_. - (do_output): Handle a length of one by using neednl_ to record an - expansion of \n to \r\n which doesn't fit. Never expand \r to - \r\n. Correct order of \r\n. - (fhandler_tty_slave::open): Improve error handling. Use - DUPLICATE_CLOSE_SOURCE to close the pipes in the master process. - (fhandler_tty_slave::dup): Duplicate the handles, rather than - calling fhandler_tty_slave::open. - (fhandler_pty_master::open): Initialize neednl_. - (fhandler_pty_master::read): Return EOF for ERROR_BROKEN_PIPE, - rather than error. Set errno correctly. - * hinfo.cc (digits): New static function. - (build_fhandler): Always accept /dev/ptmx and /dev/ttyDDD, even if - use_tty is not set. use_tty now only controls the interpretation - of /dev/tty. - -Mon Jan 19 14:49:45 1998 Geoffrey Noer <noer@cygnus.com> - - * sigproc.cc (sig_send): lock_pinfo_for_update during this - function - -Fri Jan 16 18:09:59 1998 Geoffrey Noer <noer@cygnus.com> - - * sigproc.cc (sigproc_init): if we can't create a signal - thread or can't create sync_proc_subproc mutex, fail with - an api_fatal call rather than just returning - -Fri Jan 16 18:08:49 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - Changed signal handling to use one semaphore and one shared - memory array which is manipulated via Interlocked*() functions. - * exceptions.cc (lock_cs): Comment. Report on error. - (unlock_cs): Add debugging statement. - (sig_dispatch_pending): Remove obsolete function. - (set_process_mask): Adapt to new signal method. - (call_handler): Clear wait()ing threads here while main thread is - suspended to avoid timing screwups. Avoid calling the handler if - can't get dispatch mutex (code moved from sig_handle). Return - status of acquiring the sig_dispatch mutex. - (sighandle): Adapt to new signal method. Reorganize to *always* - honor sig_dispatch mutex or suffer deadlock on fatal signals when - someone else has the mutex and we're attempting to cleanup. - (events_init): Reflect change in cygname() arguments. - * fork.cc (stack_dummy): New function. Returns address of - argument to determine bounds for eventual stack copy. - (cygwin_fork_helper1): Call subproc_init to start up subproc - thread if it is not alreay started. Ensure that signals are - blocked while forked process is initializing. Change method of - calculation for lower stack bounds to slightly more foolproof - method. Preserve some global settings in forked process. - * misc.cc (cygname): Remove an unused argument. - * pinfo.cc (pinfo_list::allocate_pid): Add a useful debugging - statement. - * shared.cc (open_shared_file_map): Reflect change in cygname() - arguments. - * signal.cc (kill_pgrp): Avoid killing dead processes. Don't - kill processes in my pgrp if not also in my ctty. - (sigaction): Adapt to new signal method. - (sigpending): Adapt to new signal method. - * sigproc.cc: Many changes to adapt to new signal method. Also - delay waits for thread initialization until the thread needs to be - contacted. - * sigproc.h: Ditto. - * spawn.cc (spawn_guts): Fix potential off-by-one error(?) in - transcribing the argument list and add paranoid code to detect - future overruns. Change priority to highest so that waiting - process will clear out quickly. - (_spawnve): Call subproc_init() to start up subproc thread if is - not already started. - * strace.cc (strace_printf): Increase size of internal buffer so - that long argument lists printed from spawn_guts do not overrun it - so easily. - * wait.cc (wait4): Set status flag to -1 prior to exit. This will - cause previous wait that was interrupted by a signal which - dispatched to another wait to return the correct error value. - * winsup.h (pinfo): Add _sigtodo array for new signal method. - Remove obsolete field. Reflect change in cygname arguments. - -Thu Jan 15 13:07:07 1998 Ian Lance Taylor <ian@cygnus.com> - - * syscalls.cc (mkdir): Don't permit the directory to be created if - the parent directory is not writable. - - * syscalls.cc (fchmod): Call chmod with the path name, rather than - just returning zero. - - * syscalls.cc (writable_directory): New static function. - (_unlink): Don't permit the file to be removed if the directory is - not writable. - (rename): Don't permit the rename if either the source or - destination directory is not writable. - - * syscalls.cc (chown): Set username and groupname lengths to UNLEN - + 1, rather than 100. If getpwuid fails, try to look up the real - user name to see if it is the same. Don't report an error if - there is no security mapping. - -Wed Jan 14 15:34:20 1998 Ian Lance Taylor <ian@cygnus.com> - - * syscalls.cc (setegid): New function which just returns ENOSYS. - (chroot): Likewise. - * cygwin.din: Export setegid, _setegid, chroot, and _chroot. - - * syscalls.cc (setmode): Rename from _setmode. Change to return - the old mode. Remove old setmode function. - * cygwin.din: Make _setmode an alias for setmode. - -Wed Jan 14 14:46:00 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: don't strip cygwin.dll by default - * winsup.h: minor reformatting, removed/reworded some comments - -Mon Jan 12 13:53:03 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - Speed up cygwin pid calculation by staying in the range - 1000 through (1000 + PSIZE - 1). - * pinfo.cc (pinfo_list::init): Change to reflect new pid - calculation method. - (pinfo_list::operator []): Ditto. - (pinfo_list::allocate_pid): Ditto. - * winsup.h (pinfo): Move pid and ppid into non-zeroed region since - they are always set by allocate_pid. - (pinfo_list): Change pid_base to next_pid_index to reflect new pid - calculation method. - (PBASE): New constant for new pid calcuation method. - -Sat Jan 10 12:06:38 1998 Geoffrey Noer <noer@cygnus.com> - - * syscalls.cc (process_deletion_queue): remove wrapper function - (close_all_files): call s->delqueue.process_queue instead of - going through wrapper. - * fhandler.cc (fhandler_base::close): call - s->delqueue.process_queue instead of using above wrapper. - * winsup.h: remove process_deletion_queue proto - * delqueue.h: up MAX_DELQUEUES_PENDING to 100 for now. Rename - v to dqueue for clarity. - * delqueue.cc: v renamed to dqueue throughout. Add FIXME - describing why this whole delqueue system needs rewriting. - -Fri Jan 9 13:18:44 1998 Geoffrey Noer <noer@cygnus.com> - - Remove some historical baggage: - * syscalls.cc (cygwin_set_attributes): remove commented-out code, - add FIXME since this function should go away next time an - incompatible change to cygwin.din is made. Stop including - include/sys/cygwin.h. - * include/sys/cygwin.h: remove cygwin_set_attributes proto. - Remove CYGWIN_FMODE_ALL_BINARY define. - * hinfo (hinfo_vec::init_std_file_from_handle): remove old - commented-out code - * path.cc (unmixedcaseify): delete commented-out function - (mixedcaseify): ditto - * strerror.cc (strerror): delete commented-out code section - -Tue Jan 6 18:51:40 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - Conform to POSIX method for sending SIGHUP to stopped processes. - * dcrt0.cc (do_exit): Use new kill_pgrp function to kill orphaned - children on group leader exit iff the children are stopped (per - POSIX). - * signal.cc (kill_worker): Negative signal now means to send - a SIGCONT after the signal, to wake up the target process. - (_kill): Break out pgrp handling into separate function. - (kill_pgrp): New function pulled from _kill to send signals - to processes in a given pgrp. - -Tue Jan 6 14:37:43 1998 Geoffrey Noer <noer@cygnus.com> - - patch from cgf@bbc.com (Chris Faylor): - * fhandler.cc (fhandler_base::open): include - FILE_FLAG_BACKUP_SEMANTICS in file_attributes when file is - a directory. Allows opening of directory as a file. Allows - use of handle to perform some operations on both directories and - files. - (fhandler_base::fstat): Loop when attempting to get volume serial - number. Works around an apparent Windows NT 3.51 bug. - * times.cc (utimes): use FILE_FLAG_BACKUP_SEMANTICS flag - to allow accessing directory times (may only work under NT; - until now it didn't work under either OS). - * winsup.h: Add O_DIROPEN constant. - -Mon Jan 5 19:18:01 1998 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: make winsup.h depend on winsup.h in accordance - with below - - patch from cgf@bbc.com (Chris Faylor): - * {*.cc, *.h}: Remove include files already present in winsup.h. - Change empty function parameter lists to (void) where appropriate. - - * fork.cc: Clean up include files. Minor change to CreateProcess - parameter list. - * signal.cc: Remove ifdef'ed stuff. - * smallprint.c: Add a necessary include file. - * winsup.h: Add a common include file. Add a function declaration - for kill_pgrp. - -Mon Jan 5 18:30:37 1998 Geoffrey Noer <noer@cygnus.com> - - Fix spoofing of directory inodes. - * syscalls.cc (hash_path_name): instead of initializing the - hash to zero, take the value of the initial hash as a new - argument. - (_stat_worker): fix up hash_path_name reference in light of above - * dirsearch.cc (opendir): initialize dir->__d_dirhash to the - hash of the full directory name so readdir can make use of it. - (readdir): compute d_ino by combining the directory hash - calculated by opendir with the hash of the filename. - * fhandler.cc: fix up hash_path_name reference in light of above - - * winsup.h: remove unnecessary protos for getkey, kbhit. Adjust - hash_path_name proto. diff --git a/winsup/cygwin/ChangeLog-1999 b/winsup/cygwin/ChangeLog-1999 deleted file mode 100644 index f2da41f51..000000000 --- a/winsup/cygwin/ChangeLog-1999 +++ /dev/null @@ -1,3562 +0,0 @@ -Sat Dec 25 12:46:25 1999 Christopher Faylor <cgf@cygnus.com> - - * dlfcn.cc (dlsym): Use correct HANDLE type for GetProcAddress. - (dlclose): Ditto for FreeLibrary. - * fhandler_windows.cc (fhandler_windows::set_close_on_exec): Properly - coerce arguments to set_inheritance. - (fhandler_windows::fixup_after_fork): Ditto for fork_fixup. - * libcmain.cc (main): Simplify. - * select.cc (peek_windows): Properly coerce argument to PeekMessage. - -Sat Dec 25 12:30:25 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Eliminate unneeded .y SUFFIX. - * dcrt0.cc (__api_fatal): Make "C". - (do_global_ctors): Make __stdcall. - (getprogname): Ditto. - (insert_file): Ditto. - (globify): Ditto. - (build_argv): Ditto. - (do_exit): Ditto. - * debug.cc (regthread): Ditto. - (makethread): Ditto. - (threadname): Ditto. - (find_handle): Ditto. - (handle_list): Ditto. - (add_handle): Ditto. - * debug.h: Reflect changes to __stdcall. - * shared.h: Ditto. - * winsup.h: Ditto. - -Sat Dec 25 12:09:10 1999 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (symlink): Don't return error if target is a symlink to a - nonexistent file. - -1999-12-23 DJ Delorie <dj@cygnus.com - - * Makefile.in: add support for "make check" - * shared.cc: if $CYGWIN_TESTING is set, use a private shared area - * cygrun.c: new, used to isolate dll-in-test - * testsuite/*: new, rudimentary testsuite framework - -Wed Dec 22 01:05:44 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (globify): Properly handle embedded tildes in variable - names. Treat a c:\foo style path spec as "special", i.e., don't - interpret the backslashes as quoting characters. - -Fri Dec 17 10:49:13 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink): Return error if the target exists. - -Thu Dec 16 22:36:45 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc: Change method for accessing com in windows_device_names to - allow > 2 com ports. - -Thu Dec 16 00:49:30 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Only build winver.o and version.o when required. - -Sat Dec 11 11:06:45 1999 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::path_conv): Ensure that a trailing slash is added - to "x:" specifications. - -Fri Dec 10 20:22:41 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (WFSO): Make __stdcall. - (WFMO): Ditto. - * debug.h: Reflect above changes. - * exceptions.cc (sig_set_errno): Set errno to be in effect after a - signal handler. - (handle_sigsuspend): Use set_sig_errno to ensure that the correct errno - is set after a signal handler. - (interrupt_now): Accommodate default errno field in stack. - (intterupt_on_return): Ditto. - (sigreturn): Pop, test, and possibly restore saved errno on return from - signal handler. - * fhandler_console.cc (fhandler_console::read): Set errno to be in - effect after a signal handler. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - * select.cc (cygwin_select): Ditto. - (select_stuff:wait): Ditto. - (peek_serial): Ditto. - * syscalls.cc (_read): Ditto. - * wait.cc (wait4): Ditto. - * winsup.h (signal_dispatch): Add "saved_errno" field. - -Thu Dec 9 23:35:45 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (threadname_init): Use new_muto macro to set up a static - buffer for a muto. - (debug_init): Ditto. - (WFSO): Reinstate wrapper for WaitForSingleObject. - (WFMO): Reinstate wrapper for WaitForMultipleObject. - * debug.h: Declare the above two wrappers. - * exceptions.cc (events_init): Use new_muto macro to set up a static - buffer for a muto. - * sigproc.cc (sigproc_init): Ditto. - * sync.cc (muto::acquire): Don't bump waiters if we already own the - muto. - * sync.h (new): New operator. - (delete): Ditto. - (new_muto): New macro. - -Dec 08 23:50:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_nt_attribute): Add debug output. Correct behaviour - in case of NULL ACL. - * syscalls.cc (stat_worker): Allow remote drives to get stat info from - fh.fstat(). - * include/winnt.h: Add defines for W2K ACL control flags. - * include/cygwin/socket.h: Add missing PF_NETBIOS. - -Wed Dec 8 23:06:07 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Ensure that winver.o is a dependency for building the - dll. - * mkvers.sh: Attempt to call windres in a fashion that accommodates - older and newer versions. - * winver.c: Reorganize slightly to accommodate older versions of - windres. - * fhandler.cc (fhandler_disk_file::fstat): Avoid using Windows "inodes" - on disks which do not support them. - -Tue Dec 7 21:15:11 1999 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (DllList::forkeeLoadDlls): Reverse order of Free/Load - Library calls to ensure that references are resolved. - * path.cc (mount_info::conv_to_win32_path): Ensure that returned - windows paths are always normalized regardless of whether they were in - windows format to begin with. - -Tue Dec 7 08:48:22 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_options): Properly detect end of known array. - -Mon Dec 6 22:32:04 1999 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Generate winver.o from winver.rc and various other things - from include/cygwin/version.h - * winver.rc: New file (adapted from donation by Mumit Khan - <khan@xraylith.wisc.edu>). - * configure.in: Find windres. - * configure: Regenerate. - * Makefile.in: Link winver.o into cygwin1.dll. - -Mon Dec 6 13:04:47 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * init.cc (dynamically_loaded): New global variable. - (dll_entry): Use. - * winsup.h (dynamically_loaded): Declare. - * dcrt0.cc (do_global_ctors): Likewise. - (set_os_type): Make static again. - (dll_crt0_1): Handle dynamically_loaded case. - * dll_init.cc (dll_dllcrt0_1): Delete. - (dll_dllcrt0): Handle dynamically_loaded case. - (dll_noncygwin_dllcrt0): Mark obsolescent. - * libccrt0.cc (cygwin_attach_noncygwin_dll): Delete. - * pinfo.cc (pinfo_init): Don't inherit parent fds if dynamically - loaded. - * include/cygwin/cygwin_dll.h (cygwin_attach_noncygwin_dll): Delete - prototype. - (_cygwin_noncygwin_dll_entry): Mark obsolescent. - -Mon Dec 6 11:09:41 1999 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Make threadsafe the default. - * configure: regenerate. - * utils/strace.cc: Fix a compiler warning. - -Sun Dec 5 15:49:43 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_options): Reinstate unions in parse_things, to - save space. - -Fri Dec 3 22:52:05 1999 Christopher Faylor <cgf@cygnus.com> - - Implement new signal-handling scheme which ensures that a program will - not be interrupted while in a system or cygwin DLL. - * Makefile.in: Add sync.o and dll_ofiles target. - * dcrt0.cc (alloc_stack_hard_way): Add more defensive code to ensure - that the stack is really grown. - (alloc_stack): Ditto. - (dll_crt0_1): Reorganize some initialization routines to ensure that - they occur after the heap has been initialized. - * debug.cc: Use muto for locks. Eliminate attempts to avoid being - interrupted by signals. - (threadname_init): New function. - (debug_init): Ditto. - * debug.h: Declare debug_init and threadname_init. - * exceptions.cc (stack_info::stack_info): Don't check for previous use - of get(). - (handle_sigsuspend): Simply using new signal-handling scheme. - (interruptible): New function. Determines if PC should be interrupted. - (interrupt_now): New function. Causes immediate signal dispatch. - (interrupt_on_return): New function. Causes signal dispatch on return - from cygwin or system routine. - (call_handler): Simplify to use new signal-handling scheme. - (set_process_mask): Use mask_sync muto to synchronize setting of - process signal mask. - (sig_handle_tty_stop): New function. Called when have to stop process - now. - (sig_handle): Simplify to use new signal-handling scheme. - (set_process_mask): Ditto. - (events_init): Allocate mask_sync muto. - (unused_sig_wrapper): New function. Encapsulates assembly language - signal handling support. - * fhandler.h (class select_stuff): Accommodate new signal-handling - scheme. - * fhandler_console.cc (fhandler_console): Simplify to use new - signal-handling scheme. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - * fhandler_termios.cc (bg_check): Ditto. - * fhandler_tty.cc (process_input): Ditto. - (fhandler_tty_slave::open): Ditto. - (fhandler_tty_slave::send_ioctl_request): Ditto. - * fork.cc: Ditto. - * path.cc (chdir): Ditto. - * select.cc: Ditto, throughout. - * shared.h: Eliminate unneeded signal enum. - * signal.cc (signal): Simplify to use new signal-handling scheme. - (sleep): Ditto. - (usleep): Ditto. - (sigprocmask): Ditto. - (sigaction): Ditto. - (pause): Use handle_sigsuspend to pause for signal. - * sigproc.cc: Change signal_arrived handle to global_signal_arrived - class. Change various mutex handles to mutos. - (proc_subproc): Simplify to use new signal-handling scheme. Use muto - for locking. - (get_proc_lock): Ditto. - (proc_terminate): Ditto. - (sig_dispatch_pending): Make a "C" function. Return status of pending - signals. - (sigproc_init): Initialize global_signal_arrived. Simplify to use new - signal-handling scheme. Initialize sync_proc_subproc muto. - (sig_send): Eliminate __SIGSUSPEND considerations. Simplify to use new - signal-handling scheme. - (__allow_sig_dispatch): Delete. - (__block_sig_dispatch): Delete. - (__get_signal_mutex): Delete. - (__release_signal_mutex): Delete. - (__have_signal_mutex): Delete. - (wait_sig): Simplify to use new signal-handling scheme. - * sigproc.h: Implement signal_arrived classes. - * smallprint.c (__small_vsprintf): Avoid printing a leading '*' in - function name with %F format. - * spawn.cc (spawn_guts): Simplify to use new signal-handling scheme. - (iscmd): Don't consider a filename to be a "command" unless it contains - a ':'. - * syscalls.cc (_read): Ditto. - (_open): Ditto. - (_close): Ditto. - * termios.cc (tcsendbreak): Ditto. - (tcdrain): Ditto. - (tcflush): Ditto. - (tcflow): Ditto. - (tcsetattr): Ditto. - (tcgetattr): Ditto. - * winsup.h: Reorganize include files. Add preliminary __sig_protect - implementation. - * cygwin/version.h: Bump current version to 1.1.0. - -Thu Dec 2 22:19:40 1999 Christopher Faylor <cgf@cygnus.com> - - * sync.cc (muto::muto): Use an event rather than a semaphore for wait - synchronization. - (muto::acquire): Rewrite to use an event and try to remove races. - (muto::release): Ditto. - -1999-12-02 DJ Delorie <dj@cygnus.com> - - * environ.cc (parse_options): switch to a static initializer; - templates are sensitive to g++ bugs. - -Fri Nov 26 12:04:23 1999 Christopher Faylor <cgf@cygnus.com> - - * net.cc (cygwin_bind): Ensure that non-Unix domain socket operations - return success correctly. - -Wed Nov 24 21:37:58 1999 Christopher Faylor <cgf@cygnus.com> - - * net.cc (cygwin_bind): Guard against incorrectly setting res to zero - when there is an error condition. - -Tue Nov 23 17:49:55 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::fhandler_base): Use better initialization - scheme. - * fork.cc (stack_base): Eliminate unneeded asm stuff. - * select.cc: Sprinkle in some comments. - * include/winnt.h: Add more CONTEXT. - -Nov 23 20:51:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_bind): Use struct sockaddr_un in AF_UNIX code. Set - errno to ENAMETOOLONG if length of pathname exceeds limit in AF_UNIX - code. Sets errno to EADDRINUSE in AF_UNIX code if file system socket - object already exists. - * syscalls.cc (setsid): Set errno to EPERM if current process is - already process group leader. - * uinfo.cc (internal_getlogin): Rearrange for better debug output. Set - pi->psid to NULL if SID can't be determined. - * include/cygwin/socket.h: Add AF_LOCAL and PF_LOCAL - (same as AF_UNIX) for POSIX compatibility. - * include/sys/un.h: Add UNIX_PATH_LEN define. Added SUN_LEN macro for - POSIX compatibility. - -Sun Nov 21 22:55:04 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_options): Return immediately after dealing with - NULL argument. Don't try to process it. - -Tue Nov 16 23:29:17 1999 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (kill_worker): Guard against NULL dereference when thread - safe. - -Sat Oct 30 00:59:38 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Some general cleanup. - * smallprint.c (__small_vsprintf): Accommodate new format for - __PRETTY_FUNCTION__. - -Wed Oct 27 16:13:36 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::from_registry): Don't allow the same posix path - into the mount table more than once. - * utils/mount.cc (main): Add some orthogonality to the options. - -Tue Oct 26 21:55:49 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Turn off ntsec by default. - -Wed Oct 27 00:14:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * fhandler.cc (fhandler_base::lseek): Take readahead into account. - -Tue Oct 26 16:46:54 1999 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_unlink): Return EISDIR when attempting to unlink a - directory. - -Mon Oct 25 18:05:23 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::read): Fix previous fix. - -Mon Oct 25 13:46:44 1999 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (add): Avoid allocating name for "LINK"ed DLLs. - (DllList::forkeeLoadDlls): Only reload DLLs if they have been - dlopen'ed. - * grp.cc (parse_grp): Assign gr_mem when it is determined. - -Sun Oct 24 21:55:48 1999 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (struct dll): Add module name. - (add): Add additional 'name' parameter for recording in dll structure. - (reserve_upto): New function. - (release_upto): Ditto. - (DllList::forkeeLoadedDlls): Ditto. - (DllList::forkeeStartLoadDlls): Remove. - (DllList::forkeeEndLoadedDlls): Ditto. - (DllNameIterator::*): Eliminate class. - (LinkedDllNameIterator::*): Ditto. - * dll_init.h: Reflect above changes. - * fork.cc (fork): Don't generate a list of dlls to load in the parent. - Let the child do it. Use new DllList::forkeeLoadDlls to load DLLs. - * smallprint.c (__small_vsprintf): No need for a sign on a Win32 error. - (small_printf): Move function here from strace(). - * strace.cc (small_printf): Move to smallprint.c - * include/sys/strace.h: Always declare small_printf. - -Sun Oct 24 02:22:13 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::read): Work around C bug. - -Tue Oct 19 22:10:21 1999 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc: Add some external symbols to allow thread-safe - compilation. - -Tue Oct 19 21:09:42 1999 Christopher Faylor <cgf@cygnus.com> - - Make minor changes throughout to accommodate new gcc merge. - * Makefile.in: Remvoe -fpermissive option when compiling using g++. - * dcrt0.cc (noload): Mark as "unused" to avoid a compiler warning. - * exceptions.cc (sigreturn): Make this "extern" since it essentially - *is* extern. - * fork.cc (sync_with_parent): Modify to cause the macro to be - considered void. - * heap.cc (sbrk): Remove debugging code. - * passwd.cc (getpass): Don't use fprintf to print the prompt. - * path.cc (mount_info::conv_to_win32_path): Accommodate compiler - warning. - * select.cc (cygwin_select): Experimental version of select which - handles fd_sets with non-standard FD_SETSIZE. - (select_stuff::wait): Ditto. - * termios.cc (tcgetattr): Avoid a compiler warning. - (cftospeed): Ditto. - (cftispeed): Ditto. - * uinfo.cc (netapi32_init): Ditto. - * winsup.h (api_fatal): Simplify and avoid a compiler warning. - * include/sys/strace.h (system_printf): Ditto. - (strace_printf_wrap): Modify to cause the macro to be considered void. - (strace_printf_wrap1): Ditto. - -1999-10-19 DJ Delorie <dj@cygnus.com> - - * Makefile.in (.cc.o): add -fpermissive to avoid g++'s conformance - madness. - * environ.cc (_findenv): rename to my_findenv to avoid newlib - prototype. - * syscalls.cc (logout): remove braces around _PATH_UTMP - -Sat Oct 16 22:53:02 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::cygdrive_posix_path): Properly terminate string - after Oct 11 change below. - -Fri Oct 15 23:02:39 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (stack_info): Reimplement stack handling routines in - new stack_info class. - (stack_info::brute_force): Just fill out the same structure as - StackWalk. - (stack_info::walk): Just fill out stack info. - (stack): Use stack_info class stuff to iterate over and display the - stack. - -Fri Oct 15 00:32:13 1999 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump some versions. - -Oct 5 11:45:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Delete calls to get_WHOEVER_sid. Move call to - uinfo_init() to the end of the function. - * fhandler.cc (get_file_owner): Substitute call to get_id_from_sid() - with call to get_uid_from_sid(). - (get_file_group): Substitute call to get_id_from_sid() with call to - get_gid_from_sid(). - * fork.cc (fork): Copy new pinfo members to child. - * grp.cc (parse_grp): Rewritten. Saves gr_passwd and all user names in - gr_mem. - (read_etc_group): Variable `group_sem' avoids endless loop. - * passwd.cc (read_etc_passwd): Variable `passwd_sem' avoids endless - loop. - * security.cc (get_sid): New function to generate SID from int values. - (get_ssid): New function to generate SID from string. - (get_pw_sid): New function to generate SID from pw_gecos entry. - (get_gr_sid): New function to generate SID from gr_passwd entry. - (get_admin_sid): Rewritten to avoid using heap space. - (get_system_sid): Ditto. - (get_creator_owner_sid): Ditto. - (get_world_sid): Ditto. - (get_id_from_sid): Try to read SIDs from /etc/passwd or /etc/group - files before using RID or Lookup... function. - (legal_sid_type): New function. - (lookup_name): Rewritten to use the logon server info, if any. - (alloc_sd): Try to use SID from /etc/passwd and /etc/group files before - call to lookup_name(). - (alloc_sd): New parameter for logon server. - (set_nt_attribute): Ditto. - (set_file_attribute): Ditto. - * shared.cc (sec_user): If SID is saved in myself, use it instead of - calling lookup_name(). - * shared.h: struct pinfo got extended user information. - * spawn.cc (spawn_guts): method for forcing reread /etc files changed. - (_spawnve): Copy new pinfo members to child. - * syscalls.cc (chown): Change call to set_file_attribute(). - (chmod): Ditto. - * uinfo.cc (internal_getlogin): New function. - (uinfo_init): Calls internal_getlogin() now. - (getlogin): Uses myself->username now. - * winsup.h: extern HANDLE netapi32_handle; Change prototypes for - set_file_attribute(), lookup_name(), get_id_from_sid(). New inline - functions get_uid_from_sid() and get_gid_from_sid(). - * utils/mkgroup.c: Adapt to the new ntsec features. - * utils/mkpasswd.c: Ditto. - -Thu Oct 14 23:46:03 1999 Christopher Faylor <cgf@cygnus.com> - - Replace calls to GetCurrentProcess() with hMainProc throughout. - * autoload.h: Implement LoadDLLinitnow() function to force the loading - of a DLL. - * cygwin.din: Export cygwin_stackdump. - * dcrt0.cc (dll_crt0): Set up hMainProc and hMainThread here. - * dll_init.cc (dll_dllcrt0_1): Ditto. - * environ.cc (parse_options): New "oldstack" option for forcing the use - of the old stack walking code. - * exceptions.cc (signals_init): Remove. - (err_printf): Remove. Use small_printf throughout. - (sfta): New helper function for StackWalk. - (sgmb): Ditto. - (stack_brute_force): Renamed from old stack walk function. Now uses - frame pointer from context handler. - (stack_walk): New function. Uses Windows API to walk the stack. - (stack): Reimplement to attempt to load imagehlp.dll. If this succeeds - use stack_walk() to display stack info, otherwise use - stack_brute_force. - (cygwin_stackdump): Temporary (?) function for displaying a stack dump - from the called location. - (stackdump): Accept new parameters for passing to stack(). - (handle_exceptions): Call stackdump with new parameters needed to walk - the stack. - * fhandler.cc (fhandler_base::read): Fix potential buffer overrun. Fix - end of buffer problems when \r is not followed by a \n. - (fhandler_base::lseek): Avoid flushing read ahead when not moving the - file pointer. - * fhandler_termios.cc (fhandler_termios::set_ctty): Add a debugging - statement. - * sigproc.cc (sigproc_init): Eliminate obsolete signals_init function. - * winsup.h: Add some declarations. - -Wed Oct 13 09:02:32 1999 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (readlink): Return errno correctly when it can't find the - target symlink. - -Tue Oct 12 13:02:08 1999 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (setsid): Only reset sid/pgid when NOT process group - leader. - * tty.cc (tty_list::allocate_tty): Don't set sid to myself. The first - tty open should do that. - -Mon Oct 11 23:13:29 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (noload): Issue appropriate Windows error. - * fhandler_termios.cc (fhandler_termios::ctty): Don't automatically set - sid, etc., unless the current pid associated with the tty's sid does - not exist. - * path.cc (mount_info::cygdrive_posix_path): Avoid copying beyond the - end of buffer or suffer garbage. - * pinfo.cc (pinfo_init): Restore sid behavior of a year ago. The sid - should be the same as the pid to be equivalent to UNIX. - (pinfo_list::operator []): Add more bounds checking. - -Sun Oct 10 14:08:30 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (select): Return error if n > FD_SETSIZE. This is a - temporary fix. - -Sun Oct 10 13:56:14 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (iscygdrive_device): Be more precise in detecting when a - "cygdrive" device. This should allow 'mkdir -p' to work correctly. - -Fri Oct 08 08:55:31 1999 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (symlink_check_one): set errno to EINVAL on socket files - same as normal files. - -1999-10-06 DJ Delorie <dj@cygnus.com> - - * include/oaidl.h (IDispatch.GetIDsOfNames): Use DISPID* not DISPID - -1999-10-06 DJ Delorie <dj@cygnus.com> - - * exceptions.cc (err_printf): new function; print to stderr - without strace's clutter. The stacktrace functions use this, so - the stacktrace files should be cleaner. - (exception): Print segment registers also - (stack): include a peek at the function's arguments - -Tue Oct 5 16:33:17 1999 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::extend): Eliminate inappropriate test for boundary - condition. - -1999-10-04 DJ Delorie <dj@cygnus.com> - - * config/i386/longjmp.c: don't restore %fs (Paul Sokolovsky - <paul-ml@is.lg.ua>) - -1999-10-04 DJ Delorie <dj@cygnus.com> - - * localtime.c (tzsetwall): Handle Asian Windows strings correctly - (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). - -Sat Oct 2 23:00:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * include/lm*.h: Correct multiple problems in lan manager - header files. - -Sun Oct 3 14:29:53 1999 Christopher Faylor <cgf@cygnus.com> - - * sysdef/imagehlp.def: New file. Definitions for imagehlp.dll. - * include/imagehlp.h: Ditto. - * include/winbase.h: YA missing structure. - -Fri Oct 1 11:16:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Correct setting of FILE_DELETE_CHILD. - (get_file_attribute): Read ntea attributes only if ntsec is disabled. - * syscalls.cc (_unlink): Don't queue file into delqueue if DeleteFile - returns ERROR_ACCESS_DENIED. - -1999-09-30 Mumit Khan <khan@xraylith.wisc.edu> - - * init.cc (dll_entry): Remove static_load case. - * dcrt0.c (set_os_type): Make it externally visible. - * dll_init.cc (dll_dllcrt0_1): Update noncygwin initialization for - post-b20.1 code. - -1999-09-30 DJ Delorie <dj@cygnus.com> - - * times.cc: declare _timezone and _daylight properly - -Wed Sep 29 23:57:40 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Remove EXIT_SIGNAL mask when exiting. It is not - correct given changes to really_exit. - * select.cc (peek_serial): Work around apparent Windows bug. - -1999-09-29 Norbert Schulze <Norbert.Schulze@rhein-neckar.de> - - * times.cc (timezone): revert 'return TZ if set' patch. - * times.cc (timezone): uses now tzset() and _timezone. - * times.cc (gettimeofday): ditto. - * localtime.c (tzsetwall): no negative minutes if offset is negativ. - * localtime.c (tzsetwall): minutes place holder was missing if - minutes == 0 and seconds !=0 (h:0:s). - * localtime.c (tzsetwall): if timezone has no daylight saving - (tz.StandardDate.wMonth==0) generate no daylight saving parameters. - -Sat Sep 25 15:11:04 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_termios.cc (fhandler_termios::bg_check): Accept a new - argument to control whether we should worry about blocking signals. - * fhandler.h: Ditto. - * syscalls.cc (read_handler): Accept a new argument for passing to - bg_check. - (read): Inform read_handler if signals are blocked or not. - * termios.cc: Throughout, reorganize to always block signals before - calling bg_check. - -Sat Sep 25 13:36:06 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_termios::line_edit): Add an extra argument. - * fhandler_serial.cc (fhandler_serial::open): Maintain consisten - fAbortOnError state. - * fhandler_termios.cc (fhandler_termios::line_edit): Use new - "always_accept" argument to control whether input_done is set - regardless of canonical state. - * fork.cc (vfork): Duplicate "parent's" fd table. - * hinfo.cc (hinfo::dup_worker): New method. - (dup2): Use new dup_worker method. - (hinfo::fixup_after_fork): Lock dtable prior to operating on it. - (hinfo::vfork_child_dup): New method. Duplicates dtable for vfork. - (hinfo::vfork_parent_restore): New method. Restores dtable when vfork - exits. - * net.cc (set_winsock_errno): Make global. - * pipe.cc (pipe): Default mode to binary unless *explicitly* set to - text. - * select.cc (set_bits): Test that {read,write,except}_selected are - active before setting a bit. - (peek_pipe): Short circuit tests if we're not checking for readable - or "except"able handles. - (thread_socket): Use read check for exitsock as old method relied on - undocumented, unreliable behavior. - (start_thread_socket): Perform more setup on exitsock to improve thread - exit signalling. - (socket_cleanup): Connect to the exitsock to force thread_socket thread - exit. - * winsup.h (hinfo): Add preliminary vfork stuff. - * include/winsock.h: Add shutdown() how types. - * include/sys/socket.h: Add socketpair declaration. - -1999-09-22 DJ Delorie <dj@cygnus.com> - - * syscalls.cc (chown): never return ENOSYS - just pretend it - works. - -Wed Sep 22 00:47:56 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (MAKEready): Need to initialize 'fd' or open tests in - peek fail. - -Mon Sep 20 17:07:37 1999 Christopher Faylor <cgf@cygnus.com> - - * smallprint.c (__small_vsprintf): Fix '%+' handling. - -Thu Sep 16 21:48:13 1999 Christopher Faylor <cgf@cygnus.com> - - * utils/cygcheck.cc (dump_sysinfo): Deal with a new compiler error. - * utils/strace.cc (make_command_line): Change to a void * argument, as - is required for SetConsoleCtrlHandler. - -Thu Sep 16 20:47:12 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (__api_fatal): Rearrange slightly. - * fhandler.h (set_ctty): Change to void. - * fhandler_termios.cc (fhandler_termios::set_ctty): Ditto. - * select.cc (thread_pipe): Change to a void * argument, as is required - for thread functions. - (thread_socket): Ditto. - (thread_serial): Ditto. - * include/winbase.h: Mark ExitProcess as noexit. - -Thu Sep 16 18:32:12 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (ctrl_c_handler): Make WINAPI, as required by - SetConsoleCtrlHandler. - -Thu Sep 16 17:48:05 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (thread_stub): Make WINAPI, as required by CreateThread. - * fhandler_tty.cc (process_input): Ditto. - (process_output): Ditto. - (process_ioctl): Ditto. - * select.cc (thread_pipe): Ditto. - (thread_serial): Ditto. - (thread_socket): Ditto. - * sigproc.cc (wait_proc): Ditto. - (wait_sig): Ditto. - * window.cc (winMain): Ditto. - -Wed Sep 15 20:58:37 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Let fatal signals through regardless of - signal_mutex. - * fhandler.h (fhandler_base): Make bg_check virtual. - (fhandler_termios::bg_check): Eliminate the second argument. - * fhandler_console.cc (fhandler_console::ioctl): Check for background - operation. - * fhandler_termios.cc (fhandler_termios::bg_check): Eliminate the - second argument. A negative arg 1 means the same thing. - * ioctl.cc (ioctl): Add debugging output. - * syscalls.cc (_write): Eliminate second argument to bg_check. - * termios.cc (tcsendbreak): Check for background operation. - (tcdrain): Ditto. - (tcflush): Ditto. - (tcflow): Ditto. - (tcsetattr): Reorganize on similar lines to above routine. - -Wed Sep 15 15:25:04 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Only set read_ready if bg_check returns <= 0. - (peek_console): Ditto. Correct PeekConsole conditional so that the for - loop breaks eventually. - -Wed Sep 15 00:21:40 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (set_console_handler): Allocate security stuff here - since it is needed earlier in the process now. Allocate a shared event - for use in synchronizing CTRL-C events that happen while the process is - still initializing. - (ctrl_c_handler): Use the above event to synchronize with the cygwin - startup process, waiting for the signal thread to come alive before - trying to send a signal. - (signals_init): Don't call set_console_handler() here, since it is now - handled much earlier in cygwin initialization. - * shared.cc (shared_init): Move out security setup. - * sigproc.cc (wait_sig): Activate the console_handler_thread_waiter so - that any waiting thread which is handling ctrl-c's will wake up and - send a signal, if appropriate. - -Tue Sep 14 23:49:39 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (ctrl_c_handler): Handle ctrl-c events ourself, using - the "UNIX way". - * fhandler_console (tty_list::get_tty): New function. - * shared.h: Add some additional things to tty_min class for handling - ctrl-c. - -1999-09-14 DJ Delorie <dj@cygnus.com> - - * dir.cc (rmdir): return ENOTDIR for regular files on 9x - -Tue Sep 14 00:01:59 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.h (ForceCloseHandle2): New macro. - * fhandler.cc (set_inheritance): Accept name of handle as optional - third argument. Use this in ForceCloseHandle2/ProtecHandle2. - * fhandler.h: Implement bg_check() method. - * fhandler_console.cc (get_tty_stuff): Initialize more tty stuff. - (fhandler_console::read): Check for background read. - * fhandler_termios.cc (fhandler_termios::bg_check): New function. - Performs appropriate action given background read or write. - * fhandler_tty.cc (fhandler_tty_slave::write): Replace background check - code with new method. - (fhandler_tty_slave::read): Ditto. - (fhandler_tty_common::set_close_on_exec): Pass output_mutex name to - set_inheritance. - * select.cc: Throughout check that the fd is still open before polling. - (peek_pipe): Check for background read. - (peek_console): Ditto. - * shared.h: Move ntty from tty into tty_min. - * syscalls.cc (read_handler): Check for background read. - (_write): Check for background write. - -Sat Sep 11 16:24:21 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (iscygdrive_device): New macro. - (mount_info::conv_to_win32_path): Only attempt "cygdrive" translation - when passed /cygdrive/something. - (mount_info::write_cygdrive_info_to_registry): Store in-memory copy of - cygdrive prefix automatically. - (mount_info::read_cygdrive_info_from_registry): Reorganize for new - write_cygdrive_info_to_registry functionality. - (mount): Ditto. - -Fri Sep 10 15:44:11 1999 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (pathconf): Make first arg 'const'. - -1999-09-10 DJ Delorie <dj@cygnus.com> - - * exec.cc (_execve): check for an empty environment - -Wed Sep 8 10:24:12 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Generalize test for initial zeroes in - exec/fork block. - * fhandler.cc (fhandler_disk_file::open): Don't attempt #! detection on - non-disk files. - * fhandler.h: Use generic status bit set/clear macros. Use bitmask for - fhandler_termios state. - * fhandler_console.cc: Rename "tty_stuff" to more descriptive - "shared_console_info". - (fhandler_console::read): Reset console state before a read if - appropriate. - (fhandler_console::open): Improve check for setting console state. - (fhandler_console::fixup_after_fork): Ditto. - (set_console_state_for_spawn): New function. - * fhandler_termios.cc (fhandler_termios::tcinit): Use new method for - determining if initialized. - * fhandler_tty.cc (fhandler_tty::init_console): Avoid sending handle to - init or it will be closed. - * fork.cc (per_thread::set): Make this method non-inline, temporarily. - * select.cc (peek_console): Call set_input_state to ensure that the - console is in the correct state. - * shared.h (child_info): Make zero element an array for future - tweaking. - (tty_min): Change initialized element to a bit field. Define bit field - macros for manipulating it. - * sigproc.cc (wait_sig): Wake up every half second in a (vain?) attempt - to work around Windows 98 hanging problem. - (wait_subproc): Ditto. - * spawn.cc (spawn_guts): Use new "set_console_state_for_spawn" prior to - starting a process. - * winsup.h: Define generic macros for manipulating a method's status - field. - (per_thread): Move inline method to fork. - -Mon Sep 6 13:36:34 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_master::init_console): Remove retrieval - of stderr handle since it is not required for correct init operation. - * hinfo.cc (hinfo_init): Reorganize to accommodate potential closing of - console handles by fhandler_console::init. - (init_std_file_from_handle): Set standard handle as appropriate. - (hinfo::de_linearize_fd_arry): Ditto. - * fhandler_console.cc (fhandler_console::init): Conditionally close - handle only if it is valid. - -Sun Sep 5 22:43:21 1999 Christopher Faylor <cgf@cygnus.com> - - * utils/cygcheck.cc: Make sure that GetDiskFreeSpaceExA is defined as a - __stdcall function or the stack will suffer. For now, don't sort mount - output as more work copying the individual mntent elements is required. - -Sat Sep 4 19:01:00 1999 Christopher Faylor <cgf@cygnus.com> - - * include/glob.h: Ensure that glob*() functions can be properly accessed by - programs using the DLL. - -Sat Sep 4 18:49:04 1999 Christopher Faylor <cgf@cygnus.com> - - * heap.cc (heap_init): Tweak debugging output. - * sigproc.cc (sig_send): Catch obvious impossible values from - GetLastError. - -Sat Sep 4 18:43:49 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Protect against signal - dispatch. - (fhandler_tty_slave::write): Only wait a fixed amount of time to - receive a an output_done_event. - (fhandler_tty_slave::tcflush): Protect against signal dispatch. - -Sat Sep 4 18:30:42 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_sig): Temporarily remove OutputDebugString. It - seemed to be causing sporadic hangs. - (call_handler): Save and restore di and si. - (sigreturn): Ditto. - -Fri Sep 3 23:07:44 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_termios.cc (fhandler_termios::line_edit): Properly deal with - sending characters to slave when !iscanon. - -Fri Sep 3 18:15:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::fstat): Add S_ISCHR to mode bits. - * fhandler_tape.cc (fhandler_dev_tape::fstat): Erase setting of S_ISCHR - since it's set in fhandler_dev_raw::fstat now. - -Thu Sep 2 22:11:03 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_win32_path): Fix problem with - calculating relative path at root. - -Wed Sep 1 23:24:43 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::fhandler_base): Don't use default binmode - for console. - -Wed Sep 1 20:51:05 1999 Christopher Faylor <cgf@cygnus.com> - - * smallprint.c (__small_vsprintf): Allow field width argument with 'l' - modifier. Consolidate processing of field width. - * uname.cc (uname): Eliminate space in "release" field. - -Tue Aug 24 10:46:24 1999 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * fhandler_console.cc (write_normal): Write '\n' corresponding to - DWN if the cursor is out of the window. - -Wed Aug 25 22:16:46 1999 Christopher Faylor <cgf@cygnus.com> - - * smallprint.c (rn): Deal with positive as well as negative signs. - (__small_vprintf): Handle '+', 'l', and '%' format types. - -Wed Aug 25 00:38:49 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Zero heap information in user_data to - work around mutant startup code. - -Tue Aug 24 00:03:22 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): One more end-of-process race detection. - -Mon Aug 23 21:37:07 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, remove malloc.h. - * debug.cc: Initialize handle list so that it will not be copied on - fork. - * exceptions.cc (_sigreturn): Zero windows error on exit. It's - meaningless after a signal dispatch. - * fhandler_console.cc (fhandler_console::de_linearize): Improve error - messages. - * shared.h: Increment fork magic number. - * sigproc.cc (sigproc_terminate): Close all handles prior to calling - proc_terminate if running in signal thread. - (sig_send): Eliminate bogus ResetEvent on a semaphore. Add code for - potentially dealing with problems when this code is interrupted via a - signal dispatch. - * times.cc (timezone): Use __small_sprintf. - * uname.cc (uname): Ditto. Also use strcpy instead of sprintf where - appropriate. - -1999-08-23 DJ Delorie <dj@envy.delorie.com> - - * localtime.c: export timezone, daylight, tzname as _* - * times.cc: don't export timezone, daylight, tzname - (timezone): return TZ if set. - (cygwin_tzset): not needed. - -Thu Aug 19 13:46:47 1999 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork): Remove pinfo lock. It is in allocate_pid, now. - * spawn.cc (_spawnve): Ditto. - * pinfo.cc (pinfo_init): Ditto. - (lock_pinfo_for_update): Impreove debug output. - (pinfo_list::allocate_pid): Lock pinfo mutex here. - -1999-08-19 DJ Delorie <dj@cygnus.com> - - * Makefile.in (tooldir): If we're building natively, drop the - $(target_alias) on include and lib's install (i.e. /usr/include - instead of /usr/include/i686-cygwin). - -Thu Aug 19 01:11:25 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Avoid a race with proc thread when executing - due to a signal. - -Wed Aug 18 16:37:59 1999 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * fhandler_console (fhandler_console::fillin_info): Avoid setting - scroll_region.Bottom when it is not known. - (fhandler_console::write_normal): Add various fixes for console - scrolling. - -Wed Aug 18 16:18:22 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc: Add more precise end-of-process detection. - -Wed Aug 18 00:03:47 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Work around apparent Windows bug which - occasionally results in bogus error messages when a signal is - dispatched. - -1999-08-17 DJ Delorie <dj@cygnus.com> - - * localtime.c (tzsetwall): Deduce TZ more accurately. - -Tue Aug 17 18:00:03 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Correct detection of process group for - backgrounded processes. - -Tue Aug 17 10:24:49 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winnt.h: Fix typo in IMAGE_FIRST_SECTION definition. - -Sun Aug 15 19:11:49 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * gcrt0.c (__eprol): Avoid namespace pollution. - (_monstartup): Turn into a constructor function and prevent multiple - invocations. - -Mon Aug 16 10:03:00 Corinna Vinschen <corinna@vinschen.de> - - * utils/mkgroup.c: Correct call to LookupAccountSid for retrieval of - 'None'. - -Mon Aug 16 00:24:29 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (locker): Improve signal mutex locking. - * exceptions.cc (sig_handle): Pass STOP signals to call_handler to - ensure honoring of signal_mutex. - (call_handler): Move STOP code here after acquistion of signal_mutex. - * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Track - lockers for debugging. - (fhandler_tty_common::__release_output_mutex): Ditto. - (fhandler_slave::write): Fix faulty signal blocking code. - * fork.cc (fork_copy): Remove ancient if 0. - (fork): Conditionalize "FORKDEBUG" under DEBUGGING. - * sigproc.cc (proc_terminate): Reduce pinfo lock time. - (sigproc_terminate): Set sig_loop_wait after getting signal_mutex. - (__get_signal_mutex): Reorganize for less strace output when not - DEBUGGING. - (__release_signal_mutex): Ditto. Reorganize case where !sig_loop_wait. - (have_signal_mutex): Returns true if current thread has the mutex. - * wait.cc (wait4): Change debugging message. - -Sat Aug 14 0:10:00 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::raw_read): Set correct errno from Win32 - error when ReadFile fails. - (fhandler_base::raw_write): In case of ERROR_DISK_FULL, return - bytes_written only if bytes_written > 0. - * errno.cc: Map ERROR_DISK_FULL to ENOSPC. - -Fri Aug 13 14:22:12 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Honor ignra argument. - -Fri Aug 13 00:45:00 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Ensure that hExeced is set to proper state - when parent has exited. - -Thu Aug 12 14:09:30 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (getsem): Fix typo which prevented sending signals to - other processes. - -Wed Aug 11 22:06:33 1999 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export glob and globfree. - * glob.h: Move to include. - * Makefile.in: Correct glob.h dependencies. - -Wed Aug 11 19:41:04 1999 Sergey Okhapkin <sos@prospect.com.ru> - - * fhandler.cc (fhandler_disk_file::fstat): Check if the file is unix - domain socket. - (fhandler_disk_file::open): Call set_socket_p(). - * fhandler.h: Add new fhandler type flags (FH_LOCAL, FH_FIFO). - (fhandler_base): get/set_socket_p - new member functions. - (fhandler_socket::addr_family): Add new member, currently unused. - (fhandler_socket::get/set_addr_family): Add new functions to access - addr_family. - * include/sys/un.h: New file. - * net.cc: Include <sys/un.h> - (cygwin_socket): Always create socket of AF_INET family, store - argument's family. - (get_inet_addr): New static function. Converts AF_UNIX requests into - corresponding AF_INET requests. - (cygwin_sendto): Use get_inet_addr(). - (cygwin_connect): Likewise. - (cygwin_accept): Check for sockaddr length. - (cygwin_bind): Implement AF_UNIX. - * path.h (PATH_SOCKET): Add new enum value. - (path_conv::issocket): Add new member function. - (SOCKET_COOKIE): Add new define. - * syscalls.cc (chmod): Mark socket files with system file attribute. - -Wed Aug 11 17:22:46 1999 Corinna Vinschen <corinna@vinschen.de> - - * utils/mkgroup.c (main): Generate "None" group when - invoked via mkgroup -l. - -Tue Aug 10 21:30:31 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Handle type ahead where appropriate. - * sigproc.cc (proc_can_be_signalled): Revert to previous method for - determining signalability. - (getsem): Move PID_INITIALIZING test here. - * wait.cc (wait4): Improve debug output slightly. - -Mon Aug 9 23:27:44 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Add additional check for valid hExeced. - * exceptions.cc (call_handler): Implement a raceless way to track - pending_signals. - * signal.cc (kill_worker): Make calls from non-main threads synchronous - or signals from a tty thread don't work right. - * sigproc.cc (sig_send): Localize pending_signals assignment to only - the wait_sig thread. - (__get_signal_mutex): Don't attempt to grab a mutex if signal_mutex - hasn't been assigned yet. Add more strace debugging information when - -DDEBUGGING. - (__release_signal_mutex): Don't attempt to release a mutex if - signal_mutex hasn't been assigned yet. Add more strace debugging - output. - (wait_sig): Attempt to eliminate race in setting of pending_signals. - * spawn.cc (spawn_guts): Set hExeced to INVALID_HANDLE_VALUE so that it - will be obvious when a process is actually just an execed stub. - * strace.cc (strace_vsprintf): Output a "!" after the pid when - executing in an execed stub. - -Mon Aug 9 17:17:13 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, eliminate in() and out() macros. - * winsup.h (tty_attached): Accept an argument indicating the pinfo - structure to query. - * exceptions.cc (really_exit): Cosmetic change. - * external.cc (fillout_pinfo): Use queried pinfo structure for - determining tty number, not *our* number. - * net.cc: More workarounds. - * path.cc (get_device_number): Supply argument to tty_attached. - * syscalls.cc (ctermid): Ditto. - * strace.cc (strace_dump): Remove. - * include/sys/strace.h: Eliminate obsolete stuff. - -Sun Aug 8 22:54:45 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Process all signals on return from a - signal dispatch. - * sigproc.cc (proc_can_be_signalled): Guard against waiting too long - when exiting. - (proc_exists): Don't report an exited process as "existing". - (proc_terminate): Close handle prior to testing for existence so that - proc_exists will not always return TRUE. Eliminate use of zap_subproc. - (stopped_or_terminated): Eliminate use of zap_subproc. - (zap_subproc): Delete. - -Sun Aug 8 22:17:36 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_master::init): hThread must remain - open. Previous change to close it was wrong. - -Sun Aug 8 20:35:33 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc: Initalize NO_COPY variables. - * pinfo.cc (record_death): Don't be so insistent about getting - the pinfo lock. - * sigproc.cc (proc_terminate): Tighten the region protected by - the pinfo lock. - * spawn.cc (spawn_guts): Eliminate the pinfo lock when reparenting - as it is no longer required. - (_spawnve): Tighten the region protected by the pinfo lock. - -Sun Aug 8 18:26:51 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Add more unfortunate guards against a - system call being interrupted by a signal dispatch. - -Sat Aug 7 15:38:42 1999 Christopher Faylor <cgf@cygnus.com> - - * security.cc (get_admin_sid): Ensure that returned buf is not copied - on a fork. - (get_system_sid): Ditto. - (get_create_owner_sid): Ditto. - (get_world_sid): Ditto. - -Sat Aug 7 15:17:25 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (process_input): Reset signal_arrived event prior to - calling console read as this is now a requirement for functions which - detect signal_arrived. - (fhandler_tty_master::write): Allow signals to operate prior to raising - SIGTTOU. - (fhandler_tty_master::read): Allow signals to operate prior to raising - SIGTTIN. - * select.cc (peek_pipe): Detect attempt to read from tty not in our - process group as a "read_ready" event. - * include/shellapi.h: Add missing defines. - * utils/ps.cc: Output windows pid as unsigned for Windows 9x. - -Sat Aug 7 14:30:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_creator_owner_sid): New function. - * shared.cc (sec_user): calls `get_creator_owner_sid' in creation - of the security attributes structure additionally. - -Fri Aug 6 13:04:40 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Allow failure from OpenProcess. The parent - may have exited due to 7/31 change. - -Thu Aug 5 22:54:07 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (wait_for_me): Break out as a common function to check - that the current process is ready to handle signals. - (proc_can_be_signalled): Treat myself differently. - -Thu Aug 5 21:24:20 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console): Don't call tcinit here. - (fhandler_console::read): Don't reset signal_arrived here. - * syscalls.cc (_read): Set it here instead. - * fhandler_termios.cc (fhandler_termios::line_edit): Only call - accept_input when input is ready. Ignore iscanon in this case. - * fhandler_tty.cc (fhandler_tty_slave::init): Don't call tcinit here. - -Thu Aug 5 16:02:25 1999 Christopher Faylor <cgf@cygnus.com> - - * strace.cc (handle_output_debug_string): Ignore errors reading - from child memory as they seem to occur due to a process exiting. - (close_handle): New, defensive code. - -Thu Aug 5 13:32:43 1999 Christopher Faylor <cgf@cygnus.com> - - * strace.cc (remove_handle): New function. - (add_child): Speed up slightly. - (proc_child): Use output of remove_child in CloseHandle. - -Thu Aug 5 12:38:50 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Don't protect subproc_ready if it is NULL. - (do_exit): Avoid calling close_all_files if exiting from exec stub. - * net.cc: Reorganize to work around some compiler bugs. - * spawn.cc (spawn_guts): Set hExeced only after child stuff has been - completely initialized. - * syscalls.cc (_open): Protect against signals. - * utils/strace.cc (warn): New function. - (add_child): Issue warning when can't duplicate child process handle. - -Wed Aug 4 21:35:28 1999 Christopher Faylor <cgf@cygnus.com> - - * psapi.h: New file. - -Thu Aug 4 10:28:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Eliminate MALLOC_CHECK calls. - (lookup_name): New function simplifies the retrieval of user and group - names. - (alloc_sd): Call `lookup_name' instead of `LookupAccountName'. - * shared.cc (sec_user): Call `lookup_name' instead of - `LookupAccountName'. Eliminate 'free' call on stack space. - * winsup.h: Declare `lookup_name'. - -Wed Aug 4 16:24:02 1999 Christopher Faylor <cgf@cygnus.com> - - * a.out.h: Fix cut and paste from mime email typos. - -Mon Aug 2 19:08:48 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Fix utils dependency. Make clean more assertive. - * path.cc (mount_info::conv_to_win32_path): Fill in correct destination - when a device name is detected. - * syscalls.cc (chown): Always succeed when referencing a cygwin device. - (chmod): Ditto. - * net.cc (get_ifconf): Eliminate holdover from previous change. - -Mon Aug 2 13:07:44 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_global_ctors): Remove previous change. It was just - wrong. - -Sun Aug 1 23:21:28 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout rename 'slave_alive' handle to 'inuse'. - * shared.h: Implement tty_attached() macro to determine when an actual - tty is associated with the process. - (class tty): Add some methods for manipulating an "inuse" event that is - common to both master and slave parts of a tty. - * dcrt0.cc (do_exit): Use tty_attached() to determine if signal should - be sent to process group. - * external.cc (fillout_pinfo): Return -1 if tty is not attached (i.e, - attached to a console). - * fhandler.h: Move more stuff into fhandler_tty_common and out from sub - classes. - * fhandler_console.cc (fhandler_console::read): Send SIGWINCH signal to - *correct* process group. - (fhandler_console::open): Fix incorrect argument ordering in set_ctty. - (fhandler_console::de_linearize): Remove unneeded handle resets. - * fhandler_tty.cc (fhandler_tty_slave::open): Fix incorrect argument - ordering in set_ctty. Use tty create_inuse method to create inuse - event. - (fhandler_tty_slave::close): Delete. - (fhandler_tty_slave::dup): Delete. - (fhandler_tty_slave::write): Minor cleanup of flow of control. - (fhandler_tty_common::dup): Subsume fhandler_tty_slave dup method. - (fhandler_pty_master::fhandler_pty_master): Zero inuse field. - (fhandler_pty_master::open): Set inuse field. - (fhandler_tty_common::close): New, superclass method. - (fhandler_tty_common::set_close_on_exec): Handle inuse field. - (fhandler_tty_common::fixup_after_fork): Ditto. - (fhandler_tty_slave::set_close_on_exec): Delete. - (fhandler_tty_slave::fixup_after_fork): Delete. - * path.cc (get_device_number): Use tty_attached() to figure out - /dev/tty. - * select.cc (peek_console): Send SIGWINCH signal to *correct* process - group. - * tty.cc (tty::master_alive): New method. - (tty::create_inuse): New method. - -Sun Aug 1 16:23:22 1999 Christopher Faylor <cgf@cygnus.com> - - * net.cc (get_ifconf): Use alloca for temporary buffer. - -Sun Aug 1 01:38:20 1999 Christopher Faylor <cgf@cygnus.com> - - Modify de_linearize methods throughout to set unix and msdos path - names. - * dcrt0.cc (do_exit): Only remove shared memory when we're done with - it. - * exceptions.cc (try_to_debug): Move static variable outside of the - function so that it can more easily be set with gdb. - * fhandler_console.cc (fhandler_console::open): Handles are typically - hexadecimal in debugging output. - (fhandler_console::open): Do not open inherit console handles by - default. - (fhandler_console::dup): Just use open method to "duplicate" a console - handle. - (fhandler_console::fixup_after_fork): Do *not* close handles here since - they have not been inherited. - (fhandler_console::de_linearize): Ditto. - * utils/strace.cc (create_child): Correct debugging flags when not - tracking forked processes. - -Sat Jul 31 20:10:58 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_global_ctors): Ensure that ctors are not called more - than once per session. - * fork.cc (fork): Use sig_protect to protect against signals during - fork. - * pinfo.cc (lpfu): Show windows pid in debugging message as this is - generally more useful. - * pinfo.cc (unlock_pinfo): Issue an error if ReleaseMutex fails. - (pinfo::record_death): Actually unlock pinfo on exit rather than allow - ExitProcess to do this since ExitProcess can sometimes take a *long* - time. - * spawn.cc (spawn_guts): Ensure that pinfo is always unlocked. - -Thu Jul 29 23:43:24 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, consolidate pgid processing for console and tty into - fhandler_termios and tty_min. - * debug.h: Make WF?O functions the defaults for dealing with Waits. - These functions attempt to work around signal interrupt problems. - * debug.cc: Ditto. - * exceptions.cc (call_handler): Don't wait a long time for second - attempt to get signal mutex. - * fhandler_console.cc (fhandler_console::open): Set the "controlling - tty". - * fhandler_termios.cc: Move the ctty and pgid functions here. - (fhandler_termios::line_edit): Fix debug output. - * fhandler_tty.cc (fhandler_tty_slave_write): Use sig_protect to - protect against output_mutex deadlock. - * fork.cc (get_vfork_val): Conditionalize with NEWVFORK. - * syscalls.cc (setsid): Add debugging output. - (setpgid): Reorganize and add debugging output. - * tty.cc (tty::init): Use a method to clear the sid. - -Thu Jul 29 23:42:53 1999 Christopher Faylor <cgf@cygnus.com> - - Patch from Egor Duda <deo@logos-m.ru>: - * grp.cc (read_etc_group): Use a default /etc/group entry when one - doesn't exist. - (getgrgid): Ditto. - * passwd.cc (read_etc_passwd): Use a default /etc/passwd entry when one - doesn't exist. - (search_for): Ditto. - * uinfo.cc (read_etc_group): Remove some defines. - * winsup.h: Move them here. - -1999-07-29 Bernd Schmidt <bernds@cygnus.co.uk> - - * Makefile.in (SUBDIRS_AFTER): Build mingw before utils. - * utils/Makefile.in (MINGW_LDFLAGS): Add "-B../mingw/" - - -Tue Jul 27 23:31:28 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc: Add experimental vfork_storage initialization. - (do_exit): Ditto. - * exec.cc: Use _spawnve throughout as a common interface for execing a - program. - * fork.cc (vfork): Add beginnings of true vfork support. - * path.cc (sort_by_posix_name): Remove special casing of zero length - names since they should now be eliminated earlier on. - (sort_by_native_name): Ditto. - (mount_info::del_item): Remove hole from mount table specifically, here - or suffer weird behavior. Suggested by Andrew Dalgleish - <andrewd@axonet.com.au>. - * shared.cc: Make SHAREDVER "unsigned" to avoid a compiler warning. - * spawn.cc : Accommodate additional argument to _spawnve, throughout. - (_spawnve): Make this a global function and take an hToken argument so - that it can be used by sexecve. Accommodate experimental vfork - functionality. - * winsup.h: Add initial support for per-thread vfork stuff. - * include/cygwin/version.h: Bump shared memory version number. - -Mon Jul 26 20:59:58 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (sort_by_posix_name): Report two zero length strings as being - equal or suffer an infinite loop. - (sort_by_native_name): Ditto. - * shared.cc (shared_info::initialize): Refuse to use a different DLL's - shared memory. - * shared.h: Fix mask for child_info sanity test. - -Sun Jul 18 16:30:31 1999 Christopher Faylor <cgf@cygnus.com> - - * security.cc: Various changes from Corinna. - -Sat Jul 17 22:33:45 1999 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork): Change DuplicateHandle slightly. - * security.cc (get_nt_attribute): Ignore error return from - set_process_privileges. - (set_nt_attribute): Ditto. - -Sat Jul 17 00:45:34 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.h: Fix ForceCloseHandle1 in non-debug case. - -Fri Jul 16 23:47:31 1999 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_can_be_signalled): Accommodate different flavors of - myself. - * include/ddeml.h: Add missing struct. - * include/wingdi.h: Add missing defines. - -Fri Jul 16 23:01:30 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Attempt to cope when srcdir is a relative pathname. - * fork.cc (fork): Pass handle to parent process to fixup_after_fork. - Eliminate excess unlock_pinfos. - * hinfo.cc (hinfo::fixup_after_fork): Use inherited parent handle - rather than try to open the parent process explicitly. - * pinfo.cc (record_death): Cosmetic change. - * sigproc.cc (wait_sig): Add a debugging statement. - * winsup.h: Reflect change of argument for fixup_after_fork. - -Fri Jul 16 11:07:55 1999 Christopher Faylor <cgf@cygnus.com> - - * shared.h: Eliminate record_death_nolock. Just pass an argument to - record_death. - * pinfo.cc (record_death_nolock): Ditto. - * dcrt0.cc (__api_fatal): Use record_death with FALSE argument rather - than record_death_nolock. - * exceptions.cc (really_exit): Ditto. - * fork.cc (fork): Remove debugging statement. - -Wed Jul 14 22:08:52 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, make parent_alive a local variable. Rename 'alive_parent' - to 'my_parent_is_alive'. - * autoload.h: Improve the description of the autoload mechanism. - * dcrt0.cc: Define parent_alive here. - (dll_crt0_1): When debugging, rotect handles inherited from fork/exec. - Force signal thread to finish initializing prior to calling main. - (dll_crt0): Reorganize child_info stuff to allow common initialization. - Accept parent_alive handle from invoker and ensure that this is not - inherited by other processes. - (do_exit): Ensure that exit_state is not duplicated by a fork. - (__api_fatal): Call 'try_to_debug' directly. - * debug.cc: Increase the size of the handle list. - (threadname): Add an optional argument to control locking. - * exceptions.cc (error_start_init): Make this a "C" function. - (try_to_debug): Ditto. Also, use Sleep rather than pause and loop so - that gdb can get in to interrupt things. - (sig_handle): - * external.cc (fillout_pinfo): Reorganize slightly and plan for the - future. - * fhandler.h: Add an argument to show the name of the handle for error - messages to fork_fixup. - * fhandler.cc (fhandler_base::fork_fixup): Ditto. - (set_inheriting): Rename a variable for clarity. - (fhandler_base::fixup_after_fork): Pass in the name of the handle to - fork_fixup. - * fhandler_tty (fhandler_tty_common:fixup_after_fork): Ditto. - (fhandler_tty_slave:fixup_after_fork): Ditto. - (fhandler_tty_master:fixup_after_fork): Ditto. - * fhandler_windows.cc (fhandler_windows::fixup_after_fork): Ditto. - * fhandler_console.cc (fhandler_console::open): Specifically open - console with ENABLE_PROCESSED_INPUT. - * fork.cc (sync_with_child): Call abort when DEBUGGING and there's an - error. - (resume_child): Ditto. Also, allow an ERROR_INVALID_HANDLE error if it - can't be duplicated as they seem to occur occasionally when the parent - copies the stack. - (fork): Use init_child_info to initialize structure passed to child. - Remove start time setting in favor of common function. Don't mess with - parent's parent_alive. - * heap.cc (sbrk): Simply code slightly. - * hinfo.cc (hinfo::dup2): Improve error handling. - * pinfo.cc (set_myself): Set start time here since it is called by - everything which sets myself. - (pinfo_init): Remove start_time setting in favor of common function. - * shared.h (pinfo): Reorganize so that signal stuff falls into section - of pinfo which is automatically zeroed when a new pid is initialized. - (PROC_MAGIC): Increment to detect cygwin1.dll's memory passing - disparities. - * sigproc.cc (proc_alive): Make this a function. Wait for target pid - to initialize. - (my_parent_is_alive): Rename from alive_parent. - (proc_can_be_signalled): Renamed from proc_alive macro. - (proc_exits): Use proc_can_be_signaleed(). - (proc_subproc): Don't put parent_alive in child. - (proc_terminate): Close hwait_subproc in a race-safe way. Ditto - sync_proc_subproc. - (sigproc_terminate): Always terminate proc_subproc thread first or it - may try to use signal thread as it is going away. Wait for signal - thread to exit. - (sig_send): Use proc_can_be_signalled(). - (init_child_info): New function. Initializes memory block passed by - spawn/fork. - (mutex_stack): Add thread name field. - (sig_wait): Set active state after all handles have been set up and - before protecting the handles. Use ForceCloseHandle to close - subproc_ready as it is now protected. Close signal_mutex here. - * sigproc.h: Accommodate alive_parent rename. - * spawn.cc Use init_child_info to initilize memory block passed to - subprocess. - * strace.cc (__system_printf): Write to screen before writing to strace - log. Only write to strace log if we're actually stracing. - * winsup.h: Declare the 'action on error' functions. - * utils/Makefile.in: (Patch from Egor Duda <deo@logos-m.ru>) Compile - strace using -mno-cygwin. - * utils/strace.cc: Allow ingw concession from Egor Duda. Attempt to - allow CTRL-C when stracing. - -Thu Jul 14 0:39:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Delete special handling of uid/gid 513. - -Thu Jul 13 15:01:00 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (get_file_owner): Fix typo. - * path.cc (path_conv::path_conv) : Change `return' to `goto end' in - case of SYMLINK_IGNORE is set. - -Mon Jul 5 21:33:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (WriteSD): Doesn't set errno if BackupWrite() - returns ERROR_INVALID_SECURITY_DESCR (which happens on FAT). - -Sat Jul 10 13:17:20 1999 Christopher Faylor <cgf@cygnus.com> - - * utils/strace.cc (error): Actually output error message. - (add_child): Duplicate inherited child process handle with all of the - privileges that we need. - -Fri Jul 9 01:37:23 1999 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 14 - in honor of snprintf and vnsprintf additions. - -Fri Jul 9 00:04:03 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::path_conv): Correct buffer overflow condition. - * fhandler_console.cc (fhandler_console::open): *Need* to enable - processed input or CTRL-C won't stop anything unless it's at a prompt. - (fhandler_console::input_tcsetattr): Ditto. - -Thu Jul 8 18:27:49 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add malloc debugging options. - * dcrt0.cc (api_fatal): Call abort when debugging so that the debugger - will pop up. - * debug.cc (close_handle): Unlock in pathological case. - * fhandler_console.cc (fhandler_console::read): Always respond to - windows size changes. - (fhandler_console::open): Always set things to ~ENABLE_PROCESSED_INPUT - so that we can control INTR character. Don't set pgid here. - (fhandler_console::input_tcsetattr): Turn on windows event so that we - can see screen resizes. - (fhandler_console::init): Don't set pgid here. - * fhandler_termios (fhandler_termios::tcinit): Set pgid here. - * fhandler.h: Fix set_has_acls method return. - * utils/strace.h: Pass CTRL-Cs to child process. - -Wed Jul 7 23:59:50 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Improve dependencies. - * autoload.h: Work around "function unused" messages for autoload init - functions. - * configure.in: Use CHECK_TOOL to find CC so that it will get the - proper host alias. - * configure: Regenerate. - * dcrt0.cc (do_exit): Minor reorganization of termination function - calls. - * debug.cc (close_handle): Issue an error when an attempt is makde to - close a handle with a name different from the one used to record it - previously. - * debug.h: Implement new macros for storing arbitrary handle names. - * exceptions.cc (handle_signal): Terminate the main thread when exiting - due to signal in signal thread. - * fhandler.h: Add an extra 'fd' argument to all ready_for_read methods. - * select.cc: Ditto, throughout. - * fhandler_console (get_tty_stuff): Protect the tty_stuff handle here. - * fhandler_termios.cc (fhandler_termios::line_edit): Accommodate fd - argument to ready_for_read. - * fhandler_tty.cc (fhandler_tty_master::init): Close an unneeded thread - handle. - * fork.cc (fork): Use standard name when protecting process handle. - * spawn.cc (spawn_guts): Ditto. - * shared.cc (open_shared_file_map): Protect cygwin_shared handle here. - * sigproc.cc: Throughout, close child process handle using standard - name. - * syscalls.cc (read_handler): Check that fd is still open prior to - performing an operation. Supply fd argument for ready_for_read. - * (_read): Supply fd argument for read_for_read. - * tty.cc (tty_list::terminate): Close unneeded handles as tty is - closing down. - (tty_list::allocate): Protect against signals. - -Mon Jul 5 14:52:40 1999 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export new snprintf and vnsprintf functions courtesy of - Egor Duda <deo@logos-m.ru>. - -Sun Jul 4 23:54:43 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sigbegin): New function. Called prior to dispatching - to signal handler. - (sigreturn): New function. Called after signal handler returns. - (set_process_mask): Make stdcall. - (call_handler): Remove sigwrap asm stuff in favor of new - sigbegin/sigreturn scheme. - * winsup.h: Change set_process_mask declaration. - -Sun Jul 4 22:00:14 1999 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (stat_worker): Previous change to check for extension - found dots not in the filename part. Fix this. - -Sat Jul 3 23:22:55 1999 Christopher Faylor <cgf@cygnus.com> - - * include/wincon.h: Add some missing defines. - * environ.cc: Remove extern which is now in winsup.h. - * fhandler.cc (get_file_owner): Rename argument. Test for allow_ntsec. - (get_file_group): Ditto. - (fhandler_disk_file::fstat): Use new method inode checking. - * fhandler.h: Rename a method. - * security.cc (set_file_attribute): Take an additional argument to - determine if ntsec security setting should be used. - * dir.cc (mkdir): Pass acl info to set_file_attribute. - * syscalls.cc (chown): Ditto. - (chmod): Ditto. - * winsup.h: Define allow_ntsec here. - -Sat Jul 3 15:09:34 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file:;fstat): Move check of disk volume to - path_conv. Use new methods for determining if file system is ACL - capable. - (fhandler_disk_file::open): Set "has acls" flag here. - * fhandler.h: Store acl information in fhandler base class. - * path.cc (path_conv): Set acl information on successful return. - * path.h: Add acl info to path_conv class. - * security.cc (get_file_attribute): Set ENOSYS if can't get extended - attributes. - * syscalls.cc (chown): Pass acl information from path_conv to - get_file_attributes. - (chmod): Ditto. - (stat_worker): Ditto. - * uinfo.cc: Make all exported functions extern "C". - * winsup.h: Add rootdir() declaration. - -Fri Jul 2 15:13:08 1999 Christopher Faylor <cgf@cygnus.com> - - * autoload.h: New file. - -Thu Jul 1 23:16:34 1999 Christopher Faylor <cgf@cygnus.com> - - * net.cc (cygwin_gethostname): Use new win32_gethostname to - disambiguate between cygwin and winsock version. - * tty.cc (creat_tty_master): Disambiguate by using cygwin_gethostname - to find the hostname. - * winsup.h: Declare cygwin_gethostname. - -Thu Jul 1 22:36:31 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, remove check for winsock initialization and indirect - references to winsock functions in favor of new dynamic DLL loading - method. - - * Makefile.in: Remove unneeded libraries. - * cygwin.din: Make gethostname == cygwin_gethostname like other network - functions. - * dcrt0.cc: Implement new "autoload" functionality for loading DLLs and - functions as they are needed. Add autoload functions for user32.dll. - (cygwin_dll_func_load): New function. - (dll_crt0): Issue a fatal error message if attempt to mix different - version DLLs is detected. - (api_fatal): Correct inexplicable use of buf + 8 when printing error - message into a buffer. - * fhandler.h: Cosmetic fixes. - * fhandler_tty.cc (fhandler_tty::close): Temporarily "if 0" out code - which sends EOF pulse to children. This should only happen when last - parent fd closes. - * heap.cc (sbrk): Implement new sbrk mechanism which returns memory to - Windows when top of heap decreases beyond a page boundary. - (getpagesize): New function. - * fork.cc (fork): Save new heap values in stuff passed to child. - * hinfo.cc (hinfo::build_fhandler): Don't do any checking on a handle - if the handle is NULL. Assume that it is a disk file. - * net.cc: Redo winsock functions to use dynamic loading scheme. - * shared.cc (shared_info::initialize): Cosmetic change. - * shared.h: Change magic number for memory block sent to child - processes. Accommodate new heap information in child_info. - * sigproc.cc (sig_dispatch_pending): Remove some memory debugging checks. - (__release_signal_mutex): Ditto. - * syscalls.cc (stat_worker): Don't attempt the .exe hack unless the - previous attempt to open the file resulted in an "ERROR_FILE_NOT_FOUND" - and the file did not already contain an extension. - * times.cc: Initialize static NO_COPY variables throughout or they will - not actually be NO_COPY. - * winsup.h: Rename heap fields in per_process to accommodate new sbrk. - Eliminate winsock stuff invalidated by dynamic loading change. - * include/winsock.h: Make this file C++ safe. - -Sun Jun 27 17:07:34 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.h: Don't define MALLOC_DEBUG by default. - * fhandler.cc (fhandler_base::set_name): Always set names to NULL. Add - more slop to end of win32_path_name. - (fhandler_base::de_linearize): Set names to NULL. They'll be assigned - by the caller. - (fhandler_disk_file::get_native): Delete. - * fhandler.h: Ditto. - * hinfo.cc (hinfo::de_linearize_fd_array): Set path names after the - structure has been "delinearized". - * malloc.cc: Add debugging versions of malloc functions. - * syscalls.cc (stat_worker): Eliminate static buffer for thread safety. - -Wed Jun 23 22:53:00 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): If get_file_attribute() - signals a nonexistant acl, fstat sets default attributes now. - -Wed Jun 23 10:22:56 1999 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 13. - -Wed Jun 23 10:39:07 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * cygwin.din (gamma, gammaf, lgamma, lgammaf): Export. - (j0,j0f,j1,j1f,jn,jnf): Export underscore versions as well. - -Mon Jun 21 21:34:06 1999 Christopher Faylor <cgf@cygnus.com> - - Sprinkle MALLOC_CHECK macro throughout. When turned on, this will give - a slightly better idea of where memory corruption occurs. Add slightly - modified versions of "error_start" code from Egor Duda - <deo@logos-m.ru>. - * Makefile.in: Add `utils' target. - * dcrt0.cc (do_exit): Attempt to detect loop conditions where do_exit - is called reentrantly and avoid the previously executed code in this - case. - * debug.h: Define MALLOC_CHECK macro for use with malloc debugging. - * environ.cc (environ_init): Add more slop at end of environ string - just to work around buggy programs. - (parse_options): Add error_start option to control core dumping or gdb - invocation. - * exceptions.cc (stackdump): New function. Dumps stack to stderr. - (error_start_init): New function. Initialize action on "core dumping" - error. - (handle_exceptions.cc): Use stackdump command to dump stack. Call - try_to_debug. - (set_process_mask): Must be __stdcall or compiler get's confused. - (sig_handle): Detect SIGQUIT and SIGABRT. Do a "stackdump" for these. - * fhandler.cc (get_file_owner): Add an argument to determine if - function should check for NT security. - (get_file_group): Ditto. - (fhandler_base::set_name): Don't free "fhandler_disk_dummy_name" path - names. - (rootdir): New function, pulled from the pages of syscalls.cc. - Determines the root dir of a given path. - (fhandler_disk_file::fstat): Get volume information of file in question - to determine if inodes are permanent and acls are available. This - replaces previous WinNT test. - (fhandler_base::~fhandler_base): free "fhandler_disk_dummy_name" path - names. - * fhandler.h: Change get_file_* declarations. - * fhandler_console.cc: Back out most of scroll fixes from April 17. - They caused weird scrolling behavior. - * fhandler_tty.cc (fhandler_pty_master::accept_input): Add debugging - message. - * security.cc (get_file_attribute): Add additional "check for ACL" - argument. - * path.cc (symlink_check_one): Use new argument to get_file_attribute. - * sigproc.cc (wait_subproc): Don't exit wait loop if WaitForMultipleObject - returns an error. Instead, loop for a while in case this is an expected - error. - * sigproc.h: Remove __stdcall from set_process_mask. - * spawn.cc (linebuf): Use initializers to set initial values. - (linebuf::append): Be defensive and ensure that enough space is - allocated for the new argument. - (linebuf::prepend): Ditto. - (spawn_guts): Correct logic which broke up program argument in a #! - script. - * syscalls.cc (chown): Use new argument to get_file_attribute. - (chmod): Use new argument to get_file_owner and get_file_group. - (stat_worker): Ditto. - (statfs): Break out code that determined the root directory of a given - path. Use new rootdir function instead. - * winsup.h: Reflect new get_file_attribute argument. - * include/sys/strace.h: Add "NOTALL" flag so that voluminous debugging - output can be avoided. - * utils/strace.cc: Honor NOTALL flag. Run at a higher priority. - -Mon Jun 14 18:33:08 1999 Christopher Faylor <cgf@cygnus.com> - - * syscalls.c (stat_worker): Consolidate calls to fh.fstat for both - directories and normal files. - * fhandler_tty.cc (fhandler_pty_master::close): Ensure that an "EOF - pulse" is sent to any executing child processes. - * path.cc (symlink_check_one): Check for ':\n' as well as '#!' to - determine if a file is executable. - -Mon Jun 14 16:04:00 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_pty_master::accept_input): Set read_retval - prior to performing a write to avoid a potential race condition. - * fhandler_termios.cc (fhandler_termios::line_edit): Don't set - read_retval here. It has to be set in an fhandler_tty accept_input. - * select.cc (peek_pipe): Fix typo which caused read_selected to be - tested twice rather than except_selected. - * shared.h (class tty_min): Remove read_retval from here. - (class tty) Put it here. - -Mon Jun 14 13:08:58 1999 Christopher Faylor <cgf@cygnus.com> - - * utils/Makefile.in: Consolidate and simplify. - -Mon Jun 14 12:43:32 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, remove reliance on strace_* fields in pinfo class. Use - global instead. Remove STRACE_DUMP and STRACE_CACHE logic. - * pinfo.cc (set_myself): New function. - * dcrt0.cc (dll_crt0_1): Use the new function. - * environ.cc (parse_options): Remove strace environment variable logic. - (environ_init): Ditto. - * exceptions.cc (call_handler): Remove strace mutex considerations. - * fhandler_termios (fhandler_termios::line_edit): Remove STRACE_CACHE - logic. - * localtime.cc: Define 'lint' to eliminate warnings. - * smallprint.c (__small_vsprintf): Remove text formatting of windowss - errors. This is now done in the 'strace' program. - * strace.cc: Define 'strace_active' variable to control whether strace - should be carried out. - (strace_open): Delete. - (strace_init): Delete. - (get_strace_mutex): Delete. - (release_strace_mutex): Delete. - (strace_vsprintf): Preserve last error. - (strace_write): Communicate with strace program using - OutputDebugString. - (strace_dump): Delete. - (mark): Gut. - * winsup.h: Remove a declaration. Add a new one. - * include/sys/strace.h: Modify to accommodate new strace scheme. - * utils/Makefile.in: Build strace.exe - * utils/strace.cc: New file. - -Sat Jun 12 22:22:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): Must compute i-node numbers - via `get_namehash' for Windows 9x. - -Sat Jun 12 10:54:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::read): Returns correct value - if raw_read fails. - * fhandler_raw.cc: More trace output. - * fhandler_floppy.cc: Ditto. - * fhandler_tape.cc: Ditto. - -Thu Jun 10 14:01:05 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.c (handle_exceptions): Use ".stackdump" - extension instead of ".core". - * path.cc (mount_info::read_mounts): Prescan the mount lists - for /cygdrive stuff to delete rather than attempting to - delete it in the main "add mount loop". - (mount_item::getmntent): Fix "system"/"user" determination. - * winsup.h: Use void methods in thread classes where - appropriate. - -Wed Jun 9 23:16:04 1999 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Issue error if can't find version information. - -1999-06-09 DJ Delorie <dj@cygnus.com> - - * localtime.c: new file; public domain timezone handling routines. - * tz_posixrules.h: new file; POSIX default timezone data - * times.cc: comment out localtime, gmtime, replace tzset with - cygwin_tzset - * Makefile.in: add localtime.c - -Wed Jun 9 00:49:04 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Correctly handle #! processing when line - ends with white space. Also correctly handle scripts that do not - begin with #!. - -Mon Jun 7 17:04:36 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::open): Need to initialize - tc here, too. - (fhandler_console::init): Initialize tc earlier. - -Mon Jun 7 00:02:51 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_termios): Move tc initialization - into init method, etc. - (fhandler_tty_common): Ditto. - * fhandler_console.cc (fhandler_console::fhandler_console): - Move tc initialization to init method. - (fhandler_console::init): Initialize tc stuff here. - (fhandler_console::dup): Ditto. - (fhandler_console::fixup_after_fork): Ditto. - (fhandler_console::de_linearize): Ditto. - * fhandler_termios (tcinit): Rename constructor. - Accept force argument to force termios initialization. - * fhandler_tty.cc (fhandler_tty_master::init): Move tc initialization - to common_init. - (fhandler_tty_common::dup): Use tcinit () to initialize tc field. - * tty.cc (tty::common_init): Ditto. - -Sun Jun 6 22:19:09 1999 Christopher Faylor <cgf@cygnus.com> - - * tty.cc (tty_list::terminate): Add \n to output message. - (tty::init): Clear slave_opened field or we can't reopen - ttys. - -Fri Jun 4 23:58:17 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Reorganize - slightly to avoid a race with get_ttyp()->was_opened. - -1999-06-04 DJ Delorie <dj@cygnus.com> - - * times.cc (totimeval): scale sub properly. - (gettimeofday): don't bias by timezone. - -Thu Jun 3 13:24:17 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_tty_common): Add two new methods. - * fhandler_tty.cc: Use new {acquire,release}_output_mutex - methods throughout for output_mutex. - (fhandler_tty_common::__acquire_output_mutex): New method. - (fhandler_tty_common::__release_output_mutex): New method. - * shared.h (get_output_mutex): Rename to open_output_mutex. - -Wed Jun 2 16:06:26 1999 Geoffrey Noer <noer@cygnus.com> - - * utils/mkpasswd.c (main): account for long int args to printfs. - -Wed Jun 2 16:08:08 1999 Christopher Faylor <cgf@cygnus.com> - - * smallprint.c (__small_vsprintf): Conditionalize display of - textual messages under CYGWIN_TEXT_ERROR. - * ntea.cc: Remove debugging code. - -Wed Jun 2 16:04:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Call the functions `get_admin_sid', - `get_system_sid' and `get_world_sid' before heap initialization - to avoid heap fragmentation. - * security.cc (get_nt_attribute): Don't allocate memory - anymore. All memory is taken from stack. - (set_nt_attribute): Ditto. - (alloc_sd): Ditto. Change parameters to get a pointer to a - preallocated security descriptor and a pointer to it's length. - * shared.cc (sec_user): Don't allocate memory anymore. All - memory is taken from stack. Change parameters to receive a - pointer to a preallocated security buffer. - * shared.h: Change prototype for `sec_user' and `sec_user_nih'. - * sigproc.cc (getsem): Change call to `sec_user'. Additonally - buffer for `sec_user'. - * spawn.cc (spawn_guts): Ditto. - Change all error output in function `sec_user' and in module - `security.cc' from error text to error number output. - -Tue Jun 2 21:54:21 1999 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_if_flags): Change the UP and RUNNING state - of disconnected RAS interfaces to true. - -Thu Jun 1 22:47:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_system_sid): New function to create - a SID for the well known group of local system. - (alloc_sd): New function. - (alloc_sd): Give ALL permissions to `system'. - * shared.cc (sec_user): Give ALL permissions to `system'. - (sec_user): Provide additionalparameter for a second SID. - This is used for `CreateProcessAsUser' call. - (sec_user_nih): Ditto. - * shared.h: Change prototypes for `sec_user' and - `sec_user_nih'. - * spawn.cc (spawn_guts): Now using `sec_user' in - `CreateProcessAsUser' call, if ntsec is set. - -Thu Jun 1 14:17:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * utils/mkpasswd.c: Change to output native names of - well known groups `Everyone' (SID 0) and `system' (SID 18). - * utils/mkgroup.c: Ditto plus output of native name of - well known group `None' (SID 513). - -Mon May 31 22:10:57 1999 Christopher Faylor <cgf@cygnus.com> - - * path.h: Use bit mask flags in path_conv to save exec, - symlink, binary status. Use methods to access and set - these flags. - * fhandler.cc: Use methods to access path_conv flags - throughout. - * path.cc: (symlink-check_one): Accept a bitmask flags - variable to accommodate path_conv changes. - (path_conv::path_conv): Propagate path_flags from mount - table to path_conv class. Avoid walking the mount table - twice to find "binary" info. - (mount_info::conv_to_win32_path): Accept additional flags - argument. Don't add trailing slash if not required. - Fill out both paths when cygdrive. - (mount_info::cygdrive_win32_path): Change debugging output - slightly. - (mount_info::set_flags_from_win32_path): Generalize from - mount_info::binary_win32_path_p. - (mount_item::getmntent): Honor MOUNT_EXEC flag. - * shared.h: Add new method to mount_info class. - * include/sys/mount.h: Add a comment. - * utils/mount.cc: Accept -x to force a mountpoint to default - to executable permission. Rename automount stuff to cygdrive. - -Mon May 31 19:00:00 1999 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (environ_init): Set ntsec option by default - if running under NT. - * security.cc (set_nt_attribute): Delete superfluoues code. - * shared.cc (sec_user): Don't set owner in created security - descriptor. - * sigproc.cc (getsem): Use `sec_user' instead of `sec_user_nih'. - * spawn.cc (spawn_guts): Set security attribute of - `CreateProcess' to `sec_user' if ntsec is set, `sec_all_nih' - otherwise. - -Mon May 31 19:27:36 1999 Christopher Faylor <cgf@cygnus.com> - - Throughout, change "automount" to cygdrive. - Throughout, change mount flags from signed to unsigned. - - * path.cc (iscygdrive): New macro. - (normalize_posix_path): Tack a '/' on the end of constructed - path only if there isn't one there already. - (mount_info::init): Simplify slightly. - (mount_info::conv_to_win32_path): Don't search for automount - stuff in the mount table. Instead special case the cygdrive - handling so that it will always be acceptable to use /cygdrive - regardless of other mounts. - (mount_info::cygdrive_posix_path): Rename from - build_automount_mountpoint_path. Fully build a posix path - given inputs. - (mount_info::cygdrive_win32_path): New function. - (mount_info::conv_to_posix_path): Precalculate the length - of the pathbuf for multiple uses. Just use cygdrive_posix_path - to derive a /cygdrive/x/foo style path. - (mount_info::read_mounts): Don't read /cygdrive/x mounts from - the registry. Delete them. - (mount_info::from_registry): Read cygdrive info earlier for - subsequent use by other mount routines. - (mount_info::add_reg_mount): Cosmetic changes. - (mount_info::read_cygdrive_info_from_registry): Always add - trailing slash to cygdrive. Precalculate the length of the - cygdrive. - (mount_item::getmntent): Cosmetic changes. - (mount): Return EINVAL on attempt to add a mount point which - begins with the current cygdrive. - * path.h: Remove unused script_p from path_conv class. - * shared.h: Add cygdrive_length to mount_list. Add new - cygdrive_win32_path method. - * include/sys/mount.h: Use enums for MOUNT_ constants. - -1999-05-29 Keith Seitz <keiths@cygnus.com> - - * errno.cc (errmap): Map ERROR_NEGATIVE_SEEK to EINVAL. - -Fri May 28 21:43:56 1999 Christopher Faylor <cgf@cygnus.com> - - * times.cc (to_time_t): Rewrite slightly to avoid compiler - overoptimization. - -Fri May 28 21:10:33 1999 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (getsem): Set security attribute of process - semaphore to `sec_user_nih()', if ntsec is set, `sec_none_nih' - otherwise. - -Wed May 26 22:56:51 1999 Christopher Faylor <cgf@cygnus.com> - - Rename inuse_event and inuse_event_exists to "slave_alive" - throughout. - * shared.h: Eliminate inuse_event. Replace with a boolean. - Elminate slave_opened. - Add some function declarations used by new methods. - * fhandler_tty.cc (fhandler_pty_master::hit_eof): Use better - method for determining EOF for pty master. - (fhandler_tty_slave::open): Use method to acquire output_mutex. - Always create "inuse_event". Delete call to slave_opened. - (fhandler_tty_slave::write): Reorganize debugging output - slightly. - (fhandler_tty_master::close): Eliminate reference to inuse_event. - * tty.cc (tty_list::terminate): Eliminate call to slave_opened. - (tty_list::connect_tty): Use new exists() method to find out if - a tty exists. - (tty_list::allocate_tty): Rename argument for clarity. Use - new exists method to determine tty existence. - (tty::inuse): Delete. - (tty::init): Remove reference to inuse_event. - (tty::common_init): Ditto. - (tty::slave_opened): Delete. - * winsup.h: Move some function declarations to shared.h. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (WriteSD): Don't set errno, if BackupWrite() - returns ERROR_NOT_SUPPORTED. - * security.cc (set_nt_attribute): Change condition for - calling LookupAccountName() with domain name again. - * shared.cc (sec_user): Ditto. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * include/winnt.h: Temporary erased definitions of QuadPart - in LARGE_INTEGER and ULARGE_INTEGER. - * security.cc (set_nt_attribute): Set standard attributes so - that reading and writing attributes for user and administrators - isn't hindered. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (ReadSD): New function. - * security.cc (WriteSD): Ditto. - * security.cc (get_admin_sid): Moved from shared.cc. - * security.cc (set_process_privileges): Moved from syscalls.cc, - shortened, changed return typ to int. Sets errno now. - * security.cc (set_file_attributes): Return type changed to int. - * security.cc (get_file_attributes): Ditto. - * security.cc (set_nt_attributes): Ditto. Cares for setting - of S_ISVTX now. - * security.cc (get_nt_attributes): Ditto. - * syscalls.cc (rel2abssd): #if 0'ed. - * syscalls.cc (set_process_privileges): Moved to security.cc. - * syscalls.cc (chown): Rewritten. - * syscalls.cc (chmod): Change call order of the functions - set_file_attributes() and SetFileAttributesA(). - * fhandler.cc (fhandler_base::fstat): Change check for - return value of get_file_attributes(). - * ntea.cc (NTReadEA): returns TRUE now, if allow_ntea is unset. - * ntea.cc (NTWriteEA): returns TRUE now, if allow_ntea is unset. - * shared.cc (get_admin_sid): Moved to security.cc. - * path.cc (symlink_check_one): Change check for return value - of get_file_attributes(). - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_world_sid): Rewrite. - * security.cc (world_full_access): Delete. - * grp.cc: Use gid 0 as default gid. - * grp.cc (read_etc_group): Look for account name of world group. - * fhandler.cc (fhandler_base::open): Call `set_file_attribute' - only in case of disk file. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_attribute): Patched incorrect test - for symlink. - * security.cc (set_file_attribute): ditto. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Special handling for user and/or administrators - permissions to write (extended) attributes. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Don't allow 513(none) as user or group. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: new functions `set_nt_attribute()', `get_nt_attribute()' - and `set_file_attribute()' with additional parameters `uid' and `gid', - to support real NT security. - * winsup.h: Prototype for `set_file_attribute()' with four - parameters. - * dir.cc (mkdir): Calls `set_file_attribute()' now. - * syscalls.cc (chown): ditto. - * syscalls.cc (chmod): ditto, with correct uid/gid. - -Mon May 24 22:10:34 1999 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc: New function `get_admin_sid()' to get a SID - of the administrators group or of administrator. - New functions `sec_user()' and `sec_user_nih()' to get - SECURITY_ATTRIBUTES with all permissions for the user and - the administtrator group. - * shared.h: Prototypes for the above new functions `sec_user()' - and `sec_user_nih()'. - * sigproc.cc (getsem): Create process semaphore with - permissions set by `sec_user()'. - -Mon May 24 20:29:29 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::output_tcsetattr): - ONLRET was erroneously used in place of ONLCR. - (fhandler_console::read): Honor get_r_no_interrupt () so - that interrupts don't screw up tty reading. - * fhandler.h: Add some methods to fhandler_tty_master. - * fhandler_termios.cc (fhandler_termios::fhandler_termios): - ONLRET was erroneously used in place of ONLCR. - * fhandler_tty.cc (fhandler_tty_master::init): Associating - console capabilities with the tty capabilities is a bad - idea. Go back to using the console's own. - (fhandler_tty_master::fixup_after_fork): New method. - (fhandler_tty_master::de_linearize): New method. - (fhandler_tty_master::init_console): New method. - -Mon May 24 09:58:02 1999 Christopher Faylor <cgf@cygnus.com> - - * include/rapi.h: Add some more definitions. - -Sat May 22 21:45:01 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * scandir.cc (scandir): Handle errno correctly. Do preallocation to - reduce realloc calls. - (alphasort): Use strcoll, not strcmp. - -Sat May 22 19:03:47 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * dll_init.cc (DllList::recordDll): Forkee must reload dlopened - DLLs. Also use strcasematch, not strcmp to compare file name. - -Wed May 19 14:38:57 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (linebuf::prepend): Fix possible reference to - uninitialized memory. - * winsup.h: Remove WINSUP_NO_CLASS_DEFS workaround. - * libccrt0.cc: Ditto. - * utils/cygwin.cc: Ditto. - * utils/mount.cc: Ditto. - * utils/ps.cc: Ditto. - -Sun May 16 17:22:50 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winnt.h: Revert the previous reversion. The problem - with this include file was completely misdiagnosed. - -Sun May 16 16:05:07 1999 Christopher Faylor <cgf@cygnus.com> - - * sysdef/rapi.def: New definition file for RAPI.DLL. - * include/rapi.h: Preliminary RAPI declarations. - -Sun May 16 15:37:15 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove more obsolete code. - -Fri May 14 19:30:53 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winbase.h: Change conditional to correctly refer - to UNDER_CE rather than UNICODE. - * include/winnt.h: Update MIPS and SHx CONTEXT definitions. - -Tue May 11 21:19:59 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Restore previously removed - 'leave' command as its absence causes programs to crash. It - should never have been deleted. - -Tue May 11 12:04:02 1999 Norbert Schulze <Norbert.Schulze@rhein-neckar.de> - - * times.cc (timezone): Properly adjust for daylight savings time. - (gettimeofday): Ditto. - (localtime): Ditto. - (tzset): Ditto. - -Mon May 10 23:31:36 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winnt.h: Revert to previous version. There are problems - with the previous checkin. - * fhandler_console.cc (fhandler_console::de_linearize): Add defensive - code to ensure that console handles are opened correctly. - -Sun May 9 22:31:31 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Forgot to remove a reference to the deleted targets - below. - -Fri May 7 17:28:12 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove obsolete code. - * exceptions.cc (set_process_mask): Make this a __stdcall. - * sigproc.h: Fix declaration of set_process_mask. - * include/winnls.h: Add new code page defines. - * include/winnt.h: Various fixes from Anders Norlander - <anorland@hem2.passagen.se>. - -Tue May 4 22:20:05 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winnt.h: Fix CONTEXT pointer typedefs. - -Mon May 3 11:32:32 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * smallprint.c (__small_vsprintf): Display textual messages - for "%E" format type. - * dlfcn.cc (set_dl_error): Lose the "Win32 ". - -Sun May 2 12:22:17 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * utils/Makefile.in (EXE_LDFLAGS): Provide default. - -1999-04-30 DJ Delorie <dj@cygnus.com> - - * winsup.h (WINSUP_NO_CLASS_DEFS): if defined, don't include class - definitions (work around gcc bug) - * libccrt0.cc (WINSUP_NO_CLASS_DEFS): define - * utils/cygwin.cc (WINSUP_NO_CLASS_DEFS): define - * utils/mount.cc (WINSUP_NO_CLASS_DEFS): define - * utils/ps.cc (WINSUP_NO_CLASS_DEFS): define - -Thu Apr 29 13:55:57 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * shared.h (read_mounts): Change prototype to accept a reference - to reg_key, not a copy. - * path.cc (read_mounts): Likewise. - -Thu Apr 29 11:06:37 1999 Mumit Khan <khan@xraylith.wisc.edu> - - * configure.in (EXE_LDFLAGS): Always add newlib if part of the - build tree. - * configure: Regenerate. - - * utils/Makefile.in (INCLUDES): Add newlib include directories. - (LDFLAGS): Replace this with - (ALL_LDFLAGS): this to avoid being overridden from higher level - Makefiles. - -Wed Apr 28 17:01:12 1999 Christopher Faylor <cgf@cygnus.com> - - * include/winnt.h: Add some handheld support. - * shared.cc (open_shared): Don't call OpenFileMapping with - a null name pointer. If the name is NULL it can't be opened. - -Fri Apr 23 00:28:38 1999 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Always clear memory in thread .create method or - suffer uninitialized pointers, etc. - -Wed Apr 21 03:56:54 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::fhandler_console): - Set fork_fixup flag to ensure that shared info is duplicated. - (get_tty_stuff): Ensure that tty_stuff is initialized. - (fhandler_console::fixup_after_fork): Really force tc and - tty_stuff initialization. Close console handles or suffer - handle leak. (needs to be fixed) - (fhandler_console::de_linearize): Force tc and tty_stuff - initialization. - -Mon Apr 19 14:54:46 1999 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 12. - -Sat Apr 17 15:35:34 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console (fhandler_console::fixup_after_fork): Make sure - that new shared memory for console is initialized. - (fhandler_console::scroll_screen): Set region bottom correctly. - (fhandler_console::write_normal): Fix win95 problem where attribute - was propagated to scrolled region. - * include/wingdi.h: Fix GOBJENUMPROC prototype. - -Wed Apr 7 20:00:00 1999 John Fortin (fortinj@ibm.net) - - * pthread.cc (pthread_suspend): New function. - (pthread_continue): Ditto. - * include/pthread.h: added pthread_suspend and pthread_continue - prototypes. - * cygwin.din: added above functions. - * thread.h: Add 'bool suspended' to class MTitem. Prototype - __pthread_suspend __pthread_continue. - * thread.cc (__pthread_suspend): New function. - (__pthread_continue): New function. - -Sun Apr 4 23:00:00 1999 John Fortin (fortinj@ibm.net) - - * pthread.cc (pthread_join): New function. - (pthread_detach): New function. - * include/pthread.h: added pthread_join and pthread_detach prototypes. - * cygwin.din: added above functions for exports. - * thread.h: Added char joinable to MTitem class. Add void * - return_ptr to ThreadItem class to receive pointer from pthread_exit - and pthread_join. Add __pthread_join and __pthread_detach prototypes. - * thread.cc: Change thread_init_wrapper to set item->return_ptr=ret - and comment out item->used = false. Need to look at this more. - (__pthread_join): New function. - (__pthread_detach): New function. - (__pthread_exit): Implement ( was NOT_IMP ). - * thread.cc (MTinterface::FindNextUnused) : Use joinable != 'Y' as - an additional conditional. We may need to use this info in - pthread_join. - -Mon Apr 5 23:09:06 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Change a variable name to minimize confusion. - * fhandler.h (fhandler_tty): Remove ttyp field in favor of get_ttyp - method. - * fhandler_tty.cc: Use get_ttyp () method to retrieve pointer to - tty device throughout. - (fhandler_tty_master::init): Point console tc at tty's tc so - that they share the same termios structure. - * select.cc (fhandler_tty_common::ready_for_read): Use get_ttyp - method. - * tty.cc (tty::common_init): Ditto. - -Mon Apr 5 00:22:30 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::char_command): Make - setting of scrolling region cause the cursor to be placed at - the beginning of the scrolling region. - * thread.cc (__pthread_kill): Defend against item->sigs being - uninitialized. - (__pthread_sigmask): Defened against item->sigs being uninitialized. - -Wed Mar 31 22:52:18 1999 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0): Restore pointer to shared console - terminfo structure. This allows subprocesses to set - sticky console attributes. - * fhandler_console.cc (get_tty_styff): New function. Returns - pointer to shared console terminfo structure, allocating shared - memory if required. - (fhandler_console::fhandler_console): Use get_tty_stuff(). - (fhandler_console::de_linearize): Ditto. - * fork.cc (fork): Save shared console handle for export to - subprocesses. - * spawn.cc (spawn_guts): Ditto. - * shared.cc (open_shared_file_map): Rewrite to use generic - open_shared() function. - (open_shared): New function. Generic shared memory open - used by console and cygwin shared memory. - * shared.h: Define new stuff used by above. - -Wed Mar 31 01:46:23 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_tty): Set tc = ttyp. - * fhandler_tty.cc (fhandler_tty_master::init): Ditto. - (fhandler_tty_common::dup): Ditto. - * tty.cc (tty::common_init): Ditto. - -Wed Mar 31 01:43:06 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_win32_path): Reorganize to - correctly handle //x syntax. - -Tue Mar 30 14:42:05 1999 Christopher Faylor <cgf@cygnus.com> - - * strace.cc (strace_vsprintf): Fix incorrect buffer reference. - -Mon Mar 29 22:46:16 1999 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (__lock): Return value for gcc bug workaround. - (__unlock): Ditto. - * fhandler_tty.cc (fhandler_tty_master::init): Remove extraneous - console initialization. Set termios to sensical values before - initializing the console. - (fhandler_tty_slave): Add some debugging output. - * strace.cc: Conditionalize stuff not required by STRACE_HHMMSS. - (strace_vsprintf): Remove dependency on time() for STRACE_HHMMSS. - -Mon Mar 29 10:50:00 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * utils/passwd.c (GetPW): Correct cast in call to `NetUserGetInfo'. - -Sun Mar 28 16:54:57 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Remove tty_stuff field from fhandler_console - class. Use global instead to allow all console opens to - use same settings. - * fhandler_console.cc: Add new global. - (fhandler_console::tcgetattr): Use new global for initialization. - (fhandler_console::de_linearize): Ditto. - * fhandler_termios.cc (fhandler_termios::fhandler_termios): Don't - reinitialize an already initialized termios. Do not honor - CYGWIN=binmode for console output. It's too confusing. - * shared.h: Add `initialized' field to tty_min. - -Sun Mar 28 01:55:32 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_prefix_p_): Add defensive code. - (slash_drive_prefix_p): Use macro to detect whether a character - is a path separator. - (mount_info::conv_to_win32_path): Rewrite to correctly handle - relative paths. - * strace.cc (strace_printf): Remove extraneous save of LastError. - * winsup.h (per_thread): Return TlsSetValue value. This seems - to work around a g++ bug. - -Thu Mar 25 13:00:00 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * fhandler_raw.cc (fhandler_dev_raw::dup): New method. - * fhandler_tape.cc (fhandler_dev_tape::dup(): Ditto. - * fhandler.h: Added prototypes for the formentioned methods. - -Wed Mar 24 23:00:00 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * fhandler_raw.cc (fhandler_dev_raw::linearize): - Only calling base class implementation now. - * fhandler_raw.cc (fhandler_dev_raw::de_linearize): - Only calling base class implementation and allocating devbuf now. - * fhandler_tape.cc (fhandler_dev_tape::linearize): Erased. - * fhandler_tape.cc (fhandler_dev_tape::de_linearize): Erased. - * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): - Additional call to `set_cb()'. - * fhandler_floppy.cc (fhandler_dev_floppy::fhandler_dev_floppy): - Ditto. - * fhandler.h: Erased prototypes for linearize and de_linearize - methods of class fhandler_dev_tape. - -Thu Mar 25 14:05:57 1999 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (pause): Make sure that signal has been dispatched - prior to pause returning. - -Wed Mar 24 20:04:21 1999 Christopher Faylor <cgf@cygnus.com> - - Change get_input_handle to get_io_handle throughout. - Change output_handle_ to output_handle throughout. - Use sys/termios.h only where needed. - * Makefile.in: Add new object. - * fhandler.cc (fhandler_base::puts_readahead): New function. - Adds a string to the read ahead buffer. - (fhandler_base::put_readahead): New function. Adds a character - to the read ahead buffer. - (fhandler_base::get_readahead): New function. Gets a character - from the read ahead buffer. - (fhandler_base::peek_readahead): New function. Returns character - at beginning or end of read ahead buffer. - (fhandler_base::set_readahead_valid): Augmented from fhandler.h. - (fhandler_base::eat_readahead): Eat a character from the read - ahead buffer. - (fhandler_base::de_linearize): Reset read ahead info. - (fhandler_base::read): Honor new read ahead mechanism. - (fhandler_base::fhandler_base): Don't set binmode to default - if it has already been explicitly set. - * fhandler.h: Add *BINSET flags to track whether the binary - mode has been turned on or off explicitly. - (fhandler_base): Add elements for new read ahead method. Remove - old `readahead_'. - (fhandler_termios): New base class. - (fhandler_console): Use fhandler_termios base class. - Add new de_linearize method. - (fhandler_tty_common): Rewrite to use fhandler_termios base class. - (fhandler_pty_master): Ditto. - (fhandler_tty_master): Ditto. - * fhandler_console (fhandler_console::read): Rewrite to use functions - from fhandler_termios and read ahead for line editing. - (fhandler_console::read1): Remove. - (fhandler_console::open): Interruptible I/O is now handled in the - read function. Mark this. - (fhandler_console::output_tcsetattr): Use ONLRET to control - binary behavior since it is more closely analgous. - (fhandler_console::input_tcsetattr): Don't set console flags if - there is no change or Windows 95 will eat input. - (fhandler_console::tcsetattr): Use ONLRET to control binary behavior - since it is more closely analgous. - (fhandler_console::fhandler_console): Accommodate fhandler_termios - base class. - (fhandler_console::init): Ditto. - (fhandler_console::igncr_enabled): Ditto. - (fhandler_console::char_command): Use new read ahead method. - (fhandler_console::de_linearize): New function. - * fhandler_serial.cc: Need additional include. - * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): - Accommodate fhandler_termios base class. - (fhandler_tty_master::init): Ditto. - (fhandler_tty_master::accept_input): New function. Sends - (possibly line-edited) input to slave. - (process_input): Use line editing capabilities of fhandler_termios - base class when processing input. - (fhandler_tty_slave::open): Accommodate fhandler_termios base class. - (fhandler_tty_slave::tcgetattr): Ditto. - (fhandler_tty_slave::ioctl): Ditto. - (fhandler_pty_master::fhandler_pty_master): Ditto. - (fhandler_pty_master::read): Ditto. - (fhandler_tty_slave::dup): Be more paranoid about setting output - handle in case of error. - * fhandler_tty.h: Accommodate new tty_min base class in tty class. - * hinfo.cc (hinfo::build_fhandler): Send tty 'unit' to constructor. - * select.cc (peek_console): Send resize event to window regardless - of tty setting. Eliminate ReadFile kludge. - * shared.h (tty_min): Rename termios field to avoid conflict. - * tty.cc (create_tty_master): Send tty number to build_fhandler. - (tty::common_init): Remove termios initialization. It's handled - via fhandler_termios, now. - * fhandler_termios: New file. Contains methods for dealing with - fhandler_termios class. - -Wed Mar 24 19:22:04 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Reorder to work around - gcc bug. - -Sun Mar 21 21:26:43 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_serial.cc (fhandler_serial::raw_read): Protect - against uninitialized variable. Output debug info if - ClearCommError fails. Clear overlapped I/O on error or - signal. - (fhandler_serial::tcflow): Output debug info at start of - routine. - (fhandler_serial::tcsetattr): Add more debugging output. - Avoid re-setting parameters if there has been no change. - Setting parameters via SetCommState seems to cause loss of - input on Windows 9[58]. - -Wed Mar 17 12:56:25 1999 Geoffrey Noer <noer@cygnus.com> - - * include/winbase.h: Fix AllocateAndInitializeSid proto. - -Tue Mar 16 21:55:12 1999 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Always wait for sig_send - to exit or races can result. - -Tue Mar 16 13:04:34 1999 Geoffrey Noer <noer@cygnus.com> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 11. - -Tue Mar 16 15:44:10 1999 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export telldir/seekdir. - -Tue Mar 16 13:50:51 1999 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * dir.cc: Change unused struct member __d_find_first_called to - __d_position for use in new functions. - (telldir): New function. Returns current position in DIR stream. - (seekdir): New function. Seeks to new position in DIR stream. - -Mon Mar 15 19:17:23 1999 Geoffrey Noer <noer@cygnus.com> - - * sysdef/comctl32.def: Add InitCommonControlsEx. - -Mon Mar 15 19:45:10 1999 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (mkdir): Remove final slash from a directory if - appropriate or windwows won't create the directory. - * errno.cc: Change text for EAGAIN to something a little - more sensical. - * exceptions.cc (call_handler): Add a debug message. - * fhandler.cc (fhandler_base::open): Don't attempt to set - the position of a com device. - * fhandler_serial.cc (fhandler_serial::raw_read): Reset - overlapped event if not armed. Don't attempt to find out - if characters are available if vmin_. - (fhandler_serial::raw_write): Clear pending I/O when - necessary. - (fhandler_serial::open): Set comm state to current rather - than zeroing. - (fhandler_serial::tcflush): Don't use "queue" as a flag. - TCI* defines are not bit masks. - * select.cc (peek_serial): Add debugging output. - * sigproc.cc (wait_sig): Minor cleanup. - * path.cc (nofinalslash): Make global. - * winsup.h: Ditto. - -Mon Mar 15 16:31:29 1999 Geoffrey Noer <noer@cygnus.com> - - * include/winnt.h: Add RID defs/protos from MSDN docs. - (SECURITY_*_RID, DOMAIN_*_RID*, etc.) - * include/richedit.h: Add missing SCF_* defines. - * include/commctrl.h: Add missing PBM_ defines, PBRANGE struct. - -Mon Mar 15 12:54:48 1999 Geoffrey Noer <noer@cygnus.com> - - * Makefile.in: Don't install include/Windows32 since it doesn't - exist any more. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 10. - -1999-03-12 DJ Delorie <dj@cygnus.com> - - * net.cc (gethostbyname): support a.b.c.d notation internally, - in case there's no DNS at least partial support is there. - -Thu Mar 11 21:27:41 1999 Jeff Johnston <jjohnstn@cygnus.com> - - * cygwin.din: Added references to new fast-math routines. - -Wed Mar 10 19:22:46 1999 Geoffrey Noer <noer@cygnus.com> - - * include/commdlg.h: Add missing PageSetupDlg defines. - -Tue Mar 9 14:28:14 1999 Geoffrey Noer <noer@cygnus.com> - - * include/*.h: Switch Win32 API header file set to the one written - by Anders Norlander <anorland@hem2.passagen.se>. Headers now - fit the standard Win32 API header layout and are more complete. - These correspond to Anders' headers, version 0.1.5. Please read - sysdef/README for more information. - * include/Windows32/*.h: Delete in favor of above definitions. - - Changes to support the above: - * fhandler_console.cc (fhandler_console::char_command): Add newly - needed cast to DWORD *. - * fhandler_serial.cc (fhandler_serial::raw_read): Make n, minchars - DWORDs. - * fhandler_tty.cc: Include limits.h. - (fhandler_pty_master::doecho): Second arg is now DWORD. - (fhandler_pty_master::process_input_to_sl): Make n, written DWORD. - (fhandler_pty_master::process_slave_outpu): Make n DWORD. - (fhandler_tty_slave::close): Make towrite, n DWORDs. - (fhandler_tty_slave::write): Make n DWORD. - * fhandler.h: Adjust fhandler_pty_master::doecho proto. - * hinfo.cc: Include file reordering. - * malloc.cc: Ditto. - * net.cc: Ditto. - * fhandler_tape.cc (get_ll): Need to reference .u in - LARGE_INTEGER usages. - * ntea.cc: Ditto. - * pinfo.cc: Include limits.h. - * spawn.cc: Ditto. - * uinfo.cc: Ditto. - * uname.cc (uname): sysinfo struct now has anon union. - Adjust sprintf for dwProcessorType being a long now. - * syscalls.cc: Include limits.h and lmcons.h. Throughout, - reference .u in LARGE_INTEGER usages. - (logout): Make rd a DWORD. - - * utils/mkgroup.c: Always include lmaccess.h and lmapibuf.h. - Include stdio.h. - (enum_groups): Adjust for longs in fprintfs. - (main): Ditto. - * utils/mkpasswd.c: Include lmaccess.h and lmapibuf.h. - (enum_users): Adjust for longs in fprintfs. - (main): Ditto. - (enum_local_groups): Ditto. - * utils/passwd.c: Remove many Win32 API defines now in new - Win32 headers. Include lmaccess.h, lmerr.h, lmcons.h, - lmapibuf.h. - (PrintPW): Adjust for longs in fprintfs. - -Wed Mar 3 21:14:45 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Fix off-by-one error in initial - environment allocation. - * fhandler_serial.cc (fhandler_serial::tcflush): Use different - method for flushing since serial handles are now opened for - overlapped I/O. - * select.cc (cygwin_select): Make degenerate case interruptible. - * sigproc.cc (proc_exists): Recognize all kinds of myself pointers - as "existing". - -Tue Feb 16 23:00:48 1999 Christopher Faylor <cgf@cygnus.com> - - * include/Windows32/Functions.h: Correct two #ifndefs that were - switched. - -Mon Feb 15 22:41:54 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Fix incorrect arg length when - constructing new arguments for #!. - -Fri Feb 12 13:25:50 1999 Drew Moseley <dmoseley@cygnus.com> - - * Makefile.in (install-info): Test for file existence before installing. - -Fri Feb 12 13:17:49 1999 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * fhandler.cc (fhandler_disk_file::fstat): Handles directories, - returns unique i-node number. - * syscalls.cc (stat_worker): On WinNT, stat_worker calls - fhandler_disk_file::fstat for directories, too. - -1999-02-10 DJ Delorie <dj@cygnus.com> - - * doc/doctool.c (scan_directory): check for opendir failing, - add closedir. - -Tue Feb 9 13:02:25 1999 Geoffrey Noer <noer@cygnus.com> - - * utils/mount.cc: Add fixme. - * doc/doctool.c: Correct typo in comment. - -Mon Feb 8 17:29:58 1999 Christopher Faylor <cgf@cygnus.com> - - * include/Windows32/UnicodeFunctions.h: Fix incorrect use of - BOOL -> WINBOOL. - * Windows32/ASCIIFunctions.h: Ditto. - -Fri Feb 5 09:38:25 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::add_item): Ensure that drive names - are added using X: notation. - -Thu Feb 4 00:28:58 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_prefix_p_): Recognize ':' as a path separator. - (mount_info::conv_to_posix_path): Detect case where a '/' has - to be added to a path being constructed. - (realpath): Ensure that the full path name is returned. - -Wed Feb 3 22:57:42 1999 Christopher Faylor <cgf@cygnus.com> - - * shared.h (mount_info): Add two separate arrays to track - reverse sorting of win32/posix paths. - * path.cc (sort_by_posix_name): New function. Sorts by - posix path. - (sort_by_native_name): Rename from sort_by_name. - (mount_info::conv_to_win32_path): Use native sort order - when iterating through mount table. - (mount_info::binary_win32_path_p): Ditto. - (mount_info::getmntent): Ditto. - (mount_info::conv_to_posix_path): Use posix sort order - when iterating through mount table. - (sort): Use two arrays to track sorting of mount table. - (mount_info::add_item): Simplify slightly. - -Wed Feb 3 15:17:54 1999 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Remove DATA attribute which was erroneously - added to __errno. - -Tue Feb 2 23:10:18 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc: Fix comment regarding UNC paths in mount table. - (mount_info::conv_to_win32_path): Add back code to handle - //<drive> paths for now. The plan is still to remove it again at - a later date. - (mount_info::slash_drive_to_win32_path): New. Convert a //<drive> - path to a Win32 path. Bring back from among the recently departed - path functions. - * shared.h: Add mount_info proto for slash_drive_to_win32_path. - -Tue Feb 2 22:52:43 1999 Geoffrey Noer <noer@cygnus.com> - - * include/lmaccess.h: Add stub. - * include/shlobj.h: Add stub. - -Tue Feb 2 22:34:06 1999 Christopher Faylor <cgf@cygnus.com> - - * shared.h: Change magic number associated with fork/exec - information as a temporary measure to eliminate strange - core dumps with multiple versions of cygwin1.dll. - -1999-02-02 Brendan Kehoe <brendan@cygnus.com> - - * Makefile.in (readme.txt): Add missing -I$(srcdir)/doc. - -Tue Feb 2 01:10:31 1999 Geoffrey Noer <noer@cygnus.com> - - * sysdef/*: Replace all files with new ones by Anders - Norlander <anorland@hem2.passagen.se>. Please read sysdef/README - for more information. - -Mon Feb 1 14:55:11 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (sort_by_name): Sort based on length of native_path - to ensure maximal match when converting from native -> UNIX. - * cygwin.din: Make more data variables DATA. - -Mon Feb 1 13:31:43 1999 Geoffrey Noer <noer@cygnus.com> - - * fhandler_tape.cc: Change all fhandler_tape private functions - to be named foo_bar_baz-style instead of FooBarBaz. Add some - parens around logical ors/ands for clarity. Respace. - * fhandler.h: Change protos here in light of above. - -Thu Jan 28 11:00:00 Corinna Vinschen <corinna.vinschen@cityweb.de> - - * errno.cc: Support for Windows errors ERROR_CRC and ERROR_NO_READY - and for error ENOMEDIUM. - -Wed Jan 27 01:05:39 1999 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (rmdir): Correct errno setting when attempting to rmdir - a non-directory. - -Tue Jan 26 17:36:12 1999 Geoffrey Noer <noer@cygnus.com> - - * registry.cc (reg_key::build_reg): Add FIXME. - -Tue Jan 26 01:30:48 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::from_registry): Import old v1 mounts - only if current mount layout doesn't exist yet in both user - and system areas (when had_to_create_mount_areas == 2). - (mount_info::import_v1_mounts): New, was upgrade_v1_mounts. - (mount_info::from_v1_registry): Add missing comma in reg_key - creation call. - (mount_info::init): Init had_to_create_mount_areas to zero. - * external.cc (cygwin_internal): Fix reference to - upgrade_v1_mounts. - * shared.h: Change upgrade_v1_mounts proto to import_v1_mounts. - Add new had_to_create_mount_areas variable in mount_info class. - * registry.cc (reg_key::build_reg): Increment - had_to_create_mount_areas whenever we create a new mount area. - - * include/sys/mount.h: Don't define MOUNT_EXEC until we actually - implement this functionality. - - * utils/mount.cc (do_mount): Print warning messages after the - actual mount attempt so we don't see warnings when mount fails. - (usage): Change name of --upgrade-old-mounts flag to - --import-old-mounts. - (main): Ditto. - -Mon Jan 25 23:56:50 1999 Geoffrey Noer <noer@cygnus.com> - - * errno.cc (seterrno_from_win_error): New. Given a Windows - error code, set errno accordingly. - (seterrno): Just call seterrno_from_win_error with the - error code returned by a call to GetLastError. - * winsup.h: Define __seterrno_from_win_error. - * path.cc: Clean up more function description comments. - (mount_info::add_reg_mount): Don't need res, just return the - right values. - (del_reg_mount): Return int, not void. If we're deleting a - system mount, set errno to EACCES and return -1 if we don't - have a valid key handle. If mount delete fails, set errno - accordingly and return -1. Otherwise, return zero for success. - (cygwin_umount): Delete mount from registry first, only remove - from internal table if successful. - * shared.h: Make del_reg_mount proto return int. - -Mon Jan 25 22:40:15 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::mount_slash): Add mount to registry - first, only add to internal table if successful. - (mount_info::conv_to_posix_path): Ditto. - (mount): Ditto. - (mount_info::add_reg_mount): Return int, not void. If we're - writing a system mount, first check if we have a valid key handle. - If we don't, set errno to EACCES and return -1. Otherwise return - zero for success. - * shared.h: Make add_reg_mount proto return int. - -Mon Jan 25 20:40:26 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::init): Don't read automount info here. - (mount_info::from_registry): Read it here instead. Also, read - system registry info in KEY_READ mode. - (mount_info::read_mounts): Read mount info with KEY_READ access - permissions. - -Mon Jan 25 19:12:31 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc: Improve several function description comments. - (mount_info::init): Read automount information from the - registry before potentially automounting slash. - (mount_info::conv_to_posix_path): Create automount with - automount_flags flags. - (mount): Now flags is more than just a toggle so we - must check it in a different manner. And simply check - MOUNT_AUTO as the indicator. If we want to change the - automount_prefix, also change automount_flags as appropriate. - Fix args to syscall_printf. - (write_automount_info_to_registry): New. Was - write_automount_prefix_to_registry. - (read_automount_info_from_registry): New. Was - read_automount_prefix_from_registry. - * shared.h: Adjust protos for function renames just mentioned. - * include/sys/mount.h: Delete MOUNT_CHANGE_AUTOMOUNT_PREFIX - since we don't really need it. - * utils.cc (mount): Pass MOUNT_AUTO as indicator of desire to - change automount prefix. - (show_mounts): Change spacing so there's room for "system,auto" - in Type column. - -Mon Jan 25 13:17:40 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc: Change all references from "automount root" to - "automount prefix", avoiding potential nomenclature confusion - with the root of the file system. - (read_automount_prefix_from_registry): New. Was - read_automount_root_from_registry. - (read_automount_prefix_from_registry): New. Was - read_automount_root_from_registry. Also read the default - flags for automounts from registry at the same time. - (write_automount_prefix_to_registry): New. Was - write_automount_root_to_registry. Also set automount flags - in registry using new auto_flags arg. - (mount): Add flags arg to write_automount_prefix_to_registry call. - * shared.h: Add automount_flags variable to mount_info class. - Adjust protos for function renames listed above. - - * include/sys/mount.h: Comment out MOUNT_MIXED and MOUNT_SILENT - whose values could be reused now that we're using a new mount - layout. Change MOUNT_CHANGE_AUTOROOT to - MOUNT_CHANGE_AUTOMOUNT_PREFIX. - - * utils/mount.cc (change_automount_prefix): New. Was - change_automount_root. Add new flags argument so it's possible - to change the default automount flags. - (main): Option name change from --change-automount-root to - --change-automount-prefix. - (usage): Update in light of option changes. - * utils/umount.cc (remove_all_automounts): Also need to check - for mnt_type looking like "system,auto" now that it's possible - for automounts to be located in the system registry. - -Mon Jan 25 08:59:04 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (linebuf::add): Ensure that there is always - enough space for line being added. Always null terminate. - (linebuf::prepend): Ditto. - -Sat Jan 23 01:30:16 1999 Geoffrey Noer <noer@cygnus.com> - - Make mount.exe able to upgrade mounts: - * external.cc: Fix file description. - (cygwin_internal): Handle CW_READ_V1_MOUNT_TABLES case, in - which case call upgrade_v1_mounts to upgrade old registry - area mounts. - * external.h: Add CW_READ_V1_MOUNT_TABLES to enum. - * shared.h: Make upgrade_v1_mounts public. - - * utils/mount.cc: Include winsup.h, external.h, undef errno since - it's defined by winsup.h. - (usage): Add --upgrade-old-mounts option to usage info. - (main): Handle --upgrade-old-mounts flag by calling - cygwin_internal with the right constant. - -Sat Jan 23 00:40:17 1999 Geoffrey Noer <noer@cygnus.com> - - First pass at mount table backwards compatibility with v1 - mounts: - * path.cc (mount_info::from_registry): For now, upgrade from - old v1 mount registry area if nmounts==0 after reading new mount - areas. - (mount_info::read_v1_mounts): New function. Given a regkey, read - the mounts in the old v1 registry layout corresponding to the key. - A "which" arg tells us which registry we're reading so that we - can include MOUNT_SYSTEM when reading old system mounts. - (mount_info::from_v1_registry): New function. Retrieve old v1 - mount table area mounts. - (mount_info::upgrade_v1_mounts): New function. Retrieve old - v1 mounts, add them to the current registry mount location. - (mount_info::to_registry): New function. For every mount in - the internal mount table, add it to the correct registry. - * shared.h: Add protos for new mount_info functions -- - from_v1_registry, read_v1_mounts, upgrade_v1_mounts, to_registry. - Don't need class name in protos for - build_automount_mountpoint_path, write_automount_root_to_registry, - and read_automount_root_from_registry. - -Fri Jan 22 22:45:07 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Arg 2 missing from special case - command/cmd handling. - -Fri Jan 22 22:40:32 1998 Corinna Vinschen <corinna.vinsche@cityweb.de> - - * fhandler_raw.cc (fhandler_dev_raw::raw_read): bytes_to_read - corrected to multiple of 512 bytes instead of multiple to - devbufsiz. Insert break on ReadFile returned 0 Bytes. - -Fri Jan 22 15:50:49 1999 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Fix handling of CVS tag output. - * errno.cc: Mark exported data as __declspec(dllexport). - * times.cc: Ditto. - * fhandler.cc (fhandler_base::open): Yet another stab - at correcting handling of binmode/textmode ramifications. - * path.cc (hash_path_name): Make /. == '' for purposes - of generating a hash. - -Fri Jan 22 11:45:28 1999 Christopher Faylor <cgf@cygnus.com> - - * path.cc (slash_unc_prefix_p): Generalize to allow - either type of slash. - (mount_info::add_item): Don't disallow UNC specs in - the mount table. - * utils/Makefile.in: Always use current stub library. - -Fri Jan 22 08:52:36 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (regopt): Use correct registry key for Program - Options given new mount layout. - * cygwin.din: export __mb_cur_max from newlib. - -Thu Jan 21 16:52:20 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc (cygwin_split_path): Adjust two FIXMEs. - (mount_info::write_automount_root_to_registry): Return int, - 0 on success, -1 if path is problematic. - (mount): Check return of write_automount_root_to_registry - and act appropriately. Do syscall_printf when adjusting automount - as well as regular mount. - * shared.h: mount_info::write_automount_root_to_registry now - returns an int. - * utils/mount.cc (main): don't sanity-check automount path - here, instead let the DLL take care of that. - -Thu Jan 21 17:12:26 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Rewrite argument handling for - cleaner, one-pass operation. - (linebuf::add): New method for adding arguments to end - of the argument list. - (linebuf::prepend): New method for pushing arguments on - the front of the argument list. - -Wed Jan 20 19:06:30 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc (mount_info::mount_slash): only call add_reg_mount if - add_item succeeded. - (mount_info::add_item): Fail if native path doesn't start with - <drive letter>: or if posix path doesn't start with a slash. - -Wed Jan 20 19:06:30 1999 Geoffrey Noer <noer@cygnus.com> - - * fhandler_raw.cc: Correct copyright date, reformat. - * fhandler_floppy.cc: Ditto. - * fhandler_tape.cc: Ditto. - -Wed Jan 20 17:54:02 1999 Geoffrey Noer <noer@cygnus.com> - - Remove //<drive>/ support. Add support for automounts in - user registry area. - * path.cc: Rewrite, reformat docs at top in light of removing - //<drive>/ support and new automount support. Add more function - description comments. - (slash_drive_prefix_p): Remove function. - (build_slash_drive_prefix): Ditto. - (slash_drive_to_win32_path): Ditto. - (mount_info::init): After everything else, read the automount_root - by calling read_automount_root_from_registry(). - (mount_info::mount_slash): Automount slash with MOUNT_AUTO. - (mount_info::conv_to_win32_path): Remove //<drive>/ support code. - (mount_info::build_automount_mountpoint_path): Construct the name - of an automount POSIX path, given automount_root and the Win32 - path that needs to be automounted. - (mount_info::conv_to_posix_path): Automount missing drive letter - and call conv_to_posix_path again if path isn't covered by the - mount table but starts with "<letter>:". - (mount_info::read_automount_root_from_registry): New function. - Read in the value of automount_root from the current_user - registry mount area. If there isn't one, use default of - "/cygdrive" and write that to the registry by calling - write_automount_root_to_registry(). - (write_automount_root_to_registry): Write a value of - automount_root to the user registry area. - (mount_info::del_item): Add new flags arg to specify which - registry to delete the mount from. - (mount_info::del_reg_mount): Ditto. - (mount_item::getmntent): Use mount_info mnt_foo strings to store - strings passed back in the mntent struct. Otherwise if you - delete a mount item while using getmntent, the pointer may - change on the user. Add ",auto" to mnt_type if MOUNT_AUTO flag is - set. - (mount): Add support to set auto_root to path if flags is set - to the special MOUNT_CHANGE_AUTOROOT flag otherwise do the normal - thing. - (umount): Call cygwin_umount with flags value of 0. - (cygwin_umount): New exported function. Same as umount but - takes an additional flag argument that specifies which registry - area from which umount should remove the mount point. - * cygwin.din: Export the cygwin_umount call. - * shared.h (mount_info): Add public automount_root string. - Add public proto for write_automount_root_to_registry(). - Add private protos for build_automount_mountpoint_path() and - read_automount_root_from_registry(). Add flags arg to del_item - and del_reg_mount protos. Add strings used by getmntent et al - including mnt_type, mnt_opts, mnt_fsname, mnt_dir. (Can't just - pass back pointers to mount paths because they may change as - a result of a umount call. - - * include/sys/mount.h: Add new MOUNT_AUTO and - MOUNT_CHANGE_AUTOROOT flags. Add proto for cygwin_umount - function. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 9. - - * utils/mount.cc: Change missing_dir_warning flag to force - and init to FALSE instead of TRUE. Throughout swap names and - setting as appropriate. Include errno.h. - (usage): Remove info about --reset. Add info for new - --change-automount-root option. - (main): Don't check the --reset flag. Call change_automount_root - if invoked with --change-automount-root. Only call do_mount - if !mount_already_exists unless force flag is TRUE. Otherwise - fail. - (mount_already_exists): New helper function. Returns 1 - if the mount point of the same registry location is already - mounted. - (reset_mounts): Remove function. - (change_automount_root): New function that changes the - automount root in the registry via Cygwin by passing the new - path to mount() with the special MOUNT_CHANGE_AUTOROOT flag. - * utils/umount.cc: Add progname, set to argv[0]. Include string.h. - (usage): New function to print out usage info. - (main): Loop through argcs. Handle new flags to remove all mounts - of a specific type including --remove-all-mounts, - --remove-user-mounts, --remove-system-mounts, and - --remove-auto-mounts. New flag to specify removing a system - mount. Call cygwin_umount instead of umount, providing flags - as appropriate. - (remove_all_mounts): New function. Remove all mounts in - both tables. - (remove_all_automounts): Remove all mounts marked auto. - (remove_all_user_mounts): Remove all user mounts, including auto - mounts. - (remove_all_system_mounts): Remove all system mounts. - - * registry.cc (reg_key::get_string): Fix description comment. - * strace.cc: Minor reformatting. - -Wed Jan 20 17:49:20 1999 DJ Delorie <dj@cygnus.com> - - * fhandler.cc (raw_write): Make sure that a disk full error - is properly signalled. - (fhandler_base::open): Only tapes are read/write, cd-roms may be - read-only (from Corinna). - -Wed Jan 20 10:46:48 Corinna Vinschen <corinna.vinschen@cityweb.de> - - [applied by DJ Delorie <dj@cygnus.com>] - - * fhandler_raw.cc (fhandler_dev_raw::writebuf): Writes only - as much bytes as needed, instead of full buffer size. - - * fhandler_tape.cc (fhandler_dev_tape::close): Corrected error - handling in case of error while writing buffer content to dev. - - * fhandler_floppy.cc (fhandler_dev_floppy::close): Ditto. - - * fhandler_tape.cc (fhandler_dev_tape::writebuf): Delete function - - * fhandler_floppy.cc (fhandler_dev_floppy::writebuf): Ditto. - - Patch suggested by Ron Parker <rdparker@butlermfg.org> - * path.cc (mount_info::conv_to_win32_path): Change the - recognition of UNC devices, to support also paths of type - `\\.\UNC\'. - - * fhandler_tape.cc (fhandler_dev_tape::close): Fixed rewind - to block 1 instead of block 0 on rewind tapes in case of - uncaught signal (e.g. Ctrl-C). - - * path.cc (get_raw_device_number): New static function, - checks path for windows raw device. - - * path.cc (get_device_number): Change for recognition of - windows raw device paths by calling `get_raw_device_number()'. - - * path.h: Change prototype for `get_device_number()'. - - * Makefile.in: Added file 'fhandler_raw.o' to dependencies. - - * include/cygwin/rdevio.h: New file to support ioctl commands - on random access raw devices. At the time only get/set buffersize - for raw_read/raw_write. - - * fhandler.h: Change class hierarchy. 'fhandler_dev_floppy' - and 'fhandler_dev_tape' are now derived classes of - 'fhandler_dev_raw', which is derived from 'fhandler_base'. - - * fhandler_raw.cc: New file for implementation of class - 'fhandler_dev_raw' which is now base class for support of - mass storage raw devices. - - * fhandler_dev_tape.cc: Rewritten. - - * fhandler_dev_floppy.cc: Rewritten. Now supporting correct - lseek (seeking only to positions on 512 byte boundaries, - like supported from WinNT). - - * Makefile.in: Added file 'fhandler_floppy.o' to dependencies. - - * fhandler_floppy.cc: New file to support raw devices - including multi volume operations. - - * fhandler.cc: Delete 'fhandler_dev_floppy' implementation. - - * fhandler.h: Extend class fhandler_dev_floppy. - - * fhandler_tape.cc: Rewrite for correct support - of multi volume operations. Supports Setmarks now. - - * fhandler.h: Add private method `clear()' to class - fhandler_dev_tape. - - * Makefile.in: Add file 'fhandler_tape.o' to dependencies. - - * path.cc (mount_info::conv_to_win32_path): Change the - recognition of UNC devices, to support devices, which - are not partitions, too. - - * fhandler.h: Extend struct 'fhandler_dev_tape' for tape support. - Add method 'fstat' to fhandler_dev_floppy to get S_ISBLK(). - - * fhandler.cc (fhandler_base::open): In any case 'access_' has to - be GENERIC_READ | GENERIC_WRITE for tapes, to allow tape control. - No 'SetFilePointer' for tapes. - - * fhandler_tape.cc: New file to support rewind (/dev/stX) and - norewind (/dev/nstX) tapes. Supports ioctl() calls, described - in... - - * include/sys/mtio.h, include/cygwin/mtio.h: New header files - for tape support. - -Sat Jan 16 21:59:36 1999 Geoffrey Noer <noer@cygnus.com> - - * registry.h: Delete; move contents into shared.h except for - posix_path_p() routine which disappears. - * {Makefile.in, environ.cc, net.cc, path.cc, registry.cc, - shared.cc}: No longer include registry.h. - * dcrt0.cc (dll_crt0_1): don't check posix_path_p() - - * include/mntent.h (struct mntent): Drop const from strings. - * include/sys/mount.h: Change MOUNT_GLOBAL flag that nobody has - used yet to MOUNT_SYSTEM. Add MOUNT_EXEC flag. - * include/cygwin/version.h: Bump CYGWIN_VERSION_MOUNT_REGISTRY to - 2. Change CYGWIN_INFO_CYGWIN_REGISTRY_NAME to "Cygwin". - Change CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME to "mounts v2". - - * registry.cc (reg_key::reg_key): Default key doesn't end in - "mounts" any more. - (reg_key::kill): Return error code from RegDeleteKeyA. - * path.cc: Reformat, reorder functionality, add comments - throughout. - (mount_info::init): Automount slash if it's not already mounted. - (mount_info::mount_slash): New private helper function. - (mount_info::binary_win32_path_p): Check flags to determine - if mount is binary or not, not binary_p. - (mount_info::read_mounts): Remove unneeded access argument. Use - RegEnumKeyEx to enumerate mount points in current registry - location where each key name returned is a posix_path mount - location. Use a subkey reg_key to read the posix_path's - corresponding native_path and flags. - (mount_info::from_registry): Access HKEY_LOCAL_MACHINE registry - with full access privs (which will fail if not administrator). - Fix registry path used to initialize HKEY_LOCAL_MACHINE reg_key. - (mount_info::to_registry): Delete function. Replaced by - add_reg_mount. - (mount_info::add_reg_mount): New function which adds a specified - mount point to the registry. - (mount_info::del_reg_mount): New function which deletes the - posix_path argument from the highest priority registry table it - can (first user, than system-wide). - (sort_by_name): If the two posix_paths are the same, then - differentiate between them looking at MOUNT_SYSTEM in their flags. - (mount_info::add_item): Also make sure that neither path is NULL. - Never claim mount point is busy: replace an existing posix_path - as long as it came from the same registry location. - (mount_info::del_item): Also make sure that neither path is NULL. - (mount_item::getmntent): Use mnt_type field to store user vs. - system registry location string. Cast all strings to char *. - Handle flags instead of binary_p. Change names of strings - returned in mnt_opts field. - (mount_item::init): Set flags, instead of dealing with binary_p - and silent_p. - (mount): Call add_reg_mount instead of to_registry. - (umount): Call del_reg_mount instead of to_registry. - (path_conv::path_conv): Remove reference to silent_p. - * path.h (path_conv): Remove silent_p. - - * utils/mount.cc: Add -s to usage (was a commented-out -g). - Or in MOUNT_SYSTEM if -s flag given. Add similar commented-out - support for future MOUNT_EXEC flag that will be added with -e. - (reset_mounts): Automount slash with zero for flags, not - MOUNT_SILENT which we no longer use for anything. - * utils/umount.cc: Also print out usage if the first argument - starts with a dash. - -Fri Jan 15 11:27:51 1999 DJ Delorie <dj@cygnus.com> - - * strace.cc: add macros to protect against buffer overruns - (strace_printf): increase buffer from 6000 to 1000 to build devo - * include/sys/strace.h: allow -DNOSTRACE again - -Fri Jan 15 11:27:51 1999 DJ Delorie <dj@cygnus.com> - - * dcrt0.cc (alloc_stack): add 16384 to work around Win95 page - fault during builds - * fork.cc (fork): try various things to avoid page faults during - win95 builds. - -Fri Jan 15 11:18:23 1999 DJ Delorie <dj@cygnus.com> - - * fhandler.cc (raw_write): check for disk full. - -Fri Jan 15 11:18:23 1999 DJ Delorie <dj@cygnus.com> - - * init.cc (dll_entry): if the DLL is being LoadLibrary'd, - initialize some things. - * heap.cc (_sbrk): detect uninitialized heap and initialize - * dcrt0.cc (user_data): initialize to something useful. - (do_global_ctors): make global for init.cc - -Thu Jan 14 02:16:44 1999 Geoffrey Noer <noer@cygnus.com> - - * dll_init.cc: Add missing FIXME in comment. - * fhandler_console: Ditto. - -Thu Jan 14 00:53:25 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (iscmd): New function. - (spawn_guts): Treat command /c and cmd /c as special - cases. Don't quote arguments to these programs if - there are exactly three arguments. - * dcrt0.cc (dll_crt0_1): Initialize exceptions prior - to fork to allow forked processes to "dump core". - * errno.cc (seterrno): No need for this to be extern "C". - * winsup.h: Ditto. - -Wed Jan 13 19:06:08 1999 Geoffrey Noer <noer@cygnus.com> - - * registry.cc: Add comments corresponding to various reg_key - functions, minor reformatting. - (reg_key::reg_key): Delete already-commented-out function - -Wed Jan 13 15:41:34 1999 DJ Delorie <dj@cygnus.com> - - * errno.cc (_sys_errlist): Add "extern" to work around new gcc - restrictions. - -Mon Jan 11 14:56:27 1999 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Fix problem with #! and relative - directories. - -Mon Jan 11 09:00:29 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::read1): Handle EOF as a - specific case. - -Sun Jan 10 23:44:22 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h: Define __fmode for convenience. Use throughout. - * environ.cc (parse_options): Use O_TEXT when nobinmode. - * fhandler.cc (fhandler_base::open): Don't honor __fmode - when disk file. Default to O_TEXT if no mode is specified. - (fhandler_base::fhandler_base): Don't honor __fmode when disk - file. Otherwise default to O_BINARY. - * pipe.cc (make_pipe): Default to O_BINARY if no mode specified. - -Sat Jan 9 20:58:34 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Correct previously messed up patch. - * thread.h: Add back a needed include. - * sigproc.cc (sigproc_init): Work around problem with older - compilers. - * wait.cc (wait4): Ditto. - * winsup.h (per_thread_waitq): Ditto. - * include/Windows32/CommonFunctions.h: Temporary change to - work around problems with older compilers. - -Fri Jan 8 12:53:53 1999 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_options): Add "forkchunk" debug setting. - Takes a value which is used to limit the size of individual memory - copies in a fork. - * fork.cc (fork_copy): Rewrite slightly to allow copying of - individual chunks of memory rather than all in one gulp. - Controlled by chunksize global variable. - -Thu Jan 7 22:02:18 1999 Christopher Faylor <cgf@cygnus.com> - - patch from Corinna Vinschen <corinna.vinschen@cityweb.de>: - * utils/passwd.c: New file. - * utils/Makefile.in: Add dependencies for passwd. - * syscalls.cc (chmod): Change permission checking in case - of readonly test. - (stat_dev): Change default permission bits to allow writing - for all users. - (chown): Retry LookupAccountName with username set to domain\\username, - if returned SID-Type is not SidTypeUser. - - -Thu Jan 7 17:50:49 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::set_name): Fix bug which - disallowed '%' in a file name. - -Thu Jan 7 00:21:41 1999 Geoffrey Noer <noer@cygnus.com> - - * path.cc: Add comments. - * path.h: Correct file description comment. - -Tue Jan 5 16:07:15 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler_serial.cc (fhandler_serial::raw_read): Be more defensive - about not calling problematic functions when the overlapped I/O is - armed. Reset the overlapped event prior to calling read or suffer - an "operation aborted". - * select.cc (peek_serial): Ditto. - -Mon Jan 4 15:16:22 1999 Geoffrey Noer <noer@cygnus.com> - - Eliminate warnings: - * utils/mount.cc (show_mounts): make format a const char *. - * utils/ps.cc (main): make literal strings const char *s. - * utils/cygpath.cc (long_options): cast literal strings to char *s. - (main): - -Sun Jan 3 20:46:12 1999 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_console): Remove #if 0 around NT code workaround. - -Sat Jan 2 00:04:01 1999 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove include directories made obsolete by - recent changes to mmap.cc. Also remove libraries that appear - to be unnecessary for linking. - * mkvers.sh: Put contents of .snapshot-date, if available, into - the DLL. - -Fri Jan 1 22:44:49 1999 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_serial): Add flag to track state of - overlapped serial I/O. Add overlapped_setup method for common - setup of overlapped structure. - * fhandler_serial.cc (fhandler_serial::overlapped_setup): New - method. Sets up the overlapped structure for overlapped serial I/O. - (fhandler_serial::raw_read): Use overlapped_armed flag to avoid - calling functions which perform overlapped operations if overlapped - I/O is in already progress. This should only be the case if a - previous operation was interrupted or select has detected serial I/O. - (fhandler_serial::open): Use overlapped_setup. - (fhandler_serial::fixup_after_fork): Ditto. - (fhandler_serial::de_linearize): Ditto. - (fhandler_serial::dup): Ditto. - (fhandler_serial::tcsetattr): Fix typo which caused IGNPAR - to be ignored. - * hinfo.cc (hinfo::select_read): Set saw_error to zero explicitly - to avoid spurious reporting of select errors. - (hinfo::select_write): Ditto. - (hinfo::select_except): Ditto. - * select.cc (peek_serial): Use overlapped_armed to avoid calling - functions which perform overlapped operations if overlapped I/O - is already in progress. diff --git a/winsup/cygwin/ChangeLog-2000 b/winsup/cygwin/ChangeLog-2000 deleted file mode 100644 index 54494e610..000000000 --- a/winsup/cygwin/ChangeLog-2000 +++ /dev/null @@ -1,4150 +0,0 @@ -Tue Dec 27 1:08:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add symbols for `getrlimit' and `setrlimit'. - * exceptions.cc (stackdump): Avoid creating stackdump when - `rlim_core' is 0. - * resource.cc: New global variable `rlim_core'. - (getrlimit): New function. - (setrlimit): Ditto. - include/cygwin/version.h: Bump minor API version to 32 due to - adding `getrlimit' and `setrlimit'. - include/sys/resource.h: Add defines, types and prototypes for - `getrlimit' and `setrlimit'. - -Mon Dec 25 22:18:42 2000 Christopher Faylor <cgf@cygnus.com> - - * autoload.h: Make DLL initializers global to avoid inlining. - * exceptions.cc (interrupt_setup): Reorganize arguments to allow use of - regparm. - (interrupt_now): Ditto. - (interrupt_on_return): Ditto. - (call_handler): Ditto. - -Mon Dec 25 13:36:44 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 8. - -Wed Dec 20 13:37:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add load statement for SetSecurityDescriptorControl. - * security.cc (alloc_sd): Always set SE_DACL_PROTECTED flag on - Win2K and higher. - -Wed Dec 20 01:02:13 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (reset_signal_arrived): Make global to avoid inlining. - -Wed Dec 20 00:57:10 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_serial.cc (fhandler_serial::raw_read): Always find number of - bytes ready to be read whether overlapped_armed or not. - -Tue Dec 19 21:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (remove): New function, overriding the newlib - implementation. - -Tue Dec 19 16:26:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (struct parse_thing): Add entry for new CYGWIN option - `smbntsec'. - * path.cc (path_conv::check): Check path for being a remote path. - If so and `allow_smbntsec' is set to FALSE, set has_acls to FALSE. - * security.cc: Add global definition for `allow_smbntsec'. - * security.h: Add extern declaration for `allow_smbntsec'. - * fhandler.cc (fhandler_disk_file::open): Eliminate extern declaration - of `allow_ntsec'. - * syscalls.cc: Ditto. - -Fri Dec 15 18:54:42 2000 Bradley A. Town <townba@pobox.com> - - * fhandler_console.cc (read): Add support for xterm-style mouse event - reporting. - (fhandler_console::char_command): Honor mouse events. - (fhandler_console::open): Enable mouse input events. - (fhandler_console::input_tcsetattr): Ditto. - * select.cc (peek_console): Add check for mouse events. - -Fri Dec 15 17:23:17 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Calculate path name length overruns - more dynamically. - (normalize_win32_path): Ditto. - * Makefile.in: Avoid scanning the directory twice for *.d files. - -Thu Dec 14 23:37:51 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_console): Add additional argument to - char_command method. - * fhandler_console.cc (fhandler_console::read): Revert previously - misapplied patch. - (fhandler_console::char_command): Add a second argument. - (fhandler_console::write): Recognize when a '?' is found after a - <esc>[. - -Tue Dec 5 17:06:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_rexec): Eliminate superfluous call to - `set_socket_inheritance'. - * include/sys/socket.h: Add SUS defines for option values to `shutdown'. - -Sun Dec 10 17:19:04 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sysexits: New file. - -2000-12-09 Egor Duda <deo@logos-m.ru> - - * autoload.cc: Autoload CharToOemA. - * dcrt0.cc (dll_crt0_1): Translate command line to OEM if current - codepage is OEM. - * environ.cc: Add new option 'codepage' to CYGWIN environment variable. - * fhandler_clipboard.cc (fhandler_clipboard::read): Read clipboard in - OEM mode if current codepage is OEM. - * fhandler_console.cc (fhandler_console::read): Only translate console - input if current codepage is ANSI. - * fhandler_console.cc (fhandler_console::write_normal): Translate - output data if current codepage is ANSI. - * pinfo.cc (codepage_init): New function. Setup current codepage from - CYGWIN environment variable and set codepage for file APIs. - * security.cc (read_sd): Translate file name to it if current codepage - is OEM. - * winsup.h: (sys_wcstombs,sys_mbstowcs): Use current codepage for - translations between multibyte and widechar string and vice versa. - -Sat Dec 9 16:29:45 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_win32_path): Check for explicit use of two slashes - at the beginning of a path. These should be treated specially - regardless of whether they are UNC paths or old-style //a paths. Avoid - adding cwd to a path if the path already begins with '/'. - -Fri Dec 8 22:21:01 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_win32_path): Reorganize logic to accommodate - chroot. Always check for MAX_PATH overrun. Avoid adding one too many - backslashes when src path begins with a slash. From Corinna Vinschen. - * winsup.h: Force demangling for dll_crt0 for newer compilers. - -Thu Dec 7 12:10:00 2000 Edward M. Lee <tailbert@yahoo.com> - - * cygwin.din: Declare strtok_r for the import lib. Already in the DLL. - -Wed Dec 6 15:39:18 2000 Earnie Boyd <earnie_boyd@yahoo.com> - - * include/sys/uio.h (readv): Correct prototype. - (writev): Ditto. - -Tue Dec 5 17:06:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/uio.h: Include <sys/cdefs.h>. Use __BEGIN_DECL and - __END_DECL. - Add declarations for `readv' and `writev'. - -Mon Dec 4 20:49:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Change `-nostartfiles' to `-nostdlib' to avoid - automatic linking with default libraries when linking new-cygwin1.dll. - Link with libgcc.a and libstdc++.a explicitly. - -Sun Dec 3 01:20:25 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_win32_path): Handle UNC paths better. - (slash_unc_prefix_p): Allow backslash UNC paths. - -Sun Dec 3 00:20:25 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove some extra cruft. - -Sun Dec 3 00:13:26 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use CXX to build the DLL. - * configure.in: Find correct c++ compiler. - * configure: Regenerate. - * path.cc (normalize_posix_path): Put correct drive at beginning of \foo style paths. - (chdir): Don't send non-posix path to cygcwd.set. - -Sat Dec 2 22:26:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_inet_addr ): Close AF_UNIX socket file after reading. - -Wed Nov 29 18:25:53 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * cygheap.cc (chgheap_root::operator =): Check root dir properly. - -Thu Nov 29 18:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_inet_aton): Return nonzero if the address - is valid, zero if not according to Linux man page. - -Mon Nov 27 21:09:50 2000 Kelley Cook <kelley.cook@home.com> - - * mmap.cc (munmap): Check that mmap and munmap length match. - -Tue Nov 28 18:08:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Check for buggy CreateFile - condition. - * path.cc (path_conv::check): Get file system type in call to - GetVolumeInformation to check for file systems with buggy CreateFile. - * path.h (enum path_types): Add PATH_HASBUGGYOPEN. - (class path_conv): Add methods `has_buggy_open' and - `set_has_buggy_open'. - -Sun Nov 26 16:26:14 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (is_at_eof): New function. - (fhandler_base::raw_read): Detect special case where last error == - ERROR_NOACCESS but the file is at EOF. Most UNIXes do not consider - this to be an error. - -Sun Nov 26 14:37:29 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 7. - -Sat Nov 25 11:27:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump minor API version due to adding - inet_aton. - -Sat Nov 25 11:07:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_inet_aton): New function. - * cygwin.din: Export cygwin_inet_aton as inet_aton. - -Sat Nov 25 01:57:42 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::read_cygdrive_info_from_registry): Read system - cygdrive prefix with KEY_READ. - (mount_info::get_cygdrive_info): Ditto. - -Wed Nov 22 11:18:02 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: new-temp.a -> new-templib.a - -Mon Nov 20 17:04:43 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Quoting was still wrong. Keep trying to - fix it. - -Mon Nov 20 14:26:38 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): YA tweak for dealing with arcane rules of - quoting in "normal" Microsoft programs. - * child_info.h: Bump fork magic number. - * include/sys/mount.h: Add an entry for mixed mode. - -Fri Nov 17 12:28:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Special care for root directory - in case of files beginning with a dot. - -Fri Nov 17 12:28:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syslog.cc (syslog): Add users SID to NT syslog entry. - -Thu Nov 16 15:59:58 2000 Bradley A. Town <townba@pobox.com> - - * fhandler_console.cc: New member variable `dwBufferSize' for `info'. - (fillin_info): Set `dwBufferSize' to the size of the console buffer. - (clear_screen): Use width of console buffer to calculate how many - spaces to clear. - -Thu Nov 16 15:24:45 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Make import library creation 'make -j2' friendly. - -Thu Nov 16 10:28:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (uinfo_init): Call `cygwin_set_impersonation_token' to - reset `cygheap->user.token' to INVALID_HANDLE_VALUE. - -Thu Nov 16 00:18:15 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interrupt_setup): Don't set signal mask here or races - occur with main thread. Set it in sigdelayed instead. - (sigreturn): Reflect change in stack order of ebp and flags. - (sigdelayed): Set stack frame correctly. Call set_process_mask here - with flags for last trapped signal. - (signal_dispatch): Add newmask. - * sigproc.cc (wait_sig): Eliminate ill-considered attempt to halt - looping signal processors. - * perthread.h (signal_dispatch): Add newmask field. - -Wed Nov 15 22:08:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Change parameter list to reflect - that `token' is member of cygheap_user now. - (uinfo_init): Use modified internal_getlogin. - * syscalls.cc (seteuid): Ditto. - -Wed Nov 15 21:56:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h: Move `token' and `impersonated' from class _pinfo - to class cygheap_user. - * pinfo.h: Ditto. - * fork.cc (fork_child): Change usage of `token' and `impersonated' - accordingly. - (fork_parent): Ditto. - * security.cc (cygwin_set_impersonation_token): Ditto. - * sigproc.cc (proc_subproc): Ditto. - * spawn.cc (spawn_guts): Ditto. - * syscalls.cc (seteuid): Ditto. - * uinfo.cc (uinfo_init): Ditto. - -Wed Nov 15 9:59:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Revert patch to ignore chroot settings - on creating native Win32 environment. - -Wed Nov 15 01:44:37 2000 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (slow_pid_reuse): Off-by-one. - -Wed Nov 15 01:20:24 2000 Christopher Faylor <cgf@cygnus.com> - - Throughout use myself->ppid_handle rather than parent_alive. - * child_info.h (child_info): Eliminate parent_alive. - * dcrt0.cc (dll_crt0_1): Call fork_init for debugging pid creation. - * fork.cc (fork_child): Reflect change to fixup_mmaps_after_fork - arguments. - (slow_pid_reuse): New function to grab last 'n' pids to prevent pid - reuse. - (fork_parent): Move last_fork_proc into slow_pid_reuse. - fork_pids debugging. Eliminate unnecessary call to set_child_mmap_ptr. - (fork_init): New debugging function. - * mmap.cc (fixup_mmaps_after_fork): Renamed from - recreate_mmaps_after_fork. Rely on copied data after a fork. - (set_child_mmap_ptr): Eliminate. - * pinfo.h (_pinfo): Eliminate parent_alive, mmap_ptr and reflect above - changes. - * spawn.cc (spawn_guts): Eliminate vestiges of "old way" of sending new - hProc to parent process. - -Wed Nov 15 0:51:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_root::cygheap_root): New function. - (cygheap_root::~cygheap_root): Ditto. - (cygheap_root::operator=): Ditto. - (cygheap_user::~cygheap_user): Ditto. - (cygheap_user::set_name): Ditto. - (cygheap_user::set_logsrv): Ditto. - (cygheap_user::set_domain): Ditto. - (cygheap_user::set_sid): Ditto. - * cygheap.h (cygheap_root): New class. - (cygheap_user): Ditto. - (init_cygheap): Change type of `root' member to cygheap_root. - Add `user' member. - * dir.cc (opendir): Use new `cygheap_root' class. - * dcrt0.cc (dll_crt0_1): Use new `cygheap_user' class. - * fork.cc (fork_parent): Ditto. - * grp.cc (getgroups): Ditto. - * passwd.cc (search_for): Ditto. - * path.cc: Use new `cygheap_root' class throughout. - * pinfo.h (_pinfo): Remove `use_psid'. Move `username', `psid', - `logsrv', `domain', `orig_{uid,gid}' and `real_{uid,gid}' to - cygheap_user class. - * security.cc: Use new `cygheap_user' class throughout. - * shared.cc (sec_user): Ditto. - * sigproc.cc (proc_subproc): Remove copy statements for user - related information moved to `cygheap_user' class. - * spawn.cc (spawn_guts): Invalidate current chroot settings - when creating Windows environment. Use new `cygheap_user' class. - * syscalls.cc: Use new `cygheap_user' class throughout. - * uinfo.cc: Ditto. - (internal_getlogin): Change parameters to reflect the - move of user information to cygheap. - -Tue Nov 14 17:05:00 2000 Eric Fifer <efifer@dircon.co.uk> - - * dir.cc (rewinddir): Always set __d_position = 0, so next - call to readdir() will restart the directory scan. - -Tue Nov 14 00:51:28 2000 Christopher Faylor <cgf@cygnus.com> - - * cygheap.h (init_cygheap): New struct holding values that live in the - Cygwin heap. - * child_info.h (child_info): Change pointer type of cygheap to - init_cygheap. - * cygheap.cc (init_cheap): Point cygheap_max after contents of cygheap. - Move some stuff into cygheap.h. - * dir.cc (opendir): Change to use root and rootlen in cygheap rather - than in myself. - (mkdir): Change to use umask in cygheap rather than in myself. - * path.cc: Ditto, throughout. - * syscalls.cc (_open): Ditto. Change to use umask in cygheap rather - than in myself. - (chroot): Change to allocate root dir on the cygwin heap. - (umask): Change to use umask in cygheap rather than in myself. - (cygwin_bind): Ditto. - * sigproc.cc (proc_subproc): Don't copy umask or root stuff as this - happens automatically now. - * pinfo.h (_pinfo): Migrate stuff out of here and into init_cheap. - * dcrt0.cc (dll_crt0_1): Call cygheap_init later in startup for first - cygwin process. - -Sun Nov 12 23:01:35 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (get_device_number): Allow /dev/ttySn to designate a com - port. - -Sat Nov 11 23:55:19 2000 Christopher Faylor <cgf@cygnus.com> - - * path.h: Add __attribute__ ((regparm(x))) to commonly used functions. - * pinfo.h: Ditto. - * sigproc.h: Ditto. - * sync.h: Ditto. - -Fri Nov 10 13:48:44 2000 Bradley A. Town <townba@pobox.com> - - * dcrt0.cc: New global variable `ignore_case_with_glob'. - (dll_crt0_1): Disable case-insensitive globbing before calling `main'. - * environ.cc (glob_init): New static function to set or clear - `ignore_case_with_glob'. - (known): Changed "glob" entry to call `glob_init'. - * glob.c (match): Use case-insensitive globbing if needed. - -Thu Nov 9 14:30:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir): Avoid reading from the beginning when - readdir is called after a previous call has returned NULL. - -Wed Nov 8 21:00:31 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Deal with pending newline in pty_master. - -Wed Nov 8 15:35:32 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (_addenv): malloc space for setenv if cygwin1.dll is used - in conjunction with older binaries. - (environ_init): Ditto. - -Wed Nov 8 08:49:27 2000 Jason Tishler <jt@dothill.com> - - * external.cc (get_cygdrive_info): New function. - * external.cc (get_cygdrive_prefixes): Change to use get_cygdrive_info - but toss the user and system flags. - * external.cc (cygwin_internal): Add new CW_GET_CYGDRIVE_INFO case. - * path.cc (mount_info::get_cygdrive_prefixes): Remove method. - * path.cc (mount_info::get_cygdrive_info): New method. Actually, - get_cygdrive_info is really an enhanced version of - get_cygdrive_prefixes renamed to get_cygdrive_info that also gets the - user and system flags. - * shared_info.h (get_cygdrive_prefixes): Remove method. - * shared_info.h (get_cygdrive_info): New method. - * include/cygwin/version.h: Bump minor API version due to adding - CW_GET_CYGDRIVE_INFO to cygwin_internal. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_GET_CYGDRIVE_INFO. - -Tue Nov 7 20:58:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add autoload statement for `WSASetLastError'. - * net.cc (cygwin_connect): Change error code to WSAEINPROGRESS - when connect returns WSAEWOULDBLOCK. - -Mon Nov 6 15:11:57 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (sigthread::init): Reinstitute sigthread lock as a critical - section. - (dll_crt0_1): Move sigthread lock initialization to earlier in startup. - * exceptions.cc (interrupt_on_return): Remove previous kludgy attempt - to detect an invalid frame. - (call_handler): Eliminate inner for loop. Grab signal critical section - lock where appropriate. - * sigproc.cc (proc_subproc): Restore uid setting. - * sigproc.h (sigthread): Reinstitute sigthread lock as a critical - section. - (sigframe): Grab the sigthread lock before clearing frame to avoid - having the signal thread use an invalid frame. - -Mon Nov 6 11:11:42 2000 Jason Tishler <jt@dothill.com> - - * path.cc (mount_info::read_cygdrive_info_from_registry): Use - CYGWIN_INFO_CYGDRIVE_PREFIX, CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX, and - CYGWIN_INFO_CYGDRIVE_FLAGS. - * path.cc (mount_info::write_cygdrive_info_to_registry): Use - CYGWIN_INFO_CYGDRIVE_PREFIX and CYGWIN_INFO_CYGDRIVE_FLAGS. - * path.cc (mount_info::remove_cygdrive_info_from_registry): Ditto. - * path.cc (mount_info::get_cygdrive_prefixes): Use - CYGWIN_INFO_CYGDRIVE_PREFIX. - * include/cygwin/version.h: Add CYGWIN_INFO_CYGDRIVE_FLAGS, - CYGWIN_INFO_CYGDRIVE_PREFIX, and CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX. - -Mon Nov 6 11:10:44 2000 Jason Tishler <jt@dothill.com> - - * errno.cc (strerror): Change EAGAIN case to return "Resource - temporarily unavailable" instead of "No more processes". - -Mon Nov 6 01:04:35 2000 Christopher Faylor <cgf@cygnus.com> - - * child_info.h (child_info): Add pppid_handle for closing the parent's - parent handle. - * dcrt0.cc (_dll_crt0): Close parent's parent handle when spawned or - forked. - * debug.cc (add_handle): Correct erroneous reference to handle - structure when printing warning. - * exceptions.cc (interrupt_now): Always return 1. - (interrupt_on_return): Accept a sigthread argument. Check to see if - this argument has been trashed prior to setting up the stack return. - (call_handler): Add a loop around attempts to dispatch signals to - detect case where interrupt_on_return fails. - (_sigdelayed): Set up a temporary frame pointer prior to calling stuff - that could trigger an interrupt or the stack walking code will be very - confused. - * fork.cc (fork_parent): Move a lot of the setup of the child process - into proc_subproc. - * spawn.cc (spawn_guts): Ditto. Use ppid_handle to contact logical - parent when reparenting execed process. - * pinfo.h (_pinfo): Remember the logical handle of the parent process. - * sigproc.cc (proc_subproc): Record most stuff necessary for the _pinfo - structure that is inferrable from myself when adding children. - (wait_sig): Always set 'pending_signals' flag when about to kick off - the signal scanning loop. Reset it only if there are no pending - signals. - -Sun Nov 5 13:46:23 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo (wait_subproc): Son of neverending debug tweaking. - -Sun Nov 5 11:45:15 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo (wait_subproc): Neverending debug tweaking. - -Sun Nov 5 01:34:51 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (winpids:add): New method. - (winpids::enumNT): New method renamed from EnumProcessesNT. - Use add method to add elements to the lists. - (winpids::enum9x): New method renamed from EnumProcesses9x. - Use add method to add elements to the lists. - (winpids::enum_init): Accept 'winpid' parameter to control whether - to add all windows pids to the list. - (winpids::release): New method. - * pinfo.h (winpids): Reflect above changes. - * signal.cc (kill_pgrp): Ditto. - * external.cc (fillout_pinfo): Ditto. - -Sat Nov 4 22:07:03 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_sigsuspend): Record frame here for signalling. - (set_process_mask): Ditto. - -Sat Nov 4 14:24:10 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (wait_subproc): Still more debugging cleanup. - -Sat Nov 4 00:51:38 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (EnumProcessesNT): Avoid 0 pids. - (EnumProcesses9x): Ditto. - * sigproc.cc (remove_child): Eliminate. - (proc_subproc): Move remove_child stuff here. - (wait_subproc): Synchronize with proc_subproc when error occurs. Add - more debugging info. - * sigproc.h (procstuff): Add an entry. - * spawn.cc (spawn_guts): Add sigframe here. - -Fri Nov 3 20:07:14 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (wait_subproc): Refine debug output. - -Thu Nov 2 23:01:20 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (pinfo::init): Reverse order of setting status and pid info - in an execed process to avoid a race. - * sigproc.cc (wait_subproc): Print more info when a WFSO error occurs. - * automode.c: New file. - * syscalls.cc (close_all_files): Streamline slightly. - * cygheap.cc (ccalloc): Clear *entire* allocated array. - -Thu Nov 2 01:58:03 2000 Christopher Faylor <cgf@cygnus.com> - - * ntdll.h: Remove IO_COUNTERS definition since it is now in winnt.h. - -Thu Nov 2 00:10:23 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (EnumProcessesNT): New function. Eliminates dependence on - psapi.h. - (EnumProcesses9x): Rename from EnumProcessesW95. Change arguments to - be more useful for cygwin. - (winpids::init): Accommodate argument changes. - (enum_init): Ditto. - * pinfo.h (winpids): Make pidlist dynamically extendable by storing it - as a pointer and remembering the size. - * ntdll.h: Add extra definitions needed for EnumProcessesNT. Reformat - via 'indent'. - -Wed Nov 1 21:08:23 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Remove obsolete tests. - (sigreturn): Construct pseudo-frame-pointer so that signal handler can - figure out where to put return address when signals are coming in - quickly. - * path.cc (cwdstuff::get): Allow length 0 buffer length when buffer - when NULL. - -Tue Oct 31 18:12:56 2000 Christopher Faylor <cgf@cygnus.com> - - * path.h (has_exec_chars): Standard function for checking for - executable magic numbers. - * path.cc (symlink_info::check): Use the above function. - * fhandler.cc (fhandler_disk_file::open): Ditto. - -Tue Oct 31 17:57:52 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (_readlink): Return ENOENT when file does not exist. - -Tue Oct 31 23:35:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_raw): Add method `fixup_after_exec'. - -Tue Oct 31 22:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_raw): Add definition for method - `fixup_after_fork'. - * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Add - `set_need_fixup_after_fork' call. - (fhandler_dev_raw::~fhandler_dev_raw): Revert to user space - allocation. - (fhandler_dev_raw::open): Ditto. - (fhandler_dev_raw::dup): Ditto. Reset buffer pointer. - (fhandler_dev_raw::fixup_after_fork): New function. - * fhandler_tape.cc (fhandler_dev_tape::open): Revert to user space - memory allocation. - (fhandler_dev_tape::ioctl): Ditto. Change behaviour on MTSETBLK when - new size is 1. - -Tue Oct 31 20:56:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::open): Fix memory allocation. - Use Cygwin heap instead of user heap. - (fhandler_dev_tape::ioctl): Ditto. - -Tue Oct 31 12:00:06 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (enum_init): Don't suffer silently if we can't load the - process enumerators. - -Mon Oct 30 16:54:26 2000 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (kill_pgrp): Revert 25-Oct change. - (kill_worker): Ditto. - -Sun Oct 29 20:52:31 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 6. - -Sat Oct 28 01:39:53 2000 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Eliminate subdir stuff. - * configure: Regenerate. - * include/getopt.h (option): Make name field 'const'. - -Fri Oct 27 20:51:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: New file keeping all autoload stuff. - * Makefile.in: Add autoload.o to dependencies. - * dcrt0.cc: Move all autoload stuff to autoload.cc. - * fhandler_mem.cc: Ditto. - * net.cc: Ditto. - * uinfo.cc: Ditto. - -Fri Oct 27 11:37:20 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (wait_sig): Add braces to avoid confusion. - -Fri Oct 27 11:48:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: New file. - * Makefile.in: Add fhandler_socket.o to dependencies. - * fhandler.h: Change comment. - * net.cc Move all fhandler_socket methods to fhandler_socket.cc. - * winsup.h: Add declaration for `ws2_32_handle'. - -Thu Oct 26 11:51:59 2000 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::release): Check for socket. Change - cnt_need_fixup_before accordingly. - (dtable::dup2): Ditto. - (dtable::fixup_before_fork): New method. - (dtable::fixup_before_exec): Ditto. - * dtable.h (class dtable): Add member `cnt_need_fixup_before'. Add - definition for methods `dec_need_fixup_before', `inc_need_fixup_before', - `need_fixup_before', `fixup_before_exec' and `fixup_before_fork'. - * fhandler.h (class fhandler_base): Slight rearrangements. Add - definitions for methods `fixup_before_fork_exec'. - (class fhandler_socket): Eliminate superfluous constructor. - Add member `prot_info_ptr'. Add destructor. Add definitions for - methods `dup', `fixup_before_fork_exec', `fixup_after_fork' and - `fixup_after_exec'. - * fork.cc (fork_parent): Care for file types which need a fixup - before fork. Start child in suspended state then. - * net.cc: New global variable `ws2_32_handle' and `wsadata'. - (fdsock): Check for Winsock version. Call `set_socket_inheritance' - only if Winsock version < 2.0. Care for `need_fixup' count in fdtab. - (cygwin_socket): Eliminate call to `set_socket_inheritance'. - (cygwin_accept): Ditto. - (cygwin_rcmd): Ditto. - (cygwin_rresvport): Ditto. - (cygwin_rexec): Ditto. - (socketpair): Ditto. - (fhandler_socket::fhandler_socket): Set `need_fork_fixup'. Allocate - space for the WSAPROTOCOL_INFOA struct used in fixup. - (fhandler_socket::~fhandler_socket): New destructor. - (fhandler_socket::fixup_before_fork_exec): New method. - (fhandler_socket::fixup_after_fork): Ditto. - (fhandler_socket::dup): Ditto. - (wsock_init): New static function. - (LoadDLLinitfunc (wsock32)): Rearranged. - (LoadDLLinitfunc (ws2_32)): New function. - (dummy_autoload): Add autoload statemants for `WSADuplicateSocketA' - and `WSASocketA'. - * spawn.cc (spawn_guts): Care for file types which need a fixup - before exec. Start child in suspended state then. - -Wed Oct 25 20:49:59 2000 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (kill_pgrp): Don't limit sending of signals to stopped - processes when sig < 0. - (kill_worker): Only send SIGCONT to stopped processes when sendSIGCONT. - -Wed Oct 25 13:56:39 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle): Just make sure that wait_sig loops when - receiving a SIGCONT. Don't block waiting for completion that will - never occur. - -Wed Oct 25 09:59:14 2000 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (dtable::fixup_after_exec): Use variable rather than - constantly indexing into fds array. - (dtable::fixup_after_fork): Ditto. - -Wed Oct 25 10:43:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fcntl): Treat O_NONBLOCK and OLD_O_NDELAY - as exactly the same. If one is set, both are set. - * net.cc (fhandler_socket::fcntl): Ditto. - -Tue Oct 24 23:58:35 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Remove debugging statement. - -Tue Oct 24 23:45:09 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (do_exit): Don't bother looking for pgrp children to send - SIGHUP if process has never created any children. - * fork.cc (fork): Set flag indicating that there is another process - with our process group. - * spawn.cc (spawn_guts): Ditto. - * pinfo.h (set_has_pgid_children): New methods for setting when process - has children in its process group. - * syscalls.cc (setpgid): Clear has_gid_children if pgid changes. - -Tue Oct 24 20:38:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: New file. - * fhandler_mem.cc: Move ntdll.dll specific definitions and - declarations to ntdll.h. - * sysconf.cc (sysconf): Add support for _SC_NPROCESSORS_CONF, - _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES and _SC_AVPHYS_PAGES. - -Tue Oct 24 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fcntl): Behave properly when passed - previous version of O_NDELAY. - * syscalls.cc: Move OLD_O_NDELAY to winsup.h. - * winsup.h: Define OLD_O_NDELAY now. - -Mon Oct 23 21:47:55 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (signal_exit): Kill any executing child process if - we're dying. - * path.h: Remove unneeded extern. - * spawn.cc (std_suffixes): Make static. Don't set dwProcessId here - since it makes the process unsignalable. Set strace flag that this is - an execed process stub. - * strace.cc (strace::vsprntf): Use strace flag to indicate when to - visually flag that this is an exec stub. - * include/sys/strace.h (strace): Add 'execing' flag. - -Mon Oct 23 16:43:33 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_subproc): Don't send a false positive if WNOHANG and - no processes are available for waiting. - -Mon Oct 23 22:27:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fcntl): Setting flags in F_SETFL - branch according to Linux documentation. - -Mon Oct 23 21:43:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (_fcntl): Rearrange as wrapper function. Move all - functionality except F_DUPFD to fhandler classes. - * fhandler.cc (fhandler_base::fcntl): New method. - * net.cc (fhandler_socket::fcntl): Ditto. - * fhandler.h (class fhandler_base): Add method prototype for fcntl(). - (class fhandler_socket): Ditto. - -Mon Oct 23 12:44:35 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_subproc): Correctly handle flags for WNOHANG case. - -Mon Oct 23 10:00:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Eliminate C++ comments throughout. - -Sun Oct 22 23:33:00 2000 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork): Set sigframe here, since it can pause for a - considerable amount of time. - * environ.cc (_addenv): Add debugging. - * fhandler.cc: Eliminate unneeded include. - * smallprint.c: Ditto. - -Sun Oct 22 12:07:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo_init): Eliminate call to `set_process_privileges'. - * security.cc (write_sd): Call `set_process_privileges' on the first - call to `write_sd'. - (set_process_privileges): Eliminate adjusting SE_BACKUP_NAME privilege. - -Sat Oct 21 16:57:23 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (pinfo::init): Make PID_EXECED signal creation as well as - PID_IN_USE. - -Sat Oct 21 01:52:54 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Don't do the reparenting step if we notice - that the child has exited prior to sending the subprocess_ready signal - (?). - -Sat Oct 21 00:46:36 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_console): Remove tcsetpgrp. - * fhandler_console.cc (fhandler_console::tcsetpgrp): Eliminate. - * fork.cc (fork_parent): Avoid returning same pid twice in a row - regardless of OS. - * pinfo.cc (pinfo::init): Rename create argument to flags and treat it - as such. - * signal.cc (set_sigcatchers): New function. - (signal): Use set_sigcatchers to increment or decrement sigcatcher - tracker. - (sigaction): Ditto. Add debugging output. - * spawn.cc (spawn_guts): Always quote first argv[0] argument when it's - a COMSPEC shell. - -2000-10-20 DJ Delorie <dj@redhat.com> - - * times.cc (to_time_t): pass zero time as epoch - * fhandler.cc (fstat): copy atime/ctime from mtime if they're zero - -Thu Oct 19 23:31:41 2000 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Pass PID_NOREDIR flag to pinfo init to - avoid finding execed processes twice. - * signal.cc (kill_pgrp): Ditto. - * spawn.cc (spawn_guts): Avoid passing first argument to CreateProcess - when running a windows shell so that CreateProcess will locate the - shell. Reorganize so that correct error is returned when CreateProcess - fails. - -Thu Oct 19 13:55:31 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (sigthread::init): Correct overzealous ifdef. - * exceptions.cc (call_handler): Avoid calling sigthread acquire lock. - * sigproc.h (sigthread): Comment out lock for now. - * sync.cc (muto::acquire): Add a minor optimization. - -2000-10-18 DJ Delorie <dj@redhat.com> - - * Makefile.in: add miscfuncs.cc - * miscfuncs.cc: new, miscellaneous functions - * winsup.h: define table-driven tolower/toupper - * environ.cc: use them - * fhandler_console.cc: ditto - * fhandler_termios: ditto - * path.cc: ditto - (strncasematch, strcasematch, strcasestr): move to miscfuncs.cc - -Wed Oct 18 20:50:27 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigthread): Eliminate locking for now since per thread - signalling is not available. - * dcrt0.cc (sigthread::init): Ditto. - (dll_crt0_1): Move set_process_privileges call (temporarily?) to - pinfo_init. - (pinfo_init): Only call set_process_privileges when allow_ntsec. - -2000-10-18 DJ Delorie <dj@redhat.com> - - * dcrt0.cc (dll_crt0_1): init cygcwd before forkee branch - - * environ.cc (conv_start_chars): Cache a table of "first - characters" for environment variables needing conversion. - (getwinenv): Use it. - (environ_init): Create it, also check first chars for TERM and - CYGWIN. - - * path.cc: Use lookup table for case insensitive comparisons. - -Wed Oct 18 00:48:49 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Make signal pending if sigsave.sig is - still active. - * syscalls.cc (_read): Don't clear errno. - * sigproc.cc (wait_sig): Don't scan the waiting process list after a - SIGCHLD if there are no zombies to reap. - * winsup.h: Use __builtin_strcmp. - * environ.cc (posify): Don't initialize len unless it is required - (from DJ Delorie <dj@redhat.com>). - -Tue Oct 17 14:50:31 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_subproc): Remove unneeded test for correct process - in PROC_ADDCHILD. Return 0 when terminated child has just been - reparented. - (wait_subproc): Only send SIGCHLD when proc_subproc returns != 0. - * strace.cc (strace::vsprntf): Only strip .exe extension from program - name. - -2000-10-16 Charles Wilson <cwilson@ece.gatech.edu> - - * fhandler_clipboard.cc: new file - * Makefile.in: include fhandler_clipboard.o in DLL_OFILES list. - * fhandler.h: add FH_CLIPBOARD to the devices enum. - (fhandler_dev_clipboard): new - * path.cc (windows_device_names): add "\\dev\\clipboard" - (get_device_number): check for "clipboard" - * dcrt0.cc: declare a few more functions from winuser.h - * dtable.cc (dtable::build_fhandler): check for FH_CLIPBOARD in - switch(). - -Mon Oct 16 21:36:57 2000 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (add_handle): Issue warning on attempts to add the same - handle more than once. - * fhandler_tty.cc (fhandler_tty_slave::open): Protect some handles. - (fhandler_tty_common::close): Use proper name when closing handles. - (fhandler_pty_master::close): Don't close to_slave or from_slave since - they've already been closed earlier in the function. - * sigproc.cc (proc_subproc): Don't protect vchild->hProcess. Expect - that the caller will do this, instead. - * tty.cc (tty_list::terminate): Use proper name when closing handles. - (tty::make_pipes): Protect some handles. - -Mon Oct 16 18:37:22 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove some obsolete stuff. - * dcrt0.cc (dll_crt0_1): Call signal_fixup_after_exec where appropriate. - Set myself->uid from parent version. - Just use ThreadItem Init method. Close or store hexec_proc as appropriate. - (_dll_crt0): Store user_data->forkee here so that proper tests can be made - subsequently. - (do_exit): Remove hExeced stuff. - * environ.cc (environ_init): Accept environ count as well as environ pointer. - * environ.h: Reflect above change. - * pinfo.cc (pinfo_init): Ditto. Accept environ count. - (fixup_in_spawned_child): Remove. - * spawn.cc (spawn_guts): Move signal code to dll_crt0_1. Don't suspend - execing process since it is no longer necessary. Store envc. - * exceptions.cc (signal_fixup_after_exec): New function. - (call_handler): Remove hExeced test. - * child_info.h (cygheap_exec_info): Store envc as well as envp. - (child_info_spawn): Store hexec_proc so that it can be closed in child. - * path.cc (normalize_posix_path): Avoid intermediate use of temporary cwd buf. - (normalize_win32_path): Ditto. - (cwdstuff::get_initial): Always set lock. - * sigproc.h: Remove hExeced. - * strace.cc (strace::vsprntf): Modify to accommodate for lack of hExeced. - * thread.cc (MTinterface::Init): Merge Init1 and ClearReent into this method. - (MTinterface::Init1): Eliminate. - (MTinterface::ClearReent): Eliminate. - * thread.h: Reflect above changes. - * include/sys/strace.h (strace): Make microseconds() public. - -Sun Oct 15 21:54:52 2000 Christopher Faylor <cgf@cygnus.com> - - Make various functions 'regparm', throughout. - * pinfo.h (_pinfo): Inline simple signal manipulation functions. - Requires inclusion of thread.h which was removed from .cc files, where - appropriate. throughout. - * pinfo.cc: Eliminate signal manipulation functions. - (_pinfo::exit): Calculate total rusage for exiting process here. - * cygheap.cc (size2bucket): Eliminate. - (init_buckets): Ditto. - (_cmalloc): Calculate size and bits in a loop rather than going through - a function call. - (_crealloc): Use stored array index to calculate allocated size. - * spawn.cc (spawn_guts): Use _pinfo exit method to exit, calculating - cpu usage. - -Sat Oct 14 21:24:16 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (set_console_handler): Don't allocate - console_handler_thread_waiter. It is obsolete. - (ctrl_c_handler): Don't use console_handler_thread_waiter. - * path.cc (hash_path_name): Fix handling of relative names. Make case - insensitive. - * path.h (suffix_info): Use initializers. - * pinfo.h (_pinfo): Avoid initializers for null case. - * resource.cc (fill_rusage): Zero rest of rusage structure. - * security.cc (set_process_privileges): Don't reopen parent process. - Just use hMainProc. - * signal.cc (signal): Track when a signal handler has been used. - (sigaction): Ditto. - * sigproc.cc (pchildren): Use default initializer. - (zombies): Ditto. - (sigproc_terminate): Avoid closing handles that will be closed on exit - anyway. - (wait_sig): Send signal to "parent" on EXECing, not FORKing. - (wait_subproc): Send SIGCHLD here rather than in proc_wait to avoid - potential muto conflicts. - * sigproc.h (sigthread): Don't initialize to zero. It's the default. - * spawn.cc (spawn_guts): Fill in resources from exec parent prior to - termination. - * sync.h (muto): Don't initialize to zero. - * syscalls.cc (close_all_files): Use one lock around entire loop and - call fhandler close/release stuff directly. - (_read): Don't use ready_for_read if there are not signal handlers - active. - -Sat Oct 14 12:24:24 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Fix display of "title". - (do_exit): Use pinfo exit method to exit. - (__api_fatal): Ditto. - * exceptions.cc (signal_exit): Ditto. - * fork.cc (fork_child): Remove debugging stuff. Use pinfo_fixup_after - fork in place of exec_fixup_after_fork. - * pinfo.cc (pinfo_fixup_after_fork): New method. - (pinfo_fixup_in_spawned_child): Ditto. - (_pinfo::exit): New method. - (_pinfo::init): Remove recursion. Detect pathological case where pinfo - structure already exists for new pid. - * pinfo.h (_pinfo): Reorganize slightly. Add new method and new - function declarations. - * sigproc.cc (proc_exists): Previous simplification was a little to - simple. Try harder to detect if a process exists. - (proc_terminate): Use PID_EXITED setting to determine if process is - still around. - (WFSO): Remove debugging statement. - (WFMO): Ditto. - * spawn.cc (exec_fixup_after_fork): Eliminate. - (spawn_guts): Always set old_title to NULL. Is it really needed? Move - hexec_proc to pinfo.cc. Call pinfo_fixup_in_spawned_child to eliminate - handle link after a spawn. - * include/sys/cygwin.h: Remove PID_NOT_IN_USE. Add PID_EXITED. - -Sat Oct 14 10:54:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add symbol hstrerror. - * net.cc: Change meaning of member `s' of struct host_errmap. - (set_host_errno): Fix error in loop condition. - (hstrerror): Ditto. - (herror): Add appropriate functionality. - * include/netdb.h: Add declaration of hstrerror. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 29. - -Sat Oct 14 01:45:25 2000 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_fixup_in_child): Don't page round cygheap copied - from parent. - * dcrt0.cc (do_exit): Don't cleanup pinfo on exit. That happens - automatically now. - * exceptions.cc (signal_exit): Ditto. - * fork.cc (fork_parent): Use stack_here value passed in from fork(). - (fork): Figure out top of stack here and pass it to fork_parent. - * pinfo.cc (_pinfo::record_death): Eliminate. - * pinfo.h (_pinfo): Ditto. - * sigproc.cc (proc_exists): Simplify. - (proc_terminate): Ditto. - (remove_zombie): Don't cleanup pinfo stuff. - (wait_sig): Send subproc_ready signal whether execed or spawned. - * spawn.cc (spawn_guts): Always create subproc_ready event. Use it for - both exec and spawn. - (_spawnve): Send proper mode to spawn_guts when mode != _P_OVERLAY. - -Thu Oct 12 23:11:05 2000 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (dtable::fixup_after_fork): Revert thinko below. - * pinfo.cc (set_myself): Show pid in initial strace line. - -Thu Oct 12 17:58:03 2000 Christopher Faylor <cgf@cygnus.com> - - * child_info: Bump child_info "version". - (child_info): Move some fields from child_info_spawn to here. - * cygheap.cc: Make cygheap pointers NOCOPY. - * dcrt0.cc (dll_crt0_1): Copy cygwin heap here regardless of whether - we've been forked or execed. - * dtable.cc (dtable::fixup_after_fork): Just release close-on-exec fds. - * exceptions.cc (stackdump): Respond to C warning. - * fork.cc: Reorganize to minimize stack copying. - (fork_child): New function. - (fork_parent): Ditto. - (sync_with_child): Don't suspend the forkee. - (sync_with_parent): Ditto. Make into a function. - * heap.cc (heap_init): Add some debugging output. - * path.cc (path_conv::check): Add an assertion. - (has_suffix): Ditto. - * security.cc (get_pw_sid): Defend against NULL. - * sigproc.cc (proc_subproc): Fix debugging output. - (wait_sig): Ditto. - * strace.cc: Make statics NO_COPY throughout. - (strace::vsprntf): Defend against NULL. - -Thu Oct 12 00:25:29 2000 Christopher Faylor <cgf@cygnus.com> - - * errno.cc (seterrno_from_win_error): Fix debugging output. - * fhandler.cc (fhandler_base::fstat): Move to inline method in - fhandler.h. - (fhandler_base::set_io_handle): Ditto. - * fhandler.h (fhandler_base): Make some methods inline. - * fhandler_console.cc (fhandler_console::write_normal): Make buffer - larger. - * sigproc.h (sigframe::sigframe): Actually use set ebp parameter - correctly. - * spawn.cc (spawn_guts): Set dwProcessId when exec'ing. Just exit - immediately after reparenting. - * syscalls.cc: Sprinkle sigframe stuff throughout. - * wait.cc (wait4): Set signal frame here. - -Tue Oct 10 19:54:06 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (__api_fatal): Don't rely on small_printf to display errors. - Always display problems to the console, if possible. - -Tue Oct 10 15:21:10 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (cwdstuff::get): Set EINVAL when length is zero. - -Mon Oct 9 14:07:04 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::cygdrive_posix_path): Handle e:foo construction - correctly. - -Mon Oct 9 16:44:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): - Fix debug output. - -Mon Oct 9 15:58:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc: Eliminate unused include statements. - (fhandler_dev_mem::fhandler_dev_mem): Check for 9X/ME. - -Mon Oct 9 15:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_mem): Erase member `init_phase' and - member function `init'. - * fhandler_mem.cc: Add typedefs for NT internal data types - `SYSTEM_INFORMATION_CLASS' and `SYSTEM_BASIC_INFORMATION'. - Add prototype for `NtQuerySystemInformation' function. - (fhandler_dev_mem::fhandler_dev_mem): Takes over initialization task - from `init'. Use `NtQuerySystemInformation' function to evaluate the - size of physical memory instead of interval search. - (fhandler_dev_mem::init): Eliminated. - (fhandler_dev_mem::open): Don't call `init'. - (fhandler_dev_mem::read): Eliminate check for `init_phase'. - (dummy_autoload): Add load statement for `NtQuerySystemInformation'. - -Sun Oct 8 22:38:40 2000 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (set_std_handle): Use std_consts array to control - SetStdHandle settings. - (dtable::fixup_after_fork): Ditto. - * exceptions.cc (set_sig_errno): Remove some debugging output. - * path.cc (path_conv::check): Don't OR need_directory with flags sent - to symlink_info::check. - (symlink_info::check): Use PATH_ALL_EXEC to determine when a file is - executable. - * path.h (path_types): Add PATH_ALL_EXEC. - (isexec): Use PATH_ALL_EXEC so that cygexec types will be considered - executable. - * pinfo.h (_pinfo): Add a process handle that is kept open throughout - the life of a cygwin pid. - * sigproc.cc (proc_exists): Remove hopefully obsolete stuff. - (proc_subproc): Set up process handle that is kept open throughout the - life of a cygwin pid. Reorganize PROC_WAIT stuff to use common code. - (proc_terminate): Close pid lifetime process handle. - (checkstate): Cleanup. - (stopped_or_terminated): Move zombie cleanup. - (remove_zombie): To here. - * spawn.cc (spawn_guts): Reorganize reparenting code for 1247th time. - -Sat Oct 7 13:59:15 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_base): Remove obsolete _rpos and _rsize - elements. - * fhandler.cc (fhandler_base::open): Ditto. - * fhandler.cc (fhandler_base::fhandler_base): Ditto. - (fhandler_base::read): Ditto. Add more debugging output. Don't issue - a \r when \r\n detected. - * pipe.cc (make_pipe): Streamline slightly. Make debug output more - interesting. - * strace.cc (strace::vsprintf): Use __progname where appropriate to - distinguish strace output when exec'ing. - -Sat Oct 7 19:25:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_mem): Add methods mmap, munmap and msync. - Add `unit' member. - * fhandler_mem.cc (fhandler_dev_mem): Initialize `unit' as well. - (init): Care for differences between /dev/mem, /dev/kmem (not - implemented yet) and /dev/port. - (open): Change debug message to reflect the device. - (mmap): New function. - (munmap): Ditto. - (msync): Ditto. - (fstat): Use unit when setting st_dev in stat structure. - * mmap.cc (mmap): Handle MAP_ANONYMOUS flag. - Change error handling slightly. - * path.cc (get_device_number): Handle /dev/port. - -Fri Oct 6 23:21:29 2000 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_read): Behave properly when passed previous version of - O_NDELAY. Fix up debugging output. - -Thu Oct 5 20:34:48 2000 Christopher Faylor <cgf@cygnus.com> - - * net.cc (set_socket_inheritance): Rename from duplicate_socket. Use - NT specific call when appropriate. - (__set_winsock_errno): Rename from set_winsock_errno. Accept function - and line as arguments. - * path.cc (path_conv::check): Continue the neverending battle to make - cygwin properly understand that path specs ending in a slash require - that the path refer to a directory. Windows does not do this by - default. - (symlink_info::check): Remove ENOTDIR test. Move it to - path_conv::check. - * path.h: Remove obsolete constant. - * winsup.h (set_winsock_errno): New macro. - -Thu Oct 5 14:58:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h: Add mmap(), munmap() and msync() to fhandler_base - and fhandler_disk_file. - * mmem.cc (mmap): Eliminated device dependent implementation details. - These are moved to the appropriate fhandler class. - (munmap): Ditto. - (msync): Ditto. - (fhandler_base::mmap): New method. - (fhandler_base::munmap): Ditto. - (fhandler_base::msync): Ditto. - (fhandler_disk_file::mmap): Ditto. - (fhandler_disk_file::munmap): Ditto. - (fhandler_disk_file::msync): Ditto. - -Thu Oct 5 01:52:43 2000 Christopher Faylor <cgf@cygnus.com> - - * net.cc: General cleanup. - (fdsock): Return pointer to created fhandler_socket. - (cygwin_socket): Use pointer returned by fdsock. Return correct errno - when fd < 0. - -Thu Oct 5 00:48:40 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Add extra debugging. - * sigproc.h (wait_sig): Fill in frame pointer, by default, prior to - calling or suffer confusion due to September 7 change below. - -Wed Oct 4 23:10:27 2000 Christopher Faylor <cgf@cygnus.com> - - * include/netinet/tcp.h: Remove winsock.h include. - * include/sys/cygwin.h: Move windows specific reference within - conditional. - -Thu Oct 5 1:13:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/mman.h: Add missing MAP_FAILED macro. - -Wed Oct 4 18:48:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_mem): Add method `init'. Add members - `mem_size' and `init_phase'. - * fhandler_mem.cc (init): New function to figure out the size of - the physical memory. - (open): Add checking for illegal flags. Change usage of access mode. - (write): Add intended functionality. - (read): Add parameter checking. Eliminate page size constant. Use - getpagesize() instead. Don't touch errno and don't create debug output - while init() is running. - (lseek): Add bounds checking. Fix SEEK_END. - (fstat): Eliminate page size constant. Use getpagesize() instead. - (dup): Add intended functionality. - -Mon Oct 2 22:15:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Add LoadDLLFunc statement for RegEnumValueA(). - * net.cc: Change comments related to get_ifconf. - (get_2k_ifconf): Eliminate `type' variable. Eliminate `sa' parameter. - (get_nt_ifconf): Ditto. - (get_9x_ifconf): Ditto. Rewritten. - (get_ifconf): Change calls to OS specific functions. - -Mon Oct 2 15:15:01 2000 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (sigaction): Allow new action == oldaction. - -Mon Oct 2 11:05:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc: Load ntdll functions via autoload method. - (load_ntdll_funcs): Eliminated. - -Sun Oct 1 16:36:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc (load_ntdll_funcs): Add missing __stdcall qualifiers. - -Sun Oct 1 22:20:39 2000 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_init): Born again function. - (_cmalloc): Reorganize to accommodate muto locking. - (_cfree): Use muto lock to avoid multi-thread problems. - * cygheap.h (incygheap): Just use cygheap_max to find upper cygwin heap - bounds. - * dcrt0.cc (dll_crt0_1): Reinstitute cygheap_init call. - * path.cc (getcwd): Just return cwdstuff::get result, allowing correct - handling of negative length. - (cwdstuff::get): Malloc a buffer if one is not available. - -Sun Oct 1 2:56:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add fhandler_mem.o to the dependencies. - * dtable.cc (dtable::build_fhandler): Add case for FH_MEM. - * fhandler.h: Add FH_MEM device type. Add class fhandler_dev_mem. - * fhandler_mem.cc: New file. Implementation of class fhandler_dev_mem. - * path.cc: Add /dev/mem to windows_device_names. - (get_device_number): Add FH_MEM type. - -Sat Sep 30 00:43:42 2000 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cheap): Set aside space for heap walk pointer. - (_csbrk): Make logic for detecting when to alloc cognizant of - initialization condition. - (_cmalloc): Use a structure to hold bucket size and heap chain pointer. - Store pointer to next freed block in bucket size location so that it - will be easy to see if a block is allocated. - (_cfree): Store pointer to next freed block in bucket size location. - (_crealloc): Use macro to retrieve bucket size. - (cygheap_init): Eliminate. - (cygheap_fixup_in_child): Add second argument to determine if we were - execed or not. In execed case, walk the heap, cleaning up any orphaned - blocks. - * cygheap.h: Add a "MAX" value to cygheap_types. Remove cygheap_init - declaration. Accommodate new argument to cygheap_fixup_in child. - * fork.cc (fork): Accommodate extra argument to cygheap_fixup_in_child. - * dcrt0.cc (dll_crt0_1): Ditto. Remove call to cygheap_init. - -Fri Sep 29 21:49:27 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_info::check): Set executable bit for a file if the - first two characters are 'MZ' to mirror spawn_guts check. - -Sat Sep 30 03:34:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h: Add `winME' to os_type symbols. - * dcrt0.cc (set_os_type): Identify Windows ME systems. - * (host_dependent_constants::init): Care for winME. - * uname.cc (uname): Ditto. - -Thu Sep 28 01:46:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_ifconf): Code cleanup. Split. Call os dependent - subfunctions instead. - (get_9x_ifconf): New function for 9X systems, called by get_ifconf. - (get_nt_ifconf): New function for NT systems, called by get_ifconf. - (get_2k_ifconf): New function for W2K systems, called by get_ifconf. - -Wed Sep 27 01:10:07 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Attempt to accommodate archaic windows quoting - mechanism when dealing with '\' and '"'. - -Mon Sep 25 20:47:04 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (quoted): Fix problem where ' quoted strings were skipped. - * fhandler.h (fhandler_socket::~fhandler_socket): Delete declaration. - * net.cc: Remove unnecessary "number_of_sockets" usage. - (fhandler_socket::fhandler_socket): Ditto. - (fhandler_socket::~fhandler_socket): Delete definition. - * spawn.cc (spawn_guts): Force first argument passed to CreateProcess - as a command line to be windows style. - -2000-09-25 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (av::dup_maybe): Make function void rather than void *. - * environ.cc (environ_init): Remember to reparse CYGWIN if envp is - supplied. - * heap.cc (_sbrk): Remember frame for signal handling. - * syscalls.cc (read_handler): Eliminate. - (_read): Move read_handler code here. Reorganize for one path through - 'ready_for_read'. - -Tue Sep 19 09:46:36 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Use actual program argument passed in for - argv[0] as originally suggested by Kazuhiro Fujieda - <fujieda@jaist.ac.jp>. - -Mon Sep 18 23:17:19 2000 Christopher Faylor <cgf@cygnus.com> - - * path.h: Create new input path flag PATH_NEEDDIR. - * path.cc (path::check): Detect trailing slash before converting to - windows path. Tell symlink_info::check to check for directory if one is - found. - (symlink_info::check): Set errno when path is not a directory if - pflags & PATH_NEEDDIR. - -Mon Sep 18 19:44:08 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_slave::write): Correct typo which - caused resetting of windows error to ERROR_IO_DEVICE to be ignored. - -Mon Sep 18 17:15:37 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::read_mounts): Don't delete mount entries of - which mount points have the cygdrive prefix. - * (mount_info::add_reg_mount): Properly catch errors on registry - operations. - * (mount_info::write_cygdrive_info_to_registry): Ditto. - * (mount_info::del_reg_mount): Cosmetic changes to be consistent - with other methods. - * (mount_info::add_item): Check arguments more precisely. - Increment nmounts only when registry operations succeed. - -Sun Sep 17 22:18:39 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Return 0 if given an address in - uncommitted memory. - -2000-09-16 Egor Duda <deo@logos-m.ru> - - * signal.cc (sleep): If interrupted by signal, return the - requested time minus the time actually slept. - -Fri Sep 15 22:30:40 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Just "core dump" if SIGSEGV in - signal thread. - * external.cc (fillout_pinfo): Fix compiler warning. - * sigproc.h: Eliminate special asm naming for sig_dispatch_pending. - * sigproc.cc (sig_send): Remove debugging statements. - -Wed Sep 13 14:56:47 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (av): Hide 'calloced' field and limit cstrduping to class - methods only. - (spawn_guts): Use methods for manipulating most newargv stuff. - -2000-09-13 Egor Duda <deo@logos-m.ru> - - * child_info.h (child_info_spawn::~child_info_spawn): Avoid - memory leaks in cygheap. - * spawn.cc (spawn_guts): Ditto. - -Wed Sep 13 14:28:03 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (quoted): Return next character after a quoted string when - not doing special quote processing. Also ensure that non-NULL is - returned in all circumstances. - -Wed Sep 13 10:26:16 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Ensure that argv[0] is correctly set to the - full path when a script is detected. Suggested by Kazuhiro Fujieda - <fujieda@jaist.ac.jp>. - -Tue Sep 12 22:33:30 2000 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Handle explicit pids correctly. - -Tue Sep 12 14:37:32 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Fix more slashdot madness. - -Tue Sep 12 12:29:29 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Make clean target remove *.d. - -Mon Sep 11 13:19:15 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Correctly deal with a "." parameter. - -Sun Sep 10 20:23:35 2000 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cheap): Just use any old address for the cygwin - heap. - * exceptions.cc (signal_exit): Don't terminate the main thread. Just - try to exit in this thread really quickly. - * signal.cc (kill_pgrp): Fix typo which caused pinfo structure to be - assigned incorrectly. - -Sun Sep 10 12:40:49 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Initialize thread and debug stuff before - handling exec/fork. - * dtable.cc (dtable::fixup_after_exec): Always clear out the read ahead - buffer whether closing or adjusting. - * path.cc (chdir): Avoid a compiler warning. - -Sat Sep 9 23:29:17 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Use the full path for cwd_win32. Consider attempts - to chdir to strings of dots > 2 to be an error. Pass 'dir' argument to - cygcwd.set. - (cwdstuff::set): Need to treat arguments from chdir differently. - * path.h (cwdstuff): Add an argument to set. - -Fri Sep 8 11:50:09 2000 Christopher Faylor <cgf@cygnus.com> - - * lib/_cygwin_crt0_common.cc: Add missing header files. - -Thu Sep 7 23:07:21 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigframe::set): Eliminate second argument. Default bp to - current frame pointer rather than using this within the function, which - is unstable when this method is not inlined. - * net.cc: Eliminate use of second argument to sigframe.set throughout. - * select.cc (cygwin_select): Ditto. - * sigproc.cc (sig_send): Ditto. - -Thu Sep 7 22:45:16 2000 Christopher Faylor <cgf@cygnus.com> - - Break out more header info into separate files. Use appropriate - header files throughout. - * shared.h: Remove. - * cygwin_version.h: New file. - * delqueue.h: New file. - * environ.h: New file. - * host_dependent.h: New file. - * perprocess.h: New file. - * registry.h: New file. - * security.h: New file. - -Thu Sep 7 12:14:43 2000 Christopher Faylor <cgf@cygnus.com> - - Split out tty and shared_info stuff into their own headers and use - throughout. Include sys/termios.h for files which need it. - * tty.h: New file. - * shared_info.h: New file. - * fhandler.h: Move inline methods that rely on tty stuff to - fhandler_console.cc. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set - output_done_event immediately after reading data to speed up tty output - processing. - (process_output): Set write_error to errno or zero. - (fhandler_tty_slave::write): Check previous write error prior to - writing to slave end of pipe. This allows tty output to be slightly - less synchronous. - * fhandler_console.cc (fhandler_console::tcsetpgrp): Moved here from - fhandler.h. - (fhandler_console::set_input_state): Ditto. - -Wed Sep 6 21:11:13 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (signal_exit): Reset all mutos owned by the main - thread. - * fhandler.h: Define *_output_mutex macros for serializing tty output. - (fhandler_termios): Remove restart_output_event. Define dummy output - mutex methods. - (fhandler_pty_master): Remove unneeded fixup_after_fork method. - * fhandler_termios.cc (fhandler_termios::line_edit): Acquire - output_mutex when CTRL-S is hit. Release it on CTRL-Q. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Remove - inappropriate OutputStopped test here. Just use the output mutex. - (fhandler_pty_master::fhandler_pty_master): Remove obsolete reference - to restart_output_event. - (fhandler_tty_common::close): Ditto. - (fhandler_pty_master::set_close_on_exec): Ditto. - (fhandler_pty_master::fixup_after_fork): Delete. - * tty.cc (tty::common_init): Ditto. - * sync.cc (muto::reset): New method. - * sync.h: Declare above method. - -Wed Sep 6 16:56:38 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc: Add include file for proper definitions. - * spawn.cc: Ditto. - * winsup.h: Define cfree to avoid newlib pollution. - -Wed Sep 6 14:11:51 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in (CFLAGS): Ensure that -MD is always added even when - CFLAGS is overwritten. - -Wed Sep 6 02:40:12 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (cwdstuff::get_initial): Keep caching alive. - (mount_info::conv_to_win32_path): Fill out relative path in failing - case. - -Tue Sep 5 21:36:15 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Deal with error return from cygcwd.get. - (normalize_win32_path): Ditto. - (mount_info::conv_to_win32_path): Ditto. - (cwdstuff::get): Set buf to NULL on error. - -Tue Sep 5 17:49:34 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (readlink): 'max' should be a 'min' or we'll suffer - buffer overflow. - -Mon Sep 4 22:53:58 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (cwd_win32): Eliminate. - (cwd_posix): Eliminate. - (cwd_hash): Eliminate. - (cwdstuff::init): Rename from cwd_init. - (cwdstuff::fixup_after_exec): Rename from cwd_fixup_after_exec. - (cwdstuff::get): Rename from get_cwd_inner. - (normalize_posix_path): Eliminate cwd argument. Just calculate when - necessary. - (normalize_win32_path): Ditto. - (mount_info::conv_to_win32_path): Eliminate cwd retrieval here. - (mount_info::conv_to_posix_path): Ditto. - (hash_path_name): Accommodate additional methods in cwdstuff. - (get_cwd_win32): Eliminate. - (getcwd): Use cwdstuff methods. Properly handle case where buf == NULL - and len < 0. - (cwdstuff::get_hash): New method. - (cwdstuff::get_initial): New method. - (cwdstuff::set): New method. - (cwdstuff::get): New method. - (cwdstuff::copy): New method. - * path.h: Move cwdstuff struct here. Add a bunch of stuff to cwdstuff. - Make cygcwd an extern. - * spawn.cc (spawn_guts): Use copy method to get copies of cwd info to - pass to execed process. - * dcrt0.cc (dll_crt0_1): Use cygcwd methods for cwd initialization. - -2000-09-03 Egor Duda <deo@logos-m.ru> - - * path.cc (readlink): Check if buffer length is positive. - Truncate output to buffer length. Don't terminate buffer - with '\0'. - -Sun Sep 3 00:38:40 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Don't free the new environment table after - we've just copied stuff to it. - -Sun Sep 3 00:07:32 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add cygheap.o. - * child_info.h: Add specific exec class. - * cygheap.h: New file. Contains declarations for cygwin heap. - * cygheap.cc: New file. Implements cygwin heap functions. - * dcrt0.cc (quoted): Simplify due to new method for passing arguments - between cygwin programs. - (alloc_stack_hard_way): Attempt to handle overlapped stack. - (dll_crt0_1): Move child_info processing here. Accommodate new method - for passing arguments between cygwin programs. Initialize cygwin heap. - Establish __argc and __argv variables. - (_dll_crt0): Move most of child_info processing to dll_crt0_1. - (cygwin_dll_init): Remove duplication. - * dtable.cc (dtable::extend): Allocate dtable using cygwin heap. - (dtable::build_fhandler): Ditto for fhandler type being constructed. - (dtable::dup_worker): Free new fhandler from cygwin heap on error. - (dtable::select_*): Don't assume that this == fdtab. - (dtable::linearize_fd_array): Delete. - (dtable::delinearize_fd_array): Delete. - (dtable::fixup_after_exec): New file. - (dtable::vfork_child_dup): Use cygwin heap. - (dtable::vfork_parent_restore): Ditto. - * dtable.h: Remove obsolete methods. Add new method. - * environ.cc (posify): Eliminate already_posix parameter and logic. - (envsize): New function. - (_addenv): Use envsize. - (environ_init): Accept an argument pointing to an existing environment - list. If supplied, allocate space for this in the the program's heap. - * fhandler.cc (fhandler_base::operator =): Move here from fhandler.h. - Use cygwin heap to allocate filenames. - (fhandler_base::set_name): Allocate/free names from cygwin heap. - (fhandler_base::linearize): Delete. - (fhandler_base::de_linearize): Delete. - (fhandler_base::operator delete): Free from cygwin heap. - (fhandler_base::~fhandler_base): Ditto. - * fhandler.h: Accommodate elimination of *linearize and other changes - above. - * fhandler_console.cc (fhandler_console::fixup_after_exec): Rename from - de_linearize. - * heap.h: New file. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Use cygwin - heap for name. fhandler_tty::fixup_after_exec): Rename from - de_linearize. - * fork.cc (fork): Call cygheap_fixup_in_child. - * heap.cc: Use declarations in heap.h. - * malloc.cc: Sprinkle assertions throughout to catch attempts to - free/realloc something from the cygwin heap. - * path.cc: Throughout, eliminate use of per-thread cache for cwd. Use - cwd_* functions rather than cwd_* variables to access cwd_win32 and - cwd_posix. - (cwd_win32): New function. - (cwd_posix): New function. - (cwd_hash): New function. - (cwd_fixup_after_exec): New function. - * path.h: Accommodate path.cc changes. - * pinfo.cc (pinfo_init): Accept a pointer to an environment table. - Pass this to environ_init. Eliminate old 'title' tests. - * pinfo.h: Accommodate above change in argument. - * spawn.cc (struct av): New method for building argv list. - (av::unshift): New method. - (spawn_guts): Allocate everything that the child process needs in the - cygwin heap and pass a pointer to this to the child. Build argv list - using new method. Eliminate delinearize stuff. - * thread.h: Eliminate _cwd_win32 and _cwd_posix buffers. - * winsup.h: Eliminate obsolete functions. Add envsize() declaration. - -2000-09-02 Egor Duda <deo@logos-m.ru> - - * Makefile.in: Remove "make check" support. It is now in - winsup/Makefile.in. - -Fri Sep 1 21:17:03 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (mychild): New function. - (proc_subproc): Use mychild() to determine if a specific pid is valid - for wait()ing. - -Fri Sep 1 16:57:44 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sigproc_init): Create wait_sig_inited without auto-reset - to avoid potential races. - (init_child_info): Avoid unneeded test. - -Fri Sep 1 16:51:26 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_info): Rename proc_exists which takes a pid to - "pid_exists". - * shared.h: Split out "child_info" stuff into a new header file and - use where necessary. - Declare pid_exists. - * child_info.h: New file. - -Thu Aug 31 16:06:21 2000 Christopher Faylor <cgf@cygnus.com> - - * errno.cc (set_errno_from_win_error): Actually use arguments to - strace_printf. - -2000-08-30 DJ Delorie <dj@redhat.com> - - * times.cc (gettimeofday): use GetSystemTimeAsFileTime to avoid a - conversion - (FACTOR): correct value - (genf): set milliseconds to zero, DOW to 4. - -2000-08-29 Egor Duda <deo@logos-m.ru> - - * grp.cc (getgroups): fail with EINVAL if array is not large - enough to hold all supplementary group IDs. - -Mon Aug 28 22:03:21 2000 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (_raise): New function. - * exceptions.cc (unused_sig_wrapper): Remove _raise. - * sigproc.h (class sigframe): Default frames to skip to zero or suffer - from exuberant optimization. - * fhandler_tty.cc (fhandler_tty::write): Set appropriate errno when - WriteFile to pipe fails. - -Fri Aug 25 23:44:48 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.h (pinfo): Un-inline release. - * pinfo.cc (pinfo::release): Move here from pinfo.h. - * sigproc.cc (proc_terminate): Remove bogus 'pinfo child' which caused - strange destruction of random regions of memory when destructor was - invoked. - -Fri Aug 25 21:25:32 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Move set_os_type. - (_dll_crt0): To here. - (cygwin_dll_init): And here. - * external.cc (fillout_pinfo): Use more foolproof method for scanning - for pids. - * pinfo.cc (set_myself): Eliminate myself_identity.init. - * sigproc.cc (wait_sig): Do it here instead to reduce the amount of - time where there could potentially be two processes with the same pid. - * spawn.cc (spawn_guts): Eliminate duplicate initialization. - * include/sys/cygwin.h: Mark unused PID_* elements. - -Fri Aug 25 21:49:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * exec.cc (_execve): Change definition according to declaration in - newlib/libc/include/sys/unistd.h. - -Thu Aug 24 22:17:19 2000 Christopher Faylor <cgf@cygnus.com> - - * external.cc (cygwin_internal): Add CW_INIT_EXCEPTIONS to allow cygwin - exception handling on threads not created by cygwin. - * sigproc.cc (proc_terminate): Don't release pinfo structs since we are - exiting. - * include/sys/cygwin.h: Add CW_INIT_EXCEPTIONS. - -Thu Aug 24 17:16:14 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (cygwin_select): Correct logic for "always_ready" fds or - when there is no wait specified. - * syslog.cc (pass_handler::set_message): Zero the buffer prior to - setting it. - -2000-08-24 Egor Duda <deo@logos-m.ru> - - * include/cygwin/core_dump.h: New file, contains structures used in - cygwin core core files. - * include/sys/procfs.h: New file, needed to autoconfigure cygwin core - dumps support in bfd. - -Thu Aug 24 13:50:15 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_thing): nobinmode should force O_TEXT. - (regopt): Use correct path to find LOCAL_MACHINE registry options. - * fhandler.cc (fhandler_base::open): Set binary mode only when binmode - == O_BINARY. - * pipe.cc (pipe): Pipe handling should rely on binmode not _fmode now - that the two are different. - -Thu Aug 24 13:21:09 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sys/cygwin.h (strace_printf_wrap): Force printing when - _STRACE_SYSTEM. - (strace_printf_wrap1): Ditto. - -Thu Aug 24 12:30:17 2000 Christopher Faylor <cgf@cygnus.com> - - * debug.h: Allow some debug defines for use in header files. - -Wed Aug 23 23:00:24 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Move exception list and constructor stuff - earlier in the process. Use new second argument to set_myself. - (cygwin_dll_init): Initialize exception list and constructor stuff - here. - (_dll_crt0): And here. Also, deal with inherited pinfo shared memory - region from parent. - * pinfo.cc (set_myself): Accept a second argument signifying the a - shared memory region, passed from an execing parent. - (pinfo_init): Ditto. - * pinfo.h: Ditto. - * shared.h (child_info): Add a handle field to pass to child. - * spawn.cc (spawn_guts): Create a shared handle to pass to an execed - child. - * winsup.h: Remove extraneous declaration. - -Wed Aug 23 10:51:57 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sys/cygwin.h: Protect class definitions. - -Tue Aug 22 13:57:36 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_info::check): Clear error on each iteration of - extension check. - -Tue Aug 22 11:23:59 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Don't include '.d' file if there are none generated yet. - -Tue Aug 22 11:08:11 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sys/cygwin.h: Declare some thread classes. - * include/mntent.h: Avoid declaring functions. - -Tue Aug 22 01:08:01 2000 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Eliminate inclusion of most of the cygwin .h files. Use .h - files only in sources which require them. - * Makefile.in: Generate dependencies with -MD option. - -Mon Aug 21 23:49:05 2000 Christopher Faylor <cgf@cygnus.com> - - * cygerrno.h: New file. Use this throughout whenever errno - manipulation is required. - * errno.cc: Use DWORD to hold Windows errors. - (geterrno_from_win_error): New function. - (seterrno_from_win_error): Use geterrno_from_win_error to convert - supplied windows error (suggested by Corinna Vinschen). - * path.cc (symlink_info): Add error element. - * path.cc (path_conv::check): Remove errno setting. Use new - symlink_info errno element to set path_conv error, where appropriate. - (symlink_info::check): Set error element rather than attempting to - manipulate errno. Add more checks for trailing / and /.. even though - they are currently useless. Avoid setting EINVAL. - -Mon Aug 21 23:49:05 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Correct check for trailing /. - -2000-08-21 DJ Delorie <dj@redhat.com> - - * include/cygwin/cygwin_dll.h (DECLARE_CYGWIN_DLL): hinstance, - not handle. - -Fri Aug 18 11:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::dup2): Extend fdtab if newfd is out of current - allocated bounds. - -Sat Aug 12 01:47:28 2000 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Properly trap exit removal of temp file. Remove debugging - statement. - -Sat Aug 12 01:37:56 2000 Christopher Faylor <cgf@cygnus.com> - - * poll.cc: Make winsup.h the first include file, re 2000-08-02 change. - -Sat Aug 12 01:33:12 2000 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Split out dtable definitions into separate header file. - * dtable.h: New file. - * sigproc.h: Eliminate pinfo.h usage here. Use it in source files that - need it. - -Sat Aug 12 01:08:11 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use dtable.o rather than hinfo.o. - -Sat Aug 12 00:47:11 2000 Christopher Faylor <cgf@cygnus.com> - - Rename hinfo -> dtable. Name the former dtable array 'fdtab'. - -Fri Aug 11 14:47:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc: Allow any descriptor and any number of descriptors. - Allocate fd_set struct sdynamically. - -Fri Aug 11 14:47:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc: Add bounds checking for file descriptors. Return POLLNVAL - if fd is invalid. Return POLLERR for each valid fd if cygwin_select - returned with error. - include/sys/poll.h: Change POLLERR comment according to above change. - -Thu Aug 10 21:54:29 2000 Christopher Faylor <cgf@cygnus.com> - - * syslog.cc (syslog): Use a less malloc-intensive method for allocating - the buffer. Also fix a buffer overrun. - -Thu Aug 10 15:31:39 2000 Christopher Faylor <cgf@cygnus.com> - - * winsup.h: Change strchr inline for strange gcc problem. - * select.cc (select_stuff::wait): Bounds check w4 array. - -Thu Aug 10 15:17:53 2000 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (readdir): Ensure that errno is *only* set when we've run out - of filenames. - * fhandler.cc (fhandler_disk_file::fstat): Use modern method for saving - errno, making it effective for the whole function. - -Tue Aug 8 22:25:39 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (allocfd_set): Zero allocated fd_set. - (cygwin_select): Move fd_set copying logic from ::wait to here. Use - common return through sell.poll. - (select_stuff::wait): Just return success or failure and let caller - fill in fd_set. - * pinfo.h (pinfo): Eliminate self-referential pointer to sidbuf since - pinfo structure exists at random locations now. - * fork.cc (fork): Use 'use_psid' element to control when the psid is - relevant. - * shared.cc (sec_user): Ditto. - * spawn.cc (spawn_guts): Ditto. - * uinfo.cc (internal_getlogin): Ditto. - * syscall.cc (seteuid): Ditto. Set use_psid element. - -Tue Aug 8 13:20:00 2000 Bob Wilson <bwilson@tensilica.com> - - * fhandler_serial.cc (tcsendbreak): "sleeptime" argument to usleep() - must be in units of microseconds, not milliseconds. - -Mon Aug 7 00:11:35 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/cygwin_dll.h: Remove extraneous (and incorrect) - declarations. - -Fri Aug 4 00:00:46 2000 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::find_unused_handle): Just check for table entry == - NULL since we are already bounds checked by default. - * thread.cc (ResourceLocks::Lock): Streamline this function since it is - called a lot. - (ReleaseResourceLock): Ditto. - -Thu Aug 3 20:44:39 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (fhandler_console::select_read): Call set_cursor_maybe - since select may block and cursor may not be visible. - * select.cc (fhandler_console::select_write): Ditto. - * select.cc (fhandler_console::select_except): Ditto. - -Thu Aug 3 09:01:14 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set - length field correctly when "need_nl". - -Wed Aug 2 22:58:07 2000 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (vfork): Store complete stack frame in vfork_save structure - for later recovery. - * spawn.cc (spawn_guts): Reorganize slightly to consolidate handling - when there is a CreateProcess error. - (_spawnve): Only longjmp back to vfork handling when a process has been - successfuly started. - * winsup.h (vfork_save): Extend to include frame info. Remove obsolete - cpplus conditionals. - -Wed Aug 2 15:14:51 2000 Christopher Faylor <cgf@cygnus.com> - - * strace.cc (strace::prntf): Make second argument the function name, - rather than use special format options. - (strace::vprntf): Ditto. - (getfunc): New function. - * include/sys/strace.h: Reflect above changes. - * smallprint.c (__small_vsprintf): Eliminate '%F' formatting. - * pinfo.cc (set_myself): Modify for new strace::prntf parameter. - * errno.cc (seterrno_from_win_error): Ditto. - * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Ditto. - * fhandler_tty.cc (fhandler_tty_common::__release_output_mutex): Ditto. - -Wed Aug 2 13:20:04 2000 Christopher Faylor <cgf@cygnus.com> - - * regexp/regexp.c: Add winsup.h. - -2000-08-02 DJ Delorie <dj@redhat.com> - - * winsup.h: take out protections of environ, errno, allow C use - * *.cc: put winsup.h before other headers (for __INSIDE_CYGWIN__); - use cur_environ() instead of just environ - * times.cc: remove import protections - * glob.c: add winsup.h - * localtime.c: ditto - * smallprint.c: ditto - * Makefile.in: don't __INSIDE_CYGWIN__ as it messes up profiling. - -Wed Aug 2 11:22:53 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sys/strace.h: Fix strace definition. - -Tue Aug 1 23:37:08 2000 Christopher Faylor <cgf@cygnus.com> - - * strace.h: Add kludgy workarounds to avoid using deprecated methods - for variable argument macros when possible. - * sigproc.cc: Throughout, use sigproc_printf rather than sip_printf. - * strace.cc (strace::prntf): Remove 'active' check, since callers are - supposed to ensure this. - (__system_printf): Remove. Subsumed by strace::prntf. - * winsup.h: Define "NEW_MACRO_VARARGS" to indicate when to use new - macro varargs capability. - -Sun Jul 30 13:54:35 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc: Remove VK_DIVIDE detection. - (get_nonascii_key): Simplify previous patch to return ascii char if it - is non-zero. Add a second "temporary buffer" argument to help with - thread safety. - * select.cc (peek_console): Pass a temporary buffer argument to - get_nonascii_key. - -Sat Jul 29 14:32:12 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc: Add VK_DIVIDE detection. Return virtual keycode - if it is not detected and it is less than ' '. - -Sat Jul 29 13:33:49 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Avoid trailing dot calculation when chdir == '/' - or we end up with an empty string. - -Sat Jul 29 12:11:33 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 5 due - to all of the changes below. - -Sat Jul 29 12:01:32 2000 Christopher Faylor <cgf@cygnus.com> - - Redefine process structure to avoid a fixed size table. Redefine - pinfo/_pinfo classes. Use these throughout. - * dcrt0.cc (dll_crt0_1): Accommodate set_myself argument change. - (__api_fatal): Accommodate _pinfo::record_death argument change. - * exceptions.cc (really_exit): Ditto. - (sig_handle_tty_stop): Use pinfo constructor to access process info. - (events_init): Don't create pinfo_mutex since it is no longer required. - * external.cc (fillout_pinfo): Use winpids class to iterate over all - system pids. - (cygwin_internal): lock_pinfo_for_update and unlock_pinfo are now - noops. - * fhandler_termios.cc (fhandler_termios::set_ctty): Use pinfo - constructor to access process info. - * fork.cc (fork): Reorganize to initialize child info after the child - has started since that is when we know the child's winpid, which is - necessary to allocate the pinfo shared memory. - * mmap.cc (recreate_mmaps_after_fork): Change arg type to _pinfo. - * pinfo.cc: Rename pinfo methods to _pinfo throughout. Eliminate - pinfo_list stuff. - (set_myself): Accept a pid argument now. Call pinfo initializer to - initialize myself. Detect when this is an "execed" process and create - an "indirect" pid block. - (pinfo_init): Accommodate set_myself arg change. - (procinfo): Remove. - (pinfo::lock_pinfo): Remove. - (pinfo::unlock_pinfo): Remove. - (pinfo::init): New method. Allocates shared memory space for process - pinfo structure. - (pinfo::record_death): Don't call locking functions. - (cygwin_winpid_to_pid): Simplify by using new pinfo constructor. - (EnumProcessesW95): New function for iterating over processes on - Windows 95. - (winpids::winpids): New constructor for winpids class. Sets up a list - of process ids. - (enum_init): Initialize w95/wnt pid enumerators. - * shared.cc (shared-info::initialize): Remove pid initialization. - * shared.h: Move pinfo stuff into pinfo.h. - (class shared_info): Remove pinfo_list element. - * signal.cc (kill_worker): Use pinfo constructor to access process - info. - (kill_pgrp): Ditto. Use winpids methods to access list of processes. - * sigproc.cc: Throughout, modify to use _pinfo where appropriate. - (proc_exists (pid_t)): New function. Determines if a process exists - based on the pid. - (proc_exists (_pinfo *p): Use new proc_exists function above. - (proc_subproc): Copy pinfo stuff around rather than _pinfo pointers. - Try to be careful about releasing shared memory when we don't need it - anymore. Remove pinfo locks. - (remove_zombies): Remove pinfo memory when zombie is going away. - * sigproc.h: Reflect _pinfo/pinfo changes in sigproc.cc. - * spawn.cc (spawn_guts): Eliminate pinfo *child argument. Reorganize - to only initialize child pinfo after process has been started and we - know the windows pid. - (_spawnve): Reflect spawn_guts changes. - * syscalls.cc (setpgid): Use pinfo constructor to access process info. - (getpgid): Ditto. - (internal_getlogin): Use _pinfo. - * winsup.h: Eliminate pinfo_mutex. Eliminate spawn_guts declaration - since it is static now. Reflect set_myself argument change. - * include/sys/cygwin.h: Add some PID_* enums to accommodate new pinfo - stuff. - -Sat Jul 29 12:13:27 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Update minor version for cygdrive changes - below. - -Sat Jul 29 11:59:29 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (parse_thing): Make binmode a DWORD. - * hinfo.cc (hinfo::init_std_file_from_handle): Use 'binmode' to - determine default open mode. - * winsup.h: Declare binmode. - -Sat Jul 29 00:16:35 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/cygwin_dll.h: Update for modern compilers. - * lib/cygwin_crt0.c: Inexplicably need to define alloca for newer - compilers. - * fhandler.h (fhandler_console): Add new method. - * fhandler.cc (fhandler_console::set_cursor_maybe): New method. - (fhandler_console::read): Set cursor if it has moved to make it - visible. - -Thu Jul 27 22:54:28 2000 Jason Tishler <jt@dothill.com> - - * dcrt0.cc (dummy_autoload): Add load statement for RegDeleteValueA. - * external.cc (get_cygdrive_prefixes): New function. - (cygwin_internal): Add CW_GET_CYGDRIVE_PREFIXES case. - * path.cc (mount_info::read_cygdrive_info_from_registry): Read system - cygdrive prefix if user one is undefined. - (mount_info::write_cygdrive_info_to_registry): Write cygdrive prefix to - the appropriate registry hive. Overwrite in-memory copy of cygdrive, - if appropriate. - (mount_info::remove_cygdrive_info_from_registry): New method. - (mount_info::get_cygdrive_prefixes): New method. - (cygwin_umount): Remove cygdrive prefix, if appropriate. - * registry.cc (reg_key::killvalue): New method. - * shared.h (class reg_key): Add killvalue, - remove_cygdrive_info_to_registry, and get_cygdrive_prefixes - declarations. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_GET_CYGDRIVE_PREFIXES. - -Thu Jul 27 23:33:32 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 4. - -2000-07-27 DJ Delorie <dj@redhat.com> - - * testsuite/winsup.api/winsup.exp: ignore stdout by default - * testsuite/winsup.api/crlf.c: non-verbose by default - - * winsup.h: prune out windows headers we don't normally need - * assert.cc: add wingdi.h and winuser.h - * fhandler_console.cc: ditto - * fhandler_windows.cc: ditto - * select.cc: ditto - * spawn.cc: ditto - * strace.cc: ditto - * tty.cc: ditto - * window.cc: ditto - * hinfo.cc: add winsock.h - * syscalls.cc: add winnls.h - * uinfo.cc: ditto - -Thu Jul 27 10:24:36 2000 Egor Duda <deo@logos-m.ru> - - * fhandler.cc (fhandler_disk_file::fstat): Allow block calculation to - succeed for files >= 2GB and <= 4GB. - -Wed Jul 26 16:05:04 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (signal_exit): Renamed from "really_exit". Always sets - EXIT_SIGNAL bit and reorganizes exit value for backwards cygwin - handling. - (handle_exceptions): Call signal_exit. Set "core dumped" bit. - (sig_handle): Call signal_exit. Set "core dumped" bit appropriately. - -Wed Jul 26 20:44:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (posify): Revert previous patch. - (_addenv): Remove check_null_empty_path from here. - (putenv): Call check_nullempty_path. - (setenv): Call check_nullempty_path for name as well here. - Don't report an error if value is empty string. - (environ_init): Revert usage of newp. - -Wed Jul 26 14:32:38 2000 Egor Duda <deo@logos-m.ru> - - * syscalls.cc (stat_worker): Make stat return correct st_blocks for - files with size bigger than 2Gb and less than 4Gb - -Wed Jul 26 17:43:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (lookup_name): Search on local machine first if - myself->domain is not empty. - -2000-07-26 DJ Delorie <dj@cygnus.com> - - * fhandler_console.cc (fhandler_console::read): Explicitly set cursor - to make it visible while waiting in WaitForMultipleObjects. - -Wed Jul 26 10:59:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc: Change name of passwd_in_memory_p to passwd_state. - Change type to enum. Change storage class to static. Adjust comments. - (read_etc_passwd): Set passwd_state to different values when loaded - from file in contrast to being emulated. - (search_for): Return default passwd entry if passwd is emulated or - it's a request for the current user. Otherwise return NULL. - -Tue Jul 25 21:50:42 2000 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (statfs): Use path_conv method to convert input path. - -Tue Jul 25 21:40:51 2000 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_link): Avoid extraneous call to - cygwin_conv_to_win32_path. - -Tue Jul 25 21:11:15 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (_addenv): New function. Subsumes functionality of - putenv/setenv. Does not allocate space for putenv case. - (putenv): Use _addenv to add a value to the environment. - (setenv): Ditto. - (environ_init): Don't malloc space for each entry in the environment - table. Just use the space from GetEnvironmentStrings. - (posify): Don't free the src argument since it is no longer malloced. - -Mon Jul 24 21:10:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (_link): Corrected previous patch. - -Mon Jul 24 13:26:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_random): Add members for managing - pseudo randomness. - * fhandler_random.cc: Rearrange. Use pseudo random number generator - as entropy source if system entropy isn't available and if device is - used as /dev/urandom. Allow initializing device by calling write(). - -Sun Jul 23 23:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h: Add comment. - -Sun Jul 23 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_raw): Add private member `varblkop' - to be set when variable blocksize mode is on. - * fhandler_raw.cc: Eliminate `\n' from trace output. - (clear): Set `varblkop' to 0. - (dup): Copy varblkop as well. - (writebuf): Care for variable blocksize. - (open): Ditto. - (raw_read): Ditto. - (raw_write): Ditto. - * fhandler_tape.cc (open): Ditto. - (ioctl): Ditto. Some cleanups. - -Sat Jul 22 18:40:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Kazuhiro Fujieda <fujieda@jaist.ac.jp>. - * winsup.h: Add new macros sys_wcstombs and sys_mbstowcs. - * syscalls.cc (_link): Replace calls to mbstowcs by call to - sys_mbstowcs. - * uinfo.cc (internal_getlogin): Replace calls to wcstombs and - mbstowcs by calls to sys_wcstombs and sys_mbstowcs. Replace - usage of constants by meaningful defines. Use result of - GetSystemDirectory for HOMEPATH and HOMEDRIVE as a last resort. - -Fri Jul 21 21:33:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (span_guts): Retrieve security attributes before setting - psid to NULL. - -Fri Jul 21 12:03:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (acl_worker): Use stat_suffixes in call to path_conv - just as in `stat_worker'. - -Wed Jul 19 22:24:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Don't restore impersonation in case - of _P_OVERLAY. Clean up slightly. Accommodate comments. - -Wed Jul 19 22:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * shared.h (class pinfo): New members `root' and `rootlen'. - * syscalls.cc (chroot): Set new root for process. - * path.cc (getcwd_inner): Add parameter to force use of - new root from chroot() call. - (ischrootpath): New macro. - (normalize_posix_path): Care for changed root dir. - (normalize_win32_path): Ditto. - (getcwd_inner): Ditto. - (chdir): Eliminate trailing path component consisting - entirely of dots. - * fork.cc (fork): Copy pinfo members regarding chroot(). - * spawn.cc (_spawnve): Ditto. - * dir.cc (opendir): Don't use computed win32 path if - chroot() took place. - -Mon Jul 17 22:21:34 2000 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (dll_list::alloc): Fix debugging output. - -Mon Jul 17 14:57:53 2000 Christopher Faylor <cgf@cygnus.com> - - Throughout, eliminate third argument to path_conv and use new PC_* - constants for second argument. - * dcrt0.cc (dll_crt0_1): Reorganize to allow more initialization prior - to returning due to dynamic loading. - * path.h: Generalize SYMLINK_* constants to PC_*. - (path_conv): Create a new method. Fold third argument into second. - * dll_init.cc (dll_list::alloc): Try harder to find space to allocate - dll struct. - (dll_dllcrt0): Don't check sanity if we've already called dll_crt0. - * path.cc (path_conv::check): Don't check for a null or empty path - unless specifically told with a flag setting. - (check_null_empty_path): New function, adapted from macro. - * syscalls.cc (_rename): Use already-determined file attributes rather - than checking again. - * lib/cygwin/cygwin_attach.dll.c (cygwin_attach_dll): Use a static - per_process structure since this is apparently supposed to be zeroed. - * lib/cygwin_crt0.c (cygwin_crt0): Zero per_process structure sent to - older DLLs. - -Mon Jul 17 19:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Eric Fifer <EFifer@sanwaint.com> - * poll.cc (poll): Fix erroneous negations. - -Mon Jul 17 17:56:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (setenv): Use __cygwin_environ instead of - environ after reallocating environment space. - -Sun Jul 16 20:23:21 2000 Christopher Faylor <cgf@cygnus.com> - - * _cygwin_crt0_common.cc: Undef 'environ' or suffer compiler error. - -Sun Jul 16 16:03:00 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc: Use new definition of "environ" throughout. - (environ_init): Explicitly initialize __cygwin_environ. - (cur_environ): New function. Detects when user has updated - their environment. - * exec.cc: Use 'environ' define throughout rather than __cygwin_environ. - * spawn.cc: Ditto. - * winsup.h: Declare cur_environ, main_environ, environ. - -Sun Jul 16 13:23:04 2000 Christopher Faylor <cgf@cygnus.com> - - * acconfig.h: Add support for NEWVFORK. - * config.h.in: Ditto. - * configure.in: Add --enable-vfork option. - * configure: Regenerate. - * dcrt0.cc (quoted): Detect and fix up quoted backslashes. - * sigproc.cc (proc_subproc): Correctly name handle of newly added child - process to avoid erroneous debugging messages about closing the wrong - handle. - -Sun Jul 16 02:30:09 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Use \ for quoting '"'. - * dcrt0.cc (quoted): Understand \ quoting for '"'. - -Sun Jul 16 00:32:58 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (build_argv): Strip quotes from argv[0] since it should - never be globified. - -Sat Jul 15 00:32:41 2000 Christopher Faylor <cgf@cygnus.com> - - * dll_init.cc (dll_list::alloc): Round correctly. Use VirtualAlloc - since shared file mapping is unnecessary. - (dll_list::detach): Release memory via VirtualFree since there we no - longer use shared file mapping. - -Fri Jul 14 22:40:22 2000 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::linearize_fd_array): Make max_used_fd an int so that - we can detect when there are no fds to pass. - * dcrt0.cc (host_dependent_constants::init): Revert Sat Mar 18 01:32:04 - 2000 change. - (dll_crt0_1): Set "cygwin_finished_initializing" flag. - (dll_crt0): Don't perform memcpy if uptr is already set to internal - structure. - (_dll_crt0): Remember location of programs envptr. - * dll_init.h (per_module, dll, dll_list): Revamp. - * dll_init.cc: Revamp. Use new classes. - * fork.cc (fork): Use new revamped dll, dll_list, and per_module stuff. - * environ.cc: Use __cygwin_environ throughout rather than the - user_data->envptr. - * exec.cc: Ditto. - * spawn.cc: Ditto. - * winsup.h: Declare update_envptrs, cygwin_finished_initializing. - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Revert previous - change. - * lib/cygwin_attach_dll.cc (cygwin_attach_dll): Always pass in own - per_process structure or we end up overwriting information from the - main program. - -Wed Jul 12 00:46:00 2000 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (thread_stub): Use impure_ptr in place of reent_data. - * dll_init.cc (dll_dllcrt0): Replace erroneous use of local symbol with - correct __cygwin_user_data->impure_ptr. - -Wed Jul 12 00:01:03 2000 Christopher Faylor <cgf@cygnus.com> - - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset - environ if already set. - -Mon Jul 10 19:07:03 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::read): Unicode interface - to ReadConsoleInput only exists on W2K, so use workaround from - Kazuhiro Fujieda <fujieda@jaist.ac.jp>. - -Mon Jul 10 11:30:00 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in (install): Install textmode.o as well as binmode.o. - * fhandler_console.cc (fhandler_console::read): Use UNICODE when - reading from the console and translate to ASCII from that. - -Sun Jul 9 21:52:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Close handle `hToken' only if it's not - copied from myself->token. - * syscalls.cc (seteuid): Replace CopySid by memcpy which is foolproof - here. - -Sun Jul 9 01:19:06 2000 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export _getmode and getmode to allow querying of binary - state of an fd. - * external.cc (cygwin_internal): Add handling of perfile_table setting. - * fhandler.cc (perfile_table): New global. - (fhandler_base::get_default_fmode): New method to return a file's - default mode based on its name. - (fhandler_base::open): Use get_default_mode method to determine a - file's mode. Record file mode in file flags. - * fhandler.h (fhandler_base): Declare get_default_fmode - * syscalls.cc (getmode): New function. - * sys/cygwin.h (__cygwin_perfile): New structure. - (cygwin_getinfo_types): Move outside of WINVER conditional. - (per_process): Move inside of WINVER conditional. - -Sat Jul 8 00:15:01 2000 Christopher Faylor <cgf@cygnus.com> - - * external.cc (cygwin_internal): Export __cygwin_user_data. - * include/sys/cygwin.h: Allow definition of per_process even when not - compiling with C++. - (cygwin_getinfo_types): Add CW_USER_DATA. - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Get - __cygwin_user_data pointer from cygwin_internal. If it doesn't exist, - return failure. Use either this pointer or passed in pointer - throughout. Clear forkee. - * lib/crt0.h: Accommodate argument changes to _cygwin_crt0_common. - * lib/cygwin_attach_dll.c (cygwin_attach_dll): Reorganize to allow use - of newer binaries with older DLLs. Detect older DLLs when - _cygwin_crt0_common returns 0 and allocate space for a per_process - structure on the stack. - * lib/cygwin_crt0.c (cygwin_crt0): Ditto. - -Fri Jul 7 10:31:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h: Hide internal data types in per_process - when not __INSIDE_CYGWIN__. - -Wed Jul 5 18:56:58 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (__cygwin_user_data): Initialize. - (dll_crt0_1): Eliminate user_data initialization. - (dll_crt0): Set up impure_ptr_ptr for older executables. - (cygwin_dll_init): Eliminate user_data initializations. - (__api_fatal): Don't check for user_data initialization. - * dll_init.cc (struct dll): Store entire contents of per_process rather - than just a pointer. - (add): Ditto. - (initOneDll): Don't check for user_data initialization. - (DllList::recordDll): Store contents of per_process argument. - (DllList::detachDll): Pass address of per_process field. - (DllList::initAll): Ditto. - (DllList::doGlobalDestructorsOfDlls): Ditto. - (DllListIterator::operator *): Ditto. - (dll_dllcrt0): Default to __cygwin_user_data if arg is NULL. - * include/sys/cygwin.h: Reorganize per_process to eliminate obsolete - fields and accommodate new way of initializing. - * lib/_cygwin_crt0_common: Initialize _impure_ptr from - __cygwin_user_data.impure_ptr. - -2000-07-04 Vadim Egorov <egorovv@mailandnews.com> - - * exceptions.cc (try_to_debug): Prevent recursive spawning of JIT - debugger. Treat special event from debugger as command to continue. - -Mon Jul 4 19:29:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Zero out `open_fds' as well. - -Mon Jul 4 1:22:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump API minor version to 24. - -2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * security.cc (read_sd): Eliminate OemToChar. - -Mon Jul 4 18:57:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc: New file. Implement `poll' system call. - * include/poll.h: Ditto. - * include/sys/poll.h: Ditto. - * Makefile.in: Add poll.o as dependency. - * cygwin.din: Add poll and _poll symbols. - -2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * dcrt0.cc (dll_crt0_1): Eliminate SetFileApisToOEM and CharToOem. - * (dummy_autoload): Add functions used in fhandler_console. - * fhandler_console.cc (fhandler_console::read): Use ENCHANCED_KEY flag - to distinguish extended keys. Translate an input character from the - OEM code page to the ANSI code page. - * (fhandler_console::write_normal): Translate output characters from - the ANSI code page to the OEM code page. - * syscalls.cc (_link): Use MultiByteToWideChar instead of OemToCharW. - -Mon Jul 3 16:09:16 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (stack_info::walk): Use method to find offset. - (handle_exceptions): Be more assertive in finding ebp for use under - W2K. Create a dummy stack frame for cases where program is dying and a - stack dump is being output. - (sig_handle): Fill out a GetThreadContext for use with a user-generated - "core dump". - -Mon Jul 3 10:53:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h: Remove SOCK_PACKET define since it's - not supported by Windows sockets. - -Sun Jul 2 21:50:48 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (user32_init): Add primitive guard against concurrent - attempts to call this function. Also add temporary debugging code to - display a message if the function is called multiple times. - (api32_init): Ditto. - -Sun Jul 2 10:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h: Define MAX_SID_LEN and new MAX_HOST_NAME. - * fork.cc (fork): Use above defines instead of numerical constants. - * shared.cc (sec_user): Ditto. - * shared.h (class pinfo): Ditto. - * syscall.cc (seteuid): Ditto. - * spawn.cc (_spawnve): Ditto. Eliminate conditional. - (spawn_guts): Set child->uid = USHRT_MAX when user context will be - changed in child process. - * uinfo.cc (uinfo_init): Check for myself->uid instead of myself->psid - to avoid reloading of /etc/passwd on process startup if ntsec is off. - Use above defines instead of numerical constants. - * security.cc: Move define for MAX_SID_LEN to winsup.h. - -Sun Jul 2 1:57:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (uinfo_init): Eliminate calls to read_etc_group() - and read_etc_passwd(). - -2000-06-28 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * assert.cc (__assert): Reduce dependency on newlib. - * exec.cc: Eliminate unnecessary inclusion of ctype.h. - * glob.c: Ditto. - * hinfo.cc: Ditto. - * init.cc: Ditto. - * strace.cc: Ditto. - * tty.cc: Ditto. - * grp.cc (parse_grp): Eliminate atoi. - * passwd.cc (grab_int): Ditto. - * grp.cc (getgroups): Eliminate str{n,}casecmp. - * path.cc (get_raw_device_number): Ditto. - * path.cc (sort_by_native_name): Ditto. - * spawn.cc (iscmd): Ditto. - * uinfo.cc (internal_getlogin): Ditto. - -Sat Jul 1 11:43:32 2000 Christopher Faylor <cgf@cygnus.com> - - * binmode.c (cygwin_premain0): Fix erroneous clearing of bit. - * textmode.c (cygwin_premain0): Ditto. - -Sat Jul 1 00:24:04 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (_dll_crt0): Renamed from dll_crt0 (). - * winsup.h: Accommodate above change. - * cygwin.din: Ditto. - * lib/cygwin_crt0.c: Ditto. - -Fri Jun 30 23:21:40 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use variables rather than configure constructs where - appropriate. - (LIBCOS): Find additional stub library stuff in their own subdirectory. - * dcrt0.cc: Convert user_data pointer to static __cygwin_user_data - area. - (do_global_ctors): Check magic_bisquit for initialization. - (dll_crt0_1): First group of premain functions prior to fd - initialization. Run second group before calling main. - (dll_crt0 ()): New function, called from new initialization code. - (dll_crt0 (per_process *uptr)): Call new dll_crt0 () function on - initialization. - * debug.cc (thread_stub): Initialize bottom of stack with per-thread - info. - * environ.cc (parse_thing): Use binmode global to control - CYGWIN=binmode behavior. - * fhandler.cc (fhandler_base::open): Allow explicit setting of __fmode - to O_BINARY or O_TEXT to override disk mount settings. - * libcmain.cc: Move to lib subdirectory. - * libccrt0.cc: Ditto. - * dll_main.cc: Ditto. - * dll_entry.cc: Ditto. - * getopt.c: Ditto. - * thread.cc (thread_init_wrapper): Call ExitThread explicitly rather - than returning, as a preliminary step towards placing per thread info - at the bottom of the stack. - * winsup.h: Move per_process class to include/sys/cygwin.h. Declare - new dll_crt0(). - * include/cygwin/version.h: Bump API minor version. - * binmode.c: New file. - * textmode.c: Ditto. - * perthread.h: Ditto. - * lib/_cygwin_crt0_common.cc: Ditto. - * lib/crt0.h: Ditto. - * lib/cygwin_attach_dll.c: Ditto. - * lib/cygwin_crt0.c: Ditto. - * lib/dll_entry.cc: Ditto. - * lib/dll_main.cc: Ditto. - * lib/getopt.c: Ditto. - * lib/libcmain.c: Ditto. - * lib/premain0.c: Ditto. - * lib/premain1.c: Ditto. - * lib/premain2.c: Ditto. - * lib/premain3.c: Ditto. - -Wed Jun 28 19:36:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid): Initialize pi.token before calling - internal_getlogin(). - * uinfo.cc (internal_getlogin): Use impersonation token instead - of process token in case of active impersonation. Add some comments. - (uinfo_init): Initializing myself->token and myself->impersonated - before calling internal_getlogin(). Add some comments. - -Mon Jun 26 18:32:41 2000 Christopher Faylor <cgf@cygnus.com> - - * windows.cc (setitimer): Round up when < 1000 usecs. - -Mon Jun 26 17:34:54 2000 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::dup2): Eliminate compiler warning. - -Mon Jun 26 11:25:29 2000 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::dup2): Guard against out of bounds newfd. - -Sat Jun 24 23:43:06 2000 Christopher Faylor <cgf@cygnus.com> - - * grp.cc (read_etc_group): Open file in text mode. - * pwd.cc (read_etc_passwd): Ditto. - * shared.h: Bump PROC_MAGIC. - -Sat Jun 24 19:30:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork): Fix error in copying SID pointer. - * spawn.cc (_spawnve): Ditto. - * passwd.cc: Remove static from `passwd_in_memory_p'. - (read_etc_passwd): Remove static. - * uinfo.cc: Move global declaration of `read_etc_group' and - `group_in_memory_p' into `uinfo_init'. - (internal_getlogin): Try to get SID from current process first. - (uinfo_init): Don't set uid and gid if `myself' has a valid SID. - Only load /etc/passwd and /etc/group in that case. - -Sat Jun 24 12:29:59 2000 Christopher Faylor <cgf@cygnus.com> - - * shared.cc (shared_info::initialize): Improve error message clarity. - * mkvers.sh: Eliminate debugging output. - -Thu Jun 22 17:50:59 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Autogenerate cygwin.def when appropriate. - * include/sys/cygwin.h: Correct prototype. - -Thu Jun 22 17:05:04 2000 Christopher Faylor <cgf@cygnus.com> - - * include/sys/cygwin.h: Don't define parts of this file that rely on - Windows headers unless the Windows header was previously included. - -Thu Jun 22 20:45:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (load_registry_hive): Use HKEY_USERS when checking - for existing user hive. - Use MAX_PATH instead of numerical constant for array size. - Use return code of RegLoadKeyA instead of GetLastError for error output. - -Thu Jun 22 14:27:04 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add new-libcygwin.a back to all_host target. - -Wed Jun 21 14:32:42 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add *.def to clean operation. - -Wed Jun 21 13:18:23 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add *.exe to clean operation. - -Wed Jun 21 01:02:38 2000 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Fix sed usage for older seds. - -Tue Jun 20 20:46:28 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Don't touch winver_stamp if mkvers.sh was unsuccessful. - -Tue Jun 20 17:41:30 2000 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Fix problem with handling of CVS tags causing .rc syntax - errors. - -Tue Jun 20 13:38:12 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Change to build the DLL during a cross-compiler build. - -Mon Jun 19 20:46:33 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (socket_cleanup): Shutdown I/O on dummy sockets prior to - closing them. - -Mon Jun 19 19:35:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Add load statements for `GetSidIdentifierAuthority' - and `RegLoadKeyA'. - * registry.cc (get_registry_hive_path): New function. - (load_registry_hive): Ditto. - * security.cc (convert_sid_to_string_sid): New function. - (get_ssid): Renamed to `convert_string_sid_to_sid'. - (get_pw_sid): Call `convert_string_sid_to_sid' instead of `get_ssid'. - (get_gr_sid): Ditto. - (get_admin_sid): Ditto. - (get_system_sid): Ditto. - (get_creator_owner_sid): Ditto. - (get_world_sid): Ditto. - * shared.h: New prototypes for `get_registry_hive_path' and - `load_registry_hive'. - * spawn.cc (spawn_guts): Set child->psid to NULL to force calling - `internal_getlogin' from child process in case of changing user context. - Call `load_registry_hive' in case of changing user context. - (_spawnve): Copy user infos only if user context remains the same. - * uinfo.cc: Add load statement for `NetUserGetInfo'. - Remove load statement for `NetGetDCName'. - (internal_getlogin): Rewrite to speed up process startup - and to correct user environment in case user context changes. - (uinfo_init): Call internal_getlogin only if myself->psid is NULL, - that is user context changes. - * winsup.h: Add prototypes for `convert_sid_to_string_sid', - `convert_string_sid_to_sid' and `get_pw_sid'. - -Sun Jun 18 13:42:50 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (set_name): Don't use 'unix' as name since this is defined - by gcc now. - * fhandler.cc (set_name): Ditto. - -2000-06-17 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * winsup.h (isabspath): Don't report `C:foo' as an absolute path. - -Sat Jun 17 13:51:48 2000 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Detect "cross-hosting" situation and set appropriate - variables in Makefile to avoid building excess stuff. - * configure: Regenerate. - * Makefile.in: Accommodate above change. - -Sat Jun 17 19:52:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo_init): Revert previous patch. - -Sat Jun 17 13:29:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo_init): Add missing initializers. - * uinfo.cc (internal_getlogin): Request domain infos only - when ntsec is ON. - -Fri Jun 16 19:27:27 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Just use library files from this tree when building - cygrun.exe. - * path.cc (chdir): Don't set cache to offending chdir. Change comment - to reflect current reality. - -Fri Jun 16 20:55:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Define symbols for `cygwin_logon_user' and - `cygwin_set_impersonation_token'. - * dcrt0.cc (dll_crt0_1): Eliminate superfluous conditional - statements. - Add load statements for `ImpersonateLoggedOnUser', `LogonUserA' - and `RevertToSelf'. - * fork.cc (fork): Care for correct impersonation of parent - and child process. - * security.cc (cygwin_set_impersonation_token): New function. - (cygwin_logon_user): Ditto. - shared.h (class pinfo): New members `orig_uid', `orig_gid', - `real_uid' nad `real_gid'. - spawn.cc (spawn_guts): Care for impersonation when starting - child process in a different user context. - * syscalls.cc (setgid): Call `setegid' now. Set real_gid. - (setuid): Call `seteuid' now. Set real_uid. - (seteuid): Functionality moved from setuid to here. Care for - correct impersonation. - (setegid): Functionality moved from setgid to here. - * uinfo.cc (uinfo_init): Initialization of additional pinfo - members. - (getuid): Return real uid. - (getgid): Return real gid. - (geteuid): Return effective uid. - (getegid): Return effective gid. - include/sys/cygwin.h: Add prototypes for `cygwin_logon_user' and - `cygwin_set_impersonation_token'. - include/cygwin/version.h: Bump API minor version to 22. - -Thu Jun 15 15:43:50 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Convert path to POSIX if it seems to - be a Windows path. - -2000-06-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::add_item): Eliminate a trailing backslash - included in a native path starting with '//[A-Za-z]/...'. - * path.cc (mount_info::del_item): Accept a native path as its target. - -Wed Jun 14 23:47:19 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (conv_envvars): Detect and convert all environment - variables used by libiberty's choose-temp.c - -Tue Jun 13 12:41:41 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::add_item): The previous patch can't handle - the case of overwriting a mount entry. - -Tue Jun 13 00:17:04 2000 Christopher Faylor <cgf@cygnus.com> - - * thread.h: Shorten "current_directory" variables to "cwd_*" - throughout. - * path.cc: Ditto. - (normalize_posix_path): Add some extra debugging info. - (chdir): Ditto. Store chdir'ed posix and MS-DOS directory names in - "cache" here rather than trying to derive them later. - -Sun Jun 11 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_random.cc (read): Call CryptAquireContext with - CRYPT_VERIFYCONTEXT. - -Thu Jun 8 22:49:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Erase two lines checked in - by mistake. - -Thu Jun 8 15:53:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Check for directory - to set O_DIROPEN on directories anyway. - -2000-06-07 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::init): Eliminate the mount_slash feature. - (mount_slash): Eliminated. - (mount_info::read_mounts): Eliminate looking up existing entries. The - loop for deleting cygpath entries is done only when such entries exist. - (mount_info::from_registry): Eliminate sorting. - (mount_info::add_item): Call add_reg_mount if necessary. Check nmounts - more precisely. Use strcasematch in looking up existing entries. - (mount_info::del_item): Call del_reg_mount if necessary. Use - strcasematch. Use memmove instead of memcpy. - (mount_info::import_v1_registry): Everything is done in this method. - (mount_info::to_registry): Eliminated. - (mount_info::from_v1_registry): Eliminated. - (cygwin_umount): Simply call del_item. - * shared.h: Modify the declaration of add_item and del_item. Remove the - declaration of from_v1_registry. - -Wed Jun 7 23:56:10 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 3. - -2000-06-07 DJ Delorie <dj@cygnus.com> - - * cygwin.din: add cygwin_dll_init - * dcrt0.cc (cygwin_dll_init): new - (dll_crt0_1): short circuit if manually loaded - * path.cc (mount_info::init): don't init if manually loaded - -Wed Jun 7 13:47:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/netinet/in_systm.h: New file. - * include/cygwin/in_systm.h: Ditto. - -Thu Jun 1 01:55:45 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc: Remove unneeded include. - * dcrt0.cc: Wrap LoadDLLfunc stuff in dummy function. - * init.cc: Ditto. - * uinfo.cc: Ditto. - -2000-05-31 DJ Delorie <dj@cygnus.com> - - * include/cygwin/version.h: use decimal, NOT octal - -Wed May 31 16:40:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Check for executable - even if ntsec is on if filesystem doesn't support ACLs. - -Wed May 31 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Use LoadDLLfuncEx for loading Crypto API functions - with parameter `notimp' set to 1. - -Tue May 30 16:58:33 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_win32_path): Previous patch was too - aggressive in adding a trailing slash. - -Mon May 29 20:31:01 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove libadvapi32.a. - * autoload.h: Add additional field to autoload block for handling - unimplemented functions. - (LoadDLLfuncEx): New function which accepts additional parameter for - controlling unimplemented function behavior. - (LoadDLLfunc): Use LoadDLLfuncEx. - * dcrt0.cc: Use new arguments for LoadDLLfunc. Add advapi32 routines. - (noload): Rewrite in assembler. Handle new unimplemented function - type. - * exceptions.cc: Eliminate another vestige of StackWalk stuff. - * net.cc: Use new arguments for LoadDLLfunc. - * uinfo.cc: Ditto. - -Mon May 29 20:18:47 2000 Christopher Faylor <cgf@cygnus.com> - - * config.h.in: Remove obsolete define. - * path.h (isdrive): New macro. - * dcrt0.cc (globify): Use new macro to determine if a string refers to - an MS-DOS drive. - * environ.cc (winenv): Ditto. - * spawn.cc (find_exec): Ditto. - * path.cc (get_raw_device_number): Ditto. - (mount_info::conv_to_posix_path): Ditto. - (chdir): Ditto. - (cygwin_posix_path_list_p): Ditto. - (cygwin_split_path): Ditto. - (path_conv::check): Move tmp_buf to beginning of function since it can - be used earlier in the loop. Use tmp_buf rather than 'root' to hold - root information. - (mount_info::conv_to_win32_path): Add trailing slash to end of mount - path when it translates to a drive. Add defensive code to avoid - writing beyond the end of 'dst'. - -Sat May 27 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_random.cc (read): Use CRYPT_MACHINE_KEYSET in - call to CryptAcquireContext() to serve users that did not - log in interactively. - -Fri May 26 11:16:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_BAD_NET_NAME to errno ENOSHARE. - -Fri May 26 02:23:35 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigframe::set): Accept a default frame pointer. - * sigproc.cc (sig_send): Use passed in frame pointer, if appropriate. - -Thu May 25 17:44:25 2000 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (rmdir): Use file attributes that have already been discovered - by path_conv. - -2000-05-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * dir.cc (rmdir): Correct the manner in checking the target directory. - -Wed May 24 21:59:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (writable_directory): Comment out previous code, - return always 1 for now. - (mkdir): Call set_file_attribute explicitely with S_IFDIR mode bit. - * syscalls.cc (chown_worker): Ditto. - (chmod): Ditto. - * security.cc (get_nt_attribute): Fix error in debug output. - Never set FILE_DELETE_CHILD for files. - Construct appropriate inherit attribute according to file type. - -2000-05-23 DJ Delorie <dj@cygnus.com> - - * syscalls.cc (_cygwin_istext_for_stdio): New, for newlib - * include/cygwin/version.h: Bump API number for detect old - programs using old getc/putc macros - -2000-05-23 DJ Delorie <dj@cygnus.com> - - * dir.cc (writable_directory): handle root directories - -Tue May 23 10:09:26 2000 Christopher Faylor <cgf@cygnus.com> - - * uname.cc (uname): Use a "s" to denote a snapshot to avoid confusion - with the number "5". - -Tue May 23 10:01:07 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_posix_path): Avoid putting a trailing - slash on a directory name when the ms-dos path spec is a root directory - of a device. - * registry.cc (reg_key::build_reg): Set 'key_is_invalid' flag rather - than using an INVALID_HANDLE_KEY. - (reg_key::get_int): Test for key validity before performing registry - operations. - (reg_key::set_int): Ditto. - (reg_key::get_string): Ditto. - (reg_key::set_string): Ditto. - (reg_key::kill): Ditto. - (reg_key::~reg_key): Ditto. - -Tue May 23 01:13:33 2000 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Use snapshot date as build date since it is more - interesting. - * uname.cc (uname): Detect if this is a snapshot build and add an "S" - to the version number. Report the snapshot date as the release date. - -Mon May 22 17:11:25 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (regopt): Scan HKLM if HKCU scan fails. - -Mon May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (rmdir): Care for misleading error messages - when trying to remove a directory on a samba share. - Eliminate superfluous else branch. - * syscalls.cc (_rename): Additional check for ERROR_FILE_EXISTS - if MoveFile fails. - -Sun May 21 20:51:44 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Move uinfo_init call to before sigproc_init to - avoid a race. - (noload): Add an extra argument for debugging. - * uinfo.cc (uinfo_init): Eliminate test for multiple calls. - (getlogin): Assume that uinfo_init has already been called. - -Sat May 20 01:34:57 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Add an argument to control whether - function just checks for validity. Flag module handle == 0 as - noninterrupible. - (call_handler): Always acquire and release ebp lock. Loop for only a - fixed amount of time attempting to grab mutos and find an interruptible - PC. - -2000-05-19 DJ Delorie <dj@cygnus.com> - - * syscalls.cc (setmode): change mode of any matching FILE* also. - -Thu May 18 17:28:19 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Remove external.h dependency. - * dcrt0.cc (sigthread::init): Move here from sigproc.h. - * sigproc.h (sigthread): Move init to dcrt0.cc. - -Thu May 18 01:28:02 2000 Christopher Faylor <cgf@cygnus.com> - - * select.cc (thread_pipe): Add paranoid check to ensure thread - termination. - * external.cc: Eliminate obsolete include. - * getopt.c (getopt_long): Fix compiler warning. - * shared.h: Moved PID_ definitions to include/sys/cygwin so that they - can be used by external programs. - * include/sys/cygwin.h: Move external definitions here. Include - sys/resource.h to avoid having to do this everywhere. - -Thu May 18 01:04:02 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigframe): Don't set frame info unless tid matches this - thread id. - -Wed May 17 23:13:32 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Initialize mainthread stuff here before - anything needs it. - * sigproc.cc (sigproc_init): Move mainthread initialization out of - here. - * sigproc.h (sigthread): Add init() method. - (sigframe): Don't try to initialize muto. - * sync.cc: Undef WaitForSingleObject to avoid recursion. - -2000-05-17 DJ Delorie <dj@cygnus.com> - - * testsuite/winsup.api/crlf.c: New - * testsuite/winsup.api/iospeed.c: New - -Wed May 17 01:05:52 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::cygdrive_posix_path): Don't add trailing slash - if referring to something like c:\. - * dcrt0.cc (dll_crt0_1): Move uinfo initialization prior to sig_send - initialization to give signal thread a chance to finish. - * debug.cc (WFSO): Move to sigproc.cc - (WFMO): Ditto. - * exceptions.cc (interruptible): Allocate slightly more space for - directory just for paranoia's sake. - (call_handler): Eliminate nonmain argument. Determine if main thread - has set a frame pointer and use it if so. - (sig_handle): Eliminate nonmain argument. - * net.cc: Record frame information in appropriate routines throughout. - * select.cc (select): Ditto. - * sigproc.cc: Use sigthread structure to record mainthread id - throughout. - (sig_send): Record frame information for signal handler. - (wait_sig): Reflect argument change in sig_handle. - (WFSO): Move here and record frame information for signal handler. - (WFMO): Ditto. - * sigproc.h: Implement new "sigthread" class. Implement "sigframe" - class for manipulating signal frame info. - * thread.cc (__pthread_kill): Use standard _kill() function rather than - calling sig_send directly. - * winsup.h: Eliminate ebp element from signal_dispatch class. - -Tue May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by John Rowley <wjr@bgs.ac.uk> - * fhandler_tape.cc (fhandler_dev_tape::ioctl): Check - for filemark feature on MTWEOF operation. - -Tue May 16 11:49:13 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/in.h (AF_INET6): Use correct in6_addr struct. - -Mon May 15 00:35:35 2000 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump DLL minor version number to 2. - -Sun May 14 23:41:24 2000 Christopher Faylor <cgf@cygnus.com> - - * shared.h: Bump PROC_MAGIC. - * include/cygwin/version.h: Bump API minor to accommodate two recent - exports. - -2000-05-13 Mumit Khan <khan@xraylith.wisc.edu> - - * include/cygwin/socket.h (AF_INET6): Use same value as winsock2. - -2000-05-12 Mumit Khan <khan@xraylith.wisc.edu> - - * include/cygwin/in.h (struct in6_addr): Fix spelling. - * include/cygwin/socket.h (AF_INET6, PF_INET6): Define macros. - (AF_MAX, PF_MAX): Bump to 32 to leave room for future expansion. - -Fri May 12 21:35:54 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (build_argv): Remove unneeded variable. - * select.cc (peek_pipe): Don't check for "ready" if it's already set. - (peek_console): Ditto. - (peek_serial): Ditto. - (peek_socket): Ditto. - (peek_windows): Ditto. - -Fri May 12 20:31:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (write_file, read_file): New wrapper functions - for WriteFile and ReadFile to get rid of ERROR_MEDIA_CHANGED - and ERROR_BUS_RESET in case of first access to tape. - (fhandler_dev_raw::raw_write): Use write_file instead of WriteFile. - (fhandler_dev_raw::raw_read): Use read_file instead of ReadFile. - -Fri May 12 01:04:57 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in (DLL_OFILES): Sort. - * fhandler_tty.cc (fhandler_tty_slave::send_ioctl_request): Eliminate. - (fhandler_tty_slave::ioctl): Rewrite to avoid races. - -2000-05-11 Mumit Khan <khan@xraylith.wisc.edu> - - * mmap.cc (list::erase): Increment loop counter. - (map::erase): Likewise. - -Thu May 11 00:54:00 2000 Charles Wilson <cwilson@ece.gatech.edu> - - * cygwin.din: insure that regsub() is included in - cygwin1.dll - -Tue May 9 18:59:41 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use appropriate VARIABLE to refer to cygwin.def in load - line. - -Thu May 9 23:53:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::puts_readahead): Change - while condition to disallow wild runs. - -Thu May 9 15:24:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by <lha@stacken.kth.se> - * window.cc (setitimer): Check for overflow condition - in tv_sec. - -Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Eric Fifer <EFifer@sanwaint.com> - * errno.cc: Change mapping of ERROR_BAD_PATHNAME to ENOENT. - -Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink::info): Treat non readable files - as normal non symlink files. - -2000-05-08 Paul K. Fisher <pfisher@plexware.com> - - * include/pthread.h (pthread_detach): Add missing prototype. - (pthread_join): same. - -2000-05-08 DJ Delorie <dj@cygnus.com> - - * fhandler.cc (lock): use signed math to allow checking ranges - properly. - -Sat May 6 23:22:25 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (insert_file): Eliminate unused parameter. - (build_argv): Ditto. - * exceptions.cc (stack): Eliminate unused parameters. - (stackdump): Ditto. - (cygwin_stackdump): Reflect above changes. - (sig_handle): Ditto. - * fhandler.cc (fhandler_base::set_inheritance): Use kludge to avoid - unused parameter warning. - -2000-05-06 Mumit Khan <khan@xraylith.wisc.edu> - - * include/wchar.h (wcscmp, wcslen): Fix prototypes. - * syscalls.cc (wcslen, wcscmp): Adjust. - -Fri May 5 23:32:07 2000 Christopher Faylor <cgf@cygnus.com> - - * errno.cc (errmap): Correct DIRECTORY mapping to ENOTDIR. - -2000-05-04 Mumit Khan <khan@xraylith.wisc.edu> - - * Makefile.in (install): Install profile startup and library. - -Wed May 3 21:54:11 2000 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Use -gstabs+ as compile debug option. This seems to - promote better handling of symbols. - * configure: Regenerate. - * delqueue.cc (delqueue_list::process_queue): Allow ERROR_ACCESS_DENIED - to indicate that a file is being shared under Windows 95. - * syscalls.cc (_unlink): Use full path name. Take special action for - Windows 95. Assume that an ERROR_ACCESS_DENIED indicates a sharing - violation unless it's on a remote drive. Punt if there is an - ERROR_ACCESS_DENIED on a remote drive. - -Wed May 3 18:07:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_BAD_NETPATH to new errno ENOSHARE. - (_sys_errlist): Add entry for ENOSHARE. - (strerror): Add case for ENOSHARE. - * syscalls.cc (stat_worker): Check for errno ENOSHARE. - -Wed May 3 17:28:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add dependencies for fhandler_random.o - * fhandler.h: Add device type FH_RANDOM. Add class - fhandler_dev_random. - * fhandler_random.cc: New file. Implementation of - fhandler_dev_random. - * hinfo.cc (build_fhandler): Add case for FH_RANDOM. - * path.cc: Add device names for random devices to - windows_device_names. - (get_device_number): Add if branch for random devices. - (win32_device_name): Add device name generation for - random devices. - winsup.h: Include <wincrypt.h>. - -2000-05-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::conv_to_win32_path): Previous patch - failed to set flags on a win32 path. - -Tue May 2 11:34:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (read_sd): Return 1 on success because we - can't rely on the returned SD size from GetFileSecurity. - -Tue May 2 2:22:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Add dynamic load code for `OemToCharA' from user32.dll. - * security.cc (read_sd): Call `OemToCharA' to make - `GetFileSecurity' happy on filenames with umlauts. - -Wed Apr 26 23:23:23 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_win32_path): Don't add a trailing slash when one - already exists. - (mount_info::conv_to_win32_path): Use existing code for dealing with - relative path names when input is already a win32 path. - -2000-04-26 DJ Delorie <dj@cygnus.com> - - * Makefile.in (install): install regexp.h - -Wed Apr 26 16:20:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Previous patch could succeed - in stating a non-existant file. - -Wed Apr 26 01:07:16 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Allocate slightly more space for - directory name check. Windows 95 seems to null-terminate the directory - otherwise. - (interrupt_on_return): Issue a fatal error if we can't find the - caller's stack. - -Tue Apr 25 16:50:54 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (find_exec): Accept a path_conv argument rather than a - buffer so that the caller can find things out about a translated path. - (perhaps_suffix): Ditto. - (spawn_guts): Allocate path_conv stuff here so that we can find out - stuff about the translated path (this is work in progress). - * environ.cc (environ_init): Accept an as-yet unused argument - indicating whether we were invoked from a cygwin parent or not. - (winenv): Ditto. - (posify): Accept an argument indicating whether the path has already - been translated. - * dlfcn.cc (check_access): Provide a path_conv buffer to find_exec. - * exec.cc (sexecvpe): Ditto. - * path.cc (path_conv::check): Rename from path_conv::path_conv. - (mount_item::getmntent): Recognize "Cygwin executable" bit. - (symlink_info::check): Remove debugging statements. - * path.h (class path_conv): Add iscygexec method. Rewrite constructor - to call "check" method to allow multiple operations on a path_conv - variable. - * pinfo.cc (pinfo_init): Pass argument to environ_init. - * shared.h: Bump PROC_MAGIC. - * winsup.h: Reflect above changes to function arguments. - * include/sys/mount.h: Add MOUNT_CYGWIN_EXEC type. - -Thu Apr 25 21:35:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Previous patch failed to stat - each drives root dir on 9X. - -Thu Apr 25 16:37:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Check for allow_ntsec - when determining exec flag. - * path.cc (symlink_info::check): Remove call to get_file_attribute(). - * security.cc (read_sd): Rename, ditto for variables to conform - to common naming convention. Use GetFileSecurity() instead of - BackupRead() to avoid permission problems when reading ACLs. - (write_sd): Same renaming as for read_sd(). - (alloc_sd): Change default permissions according to Linux permissions - for group and world when write permission is set. - * syscalls.cc (stat_worker): Avoid different permission problems - when requesting file informations. - -Thu Apr 25 10:50:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Avoid a warning in declaration inet_network. - -Mon Apr 24 17:38:25 2000 Thorsten Otto <t.otto@germanynet.de> - - * fhandler_console.cc (fhandler_console::read): Detect extended keycode - information for Windows 9x so that function keys will work correctly. - -2000-04-24 Vadim Egorov <egorovv@mailandnews.com> - - * net.cc (cygwin_inet_network): new function. - * cygwin.din (inet_network): new export - -Fri Apr 21 10:37:08 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Previous two patches were still - incorrect so rewrite this function to deal with trailing dots. - (mount_info::conv_to_win32_path): Just check for '/' where appropriate. - Eliminate nofinalslash call since it is handled in normalize_posix_path - now. - -Thu Apr 20 17:32:42 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Search further for stack info to - accommodate Windows 95. - -Thu Apr 20 16:39:18 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Previous change failed to take root - access into account. - -Thu Apr 20 11:26:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (_link): Check new link path for trailing dot. - -Thu Apr 20 00:32:03 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_base::hclose): New virtual method. - (fhandler_base::set_inheritance): Make this a method so that we can use - the appropriate close methods. - * fhandler.cc (fhandler_base::set_inheritance): Ditto. - * path.cc (normalize_posix_path): Eliminate /. trailing path - component. - -Wed Apr 20 0:19:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (setuid): Allow switching user context after - successful call to ImpersonateLogedOnUser (NT only). - (setgid): Ditto. - (seteuid): Call setuid. - (setegid): Call setgid. - -Wed Apr 19 22:00:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Use NetGetDCName() instead - of NetGetAnyDCName(). - -Mon Apr 17 12:08:47 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * syscalls.cc (_rename): Try MoveFile() at first before - MoveFileEx(..., MOVEFILE_REPLACE_EXISTING). - -Tue Apr 18 19:15:29 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (globify): Don't use \ quoting when apparently quoting a DOS - path spec, even within a quoted string. - -Sun Apr 16 18:54:21 2000 Christopher Faylor <cgf@cygnus.com> - - * init.cc (dll_entry): Use better check for determining when to set - thread specific stuff. - * syscalls.cc (_unlink): Continue with chmod'ing file even if - DELETE_ON_CLOSE succeeds, if file still exists. - -Fri Apr 14 23:51:15 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (keytable): Add support for keypad 5 key, which - MS seems to think is equivalent to VK_CLEAR. - * debug.cc (thread_stub): Eliminate initialization of reent stuff. - * init.cc (dll_entry): Move it here. - -Thu Apr 13 18:32:26 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (insert_file): Avoid freeing previously allocated argument - list. - * path.cc (symlink_info::check): Rename from symlink_check_one. Use - new symlink_info struct for communication. - (path_conv::path_conv): Use symlink_info structure for communication - with symlink_info::check. Fix typo which resulted in symbolic links - always being resolved. - (readlink): Use stat_suffixes array when resolving a link. - * syscalls.cc (stat_suffixes): Make global. - -Thu Apr 13 20:50:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump minor api to reflect export change. - -Thu Apr 13 8:48:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (conv_to_win32_path): Detect a win32 path - if path contains backslashes. - * cygwin.din: Add symbol for `lacl'. - * security.cc (ReadSD): Add debug output. - (acl_worker): New static function. - (acl): Call acl_worker now. - (lacl): New function. - (facl): Call acl_worker now. - * include/cygwin/acl.h: Add prototype for `lacl'. - -Wed Apr 12 18:48:33 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::path_conv): Ensure that suffix is correctly - copied to path when we've found a symlink but aren't following - symlinks. - -Sat Apr 8 00:46:14 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for - root dir determination or overflow an array. - -Sat Apr 8 00:08:53 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sigsave): Copy on fork so that we can restore correct - behavior in forked process. - (interruptible): Flag as interruptible when running in main process - module. - (interrupt_setup): Save return address and address of return address. - (signal_fixup_after_fork): New function. Uses above two values to - restore proper behavior to forked process. - (interrupt_on_return): Pass return address address to interupt_setup. - (interrupt_now): Pass NULL for return address address to - interrupt_setup. - * fork.cc (fork): Call signal_fixup_after_fork. - * shared.h: Lint cleanups. - * winsup.h: Ditto. - -Mon Apr 3 14:10:44 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (select_stuff): Eliminate use of 'total'. - * select.cc (cygwin_select): Ditto. - (select_stuff::wait): Use maximum size for w4 rather than calculating - what will fit. - -Mon Apr 03 13:58:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (parse_grp): Save empty array instead of - NULL in gr_mem if no supplementary group is given. - -Sun Apr 02 16:02:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chown_worker): Use previous uid/gid if - new uid/gid is -1. - -Fry Mar 31 22:55:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chown_worker): New static function with - chown functionality. - (chown): Call chown_worker with SYMLINK_FOLLOW. - (fchown): New function. Call chown_worker with SYMLINK_FOLLOW. - (lchown): New function. Call chown_worker with SYMLINK_IGNORE. - * cygwin.din: Add symbols for fchown, lchown. - -Fry Mar 31 11:18:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink): Call `set_file_attribute()' and - `SetFileAttributeA()' instead of `chmod()' to set - uid/gid correct. - -Wed Mar 29 22:49:56 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (select_record): Explicitly zero elements of this class. - (select_stuff): Ditto. - * select.cc (cygwin_select): Eliminate memset zero of sel. - -Tue Mar 28 16:45:42 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Use default rules when compiling cygrun.o. - * dcrt0.cc (host_dependent_constants::init): Limit non-NT platforms to - 32K chunks when copying regions during a fork. - * path.cc (symlink_check_one): Add temporary debugging output. - Simplify PATH_EXEC test. - * syscalls.cc (stat_suffixes): Null terminate this list. - -Sat Mar 25 20:46:39 2000 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_check_one): Recognize symlink settings from the - mount table. - * path.h: Make PATH_SYMLINK an alias for MOUNT_SYMLINK. - * syscalls.cc (stat_worker): Use extension search mechanism in - path_conv to look for .exe rather than trying to special case it here. - * mount.h: Make MOUNT_SYMLINK a real option. - -Sat Mar 25 00:22:32 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc: Add TMPDIR to the list of environment variables which are - converted to POSIX format. - * sigproc.cc (proc_terminate): Don't attempt to delete when a muto - pointer is NULL. - -Sun Mar 19 12:01:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives. - -Sat Mar 18 23:04:27 2000 Christopher Faylor <cgf@cygnus.com> - - * times.cc: Fix extern declarations for variables that are exported but - used by this modules. - -Sat Mar 18 01:32:04 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (host_dependent_constants::init): Eliminate DELETE flag - from shared constant. - -Sat Mar 18 01:24:25 2000 Christopher Faylor <cgf@cygnus.com> - - * delqueue.cc (delqueue_list::queue_file): Add some debugging. - * path.h (class path_conv): Add a char * operator for the most common - case. - * syscalls.cc (_unlink): Rewrite to use FILE_FLAG_DELETE_ON_CLOSE when - possible (i.e., on NT). - -Fri Mar 17 18:16:00 2000 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Eric Fifer <EFifer@sanwaint.com> - * fhandler.cc (fhandler_base::open): Call set_file_attribute() - only if a file is really created. - -Thu Mar 16 14:15:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_process_privileges): Remove `static'. - (get_nt_attribute): Returns uid and gid additionally. Remove call - to set_process_privileges(). - (get_file_attribute): Returns uid and gid additionally. Don't - call ntea if ntsec is ON. - (set_nt_attribute): Remove call to set_process_privileges(). - Don't call ntea if ntsec is ON. - (acl): Remove call to set_process_privileges(). - * dcrt0.cc (dll_crt0_1): Call set_process_privileges(). - * winsup.h: New prototype for set_process_privileges(), - changed prototype for get_file_attribute(). - * fhandler.cc (get_file_owner): Discard function. - (get_file_group): Ditto. - (fhandler_disk_file::fstat): Discard calls to get_file_owner() and - get_file_group(). - * path.cc (path_conv::path_conv): New debugging output for result - of GetVolumeInformation(). - (mount_info::conv_to_win32_path): Call backslashify() with pathbuf - instead of src_path. - * syscalls.cc (chown): Reformat slightly. - (chmod): Replace get_file_owner() and get_file_group() calls - by a call to get_file_attribute(). Discard local variable has_acls. - Reformat slightly. - (stat_worker): Root dir check now done by a call to rootdir(). - Don't call num_entries() on remote drives. - Discard local variable has_acls. - -Wed Mar 15 20:38:06 2000 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc: Map ERROR_NOACCESS to EFAULT. - -Wed Mar 15 14:25:38 2000 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Restore dependency on signal_arrived. It's - needed to wake up the WaitForSingleObject. - -Tue Mar 14 23:41:16 2000 Christopher Faylor <cgf@cygnus.com> - - Pipe changes throughout suggested by Eric Fifer <EFifer@sanwaint.com> - * debug.cc (threadname_init): Pass name of lock as arg 2 of new_muto. - * malloc.cc (malloc_init): Ditto. - * sigproc.cc (sigproc_init): Ditto. - * exceptions.cc (events_init): Ditto. - (call_handler): Eliminate special case for hExeced. Report locked - thread in debugging output. - * fhandler.cc (fhandker_pipe::fhandler_pipe): Propagate device type to - base class. - * fhandler.h (fhandler_pipe): Ditto. - * hinfo.cc (hinfo::build_fhandler): Pass specific type of pipe to - constructor. - * spawn.cc (spawn_guts): Eliminate dependency on signal when waiting - for subprocess. - * strace.cc: Remove obsolete #ifdef. - * sync.cc (muto::muto): Save the name of the muto. - (muto:~muto): Also release the muto. - * sync.h: Add a muto name field. - * select.cc (peek_pipe): Avoid doing a PeekNamedPipe on the write end - of a pipe. - -Sun Mar 12 01:14:33 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::get_readahead_into_buffer): New function. - * fhandler.h: Declare new function. Add extra argument to - process_slave_output. - * fhandler_console.cc (fhandler_console::read): Move read ahead code to - new function. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move - common code here. - (fhandler_tty_slave::read): Understand readahead. - (fhandler_pty_master::read): Move code to process_slave_output. - * select.cc (peek_pipe): Avoid performing certain checks when non-read - and on inappropriate fh types. - -Sat Mar 11 22:47:43 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::read): Don't even think about - breaking on interrupt if executing in a "cygwin" thread. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): - Streamline, simplify code. - * sigproc.cc (sig_send): Remove debugging statement. - -Fri Mar 10 13:20:50 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc: Set wait_sig priority to normal. - -Fri Mar 10 13:03:06 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (wait_sig): Add addtional debugging output. - -Thu Mar 9 15:25:01 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc: Eliminate oldstack CYGWIN option. - * exceptions.cc (sfta): Eliminate obsolete function. - (sgmb): Eliminate obsolete function. - (class stack_info): Remove MS method for walking the stack. - (stack_info::init): Just initialize required fields. - (stack_info::brute_force): Rename to stack_info::walk. - (handle_exceptions): Pass derived frame pointer to sig_send. - (interrupt_setup): Clear saved frame pointer here. - (interrupt_on_return): thestack is no longer a pointer. - (call_handler): Accept a flag to indicate when a signal was sent from - other than the main thread. Use saved frame pointer for determining - where to place signal handler call. - (sig_handle): Accept "nonmain" argument. Pass it to call_handler. - * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Change - debugging output slightly. - * (fhandler_tty_common::__release_output_mutex): Ditto. - (fhandler_tty_slave::read): Fix a comment, remove a goto. - * sigproc.cc (sig_send): Accept an optional frame pointer argument for - use when suspending the main process. sigcomplete_main is an autoreset - event now. Save frame pointer for non-main operation. - (wait_sig): Make sigcomplete_main an autoreset event. Eliminate - NOSIGQUEUE. Pass rc to sig_handle to signify if this was a nonmain - process. - * sigproc.h: Reflect change to sig_send argument. - * syscalls.cc (swab): Eliminate swab function since it is now available - in newlib. - * winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp. - -Tue Mar 7 13:31:10 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Eliminate sync_sig_send synchronization since - it didn't seem to affect the "bash hangs" problem. - -Tue Mar 7 13:17:56 2000 Christopher Faylor <cgf@cygnus.com> - - * mcount.c: Remove strace.h include. - -Tue Mar 7 00:29:34 2000 Christopher Faylor <cgf@cygnus.com> - - Throughout use strace class in place of individual functions and - variables. - * cygwin.din: Eliminate _strace_wm. - * sigproc.cc (wait_sig): Temporarily add more debugging output. - * include/cygwin/version.h: Bump minor api to reflect export change. - -Sun Mar 5 01:17:05 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Streamline to use only one call to - ResumeThread. - * sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore. - Remove priority setting since it didn't solve anything. - -Tue Feb 29 00:46:09 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (sig_send): Temporarily set priority to highest while - sending a signal. - -Mon Feb 28 11:23:29 2000 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (set_myself): Add build date to strace output. - -Mon Feb 28 11:17:30 2000 Eric Fifer <EFifer@sanwaint.com> - - * sigproc.cc (proc_subproc): Only clear wait event when not attending - to a signal. - -Mon Feb 28 00:08:09 2000 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Remove --enable-strace-hhmmss option. - * configure: Regenerate. - -Sun Feb 27 23:11:57 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (set_os_type): Record OS name string. - (getprogname): Eliminate obsolete function. - (dll_crt0_1): Move initial strace initialization output to set_myself. - * exceptions.cc (interruptible): Add debugging output. - (interrupt_setup): New function. - (interrupt_now): Use interrupt_setup to set up common interrupt handler - stuff. - (interrupt_on_return): Ditto. - (call_handler): Move signal_arrived arm and clear threads to region - where signalled thread is suspended or suffer races. - * pinfo.cc (set_myself): Output interesting information when strace is - first initialized. Initialize progname here. - * sigproc.cc (sig_dispatch_pending): Modify to ensure that flush signal - are sent synchronously. - * strace.cc (strace_vsprintf): Move code into strace program. - * uname.cc (uname): Use 'osname' global to construct cygwin name + - Windows type + version. - -Fri Feb 25 19:26:42 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Make a little more structured. - (call_handler): Allow signals to be sent even if signalled thread is - stopped. Change order of signal_arrived arming/waiting threads - clearing to eliminate a race. - (reset_signal_arrived): New helper function. - * malloc.cc (malloc_init): Use mutos so that signal handler can keep - track of who owns the lock. - (__malloc_lock): Ditto. - (__malloc_unlock): Ditto. - * sync.h (new_muto): Actually use a muto for the "buffer". - * Makefile.in: Fix a dependency. - -2000-02-25 DJ Delorie <dj@cygnus.com> - - * Makefile.in: fix "make check" support and cygrun. - -Thu Feb 24 15:56:00 2000 Christopher Faylor <cgf@cygnus.com> - - * syscalls.c (_read): Clear errno before doing any read operation. - -Thu Feb 24 14:45:06 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Use new muto linked list to look for - all potential mutos owned by suspended thread. Clear waiting threads - while thread is stopped. - (proc_subproc): Clarify debugging output. - * sync.h (class muto): Add 'next' field. - (new_muto): Keep linked list alive. - -Thu Feb 24 00:59:15 2000 Christopher Faylor <cgf@cygnus.com> - - Fix final round of gcc warnings relating to unused parameters. - * debug.cc (iscygthread): New function. - * debug.h: Declare it. - * exceptions.cc (set_process_mask): Flush pending signals. - (handle_sigsuspend): No need to flush pending signals. - (call_handler): Refine previous tests of muto ownership. Only clear - wait()'s when we have definitely responded to a signal. - * fhandler_console.cc (fhandler_console::read): Don't set EINTR if - executing in a "cygwin" thread. - * sigproc.cc (proc_subproc): Use second argument to control whether - CLEARWAIT actually sets "signalled" flag. - * sync.h (muto): Add 'unstable' method. - -Wed Feb 23 21:59:44 2000 Christopher Faylor <cgf@cygnus.com> - - * hinfo.cc (hinfo::extend): Clean up debugging output. - -Wed Feb 23 21:34:58 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Change method for determining if - something is interruptible. - (call_handler): Avoid suspending a thread if it owns a muto. Only set - signal_arrived if the thread was actually interrupted. - (events_init): Initialize module information needed by interruptible(). - * init.cc (dll_entry): Record module handle of main for use by - interruptible(). - (proc_subproc): Reorganize handling of terminated child so that the - bulk of the processing comes from the signal thread. - (wait_sig): Force processing of waiting threads if SIGCHLD is not - processed. - -Tue Feb 22 23:06:01 2000 Christopher Faylor <cgf@cygnus.com> - - Respond to more g++ warnings relating to initializing structures. - -Mon Feb 21 18:36:37 2000 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (set_inheritance): Revert previous patch which got rid of - 'name' parameter. - -Mon Feb 21 00:19:40 2000 Christopher Faylor <cgf@cygnus.com> - - Respond to a multitude of new g++ warnings. - -Sun Feb 20 22:10:21 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (getwinenv): Make __stdcall. - (winenv): Ditto. - * malloc.cc (strdup): New function. Occludes newlib version. - (_strdup_r): Ditto. - * winsup.h: Reflect above __stdcall changes. - -Sun Feb 20 21:31:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): Modify get_file_attribute - return value if FILE_ATTRIBUTE_READONLY is set. - -Thu Feb 17 11:00:23 2000 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (environ_init): Cosmetic change. - -Mon Feb 7 16:50:44 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: cygrun needs libshell32.a. - -Sun Feb 6 22:17:58 2000 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (proc_subproc): Simplify case for when a child process is - stopped since new signal handler ensures the desired behavior. - -Sun Feb 6 21:52:33 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Fix install target so that directories will be created - when necessary. - -Sun Feb 6 18:12:17 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: exceptions.cc should depend on autoload.h. - * exceptions.cc: Undef DECLSPEC_IMPORT prior to including imagehlp.h to - avoid defining StackWalk as "import". - (call_handler): Minor optimizations. - (sig_handle_tty_stop): Fix typo in previous checkin. - * sigproc.cc (sigproc_init): Ditto, for signal_arrived initialization. - -Sat Feb 5 15:37:37 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (isquote): Convert to inline function. - -Sat Feb 5 00:26:01 2000 Christopher Faylor <cgf@cygnus.com> - - Throughout, rename global_signal_arrived to signal_arrived. - Throughout, eliminate use of arm_signals and __signal_arrived. - Throughout, revert to use of simple call to WaitForSingleObject or - WaitForMultipleObjects. - * debug.h: Eliminate obsolete function declaration. - * exceptions.cc (sigWaitForSingleObject): Eliminate obsolete function - definition. - * fhandler.h: Reflect change to select_stuff wait method. - * fhandler_tape.cc (get_ll): Accommodate new w32api LARGE_INTEGER - definition. - * ntea.c (NTReadEARaw): Ditto. - (NTWriteEA): Ditto. - * security.cc (ReadSD): Ditto. - (WriteSD): Ditto. - * syscalls.cc (_link): Ditto. - * uname.cc (uname): Eliminate PPC switch. - -2000-02-01 Salvador Eduardo Tropea <salvador@inti.gov.ar> - - * include/io.h: add return type to setmode() - -2000-01-27 DJ Delorie <dj@cygnus.com> - - * include/netdb.h (h_errno): change __imp_ to dllimport - * cygwin.din (reent_data): add DATA - -Thu Jan 27 01:07:14 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_handler): Add debugging output. - * select.cc (MAKEready): Arm signals earlier. - * sigproc.cc (__signal_arrived:arm): Move debugging version of this - method here. - (__signal_arrived::release): Ditto. - * sigproc.h: Recognize debugging versions of above two methods. - (arm_signals::WaitForMultipleObjects): Don't release signal lock unless - signal arrived. - (arm_signals::WaitForMultipleSingleObject): Ditto. - (arm_signals::MsgWaitForMultipleObjects): Ditto. - -Thu Jan 27 00:19:26 2000 Christopher Faylor <cgf@cygnus.com> - - * sync.h (new_muto): Workaround change in gcc behavior. - -Wed Jan 26 12:57:13 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Ensure that all required libraries are built prior - to linking cygrun.exe. - -Tue Jan 25 21:26:57 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle): Crudely work around potential problem - when main thread has a lock but is killed by a fatal signal. - * fhandler_tty.cc (fhandler_pty_master::write): Don't perform line - editing on the pty master (so why do we need the second argument to - line_edit, then?) - * thread.cc: Reformat to GNU standards. - -2000-01-11 DJ Delorie <dj@cygnus.com> - - * ROADMAP: new - -2000-01-11 DJ Delorie <dj@cygnus.com> - - * fhandler_zero.cc: new, emulate /dev/zero - * testsuite/winsup.api/devzero.c: new, test /dev/zero - * Makefile.in: build fhandler_zero.o - * fhandler.h: add support for /dev/zero - * hinfo.cc: ditto - * path.cc: ditto - -2000-01-11 DJ Delorie <dj@cygnus.com> - - * mmap.cc (mmap): MSDN says *one* of FILE_MAP_*, fix flags for - MAP_PRIVATE. - -Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (acl_access): New function. - * syscalls.cc (access): Call acl_access if ntsec is on. - -Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (get_file_owner): Use of ReadSD() instead of - GetFileSecurity(). - (get_file_group): Ditto. - -Sun Jan 9 15:43:07 2000 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (struct thread_start): Add a flag to determine whether a - field is in use. Eliminate thread_start_ix since it was not - thread-safe. - (thread_stub): Use notavail flag to control whether the entry in - start_buf can be reused. - (makethread): Ditto. - -Sun Jan 9 20:18:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Rearrange order of ACE creation. - (setacl): Optimize creation of ACEs related to inheritance. Code - cleanup. - (aclcheck): Disable check for existance of DEF_)CLASS_OBJ. - -Sat Jan 8 18:42:32 2000 Christopher Faylor <cgf@cygnus.com> - - * mkvers.h: Reorg fix. - -Sat Jan 8 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add new acl API calls. - * grp.cc (getgroups): Change to work for any username. - * security.cc (get_id_from_sid): Change to work with acl API. - (is_grp_member): New function. - (get_nt_attribute): Rewritten. - (add_access_allowed_ace): New function. - (add_access_denied_ace): Ditto. - (alloc_sd): Rewritten. - (setacl): New function. - (getace): Ditto. - (searchace): Ditto. - (getacl): Ditto. - (acl): Ditto. - (facl): Ditto. - (aclcheck): Ditto. - (acecmp): Ditto. - (aclsort): Ditto. - (acltomode): Ditto. - (aclfrommode): Ditto. - (acltopbits): Ditto. - (aclfrompbits): Ditto. - (permtostr): Ditto. - (acltotext): Ditto. - (permfromstr): Ditto. - (aclfromtext): Ditto. - * syscalls.cc (access): Set errno again when needed. - * include/cygwin/acl.h: New file. - * include/sys/acl.h: Ditto. - -Sat Jan 8 14:46:19 2000 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add cygwin DLL specific CFLAGS define. - -Fri Jan 7 21:01:57 2000 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interrupt_on_return): Properly coerce assignment of - sigsave.func. - -2000-01-07 Mumit Khan <khan@xraylith.wisc.edu> - - * acconfig.h: New file. - * configure.in Add check for memset builtin. - (AC_CONFIG_HEADER): Use. - (STRACE_HHMMSS): Define instead of substituting. - (_MT_SAFE): Likewise. - (_CYG_THREAD_FAILSAFE): Likewise. - (DEBUGGING): Likewise. - (MT_SAFE): Substitute as a yes/no variable. - * Makefile.in: Remove DEBUGGING, STRACE_HHMMSS, and THREAD_FAILSAFE - variables and add DEFS. Update usage of MT_SAFE to reflect yes/no - values. Add config.h to winsup.h dependency. - (CFLAGS_CONFIG): Update. - (INCLUDES): Prepend `-I.'. - * utils/Makefile.in (INCLUDES): Likewise. - * winsup.h: Conditionally include config.h. - * thread.cc: Likewise. - * config.h.in: Generate new file. - * configure: Regenerate. - - -Fri Jan 7 16:21:01 2000 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0): Allow signal handling for dynamically loaded - case. - -Thu Jan 6 00:30:12 2000 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_check_one): Initialize local variable `unixattr' - before calling `get_file_attribute'. - * syscalls.cc (chown): Ditto. - * security.cc (get_nt_attribute): Eliminate attribute copying from - world to user/group in case of missing ACEs. - (alloc_sd): Set special rights for administrators group only if it's - neither owner nor group. - * utils/mkpasswd.c: Create entry for local group administrators (SID - 544). - -Thu Jan 6 00:21:31 2000 Christopher Faylor <cgf@cygnus.com> - - Change function calls to __stdcall throughout. - * exceptions.cc (handle_exceptions): Probe stack for return address to - use with new signal method. Fill out sigsave.cx with this information. - (call_handler): Use sigsave.cx if it is available, rather than trying - to find the context of the main thread. - (interrupt_on_return): Use address of context rather than - pass-by-reference. - (interrupt_now): Ditto. - -Thu Jan 6 00:21:31 2000 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgroups): Return supplementary groups now. - * include/limits.h: Define NGROUP_MAX as 16 now. diff --git a/winsup/cygwin/ChangeLog-2001 b/winsup/cygwin/ChangeLog-2001 deleted file mode 100644 index 140b2a9e9..000000000 --- a/winsup/cygwin/ChangeLog-2001 +++ /dev/null @@ -1,5337 +0,0 @@ -2001-12-31 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Strip path when installing library. - -2001-12-30 Christopher Faylor <cgf@redhat.com> - - * include/getopt.h: Fix define. - -2001-12-30 Christopher Faylor <cgf@redhat.com> - Ralf Habacker <Ralf.Habacker@freenet.de> - - * speclib: New file. - * Makefile.in: Create library versions of automode.o, textmode.o, and - binmode.o for easier use on command line. Create libpthread.a, libm.a, - and libc.a with subsets of exports found in libcygwin.a. - -2001-12-30 Ralf Habacker <Ralf.Habacker@freenet.de> - - * cygmagic: Eliminate unneeded use of 'tr' and 'bc'. - -2001-12-30 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (open_local_policy): Use POLICY_EXECUTE instead of - enumerating user rights. - -2001-12-29 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (open_local_policy): Initialize lsa handle to NULL. - Request only needed access rights in call to LsaOpenPolicy(). - (create_token): Check for NULL lsa pointer. - -2001-12-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add symbols for endutent(), getutent(), getutid(), - getutline(), setutent() and utmpname(). - * syscalls.cc (setutent): New function. - (endutent): Ditto. - (utmpname): Ditto. - (getutent): Ditto. - (getutid): Ditto. - (getutline): Ditto. - * include/cygwin/version.h: Bump API minor version. - -2001-12-26 Christopher Faylor <cgf@redhat.com> - - * cygmagic: Add define name to warning. - * dcrt0.cc (_dll_crt0): Check for changes in child_info size. - (multiple_cygwin_problem): Avoid "proc" errors when testing. Just - assume new cygwin proc. - * shared_info.h (mount_info): Add 'cb' element for sanity checks. - (shared_info): Ditto. - * child_info.h (child_info): Add fhandler_union_size element for sanity - checking. - * shared.cc (open_shared): Detect shared region size mismatch between - parent and child. - (shared_info::initialize): Detect shared region size mismatch with - expectation. - (memory_Init): Ditto. - * sigproc.cc (init_child_info): Correctly set cb in passed structure. - * shared.cc (open_shared): - -2001-12-26 Christopher Faylor <cgf@redhat.com> - - * include/getopt.h: Protect a declaratin. - -2001-12-26 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond::Signal): Use a separate flag for signal - detection and broadcast semantics. - (__pthread_cond_dowait): Ditto. - * thread.h (pthread_cond): New flag for testing when a waiter has - woken. - -2001-12-26 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Quote arguments to shell scripts. - (clean): Remove new *_magic.h autogenerated files. - -2001-12-25 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Autogenerate some header files which provide magic - numbers. Force dependencies for files which depend on autogenerated - headers to ensure that they are always built. - * child_info.h (child_info): Add new fields to accommodate new magic - number header stuff. - * dcrt0.cc: Rely on "child_info_magic.h" to ensure that correct - child_info magic numbers are used. - (dll_crt0_1): Temporarily remove _cygwin_testing_magic test. - (_dll_crt0): Do more testing on magic numbers from fork_info structure. - Call "multiple_cygwin_problem" where appropriate. - (multiple_cygwin_problem): Rename from multiple_cygwin_die. Issue a - warning or die, as appropriate based on cygwin version/magic number - mismatch. - * pinfo.cc (pinfo::exit): Don't attempt to dereference `this' if it - doesn't exist. This can happen when a fatal error occurs early in - process initialization. - * shared.cc: Rely on "shared_info_magic.h" to accommodate that new - magic number header stuff. - (shared_info::initialize): Use new magic number stuff, for shared - region. - (memory_init): Ditto, for mount table. - * shared_info.h: Accomodate new magic number stuff for shared region - and mount table. - * sigproc.cc: Rely on "child_info_magic.h" to accommodate new magic - number header stuff. - (init_child_info): Initialize new fields in child_info) to accomodate - magic numbers. - * winsup.h: Rename multiple_cygwin_die to multiple_cygwin_problem. - * include/cygwin/version.h: Define macros for manipulating version - magic. - * cygmagic: New shell script for generating magic numbers. - -2001-12-20 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump API minor version for below changes. - -2001-12-19 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (VPATH): Add regex directory. - (NM): new variable. - (OBSOLETE_FUNCTIONS): Ditto. - (NEW_FUNCTIONS): Ditto. - (install-headers): Install regex.h. - (install-man): New target. - (install): Use new target. - (DLL_OFILES): Add v8_reg* stuff. - (new-cygwin1.dll): Eliminate stamp-cygwin-lib creation. - (libcygwin.a): Remove obsolete functions from import lib. Add new functions. - * configure.in: Detect 'nm' tool. - * configure: Regenerate. - * cygwin.din: Export posix_reg* functions. Eliminate export of v8 reg* functions. - This is now handled in object files themselves. - * regex/*: New files. - * regexp/v8_*.c: New files, renamed from non v8_ equivalents. - -2001-12-17 Corinna Vinschen <corinna@vinschen.de> - - * include/getopt.h: Don't define getopt_long() and friends when - included through unistd.h. - -2001-12-17 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::init_std_file_from_handle): Avoid initializing - using an invalid handle. - -2001-12-16 David Billinghurst <David.Billinghurst@riotinto.com> - - * include/limits.h: Define LLONG_MIN, LLONG_MAX, ULLONG_MAX. - -2001-12-11 Christopher Faylor <cgf@redhat.com> - - * include/getopt.h: Add HAVE_DECL_GETOPT to save pain elsewhere. - -2001-12-10 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_serial::ev): New class member. - * fhandler_serial.cc (fhandler_serial::raw_read): Use class member for - event status. - * select.cc (peek_serial): Ditto. - -2001-12-07 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Use full path name for determining - attributes when /cygdrive/x/foo. - -2001-12-06 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Reset FH_CYGDRIVE if iterating through - path. - -2001-12-06 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Don't complain if /dev/x/foo when x - doesn't exist. - (mount_info::conv_to_win32_path): Keep translating when a /cygdrive is - found. Don't attempt to translate to a device name when devn == - FH_CYGDRIVE. - (cygwin_conv_to_win32_path): Set buffer to empty on error. - (cygwin_conv_to_full_win32_path): Ditto. - - * window.cc: Include unistd.h to verify definitions. - -2001-12-05 Christopher Faylor <cgf@redhat.com> - - * dir.cc (opendir): Detect error return from build_fhandler_from_name. - -2001-12-04 David Rothenberger <daveroth@acm.org> - - * net.cc (cygwin_getsockopt): Dereference optlen pointer when passing - to __check_null_invalid_struct_errno. - -2001-12-03 Christopher Faylor <cgf@redhat.com> - - * net.cc (cygwin_getsockopt): Allow NULL optval. - (cygwin_setsockopt): Ditto. - (cygwin_recvfrom): Allow NULL from. - - * path.cc (mount_info::read_cygdrive_info_from_registry): Don't write - cygdrive to registry if it doesn't exist. - -2001-12-03 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount_info::conv_to_win32_path): Avoid returning error if - cygdrive == '/'. - (mount_info::cygdrive_win32_path): Return 0 if invalid cygdrive path. - -2001-11-30 Christopher Faylor <cgf@redhat.com> - - * debug.cc (makethread): Eliminate unneeded function call. - * miscfuncs.cc (tls_ix): Predefine. - * perthread.h (set_reent): Eliminate. - (get_reent): Ditto. - * winbase.h (my_tlsalloc): Use global stack base pointer. Set newly - allocated location to NULL. - (my_tlssetvalue): Use global stack base pointer. - (my_tlsgetvalue): Ditto. - -2001-11-27 Christopher Faylor <cgf@redhat.com> - - * winsup.h: Reorganize to avoid use of experimental stuff. - * shortcut.cc: Move winsup.h first in include order. - -2001-11-27 Christopher Faylor <cgf@redhat.com> - - * cygwin.din (ualarm): New export. - * dcrt0.cc (_dll_crt0): Add experimental tls storage declaration. - (dll_crt0): Ditto. - * debug.cc (thread_stub): Ditto. - * thread.cc: Minor cleanup. - (__pthread_create): Add experimental tls storage declaration. - * miscfuncs.cc: Define tls index. - * winsup.h: Declare experimental tls storage. - - * window.cc (alarm): Use old timer return from setitimer. - (ualarm): New function. From Alexandr V. Shutko. - -2001-11-26 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (libcygwin.a): Use ar commands to build libcygwin.a since - adding an archive doesn't work the way we want it to. - -2001-11-24 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_cygdrive::readdir): Avoid reporting - inaccessible drives. - -2001-11-24 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_hstrerror): Allow s == NULL. - (cygwin_rcmd): Add parameter checking. - (cygwin_rexec): Ditto. - -2001-11-24 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_inet_ntoa): Add parameter checking. - (cygwin_inet_network): Return INADDR_NONE instead of 0 in case of - EFAULT. - (cygwin_hstrerror): Add parameter checking. - (cygwin_rresvport): Ditto. - (socketpair): Ditto. - * winsup.h (check_null_str): Add extern declaration. - -2001-11-24 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Tighten FH_CYGDRIVE check to avoid - matching trailing component, like other devices. - -2001-11-24 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (IsDebuggerPresent): Make conditional load since it is - not available everywhere. - - * path.cc (mount_info::conv_to_win32_path): Only consider /cygdrive to - be FH_CYGDRIVE, not /cygdrive/x. - -2001-11-24 Christopher Faylor <cgf@redhat.com> - - * net.cc (inet_makeaddr): Revert previous change. - -2001-11-23 Christopher Faylor <cgf@redhat.com> - - * path.cc (chdir): Allow 'cd /cygdrive'. - -2001-11-23 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::vfork_parent_restore): Add debugging statement. - - * exceptions.cc (try_to_debug): Spin only as long as we don't have a - debugger attached. - - * fhandler.h (fhandler_base::set_nohandle): New method. - (fhandler_base::get_nohandle): New method. - * fhandler.cc (fhandler_base::dup): Avoid duplicating handle if there - is no handle. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set nohandle - flag on dummy fd. - -2001-11-23 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Make intermediate library for eventual inclusion in - libcygwin.a - - * fhandler.h (fhandler_pipe::fhandler_pipe): Remove default argument - setting since it is no longer used. - - * miscfuncs.cc (check_null_str): New function. - (check_null_str_errno): Ditto. - * net.cc: Add defensive buffer checking throughout. - (cygwin_sendto): Protect against invalid fd. - (cygwin_recvfrom): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - * winsup.h: Declare a new function. - -2001-11-23 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (set_bits): Fix conditional for setting fd in exceptfds. - * dtable.cc (dtable::build_fhandler): Create fhandler_pipe using - correct device type. - * path.cc (get_devn): Set correct pipe device type from device name. - -2001-11-22 Christopher Faylor <cgf@redhat.com> - - * path.cc (conv_path_list): Fix wild indexing into path due to - conflicting methods for setting src pointer. - - * dir.cc (opendir): Only pass path_conv argument to opendir, since name - is already part of the fhandler. - * dtable.cc (dtable::build_fhandler): Accomodate new FH_CYGDRIVE type. - * fhandler.cc (fhandler_base::opendir): Nuke name argument. - * fhandler.h: Add FH_CYGDRIVE to "device" enum. - (fhandler_base::opendir): Nuke name argument. - (fhandler_disk_file::opendir): Ditto. - (fhandler_disk_file::fhandler_disk_file): Declare new method which - passes devtype through. - (fhandler_cygdrive): Add elements for tracking drives. - (fhandler_cygdrive::set_drives): Declare new method. - (fhandler_cygdrive::iscygdrive_root): Declare new method. - (fhandler_cygdrive::opendir): Declare new method. - (fhandler_cygdrive::readdir): Declare new method. - (fhandler_cygdrive::telldir): Declare new method. - (fhandler_cygdrive::seekdir): Declare new method. - (fhandler_cygdrive::rewinddir): Declare new method. - (fhandler_cygdrive::closedir): Declare new method. - (fhandler_cygdrive::fstat): Declare new method. - * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file): - Define new method which passes devtype through. - (fhandler_disk_file::open): Tweak debug output. - (fhandler_disk_file::opendir): Nuke first argument. Use info from - path_conv and class rather than calling fstat. - (fhandler_cygdrive::set_drives): New method. - (fhandler_cygdrive::iscygdrive_root): New method. - (fhandler_cygdrive::opendir): New method. - (fhandler_cygdrive::readdir): New method. - (fhandler_cygdrive::telldir): New method. - (fhandler_cygdrive::seekdir): New method. - (fhandler_cygdrive::rewinddir): New method. - (fhandler_cygdrive::closedir): New method. - (fhandler_cygdrive::fstat): New method. - * path.cc (iscygdrive_device): Assume cygdriveness is already verified. - (path_conv::check): Treat FH_CYGDRIVE "method" as a special case, - setting file attributes as needed. - (mount_info::conv_to_win32_path): Allow stand-alone /cygdrive, meaning - "the directory which contains all of the drives on the system". - (fillout_mntent): Use cyg_tolower for conversions. - (mount_info::cygdrive_win32_path): Replace unused argument with unit - number. - * shared_info.h (mount_info::cygdrive_win32_path): Reflect argument - change. - -2001-11-21 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_OFILES): Add fhandler_disk_file.o. - * cygheap.h (cygheap_fdnew::operator =): New operator. - * dir.cc: Add invalid struct checking throughout. Use methods for all - directory manipulation throughout. - * fhandler.cc: Move fhandler_disk_file stuff to own file. - (fhandler_base::opendir): New method. - (fhandler_base::readdir): New method. - (fhandler_base::telldir): New method. - (fhandler_base::seekdir): New method. - (fhandler_base::rewinddir): New method. - (fhandler_base::closedir): New method. - * fhandler_disk_file.cc: New file. - * fhandler.h (fhandler_base): Declare new virtual methods. - (fhandler_disk_file): Ditto. - (fhandler_cygdrive): New class. - - * path.cc (conv_path_list): Use strccpy to break apart path. - -2001-11-17 Nick Duffek <nick@duffek.com> - - * path.cc (conv_path_list): Copy source paths before modifying them. - -2001-11-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::clear): Don't reset unit. - * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Add debug - output. - -2001-11-15 Egor Duda <deo@logos-m.ru> - - * include/pthread.h (PTHREAD_COND_INITIALIZER): Define. - * thread.cc (__pthread_cond_destroy): Add support for - PTHREAD_COND_INITIALIZER. - (__pthread_cond_init): Ditto. - (__pthread_cond_broadcast): Ditto. - (__pthread_cond_signal): Ditto. - (__pthread_cond_dowait): Ditto. - (__pthread_mutex_init): Handle PTHREAD_MUTEX_INITIALIZER correctly, - don't return error when it's passed as parameter. - * winsup.h (check_null_invalid_struct): Call correct function. - -2001-11-14 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc: Add stdlib.h include for alloca declaration. - * poll.cc: Ditto. - * termios.cc: Ditto. - -2001-11-14 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_write): Only allow zero length when fd is valid. - -2001-11-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): Add setting access time - and creation time to last modification time for files on filesystems - not supporting multiple timestamps. - (fhandler_disk_file::fstat_helper): Set access time and creation - time in incoming Windows structure instead of in stat buf to avoid - incorrectly overwriting Epoch timestamp. - -2001-11-14 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h: Remove alloca definition since it's now defined through - inclusion of stdlib.h. - * lib/cygwin_crt0.c: Ditto. - -2001-11-13 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_write): Allow zero length as per SUSv2. - -2001-11-13 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Add HIDDEN file attribute if file has leading dot - and HIDDEN_DOT_FILES is defined. - * fhandler.cc (fhandler_base::open): Ditto. - * path.cc (symlink): Ditto. - * syscalls.cc (_rename): Ditto and remove HIDDEN file attribute if - new filename does not begin with a dot. - -2001-11-12 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::read): Revert 2001-10-23 - change to only honor keydown events. - -2001-11-11 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump version to 1.3.6. - -2001-11-10 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::build_fhandler): Don't increment console fd count - if new operation fails. Increment fork_fixup field here. - (dtable::dup2): Don't increment fork_fixup field here. - * net.cc (fdsock): Ditto. - -2001-11-08 Corinna Vinschen <corinna@vinschen.de> - - * select.cc: Set errno using set_sig_errno() throughout. - * signal.cc (signal): Always set SA_RESTART flag. - * syscalls.cc (_read): Revert previous patch. - -2001-11-08 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (fhandler_tty_slave::ready_for_read): Return 0 on EBADF. - * syscalls.cc (_read): If ready_for_read() failed, save errno from - being overwritten by signal handler call. - -2001-11-07 Corinna Vinschen <corinna@vinschen.de> - - * lib/getopt.c (getopt_internal): Reset optind to 1 only if optreset - is not set. - -2001-11-06 Christopher Faylor <cgf@redhat.com> - - * select.cc (fhandler_tty_slave::ready_for_read): Correct inverted - not_open test. - -2001-11-05 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump version to 1.3.5. - -2001-11-05 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::find_empty): Add input parameter check. - -2001-11-04 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::build_fhandler): Fix debug_printf to avoid SEGV - due to incorrect parameter placement. - -2001-11-04 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_pipe::broken_pipe): Renamed from saweof. - (fhandler_pipe::set_eof): Reflect above change. - * pipe.cc (fhandler_pipe::fhandler_pipe): Ditto. - (fhandler_pipe::read): Ditto. - (fhandler_pipe::hiteof): Ditto. - -2001-11-04 Christopher Faylor <cgf@redhat.com> - - * pipe.cc (fhandler_pipe::read): Narrow eof return to just the "broken - pipe" test. - -2001-11-04 Christopher Faylor <cgf@redhat.com> - - * select.cc: Add more comments throughout. Use bool 'true' where - appropriate throughout. - (fhandler_socket::select_read): Remove duplicate setting for *_ready - which inadvertently overrode previous, correct setting. - (fhandler_socket::select_write): Ditto. - -2001-11-03 Christopher Faylor <cgf@redhat.com> - - * select.cc (verify_console): New function. - (verify_windows): Ditto. - (fhandler_console::select_read): Really do need to verify that there is - something to read. - (fhandler_console::select_windows): Ditto. - -2001-11-03 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_base::ready_for_read): Remove unused argument. - (fhandler_tty_slave::ready_for_read): Ditto. - (select_record): Remove poll, initialize peek. - * select.cc: Remove all poll functions, throughout. Change second - argument of peek_* functions to 'bool' throughout. Specifically - initialize *_ready variables throughout. - (select_stuff::poll): Subsume previous poll functionality. - (peek_pipe): Don't grab guard mutex when in select loop. - select()/read() is racy by design so there is no need to worry about a - race in select(). - (fhandler_base::ready_for_read): Remove unused argument. - (fhandler_tty_slave::ready_for_read): Ditto. - * syscalls.cc (_read): Eliminate third argument in ready_for_read call. - -2001-11-03 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_supplementary_group_sidlist): New function. - (get_group_sidlist): Call get_supplementary_group_sidlist() to - retrieve list of supplementary groups SIDs from /etc/group and - add them to the user's group list. - -2001-11-03 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::read): Return just read ahead characters - if slow device. - * fhandler.h (fhandler_base::set_eof): New virtual method. - (fhandler_pipe::set_eof): New method. - * pipe.cc (fhandler_pipe::fhandler_pipe): Clear saweof flag. - (fhandler_pipe::read): Return immediately if hit eof. - (fhandler_pipe::hit_eof): Return true if saweof flag is set. - * select.cc (peek_pipe): Don't call PeekNamedPipe if we couldn't grab - the guard mutex. - -2001-11-02 Egor Duda <deo@logos-m.ru> - - * dll_init.h (class dll_list): Reorder functions to avoid compiler - "can't inline" warnings. - * security.h (class cygsid): Ditto. - * sigproc.cc (get_proc_lock): Ditto. - * sigproc.h (class sigframe): Ditto. - * sync.h (class muto): Ditto. - -2001-11-02 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_base::get_guard): Actually MAKE virtual as - previously indicated. - * pipe.cc (make_pipe): Remove extraneous set_errno. - * syscalls.cc (_open): Ditto. - * select.cc (peek_pipe): Need to check that there is still something to - read from the pipe after acquiring the mutex since another - process/thread could have eaten the input before we got to acquiring - the lock. (Thanks to Nick Duffek for this inspiration.) - -2001-11-01 Christopher Faylor <cgf@redhat.com> - - * fhandler.h: Change Windows 'BOOL's to c++ 'bool's for all variables. - * select.cc (fhandler_base::ready_for_read): Set read_ready to zero - prior to testing it or it will be uninitialized. - - * Makefile.in (CFLAGS): Move setting to Makefile.common. - -2001-11-01 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_fdmanip::isopen): Set appropriate errno if fd not - open. - * select.cc (fhandler_base::ready_for_read): Release an open guard - mutex when exiting with an error condition. - * syscalls.cc (_read): Check frequently for closed fd as a kludge until - something better is invented. - -2001-11-01 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::build_fhandler): Issue internal error on unknown - device. - * fhandler.cc (fhandler_base::close): Show both name and handle in - debugging output. - - * fhandler.h (fhandler_base::get_guard): New virtual method. - (fhandler_pipe::get_guard): New method. - (fhandler_socket::ready_for_read): Delete declaration. - (fhandler_pipe::ready_for_read): Ditto. - (fhandler_serial::ready_for_read): Ditto. - (fhandler_console::ready_for_read): Ditto. - (fhandler_tty_common::ready_for_read): Ditto. - (fhandler_windows::ready_for_read): Ditto. - (struct select_record::peek): Declare new method. - * select.cc (MAKEready): Delete. - (peek_pipe): Use get_guard method to retrieve potential guard mutex - handle. - (fhandler_base::ready_for_read): Rewrite as generic ready-for-read - handler. Should only be called for "slow" devices. - (fhandler_socket::ready_for_read): Delete definition. - (fhandler_pipe::ready_for_read): Ditto. - (fhandler_serial::ready_for_read): Ditto. - (fhandler_console::ready_for_read): Ditto. - (fhandler_tty_common::ready_for_read): Ditto. - (fhandler_windows::ready_for_read): Ditto. - (fhandler_pipe::select_read): Fill in new peek record in select_record - structure. - (fhandler_console::select_read): Ditto. - (fhandler_tty_common::select_read): Ditto. - (fhandler_serial::select_read): Ditto. - (fhandler_socket::select_read): Ditto. - (fhandler_socket::select_read): Ditto. - (fhandler_tty_slave::ready_for_read): Check for tty not open. Set - errnos appropriately. - * syscalls.cc (_read): Allow ready_for_read to set errno. - - * pinfo.cc (pinfo::init): Return spawn/NO_WAIT process as valid if it - is initializing. - * sigproc.cc (getsem): Adjust wait for process to initialize downward - to avoid huge waits. - -2001-10-31 Christopher Faylor <cgf@redhat.com> - - * environ.cc: Set reset_com to false to mimic linux behavior more - closely. - -2001-10-31 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::vfork_child_dup): Revert impersonation - before duplicating fhandler. - -2001-10-30 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (signal_exit): Weight the odds against the main thread - running when signal thread is exiting. - -2001-10-30 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sigproc_terminate): Don't signal main thread when exiting. - * sigproc.h (sigframe): Decorate some methods with `inline'. - (new_muto): Coerce pointer to new to void *. - -2001-10-30 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::fork_fixup): Pass old handle to - setclexec_pid. - -2001-10-30 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_fdmanip::cygheap_fdmanip): Clear fh. - (cygheap_fdmanip::isopen): New method. - * syscalls.cc (_read): Avoid accessing closed fd. - - * path.h (fe_types): New enum. - (path_conv::set_path): New method. - (find_exec): Change null_if_not_found argument to something more - generic. - * spawn.cc (find_exec): Default to returning the POSIX path rather than - the windows path, unless instructed otherwise. - (spawn_guts): Force call to find_exec to use native paths. - * dlfcn.cc (check_path_access): Accommodate new find_exec arguments. - * environ.h (win_env::get_posix): New method. - -2001-10-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::close): Add error handling. - -2001-10-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): Revert previous change. - -2001-10-30 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::dup2): Add some debugging. Use methods from - passed in class rather than cygheap->fdtab. - * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add - more debugging output. - (fhandler_socket::dup): Allocate new space for prot_info_ptr for - duplicated entry. - (fhandler_socket::close): Loop closesocket() as long as WSAEWOULDBLOCK - is returned. - * syscalls.cc (stat_worker): Always delete fh if it has been created. - -2001-10-29 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (is_group_member): Call NetLocalGroupGetMembers() for - local machine only. - (get_user_local_groups): Ditto for NetLocalGroupEnum(). - -2001-10-29 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::set_name): Set namehash here to catch - name changes. - (fhandler_base::open): Remove namehash setting. - (fhandler_base::fstat): Subtract 1 from arbitrary time setting to avoid - strange ls -l granularity problem. - -2001-10-29 Christopher Faylor <cgf@redhat.com> - - * select.cc (MAKEready): Remove extraneous select_read. - -2001-10-29 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Set environment variable $HOME - from either /etc/passwd or $HOMEDRIVE/$HOMEPATH if necessary. - -2001-10-29 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_serial::fhandler_serial): Change to only accept - unit argument. - * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto. - (fhandler_serial::open): Avoid else when previous clause is a return(). - * path.cc (get_devn): Alias /dev/ttyS0 -> /dev/com1, etc. - (get_device_number): Reallow standalone "com1" as a valid name for - /dev/com1. - -2001-10-26 Christopher Faylor <cgf@redhat.com> - - * select.cc (MAKEready): Check for read_ready in loop since select_read - could set it. - (peek_socket): Check ready/write/except specifically since they could - have been set even prior to peek_socket call. - -2001-10-24 Christopher Faylor <cgf@redhat.com> - - * shared_info.h (MOUNT_VERSION): Change to a smaller, still arbitrary - number. - * shared.cc (open_shared): Accept a number to denote the shared memory - region. - (memory_init): Use shared memory version as part of the object name of - the shared region. Ditto for the mount table. - * path.cc (CYGWIN_REGNAME): New define used in place of - CYGWIN_INFO_CYGWIN_REGISTRY_NAME throughout. - * external.cc (cygwin_internal): Implement CW_[GS]ET_CYGWIN_REGISTRY_NAME. - * cygheap.h (init_cygheap::cygwin_regname): New element. - -2001-10-23 Christopher Faylor <cgf@redhat.com> - - Ensure that all fhandler_*::read definitions are __stdcall throughout. - * fhandler.cc (fhandler_base::set_inheritance): Be more defensive in - debugging code. - * fhandler.h: Adjust regparms throughout to reflect passing 'this' - parameter. - * fhandler_console.cc (fhandler_console::read): Remove unneeded test. - Only honor "key down" events. - * miscfuncs.cc (strcasestr): Reorganize for efficient code use. - (check_null_empty_str_errno): Ditto. - (__check_null_invalid_struct_errno): Ditto. - (__check_invalid_read_ptr_errno): Ditto. - * syscalls.cc (_read): Return 0 when length == 0, as per Single UNIX - Specification. - -2001-10-22 Christopher Faylor <cgf@redhat.com> - - * debug.cc (set_errno): Return value of errno that was set, just like - the macro. - (setclexec_pid): Replace old handle with new handle. - * debug.h: Reflect change in arguments for setclexec_pid. - * fhandler.cc (fhandler_base::set_inheritance): Ditto. - (fhandler_base::fork_fixup): Ditto. - * cygerrno.h: Reflect return value change for set_errno. - -2001-10-22 Christopher Faylor <cgf@redhat.com> - - Remove 'cb' parameter and modify fhandler_* constructors throughout. - * dtable.cc (dtable::build_fhandler): Remove debugging output which - uses 'cb'. - * exec.cc (execvp): New function. - (execvpe): Ditto. - * fhandler.cc (fhandler_base::fhandler_base): Use constructor - initialization. - * fhandler.h (fhandler_tty_common::fhandler_tty_common): Ditto. - * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard): - Ditto. - * fhandler_console.cc (fhandler_console::fhandler_console): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Ditto. - * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto. - * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Ditto. - (fhandler_tty_slave::fhandler_tty_slave): Ditto. - (fhandler_pty_master::fhandler_pty_master): Ditto. - * fhandler_windows.cc (fhandler_windows::fhandler_windows): Ditto. - -2001-10-22 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Ian Ray <ian.ray@nokia.com>: - * syscalls.cc (seteuid): Unset environment variables HOMEDRIVE and - HOMEPATH before calling internal_getlogin(). - * uinfo.cc (internal_getlogin): Use default HOMEPATH and HOMEDRIVE - from environment if both are present, else query NetUserGetInfo(). - -2001-10-22 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_2k_ifconf): Change multiple IP address naming scheme - to Linux style. - -Sun Oct 21 19:04:37 2001 Alexander Gottwald <ago@informatik.tu-chemnitz.de> - - * net.cc (get_2k_ifconf): Added support for multiple IP addresses on - one interface. - -2001-10-22 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (__check_invalid_read_ptr_errno): Return error, if any. - -2001-10-21 Christopher Faylor <cgf@redhat.com> - - * resource.cc (fill_rusage): Perform paranoid zero structure passed to - GetProcessMemoryInfo. - -2001-10-22 Robert Collins <rbtcollins@hotmail.com> - - * autoload.cc: Autoload GetProcessMemoryInfo. - * resource.cc (fill_rusage): Calculate ru_maxrss and ru_majflt entries. - (Bug report on this from Guido Serassio in the squid project). - This requires including psapi.h. - -2001-10-20 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::alloc): Increase retry count to 1000. - -2001-10-20 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (__check_invalid_read_ptr_errno): New function. - * syscalls.c (_write): Validate that write buffer is accessible for - reading, not writing. - * winsup.h: Declare new function, increase regparmization of check_* - functions. - -2001-10-19 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (getcwd): Allow len == 0 when buf == NULL. - -2001-10-18 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_read): Validate input pointer. - (_write): Ditto. - (system): Ditto. - -2001-10-16 Frederic Devernay <Frederic.Devernay@sophia.inria.fr> - - * poll.cc (poll): Call cygwin_select() if any fd is valid. - -2001-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::open): Eliminate compatibility - code since no Win32 device names are used anymore. - * fhandler_tape.cc (fhandler_dev_tape::tape_set_blocksize): Allow - 0 as blocksize to indicate variable blocksize. - * path.cc (win32_device_name): Generate NT internal device names - using upper/lower case names for readability. - Generate \DosDevices\<letter>: device name for mount table - compatibility devices. - -2001-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::tape_status): Report - EOTWarningZoneSize in get->mt_eotwarningzonesize. - * include/cygwin/mtio.h: Define DEFTAPE. - (struct mtget): Add member `mt_eotwarningzonesize'. Add a comment. - * include/cygwin/version.h: Bump API minor version to 47. - -2001-10-16 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::fork_fixup): Guard against compiler - warning. - -2001-10-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add load statement for `NtOpenFile'. - * fhandler.h (fhandler_dev_raw::get_unit): New method. - (fhandler_dev_tape::norewind): Eliminate. - (fhandler_dev_tape::is_rewind_device): New method. - * fhandler_raw.cc (fhandler_dev_raw::open): Open new - fixed device name devices using NT internal method. - Keep calling fhandler_base::open() for old mount table - device mapping compatibility devices. - (fhandler_dev_raw::fstat): Eliminate. Settings are done - by fhandler_base::fstat() already. - * fhandler_tape.cc: Remove `norewind' usage throughout. - * ntdll.h: Define FILE_SYNCHRONOUS_IO_NONALERT. - Define struct _IO_STATUS_BLOCK. - Declare NtOpenFile(). - * path.cc (get_raw_device_number): Add new approach for - using fixed device names. - (win32_device_name): Ditto. - (get_device_number): Ditto. Require POSIX path to begin - with "/dev/". - (mount_info::conv_to_win32_path): Call win32_device_name() - instead of get_device_number() after evaluating mount points - to allow changing the win32 destination path again. - * security.cc (str2buf2uni): Remove `static' to be able to - call function from fhandler_dev_raw::open(). - * wincap.cc: Set flag has_raw_devices appropriately. - * wincap.h: Add flag has_raw_devices. - -2001-10-16 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_fdget::cygheap_fdget): Remove debugging operation - from set_errno. - -2001-10-16 Christopher Faylor <cgf@redhat.com> - - * mmap.cc (mmap): Assign 'fh' from cygheap_fdget. Use 'fh' everywhere. - -2001-10-15 Christopher Faylor <cgf@redhat.com> - - * cygerrno.h (set_errno): Define more informative version of this - function for debugging. - (__set_errno): Declare when DEBUGGING. - * cygheap.h (cygheap_fdget::cygheap_fdget): Add a flag to control when - errno is set. - * debug.cc (__set_errno): New function. - * fcntl.cc (_fcntl): Fix so that correct fd is used for second argument - to dup2. - * syscalls.cc (_cygwin_istext_for_stdio): Don't set errno here when - using cygheap_fdget. - -2001-10-15 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::fork_fixup): Don't protect handle. - - * dlfcn.cc: Fix to confirm to coding standards. - - Reorganize includes throughout to accommodate new cygheap.h usage. - * cygheap.h (cygheap_fdmanip): New class: simplifies locking and - retrieval of fds from cygheap->fdtab. - (cygheap_fdget): Ditto. - (cygheap_fdnew): Ditto. - * fcntl.cc (_fcntl): Use new method to lock fdtab and retrieve info. - * ioctl.cc (ioctl): Ditto. - * mmap.cc (mmap): Ditto. - * net.cc: Ditto, throughout. - * passwd.cc (getpass): Ditto. - * path.cc (fchdir): Ditto. - * pipe.cc (make_pipe): Ditto. - * sec_acl.cc (facl): Ditto. - * syscalls.cc: Ditto, throughout. - * termios.cc: Ditto, throughout. - -2001-10-15 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Use `wProcessorLevel' unless OS sets it wrong. - Use `dwProcessorType' then instead. - * wincap.cc: Set flag has_valid_processorlevel appropriately. - * wincap.h: Add flag has_valid_processorlevel. - -2001-10-14 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::build_fhandler_from_name): Use PC_FULL to - determine path name. - * path.cc (fchdir): Remove rel -> abs path conversion. - -Sun Oct 14 08:10:12 2001 Gary R. Van Sickle - - * fork.cc (fork_parent): Correct the "unable to allocate - forker_finished event" error message. It named the wrong event before. - -2001-10-13 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (load_wsock32): Declare dummy function to force loading - of winsock. - * fhandler.cc (fhandler_base::set_inheritance): Make debugging output - more verbose. - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Force loading - of winsock32 if winsock2 not available. - * net.cc (set_socket_inheritance): Use DuplicateHandle in all cases to - set inheritance correctly. - (fdsock): Use winsock2_active macro to determine when to set socket - inheritance. Remove fdtab resource locking since this function should - already be protected. - (cygwin_accept): Simplify logic. Ensure that fdtab unlock is not - called inappropriately. - (cygwin_rcmd): Use fdtab locking. - (cygwin_rresvport): Ditto. - (cygwin_rexec): Ditto. - * select.cc (peek_socket): Set errno appropriately if winsock select - fails. - -2001-10-13 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * winsup.h: Declare check_pty_fds. - * syscalls.cc (check_pty_fds): Rename from check_ttys_fds. Also check - pty master. - (setsid): Use check_pty_fds. - * dtable.cc (dtable::dec_console_fds): Add check on pty fds. - -2001-10-13 Ralf Habacker <Ralf.Habacker@freenet.de> - - * fhandler_dsp.cc (fhandler_dsp::ioctl): Return 0 for successful - SNDCTL_DSP_GETBLKSIZE operation. - -2001-10-13 Christopher Faylor <cgf@redhat.com> - - Remove obsolete 'name' arg from fhandler_* constructors throughout. - * winsup.h (winsock_active): New macro. - (winsock2_active): Ditto. - * autoload.cc (wsock_init): Use new macros to decide if winsock or - winsock2 is loaded. - (nonexist_wsock32): Dummy function to force winsock load. - (nonexist_ws2_32): Dummy function to force winsock2 load. - * fhandler.h (fhandler_socket::fstat): Declare new method. Currently - unused. - * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Check - that winsock2 is active before trying WSADuplicateSocketA. - (fhandler_socket::fixup_after_fork): Add extra check for - winsock2_active. Otherwise use iffy procedures for Windows 95. - (fhandler_socket::fixup_after_exec): Add debugging. - (fhandler_socket::dup): Add debugging. - (fhandler_socket::fstat): New method. - (fhandler_socket::set_close_on_exec): Attempt to perform iffy stuff on - Windows 95. - - * errno.cc (_sys_nerr): Work around compiler strangeness. - - * pinfo.cc (winpids::add): Add extra element at end of allocated array - for setting to NULL. - (winpids::enumNT): Ditto. - (winpids::init): Don't modify pidlist if it hasn't been allocated - (possibly due to malloc problem). - -2001-10-12 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (wsock_init): Reorganize slightly to accommodate a new - compiler. - -2001-10-11 Egor Duda <deo@logos-m.ru> - - * net.cc (cygwin_sendto): Use correct socket address when sending - data to AF_UNIX socket. - -Wed Oct 10 16:10:41 2001 Alexander Gottwald <ago@informatik.tu-chemnitz.de> - - * net.cc (get_95_ifconf): Using other registry values pointing to - correct networkdevice identification for Windows95. - -Tue Oct 9 22:22:45 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, rename PROC_FORK1 to PROC_FORK. - * child_info.h: Rename PROC_* to _PROC_*. Define PROC_* with - additional testing magic. Eliminate old PROC_FORK and rename - PROC_FORK1 to PROC_FORK. - * dcrt0.cc (_cygwin_testing_magic): New variable. Added to magic - number in proc_info. - (alloc_stack): Eliminate old PROC_FORK test. - (dll_crt0_1): Ditto. Use _PROC_* enums for test. Subtract - _cygwin_testing_magic from child_proc_info->type so that normal cygwin - programs invoked by test suite programs do not consider themselves to - be in a cygwin environment. - (_dll_crt0): Ditto. Move environment checks to initial_env function to - conserve on stack space. - (initial_env): New function. Checks for testing and debugging - environment variables. - * init.cc (cygwin_hmodule): Move declaration. - * winsup.h: Declare variables used for cygwin testing. - -Tue Oct 9 19:17:53 2001 Christopher Faylor <cgf@cygnus.com> - - * uinfo.cc (internal_getlogin): Reorganize slightly to minimize work in - default condition. - -Tue Oct 9 18:53:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Add missing case clash check. - -Mon Oct 8 01:47:27 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (dtable::build_fhandler): Allocate correct amount for given - fhandler class. - * fhandler.h (fhandler_union): Properly define rather than relying on - fhandler_console being "big enough". - -Mon Oct 8 00:25:18 2001 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Reset counter whenever we initialize the - pid list. - -Sun Oct 7 17:16:05 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Don't eat a '.' after a '\\' since it - has special meaning on NT. - - * syscalls.cc (access): Use stat_worker. - -Fri Oct 5 21:01:14 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::fork_fixup): Protect dup'ed handle and - record it as non-inheritable for debugging purposes in case there is a - subsequent fork or exec. - * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Allow - fork_fixup to call ProtectHandle. - -Fri Oct 5 14:22:47 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (get_raw_device_number): Correct length arguments for - wdeveqn. - -Fri Oct 5 11:05:32 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (getcwd): Allow NULL first argument. - -Fri Oct 5 00:31:35 2001 Christopher Faylor <cgf@cygnus.com> - - * heap.h (inheap): Check for NULL. - -Thu Oct 4 23:17:49 2001 Christopher Faylor <cgf@cygnus.com> - - Add second path_conv * argument to fstat()s throughout. - * fhandler.h: Change read and fstat to regparm/stdcall throughout. - (fhandler_base::fstat): Just declare. Don't define. - (fhandler_disk_file::fstat_helper): Declare. - * fhandler.cc (fhandler_base::fstat): Move here from fhandler.h, adapt - from former stat_dev(). - (fhandler_disk_file::fstat): Move most of the disk-file-specific logic - from stat_worker to here. Use fstat_helper to derive final fstat - output. - (fhandler_disk_file::fstat_helper): New method, renamed from former - fstat method. - (num_entries): Moved here from syscalls.cc. - * fhandler_mem.cc (fhandler_dev_mem::fstat): Use base class to - initialize most stuff. Invert has_physical_mem_access test for - establishing permissions. - * fhandler_raw.cc (fhandler_dev_raw::fstat): Eliminate unneed test and - memory clearing. Use base class to initialize most stuff. - * syscalls.cc (stat_dev): Eliminate. - (stat_worker): Simply call fstat method to generate fstat output. Move - all device specific code to appropriate fstats. - - * dir.cc (opendir): Pass correct arg to stat_worker to allow following - symlinks. - -Thu Oct 4 21:37:57 2001 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (perhaps_suffix): Return NULL on non-existence of file as - well as "directoryness". Previous code modified on 2001/09/30 actually - had an arguable bug which was unmasked by the change on that day. - -Thu Oct 4 20:52:42 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Return ENOTDIR when leading device and - trailing component. - -Thu Oct 4 18:49:23 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (stat_worker): Make global. Accept path_conv parameter - for passing information back to caller. - * winsup.h: Declare stat_worker. - * dir.cc (opendir): Use stat_worker rather than stat and pass path_conv - parameter to stat_worker for later inspection. - -2001-10-04 Karellen (karellen@boreworms.com) - - * syslog.cc (syslog): Teach syslog about syslog priorities other than - LOG_ERR, LOG_WARNING and LOG_INFO - -Thu Oct 4 15:50:03 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Don't perform file system or rootdir - checks on devices. - -Wed Oct 3 19:40:36 2001 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Don't close hexec_proc if it is NULL. - - * fork.cc (vfork): Add debugging statements. - - * path.cc (get_device_number): Make static. Rewrite to inspect both unix - and windows paths. - (get_raw_device_number): Just check for parts of raw device that we - care about. - (get_devn): New function, pulled from get_device_number. - (win32_device_name): Accommodate arg changes to get_device_number. - (mount_info::get_device_number): Call get_device_number on translated - Windows path. - - * spawn.cc (spawn_guts): Don't treat P_VFORK differently from P_NOWAIT. - Add handle to child's shared region to child so that it will be - preserved if the parent goes away. - * fhandler.h: Throughout, simplify to one open method for all fhandler - classes, requiring a path_conv first element. - * fhandler.cc (fhandler_base::open): Remove obsolete method. - Generalize to require path_conv * as first argument. - (fhandler_disk_file::open): Remove obsolete method. - (fhandler_disk_file::open): Use path_conv pointer rather than - reference. - * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Use new open - method. - (fhandler_dev_clipboard::open): Accommodate new argument for open - methods. - * fhandler_console.cc (fhandler_console::open): Ditto. - (fhandler_console::dup): Use new open method. - (fhandler_console::fixup_after_fork): Ditto. - (fhandler_console::fixup_after_exec): Ditto. - * fhandler_dsp.cc (fhandler_dev_dsp::open): Accommodate new argument for - open methods. - * fhandler_floppy.cc (fhandler_dev_floppy::open): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::open): Ditto. - * fhandler_random (fhandler_dev_random::open): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::open): Ditto. - * fhandler_serial.cc (fhandler_serial::open): Ditto. - * fhandler_tape.cc (fhandler_dev_tape::open): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - (fhandler_pty_master::open): Ditto. - * fhandler_windows.cc (fhandler_windows::open): Ditto. - * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. - * fhandler_socket.cc (fhandler_socket::set_connect_secret): Accommodate - new argument for open methods. - * syscalls.cc (_open): Ditto. - (stat_worker): Ditto. - -Tue Oct 2 23:49:18 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cfree): Remove malloc debugging probe. - * dlmalloc.c (errprint): Remove abort() call which causes interesting - error message printing to abort prematurely. - * environ.cc: Sprinkle MALLOC_CHECKs liberally throughout. - (_addenv): Allocate two empty elements at end of environ to - (apparently) work around problems with some buggy applications. - (winenv): Avoid calling alloca if no forced environment variable is - present. - - * exceptions.cc (open_stackdumpfile): Don't print "Dumping stack trace - to..." when running in a cygwin environment (i.e., the parent is a - cygwin process). - - * dtable.cc (dtable::init_std_file_from_handle): Move device type - detection code from build_fhandler here since it is only used by this - function. - (dtable::build_fhandler_from_name): New method. Renamed from - dtable::build_fhandler. - (dtable::build_fhandler): Use build_fhandler_from_name. - (cygwin_attach_handle_to_fd): Ditto. - * syscalls.cc (_open): Ditto. - (stat_worker): Ditto. - * dtable.h (dtable::build_fhandler_from_name): Rename declaration from - dtable::build_fhandler. - -Mon Oct 1 16:52:23 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.h (dtable::build_fhandler): Make path_conv parameter - non-optional. - (dtable::init_std_file_from_handle): Eliminate name parameter. - * dtable.cc (stdio_init): Don't pass bogus name to - init_std_file_from_handle. The function will figure out the name - itself. - (dtable::init_std_file_from_handle): Eliminate name parameter. Assume - that we're always called with an appropriate fd. Pass name as NULL if - we can't simply figure it out from context. - (cygwin_attach_handle_to_fd): Pass path_conv argument to - build_fhandler. - (dtable::build_fhandler): Make path_conv argument mandatory. Eliminate - specific call to get_device_number. With unknown device names, set - name from handle context for parsing by path_conv. - (dtable::build_fhandler): Pass path_conv argument to build_fhandler. - * path.h (path_conv::set_isdisk): Set disk device type. - (path_conv::is_device): Don't consider FH_DISK a "device". - * syscalls.cc (_open): Pass path_conv argument by reference. - (stat_worker): Ditto. - (_rename): Use path_conv operators. Add bounds to DeleteFile/MoveFile - for loop. - -Mon Oct 1 14:25:00 2001 Charles Wilson <cwilson@ece.gatech.edu> - - * cygwin.din: export strtoll and strtoull - -Sun Sep 30 22:51:41 2001 Christopher Faylor <cgf@cygnus.com> - - Add "path.h" include throughout, where needed. Use new path_conv - methods and operators to simplify testing for directory and attributes, - throughout. - * path.h (path_conv::exists): New method. - (path_conv::has_attribute): Ditto. - (path_conv::isdir): Ditto. - (path_conv::DWORD &): New operator. - (path_conv::int &): Ditto. - * dir.cc (rmdir): Eliminate a goto. - * dtable.cc (dtable::build_fhandler): Accept opt and suffix info for - path_conv.check. Return fh == NULL on path_conv error. Pass unit to - set_name as appropriate. - (dtable::reset_unix_path_name): New method. - * dtable.h (dtable): Declare new method. Reflect arg changes to - build_fhandler. - * fhandler.cc (fhandler_disk_dummy_name): Eliminate. - (fhandler_base::set_name): Expect paths to be NULL. Build - unix_path_name from win32_path_name when it is a device. - (fhandler_base::reset_unix_path_name): New method. - (fhandler_base::raw_read): Report EISDIR when ERROR_INVALID_FUNCTION - or ERROR_INVALID_PARAMETER and reading a directory. - (fhandler_disk_file::fstat): Don't call stat_dev since we should now - never be calling fhandler_disk_file methods with devices. - (fhandler_base::fhandler_base): Clear {unix,win32}_path_name. - (fhandler_base::~fhandler_base): Always free {unix,win32}_path_name. - (fhandler_disk_file::fhandler_disk_file): Remove set_no_free_names - kludge. - (fhandler_disk_file::open): Ditto. - * fhandler.h (fhandler_base::no_free_names): Eliminate. - (fhandler_base::set_no_free_names): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Don't set - unix_path_name here. - * path.cc (fchdir): Lock fd table throughout. Use new - dtable::reset_unix_path_name method to reset path. - * syscalls.cc (stat_worker): Reorganize to always call fstat method. - Pass path_conv method to fhandler_*::open. - (chroot): Elminate a goto. - -Sun Sep 30 17:37:43 2001 Christopher Faylor <cgf@cygnus.com> - - * environ.cc (winenv): Allocate exact amount of space needed for forced - windows environment variable rather than just using MAX_PATH. - -Sun Sep 30 17:10:18 2001 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Depend on stamp to ensure rebuilding. Remove stamp file - when we've just built the DLL. - -Mon Oct 1 00:34:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond_dowait): Hopefully eliminate a race on multiple thread - wakeups. - -Sat Sep 29 18:26:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * pthread.cc (pthread_cond_timedwait): Deleted - exported from thread.cc. - (pthread_cond_wait): Deleted - exported from thread.cc. - * thread.cc (pthread_cond::BroadCast): Update to use the new syntax for - verifyable_object_isvalid (). - (pthread_cond::Signal): Ditto. Also attempt to fix the lost signal race - with pthread_cond::TimedWait(). - (check_valid_pointer): Change definiton to void const *. - (verifyable_object_isvalid): Add new parameter to allow identification of - static initializers, and return a enum rather than magic numbers. - (__pthread_create): Ditto. - (__pthread_cleanup): Ditto. - (__pthread_attr_init): Ditto. - (__pthread_attr_getinheritsched): Ditto. - (__pthread_attr_getschedparam): Ditto. - (__pthread_attr_getschedpolicy): Ditto. - (__pthread_attr_getscope): Ditto. - (__pthread_attr_setdetachstate): Ditto. - (__pthread_attr_getdetachstate): Ditto. - (__pthread_attr_setinheritsched): Ditto. - (__pthread_attr_setschedparam): Ditto. - (__pthread_attr_setschedpolicy): Ditto. - (__pthread_attr_setscope): Ditto. - (__pthread_attr_setstacksize): Ditto. - (__pthread_attr_getstacksize): Ditto. - (__pthread_attr_destroy): Ditto. - (__pthread_join): Ditto. - (__pthread_detach): Ditto. - (__pthread_suspend): Ditto. - (__pthread_continue): Ditto. - (__pthread_getschedparam): Ditto. - (__pthread_getsequence_np): Ditto. - (__pthread_key_create): Ditto. - (__pthread_key_delete): Ditto. - (__pthread_setschedparam): Ditto. - (__pthread_setspecific): Ditto. - (__pthread_getspecific): Ditto. - (__pthread_cond_destroy): Ditto. - (__pthread_cond_init): Ditto. - (__pthread_cond_broadcast): Ditto. - (__pthread_cond_signal): Ditto. - (__pthread_condattr_init): Ditto. - (__pthread_condattr_getpshared): Ditto. - (__pthread_condattr_setpshared): Ditto. - (__pthread_condattr_destroy): Ditto. - (__pthread_kill): Ditto. - (__pthread_mutex_init): Ditto. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutexattr_getprotocol): Ditto. - (__pthread_mutexattr_getpshared): Ditto. - (__pthread_mutexattr_gettype): Ditto. - (__pthread_mutexattr_init): Ditto. - (__pthread_mutexattr_destroy): Ditto. - (__pthread_mutexattr_setprotocol): Ditto. - (__pthread_mutexattr_setprioceiling): Ditto. - (__pthread_mutexattr_getprioceiling): Ditto. - (__pthread_mutexattr_setpshared): Ditto. - (__pthread_mutexattr_settype): Ditto. - (__sem_init): Ditto. - (__sem_destroy): Ditto. - (__sem_wait): Ditto. - (__sem_trywait): Ditto. - (__sem_post): Ditto. - (__pthread_cond_dowait): New function, contains core logic from - __pthread_cond_wait and __pthread_cond_timedwait. Decrement (*cond)->waiting - before reentering the cond access mutex to allow detection of lost signals. - (__pthread_cond_timedwait): Rename to pthread_cond_timedwait, and call - __pthread_cond_dowait after calculating the wait length. - (__pthread_cond_wait): Rename to pthread_cond_wait, and call - __pthread_cond_dowait. - * thread.h: New enum for use with verifyable_object_isvalid. - Remove the extern exporting of __pthread_cond_timedwait and __pthread_cond_wait. - -Fri Sep 28 21:18:50 2001 Christopher Faylor <cgf@cygnus.com> - - * pipe.cc (fhandler_pipe::fixup_after_fork): New method. - * fhandler.h (fhandler_pipe::fixup_after_fork): Declare new method. - -Fri Sep 28 03:23:04 2001 Christopher Faylor <cgf@cygnus.com> - - * passwd.cc (read_etc_passwd): Bother with unlocking when not - in cygwin initialization. - * grp.cc (read_etc_group): Ditto. - -Fri Sep 28 02:57:03 2001 Christopher Faylor <cgf@cygnus.com> - - * passwd.cc (read_etc_passwd): Don't bother with locking when - in cygwin initialization since there is only one thread. - * grp.cc (read_etc_group): Ditto. - -Fri Sep 28 01:50:09 2001 Christopher Faylor <cgf@cygnus.com> - - * pipe.cc (fhandler_pipe::hit_eof): Return correct value when there is - no EOF event available. - -Sat Sep 28 00:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Move setting the access after evaluating fd. - Remove useless comment. Explain copy-on-write problem of 9x - more detailed. Don't set access to FILE_MAP_COPY on 9x only - when anonymous mapping is requested. - (fhandler_disk_file::mmap): Remove useless device check. - Add debug output. - -Fri Sep 27 07:35:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in: Only stamp winver_stamp on success. - -Wed Sep 26 16:02:35 2001 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): REALLY only grab mutex when we actually got - something from the pipe. - -Tue Sep 25 21:25:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond::BroadCast): Use address with verifyable_object_isvalid(). - (pthread_cond::Signal): Ditto. - (__pthread_create): Ditto. - (__pthread_cleanup): Ditto. - (__pthread_attr_init): Ditto. - (__pthread_attr_getinheritsched): Ditto. - (__pthread_attr_getschedparam): Ditto. - (__pthread_attr_getschedpolicy): Ditto. - (__pthread_attr_getscope): Ditto. - (__pthread_attr_setdetachstate): Ditto. - (__pthread_attr_getdetachstate): Ditto. - (__pthread_attr_setinheritsched): Ditto. - (__pthread_attr_setschedparam): Ditto. - (__pthread_attr_setschedpolicy): Ditto. - (__pthread_attr_setscope): Ditto. - (__pthread_attr_setstacksize): Ditto. - (__pthread_attr_getstacksize): Ditto. - (__pthread_attr_destroy): Ditto. - (__pthread_join): Ditto. - (__pthread_detach): Ditto. - (__pthread_suspend): Ditto. - (__pthread_continue): Ditto. - (__pthread_getschedparam): Ditto. - (__pthread_getsequence_np): Ditto. - (__pthread_key_create): Ditto. - (__pthread_key_delete): Ditto. - (__pthread_setschedparam): Ditto. - (__pthread_setspecific): Ditto. - (__pthread_getspecific): Ditto. - (__pthread_cond_destroy): Ditto. - (__pthread_cond_init): Ditto. - (__pthread_cond_broadcast): Ditto. - (__pthread_cond_signal): Ditto. - (__pthread_cond_timedwait): Ditto. - (__pthread_cond_wait): Ditto. - (__pthread_condattr_init): Ditto. - (__pthread_condattr_getpshared): Ditto. - (__pthread_condattr_setpshared): Ditto. - (__pthread_condattr_destroy): Ditto. - (__pthread_kill): Ditto. - (__pthread_mutex_init): Ditto. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutexattr_getprotocol): Ditto. - (__pthread_mutexattr_getpshared): Ditto. - (__pthread_mutexattr_gettype): Ditto. - (__pthread_mutexattr_init): Ditto. - (__pthread_mutexattr_destroy): Ditto. - (__pthread_mutexattr_setprotocol): Ditto. - (__pthread_mutexattr_setprioceiling): Ditto. - (__pthread_mutexattr_getprioceiling): Ditto. - (__pthread_mutexattr_setpshared): Ditto. - (__pthread_mutexattr_settype): Ditto. - (__sem_init): Ditto. - (__sem_destroy): Ditto. - (__sem_wait): Ditto. - (__sem_trywait): Ditto. - (__sem_post): Ditto. - (verifyable_object_isvalid): Recieve a pointer to a pointer for verification. - (__pthread_mutexattr_getprotocol): Fix typo in magic number. - (__pthread_mutexattr_getpshared): Ditto. - (__pthread_mutexattr_gettype): Ditto. - * thread.h (verifyable_object_isvalid): Change prototype to recieve a pointer to a - pointer for verification. - * include/pthread.h: Fix typo for __cleanup_routine_type typedef. (Contrib from Net). - -Tue Sep 25 02:09:42 2001 Christopher Faylor <cgf@redhat.com> - - * select.cc (fhandler_tty_common::ready_for_read): Rewrite to correctly - call peek_pipe. - -Mon Sep 24 18:46:39 2001 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_pipe): Only grab mutex when we actually got something - from the pipe. - -Mon Sep 24 17:41:03 2001 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_pipe::hit_eof): New method. - (writepipe_exists): New class element. - (orig_pid): Ditto. - (id): Ditto. - (is_slow): Eliminate. - * pipe.cc (fhandler_pipe::set_close_on_exec): Set inheritance on - writepipe_exists, if it exists. - (fhandler_pipe::hit_eof): New method, modelled after tty. - (fhandler_pipe::dup): Duplicate writepipe_exists, if it exists. - (make_pipe): Set up a dummy event for pipes on windows 9x. The - nonexistence of this event means that the write side of the - pipe has closed. - (_dup): Move to syscalls.cc - (_dup2): Ditto. - - * dtable.cc (dtable::build_fhandler): Fill out set_names here, if - appropriate. - * syscalls.cc (_open): Call set_names in build_fhandler. - -Sun Sep 23 16:55:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (_open): Set name in fhandler object after successful - creation. - (stat_dev): Set device type to block device in FH_FLOPPY case. - -Sun Sep 23 11:15:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::build_fhandler): Initialize unit when using - optional path_conv argument. - -Sat Sep 22 17:33:45 2001 Christopher Faylor <cgf@cygnus.com> - Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::build_fhandler): Accept an optional path_conv - argument. If available, use this to calculate path name and device - number. - * dtable.h (dtable): Reflect above change. - * fhandler.h (fhandler_base): Declare virtual method which accepts - path_conv rather than path string as first argument. - * fhandler.cc (fhandler_base::open): Define above new method. - * syscalls.cc (_open): Set aside a path_conv variable for use in - build_fhandler and subsequent call to open. - -Sat Sep 22 12:44:57 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (setup_handler): Always relinquish lock after we've - interrupted. - * fhandler.cc: Move pipe methods to pipe.cc. - * fhandler.h (fhandler_pipe): Add new methods. - * fork.cc (sync_with_parent): Make error messages more informative. - * pipe.cc (fhandler_pipe::fhandler_pipe): Move here from fhandler.cc. - (fhandler_pipe::lseek): Ditto. - (fhandler_pipe::set_close_on_exec): New method. - (fhandler_pipe::read): Ditto. - (fhandler_pipe::close): Ditto. - (fhandler_pipe::dup): Ditto. - (make_pipe): Create the guard mutex on the read side of the pipe. - * select.cc (peek_pipe): Use guard_mutex to discover if we have the - right to read on this pipe. - (fhandler_pipe::readh_for_read): Pass the read pipe guard mutex to - peek_pipe. - * syscalls.cc (_read): Always detect signal catchers, for now. - - * debug.cc (makethread): Eliminate hack to make thread inheritable. - * sigproc.cc (subproc_init): Don't use hack to make thread inheritable. - -Thu Sep 20 16:48:44 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::set_inheritance): Just use - DUPLICATE_CLOSE_SOURCE to change inheritance. Eliminate all other - logic dealing with closed handles. - * fhandler.h (fhandler_base::set_inheritance): Reflect above change. - * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto. - -Thu Sep 20 13:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Close - socket only when not using Winsock2. - -Thu Sep 20 13:20:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::fixup_after_exec): Remove inline - implementation. - (fhandler_dev_raw::fixup_after_exec): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::fixup_after_fork): Don't - duplicate buffer on fork to avoid memory leak. - (fhandler_dev_raw::fixup_after_exec): New implementation equal to - former fixup_after_fork() implementation. - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Do - nothing when not using Winsock2. - (fhandler_socket::fixup_after_exec): New implementation. - (fhandler_socket::set_close_on_exec): Never call set_inheritance(). - -Thu Sep 20 9:55:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::set_inheritance): If available, - use SetHandleInformation() to set inheritance. - * wincap.cc: Set flag has_set_handle_information_on_console_handles - appropriately. - * wincap.h: Add flag has_set_handle_information_on_console_handles. - -Wed Sep 19 12:24:09 2001 Christopher Faylor <cgf@cygnus.com> - - * lib/getopt.c (__progname): Don't declare if not compiling for cygwin. - -Wed Sep 19 18:07:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * lib/getopt.c (getopt_long): Avoid compiler warning. - -Wed Sep 19 11:52:42 2001 Christopher Faylor <cgf@cygnus.com> - - * lib/getopt.c: Use __progname==__argv[0] when not compiling for cygwin. - - * scandir.cc (scandir): Use correct default when compar == NULL. - -Wed Sep 19 17:49:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Revert - memory allocation to use cmalloc again. - -Tue Sep 18 21:04:26 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din (__argv): Export. - (__argc): Ditto. - (__progname): Ditto. - * include/getopt.h (getopt_long): constify arguments. - * lib/getopt.c: Import new file from NetBSD. - -Tue Sep 18 18:21:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Don't reuse anonymous memory in MAP_FIXED case. - -Mon Sep 17 17:29:25 2001 Christopher Faylor <cgf@cygnus.com> - - * include/io.h: Add access declaration. - -Mon Sep 17 14:04:27 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (rmdir): Set cwd to some other location if attempting to - rmdir current working directory. - -Sun Sep 16 23:04:31 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.h (not_open): Assure inline. - * fhandler.h (operator []): Make const. - -Sun Sep 16 23:02:57 2001 Robert Collins <rbtcollins@hotmail.com> - - * sync.cc (muto::~muto): Fix typo which stopped muto event handle from - ever being closed. - -2001-09-16 Egor Duda <deo@logos-m.ru> - - * path.cc (symlink): Check arguments for validity. - (getcwd): Ditto. - * syscalls.cc (ftruncate): Ditto. - * times.cc (times): Ditto. - * uname.cc (uname): Ditto. - -Sat Sep 15 22:54:49 2001 Christopher Faylor <cgf@cygnus.com> - - * net.cc (dup_servent_ptr): Detect old Windows 95 misaligned structure - and realign appropriately. - -Sat Sep 15 00:28:40 2001 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Generate libcygwin.a during the link pass rather than as - a separate dlltool step. - * dcrt0.cc (_dll_crt0): pppid_handle could be NULL. Don't close it if - so. - -Fri Sep 14 20:48:18 2001 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (dll_crt0_1): Create vfork main storage here so that it can - be queried in waitsig later. - * sigproc.cc (wait_sig): Don't deliver a signal if in a vfork. - * sigproc.h (sigframe::init): New method. - (sigframe): Use init. - * perthread.h: Declare main_vfork. - * fork.cc (vfork): Deliver all signals on parent return from vfork. - -Fri Sep 14 10:21:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (_dll_crt0()): Don't call wincap.init() here. - -Fri Sep 14 00:37:54 2001 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (vfork): Avoid recursive vforks. - -Fri Sep 14 00:18:52 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_pipe::is_slow): Return true only if pipes are - reliable (i.e., not Win9x). - * wincap.cc: Make statics NO_COPY to avoid fork overhead. - -Thu Sep 13 23:01:00 2001 Christopher Faylor <cgf@cygnus.com> - - * grp.cc (read_etc_group): Just reuse group_buf storage for subsequent - reread of /etc/group. - * passwd.cc (read_etc_passwd): Just reuse passwd_buf storage for - subsequent reread of /etc/passwd. - -Thu Sep 13 20:46:05 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (dup_now): New function. - (cygheap_setup_for_child): Accept new argument controlling whether to - delay copying of cygheap to shared memory region. - (cygheap_setup_for_child_cleanup): Accept new arguments controlling - whether to copy cygheap at this point. - * cygheap.h: Reflect above changes. - * fork.cc (fork_parent): Break copying of cygheap into two parts when - fork_fixup is required so that the child can see the parent's changes. - (vfork): Do stack cleanup prior to forcing a fork error. - * spawn.cc (spawn_guts): Ditto. - -Thu Sep 13 17:14:59 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (ccalloc): Pass correct length to creturn so that - cygheap_max is correctly calculated. - -Wed Sep 12 21:06:38 2001 Christopher Faylor <cgf@cygnus.com> - - * sync.cc (muto::acquire): Fix while/if typo. - -Wed Sep 12 23:06:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Simplify W2K/XP case. - -Wed Sep 12 23:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Set os name to "NT" on XP, too. - -Wed Sep 12 19:00:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Build wincap.o. - * wincap.cc: New file. - * wincap.h: Ditto. - * autoload.cc: Add dynamic load statement for `CreateHardLinkA'. - * dcrt0.cc (os_being_run): Eliminated. - (osname): Ditto. - (iswinnt): Ditto. - (set_os_type): Ditto. - (dll_crt0_1): Call wincap.init() instead of set_os_type(). - (_dll_crt0): Ditto. - * environ.cc (set_chunksize): New function. - (parse_thing): `forkchunk' setting now invokes function `set_chunksize'. - * fork.cc (chunksize): Eliminated. Moved to be member of wincap. - * host_dependent.h: Removed. - * syscalls.cc (_link): Try using `CreateHardLinkA' first, if available. - * cygheap.cc, dcrt0.cc, delqueue.cc, dir.cc, - environ.cc, fhandler.cc, fhandler.h, fhandler_console.cc, - fhandler_mem.cc, fork.cc, mmap.cc, net.cc, pinfo.cc, pinfo.h, - security.cc, syscalls.cc, sysconf.cc, syslog.cc, thread.cc, - times.cc, tty.cc, uinfo.cc, uname.cc, winsup.h: Use new wincap - capability check throughout. - * winsup.h: Include wincap.h. Eliminate extern declarations of - `os_being_run' and `iswinnt'. Eliminate `os_type" definition. - * include/cygwin/version.h: Bump version to 1.3.4. - -Wed Sep 12 01:03:36 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_signal_handler_now): Add additional guard against - inappropriately calling signal handler. - * syscalls.cc (_read): Reset errno if not exiting due to signal. - -Wed Sep 12 13:03:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * autoload.cc (LoadDLLfuncEx): Auto load TryEnterCriticalSection - it's - an NT only call. - * thread.cc (pthread_cond::TimedWait): Use critical sections for NT. - (pthread_cond::fixup_after_fork): Don't detect bad apps. - (pthread_mutex::pthread_mutex): Use critical sections for NT. - (pthread_mutex::~pthread_mutex): Ditto. - (pthread_mutex::Lock): Ditto. - (pthread_mutex::TryLock): Ditto. - (pthread_mutex::UnLock): Ditto. - (pthread_mutex::fixup_after_fork): Ditto. Also do not detect bad apps. - (__pthread_mutex_trylock): Move WIN32 specific test into the class - method. - (__pthread_mutex_destroy): Prevent dereferencing passed pointer without - valid address. - * thread.h (pthread_mutex): Use critical sections for NT. - -Tue Sep 11 21:55:37 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigframe::unregister): Return true/false whether this - frame is capable of responding to signals. - * exceptions.cc (sigframe::call_signal_handler): Don't call signal - handler if it is not armed for this thread. - -Tue Sep 11 11:23:10 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Remove cygwin_getshared. - * shared.cc: Ditto. - * include/cygwin/version.h: Bump API minor number. - -Tue Sep 11 11:14:11 2001 Dmitry Timoshkov <dmitry@baikal.ru> - - * dtable.cc (dtable::build_fhandler): Fix incorrect test for socket. - -Tue Sep 11 21:22:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond::~pthread_cond): Fix incorrect use of - InterlockExchangePointer. - (pthread_mutex::~pthread_mutex): Ditto. - (semaphore::~semaphore): Ditto. - -Tue Sep 11 18:15:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * dcrt0.cc (cygwin_finished_initializing): Copy _mtinterf on fork. - * fork.cc (fork_child): Fixup thread-related structures after fork. - * thread.cc (MTinterface::Init): Initialise the new mutex, condition - and semaphore lists. - (MTinterface::fixup_after_fork): Iterate through each list and fixup - the objects. - (pthread_cond::pthread_cond): Add this to the condition list. - (pthread_cond::~pthread_cond): Remove this from the condition list. - (pthread_cond::fixup_after_fork): Recreate as best we can the pre-fork - state. - (pthread_mutex::pthread_mutex): Add this to the mutex list. - (pthread_mutex::~pthread_mutex): Remove this from the mutex list. - (pthread_mutex::fixup_after_fork): Recreate as best we can the pre-fork - state. - (semaphore::semaphore): Store the initial value, and add this to the - semaphore list. - (semaphore::~semaphore): Remove this from the semaphore list. - (semaphore::Post): Increment the current semaphore value. - (semaphore::TryWait): Decrement the current semaphore value. - (semaphore::Wait): Ditto. - (semaphore::fixup_after_fork): Recreate the pre-fork state as best we - can. - * thread.h (pthread_mutex): New members to allow fixup_after_fork. - (pthread_cond): Ditto. - (semaphore): Ditto. - (MTinterface): New list heads for tracking conds and semaphores. - -Sun Sep 9 22:11:27 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (dtable::fixup_after_fork): Use SetStdHandle appropriately - on inherited fds. - -Sun Sep 9 20:09:11 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.cc (NZOMBIES): Reduce substantially to minimize memory use. - -Mon Sep 10 08:28:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.h (MT_Interface): Remove pshared mutex array. Add a - threadsafe list for mutex tracking (for fixup after fork). - * thread.cc (MTInterface::Init): Remove pshared mutex array. - (pthread_mutex::pthread_mutex): Remove pshared mutex functionality. - Fail with EINVAL on attempts to use pshared functionality. - (__pthread_mutex_getpshared): Remove. - (__pthread_cond_timedwait): Remove pshared mutex functionality. - (__pthread_cond_wait): Ditto. - (__pthread_mutex_init): Ditto. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutexattr_setpshared): Ditto. - -Sun Sep 9 23:09:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp_check::set_last_modified): Call GetFileTime() - instead of GetFileInformationByHandle(). - -Sun Sep 9 15:59:53 2001 Christopher Faylor <cgf@cygnus.com> - - * heap.h (inheap): Rewrite macro to accommodate removal of brk macros - below. - -Sun Sep 9 15:02:44 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_fixup_in_child): Clear cygheap->base so that heap - is not forced to start at the same place in execed process. - * heap.cc: Remove brk* macros for clarity throughout. - * heap.h: Ditto. - * shared.cc (shared_info::initialize): Move heap_chunk test into - heap_chunk_size(). - (heap_chunk_size): Check for chunk size here. Don't go to registry if - heap_chunk_in_mb is already set. - - * smallprint.c (console_printf): Add Windows 95 concessions. - -Sun Sep 9 13:01:06 2001 Christopher Faylor <cgf@cygnus.com> - - * child_info.h (PROC_MAGIC): Bump magic number. - -Sun Sep 9 18:36:00 2001 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cygheap::etc_changed): New method to signal - a change in /etc. - * cygheap.h (struct init_cygheap): Add member `etc_changed_h' - and method `etc_changed'. - * grp.cc (enum grp_state): Eliminate. - (class grp_check): Ditto. - (group_state): Define as `class pwdgrp_check'. - (parse_grp): Remeber path and modification time of /etc/group file. - * passwd.cc (enum_pwd_state): Eliminate. - (class pwd_check): Ditto. - (passwd_state): Define as `class pwdgrp_check'. - (read_etc_passwd): Remember path and modification time of /etc/passwd - file. - * pwdgrp.h: New file. - (enum pwdgrp_state): Substitutes `pwd_state' and `grp_state'. - (class pwdgrp_check): Substitutes `pwd_check' and `grp_check'. - -Sun Sep 9 14:31:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump API minor version to 45 according - to adding the gamm*_r functions. - -Sat Sep 8 23:32:18 2001 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork_parent): Stop malloc activity while fork is in control - of the heap. - * sigproc.cc (NZOMBIES): Rename from ZOMBIEMAX for clarity. - (zombies): Revert to original behavior. Allocating zombie array - resulted in performance hit. - * winsup.h: Declare malloc lock routines. - -Fri Sep 7 21:35:35 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Add gamm*_r function exports. - -Fri Sep 7 17:11:11 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.h (init_cygheap): Move heap pointers here. - * include/sys/cygwin.h (perprocess): Remove heap pointers. - * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff. - (_dll_crt0): Don't initialize heap pointers. - (cygwin_dll_init): Ditto. - (release_upto): Use heap pointers from cygheap. - * heap.h: Ditto. - * fork.cc (fork_parent): Ditto. Don't set heap pointers in ch. - (fork_child): Remove obsolete sigproc_fixup_after_fork. - * shared.cc (memory_init): Reorganize so that cygheap initialization is - called prior to regular heap since regular heap uses cygheap now. - * sigproc.cc (proc_subproc): Eliminate zombies allocation. - (sigproc_init): Move zombies alloation here. Don't free up array on - fork, just reuse it. - (sigproc_fixup_after_fork): Eliminate. - * sigproc.h: Ditto. - * include/cygwin/version.h: Reflect change to perprocess structure. - -Fri Sep 7 10:53:34 2001 Jason Tishler <jason@tishler.net> - - * poll.cc (poll): Change implementation to only call select() when no - invalid file descriptors are specified. - -Fri Sep 7 10:27:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * include/limits.h: Define PIPE_BUF. - * syscalls.cc (fpathconf): Use PIPE_BUF instead of numerical constant. - (pathconf): Ditto. - -Thu Sep 6 20:04:05 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Ensure that - prot_info_ptr is zeroed for later use. - -Thu Sep 6 14:03:49 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_fixup_in_child): Don't consider a NULL bucket as - a candidate for deletion. It is actually the end of a linked list - chain. - - * exceptions.cc (open_stackdumpfile): Default to "unknown" program name - if myself->progname hasn't been filled out yet. - -Thu Sep 6 01:16:44 2001 Christopher Faylor <cgf@cygnus.com> - - Move appropriate variables to NO_COPY segment, throughout. - -Thu Sep 6 00:40:35 2001 Christopher Faylor <cgf@cygnus.com> - - Remove initialization of static or global values to zero, throughout. - This just needlessly grows the size of the DLL. - * tty.cc (tty::alive): Make inuse handle non-inheriting on open, just - for thread safety. - -Wed Sep 5 23:36:03 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.h (init_cygheap): Move bucket array here from cygheap.cc. - * cygheap.cc: Throughout use bucket array from cygheap. - - * sigproc.cc (proc_subproc): Dynamically allocate zombie buffer to save - DLL space. - (sigproc_fixup_after_fork): Free zombie array after a fork. - * sigproc.h (sigproc_fixup_after_fork): Declare. - -2001-09-06 Egor Duda <deo@logos-m.ru> - - * dir.cc (mkdir): Expand buffer for security descriptor to 4K to avoid - stack corruption. - * fhandler.cc (fhandler_base::open): Ditto. - * path.cc (symlink): Ditto. - -Wed Sep 5 21:35:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc: Change copyright to include 2001. - -Wed Sep 5 12:12:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_floppy::lseek): Remove iswinnt check. - -Wed Sep 5 11:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::close): Change 2MSL value - according to MSDN. - -Wed Sep 5 10:14:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_connect): Add WSAEALREADY and WSAEINVAL handling - for non-blocking sockets. - -Tue Sep 4 22:42:13 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (ctrl_c_handler): Only send SIGINT when we have a - controlling terminal and we are the head of the process group. - -Tue Sep 4 16:48:14 2001 Christopher Faylor <cgf@cygnus.com> - - * thread.cc (InterlockedExchangePointer): Don't define if it already - exists. - -Tue Sep 4 22:14:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Eliminate os specific retrieving of x86 - processor type. - -2001-09-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * fhandler_console.cc (fhandler_console::char_command): Save the cursor - position relative to the top of the window. - * fhandler_cc (fhandler_console::write): Ditto. - -Mon Sep 3 21:06:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (opendir): Write version information to __d_dirent->d_version. - -Mon Sep 3 18:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add `dirfd'. - * dir.cc (dirfd): New function. - (opendir): Open a directory file descriptor and save it in - __d_dirent->d_fd. - (closedir): Close directory file descriptor. - * include/cygwin/version.h: Bump API minor version to 44. - -Sun Sep 2 22:09:31 2001 Christopher Faylor <cgf@cygnus.com> - - * child_info.h: Modify magic number. - * dcrt0.cc (_cygwin_testing): Define. - (_dll_crt0): Set _cygwin_testing if CYGWIN_TESTING environment variable - exists. Don't issue "conflicting versions" error if _cygwin_testing is - true. - * shared.cc (shared_name): Use _cygwin_testing global rather than - testing the environment. - * syscalls.cc (_write): Remove debugging info. - -Sat Sep 1 01:37:13 2001 Christopher Faylor <cgf@cygnus.com> - - * tty.cc (tty::create_inuse): Eliminate unneeded argument. - * tty.h: Reflect above change. - * fhandler_tty.cc: Reflect argument reduction in tty::create_inuse, - throughout. Always make inuse inheritable. - -Sat Sep 1 01:10:07 2001 Christopher Faylor <cgf@cygnus.com> - - * debug.cc (mark_closed): Rename from debug_mark_closed and make - static. - (setclexec_pid): New function for marking saved handle as - close-on-exec. - (delete_handle): New function. - (debug_fixup_after_fork): New function. - * debug.h: Declare new functions, remove obsolete ones. - * fork.cc (debug_fixup_after_fork): Call to cleanup close-on-exec - handles. - - * fhandler.cc (fhandler_disk_file::close): Minor reorg. - (fhandler_base::set_inheritance): Set flag appropriately for debugging - when close-on-exec so forked process can delete closed handles. - * tty.h (open_output_mutex): Eliminate unneeded argument. - (open_input_mutex): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::open): reflect open_*_mutex - argument changes. - * fhandler.h (fhandler_socket): Make saw_shutdown_* functions type - bool. - * tty.cc (tty::get_event): Eliminate unneeded argument. - (tty::common_init): Reflect change to get_event. Events should always - be inherited. - -Fri Aug 31 21:39:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (create_token): Change initialization of `exp' to comply - with new LARGE_INTEGER definition in winnt.h. - -Fri Aug 31 13:58:51 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.sc: Revert to previous NO_COPY behavior. - * winsup.h: Ditto. - * sigproc.cc: Ditto. - * autoload.cc: Ditto. - -Fri Aug 31 00:56:26 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.sc: New file -- linker script for building cygwin DLL. - * Makefile.in: Use linker script to control location of cygheap. - * cygheap.cc (buckets): Make static. - (init_cheap): Remove special iswinnt handling. Allocate cygheap at a - fixed location. Display more info when allocation fails. - (cygheap_fixup_in_child): Try harder to move cygheap to correct - location. Display more info when allocation fails. - * fhandler.h (fhandler_socket): Add macros for tracking socket shutdown - state. - * net.cc (cygwin_shutdown): Set appropriate shutdown value for future - use. - * select.cc (select_stuff::cleanup): New method. - (cygwin_select): Call cleanup explicitly to avoid a race. - (select_stuff:~select_stuff): Call cleanup chain via cleanup method. - (fhandler_socket::select_read): Set *_ready when shutdown has been - called on the socket. - (fhandler_socket::select_write): Ditto. - (fhandler_socket::select_except): Ditto. - - * winsup.h: Move NO_COPY to "COMMON" section. - * autoload.cc (wsock_started): Avoid initializing NO_COPY value. - * sigproc.cc: Remove initialization from NO_COPY variables. - (sigproc_init): Initialize sig_loop_wait here, rather than via - initialization. - (subproc_init): Initialize proc_loop_wait here, rather than via - initialization. - -Thu Aug 30 10:19:00 2001 Christopher Faylor <cgf@cygnus.com> - - * select.cc (select_read): Add setting read_ready flag. - (select_write): Add setting write_ready flag. - -Wed Aug 29 00:40:42 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Avoid splitting off leading '/' in path - component when building a symlink. - -Wed Aug 29 0:45:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Return actual values on RLIMIT_STACK. - -Tue Aug 28 16:37:17 2001 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than - ENOTDIR. - -Mon Aug 27 11:58:19 2001 Christopher Faylor <cgf@cygnus.com> - - * select.cc (cygwin_select): Ensure that arguments are zeroed on - timeout. - (select_stuff::wait): Ditto. - -2001-08-24 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * syscalls.cc (check_tty_fds): New function. Check whether there is a - fd referring to pty slave. - (setsid): Don't detach console if the process has a pty slave. - -Fri Aug 24 8:54:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (free_addr_list): Add define for symmetry. - (free_hostent_ptr): Use free_addr_list to free h_addr_list element. - -Thu Aug 23 16:00:09 2001 Jason Tishler <jason@tishler.net> - - * net.cc (dup_addr_list): New static function. - (dup_hostent_ptr): Use dup_addr_list instead of dup_char_list in order - to handle embedded null characters. - -Wed Aug 22 22:23:14 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc (dtable::dup2): Allow extension of fd table by dup2. - * syscalls.cc: Minor code cleanup. - (fpathconf): Check for bad fd before doing anything else. - * termios.cc (tcsetattr): Don't convert to new termios if bad fd. - (tcgetattr): Minor debugging tweak. - -Wed Aug 22 23:41:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_inet_ntoa): Rearrange previous patch to use - thread local buffer space when compiled thread safe. - (cygwin_getprotobyname): Ditto. - (cygwin_getprotobynumber): Ditto. - (cygwin_getservbyname): Ditto. - (cygwin_getservbyport): Ditto. - (cygwin_gethostbyname): Ditto. - (cygwin_gethostbyaddr): Ditto. Move near to cygwin_gethostbyname. - * thread.h (struct _winsup_t): Add pointers for above used buffer space. - * passwd.cc (getpwduid): Remove initializing passwd. - (setpwent): Ditto. - (endpwent): Ditto. - (setpassent): Ditto. - -Wed Aug 22 13:41:09 2001 Christopher Faylor <cgf@cygnus.com> - - * smallprint.c (console_printf): New function. - * dcrt0.cc (dll_crt0_1): Use console_printf for debugging output. - * debug.cc (debug_mark_closed): New function. - (close_handle): Use debug_mark_closed. - * debug.h: Declare new functions. - * dtable.cc (dtable::build_fhandler): Remove unneeded extern. - * spawn.cc: Cosmetic changes. - * winsup.h: Define NO_COPY for C files, too. Declare a global. - -Wed Aug 22 17:31:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (free_char_list): New static function. - (dup_char_list): Ditto. - (free_protoent_ptr): Ditto. - (dup_protoent_ptr): Ditto. - (free_servent_ptr): Ditto. - (dup_servent_ptr): Ditto. - (free_hostent_ptr): Ditto. - (dup_hostent_ptr): Ditto. - (cygwin_inet_ntoa): Use local static buffer to allow propagating of - the result to child processes. - (cygwin_getprotobyname): Ditto. - (cygwin_getprotobynumber): Ditto. - (cygwin_getservbyname): Ditto. - (cygwin_getservbyport): Ditto. - (cygwin_gethostbyname): Ditto. - (cygwin_gethostbyaddr): Ditto. - -Mon Aug 20 11:56:19 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cheap): Allocate cygheap in shared memory for Windows NT. - -Thu Aug 16 09:38:59 2001 Jason Tishler <jason@tishler.net> - - * fhandler_socket.cc (fhandler_socket::create_secret_event): Relax - security of secret_event so AF_UNIX socket clients can connect to - servers even if running under a different user account. - (fhandler_socket::check_peer_secret_event): Ditto. - -Thu Aug 16 16:26:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Return getdtablesize () as current limit - on RLIMIT_NOFILE. - * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size - is less than OPEN_MAX, the current dtable size otherwise. - * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX. - -Thu Aug 16 16:17:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Return OPEN_MAX as current limit - on RLIMIT_NOFILE. - * syscalls.cc (getdtablesize): Return OPEN_MAX. - * sysconf.cc (sysconf): Return OPEN_MAX on _SC_OPEN_MAX. - * include/limits.h (OPEN_MAX): Define as 256. - -Wed Aug 15 12:43:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (utimes): Revert previous change. Just open the - file using FILE_WRITE_ATTRIBUTES instead of GENERIC_WRITE - on NT/W2K. - -Wed Aug 15 12:18:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_nt_attribute): Return always -1 in case of - a failure. - * times.cc (utimes): On NTFS with ntsec ON, change the file's - security descriptor temporarily to acquire write access if - opening the file failed. - -Wed Aug 15 9:42:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::is_nonblocking): New method. - (fhandler_base::set_nonblocking): Ditto. - * fhandler.h (fhandler_base): Declare new methods `is_nonblocking' and - `set_nonblocking'. - * fhandler_socket.cc (fhandler_socket::ioctl): Use `set_nonblocking'. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): - Use `is_nonblocking'. - (fhandler_tty_slave::read): Ditto. - (fhandler_tty_slave::ioctl): Use `set_nonblocking'. - (fhandler_pty_master::ioctl): Ditto. - * net.cc (cygwin_sendto): Fallback to winsock 1 functionality - in case of nonblocking IO. - (cygwin_recvfrom): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - * syscalls.cc (_read): Use `is_nonblocking'. - -Tue Aug 14 11:05:26 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump API version. - -2001-08-14 Egor Duda <deo@logos-m.ru> - - * spawn.cc (spawn_guts): Enable appropriate privilege before - loading user's registry hive. - -Mon Aug 13 22:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fcntl): Use new O_NONBLOCK_MASK define. - * fhandler.h: Move definitions of O_NOSYMLINK, O_DIROPEN and - OLD_O_NDELAY from winsup.h to here. Add O_NONBLOCK_MASK define. - * fhandler_socket.cc (fhandler_socket::close): Add hack to allow - a graceful shutdown even if shutdown() hasn't been called by the - application. Add debug output. - (fhandler_socket::ioctl): Set fhandler's NONBLOCK flag according - to FIONBIO setting. - (fhandler_socket::fcntl): Use new O_NONBLOCK_MASK define. Actually - set `request' before using it. - * fhandler_tty.cc: Use new O_NONBLOCK_MASK define throughout. - (fhandler_tty_slave::ioctl): Set fhandler's NONBLOCK flag according - to FIONBIO setting. - (fhandler_pty_master::ioctl): Ditto. - * net.cc (wsock_event::prepare): Compare WSACreateEvent return code - with `WSA_INVALID_EVENT' according to MSDN. - * syscalls.cc (_read): Use new O_NONBLOCK_MASK define. - -Wed Aug 8 15:24:59 2001 Christopher Faylor <cgf@cygnus.com> - - * include/wchar.h: Define __need_wint_t. - -Wed Aug 8 11:46:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Revert to setting inheritance attribute for - permissions given to directories. Never set inheritance on NULL ACE. - -Tue Aug 7 18:11:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group - if S_ISVTX attribute is given. - * dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and - S_ISVTX attribute. - * syscalls.cc (_open): Ditto. - -Tue Aug 7 16:24:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Set security attributes correctly for - CreateDirectoryA () call if ntsec is on. Don't call - set_file_attributes () then. - * fhandler.cc (fhandler_base::open): Ditto for CreateFileA () call. - * path.cc (symlink): Ditto. - * security.cc (set_security_attribute): New function. - * security.h: Add declaration for `allow_ntea' and - `set_security_attribute'. - -Tue Aug 7 10:54:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (class grp_check): New class. Make `group_state' - a member of class grp_check. - (read_etc_group): Free former allocated memory on reread. - * passwd.cc (class pwd_check): New class Make `passwd_state' - a member of class pwd_check. - (read_etc_passwd): Free former allocated memory on reread. - -Tue Aug 7 01:13:58 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (get_tty_stuff): Don't initialize shared memory - console area if it is already initialized. - - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Augment debugging - info. - -Mon Aug 6 19:58:43 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_root::set): Avoid treating '/' specially. - - * fhandler.cc (fhandler_base::fcntl): Only set specific O_NDELAY style - flag passed in from application. - * fhandler_socket.cc (fhandler_socket::fcntl): Ditto. - * fhandler.h: Set constant for future use. - * winsup.h: Define OLD_O_NDELAY only for old programs. - * include/cygwin/version.h: Define - CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK. - -Sat Aug 4 16:52:03 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, change check for running under Windows NT to 'iswinnt'. - * dcrt0.cc (set_os_type): Set 'iswinnt' appropriately. - * cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating - cygheap. - (cygheap_setup_for_child_cleanup): New function. Standard function to - call after calling CreateProcess to cleanup cygheap info passed to - child. - (cygheap_fixup_in_child): Copy cygheap from shared memory into - allocated space under Windows 9x or if can't relocate shared space - under NT. - * cygheap.h: Declare new function. - * spawn.cc (spawn_guts): Use cygheap_fixup_in_child. - * fork.cc (fork_parent): Ditto. - * winsup.h: Declare iswinnt. - -2001-08-04 Egor Duda <deo@logos-m.ru> - - * dtable.cc (dtable::release): Avoid messing with console when - closing socket. - -Fri Aug 3 14:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_accept): Allow NULL peer and len parameters. - * include/cygwin/socket.h: Define socklen_t as int. - -Fri Aug 3 13:04:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fchdir): Set the fhandler's path to absolute value to ensure - changing to the correct directory even if the fhandler originally - points to a relative path. - -Thu Aug 2 17:59:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_file_attribute): Clean up. Don't call - `set_nt_attribute' when ntsec isn't set. - -Sat Jul 28 22:30:55 2001 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (alloc_stack_hard_way): Make half-hearted attempt to deal - with growing stack under Windows 95. - -Fri Jul 27 12:36:07 2001 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Add install-lib and install-headers. - -Fri Jul 27 12:28:12 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export sys_errlist, sys_nerr. - * include/cygwin/version.h: Bump minor version number. - -Fri 27 Jul 2001 10:29:00 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_user_primary_group): Fix compiler warning. - (alloc_sd): Add DELETE permission for user when S_IWUSR is given. - -Thu Jul 26 16:43:39 2001 Pieter de Visser <pieterdv@knoware.nl> - - * thread.cc (__pthread_equal): Invert return value so that true is - returned when threads are equal. - -Thu Jul 26 15:50:38 2001 Charles Wilson <cwilson@ece.gatech.edu> - Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Export __signgam. - * include/cygwin/version.h: Bump minor version number. - -Thu Jul 26 15:19:50 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, reorganize header file inclusion to put security.h prior to - fhandler.h. - * fhandler.h (fhandler_base::get_inheritance): New method. - * fhandler_socket.cc (fhandler_socket::create_secret_event): Use proper - close-on-exec inheritance when creating. - (fhandler_socket::check_peer_secret_event): Create handle as - non-inheritable. - -2001-07-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * syscalls.cc (setsid): Detach process from its console if the current - controlling tty is the console and already closed. - * dtable.h (class dtable): Add members to count descriptors referring - to the console. - * dtable.cc (dtable::dec_console_fds): New function to detach process - from its console. - (dtable::release): Decrement the counter of console descriptors. - (dtable::build_fhandler): Increment it. - * exception.cc (ctrl_c_handler): Send SIGTERM to myself when catch - CTRL_SHUTDOWN_EVENT. - -Tue 24 Jul 2001 02:28:00 PM Trevor Forbes <t4bs@hotmail.com> - - * thread.cc (verifyable_object_isvalid): Don't validate - PTHREAD_MUTEX_INITIALIZER pointer as it will cause an exception - in IsBadWritePtr() when running GDB. - -Wed 25 Jul 2001 23:46:00 Corinna Vinschen <corinna@vinschen.de> - - * localtime.c: Changed whole file to become C++ clean. Rename to - localtime.cc. - * localtime.cc (tzload): Preserve errno. - -Fri 20 Jul 2001 11:15:50 PM EDT Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround. - * dtable.cc (dtable::dup_worker): Add debugging output. - (dtable::vfork_child_dup): Correctly set close_on_exec. - * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if - there is no need to get it from the parent. - * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output. - -Fri 20 Jul 2001 09:15:00 Mark Bradshaw <bradshaw@staff.crosswalk.com> - - * dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE. - -Wed 18 Jul 2001 01:00:47 PM EDT Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (_cmalloc): Use correct constants for size calculation. - * dcrt0.cc (dll_crt0_1): Move uid initialization earlier. - * fork.cc (fork_parent): Move cygheap_setup_in_child to just prior to - CreateProcess so that all contents of cygheap are copied. - * spawn.cc (spawn_guts): Ditto. - -Wed 18 Jul 2001 12:54:17 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_user_groups): Call Net function with NULL server - name under specific error conditions. - (is_group_member): Ditto. - (get_user_local_groups): Ditto. - (get_user_primary_group): Ditto. - -Wed 18 Jul 2001 11:56:00 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (_unlink): Explicitly check for non-existant file. - -Tue 17 Jul 2001 10:19:00 Corinna Vinschen <corinna@vinschen.de> - - * delqueue.h: Remove obsolete file. - -Mon 16 Jul 2001 10:47:17 PM EDT Christopher Faylor <cgf@cygnus.com> - - * child_info.h: Bump magic number. - (class child_info): Add an element. - * cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area. - (cygheap_fixup_in_child): Map cygwin heap, passed from parent via - shared memory into correct address. - (cygheap_setup_for_child): New function. - * cygheap.h: Declare new functions. - * dcrt0.cc (dll_crt0_1): Accommodate new cygheap_fixup_in_child - arguments. Avoid protecting subproc_ready unless it is spawn/nowait. - * fork.cc (fork_parent): Use new cygheap_setup_for_child function to - setup cygwin heap info. Close passed cygheap shared memory handle. - * spawn.cc (spawn_guts): Ditto. Also, reorganize to avoid - synchronization between parent and child in non-P_OVERLAY case. - * sigproc.cc (wait_sig): Only signal subproc_ready when execing. - -Mon 16 Jul 2001 15:21:00 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc: Add missing Copyright date 2001. - -Mon 16 Jul 2001 00:11:00 Corinna Vinschen <corinna@vinschen.de> - - Change well_known_admin_sid to well_known_admins_sid throughout. - * sec_acl.cc (setacl): Never set DELETE permission. Set - FILE_DELETE_CHILD only on readable and executable directories. - * sec_helper.cc: Add constructor for `well_known_null_sid'. - * security.cc (get_nt_attribute): Set S_ISVTX for directories if - FILE_WRITE_DATA and FILE_EXECUTE but not FILE_DELETE_CHILD is set. - Add evaluation of S_ISVTX, S_ISGID and S_ISUID from NULL ACE. - (alloc_sd): Never set DELETE permission. Set FILE_DELETE_CHILD - only on readable and executable directories. - Add creation of NULL ACE for S_ISVTX, S_ISGID and S_ISUID permissions. - * security.h: Add extern declaration for `well_known_null_sid'. - -Fri 13 Jul 2001 08:08:49 PM EDT Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (stat_worker): Simplify previous change. - -Fri Jul 13 13:13:09 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_unlink): Correct (?) logic which determines when - to report an access violation and when to queue file for eventual - deletion. - (stat_worker): Check for invalid buf argument. - -Tue Jul 10 23:01:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fhandler_disk_file::mmap): Try to open file mappings - by a unified name when running under 9x/ME. If that failes, create - the file mapping using the unified name. - -Mon Jul 9 10:43:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Add pointer check. - -Mon Jul 9 10:05:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Don't set inheritance attribute for - permissions given to directories. - -Thu Jun 28 22:19:08 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success. - -Wed Jun 27 22:19:07 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Add signal protection here since - retrieving info about remote shares can take some time. - -Wed Jun 27 23:30:00 2001 Robert Collins <rbtcollins@hotmail.com> - Christopher Faylor <cgf@cygnus.com> - - Change check_null_empty_path* to check_null_empty_str* throughout. - * path.h (check_null_empty_str_errno): Convert to a function prototype. - * path.cc (check_null_empty_str): Move to miscfuncs.cc. - * miscfuncs.cc (check_null_empty_str_errno): New function. - (__check_null_invalid_struct): Ditto. - (__check_null_invalid_struct_errno): Ditto. - (check_null_empty_str): Change from VirtualQuery to IsBadWritePtr. - * thread.cc (check_valid_pointer): Ditto. - * resource.cc (getrlimit): Use check_null_invalid_struct macro for - checking validity of pointer. - (setrlimit): Ditto. - -Tue Jun 26 16:59:16 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3 - characters being read for executable test since we could be checking - for less than that. - * syscalls.cc (stat_worker): Try opening the file the "correct" way - first so that #! processing can potentially happen. If that fails, - then use "query open" method. - - * spawn.cc (spawn_guts): Delay processing of signal until after we've - notified parent about reparenting. - -Tue Jun 26 10:47:24 2001 Christopher Faylor <cgf@cygnus.com> - - * mmap.cc: Clean up *ResourceLock calls throughout. - -Tue Jun 26 22:10:00 2001 Robert Collins rbtcollins@hotmail.com - - * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well - as WAIT_ABANDONED. - (__pthread_cond_timedwait): Calculate a relative wait from the abstime - parameter. - -Sun Jun 24 17:38:19 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interrupt_setup): Move actions from setup_handler to - here. - (setup_handler): Move actions after a successful interrupt to - interrupt_setup. - * fork.cc (vfork): Augment debugging output. - * sigproc.cc (proc_subproc): Ditto. - * spawn.cc (spawn_guts): Ditto. Correctly fill out progname when spawn - NO_WAIT. Call signal handler when a signal arrives. - * sigproc.h: Declare a function. - -Fri Jun 22 16:50:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h class fhandler_socket): Declare new method - `set_close_on_exec'. - * fhandler_socket.cc (fhandler_socket::set_close_on_exec): - New method. - -Fri Jun 22 16:12:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size - parameter to value expected by GetTapeParameters(). - -Thu Jun 21 22:01:39 2001 Marius Gedminas <mgedmin@delfi.lt> - - * fhandler_console.cc (fhandler_console::read): Detect AltGr more - robustly on WinNT. - -2001-06-22 Robert Collins <rbbtcollins@hotmail.com> - - * thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before - the condition protect mutex to avoid deadlocking. (Found by Greg Smith). - (__pthread_cond_wait): Ditto. - -2001-06-30 Egor Duda <deo@logos-m.ru> - - * fhandler.cc (fhandler_base::open): Work around windows bug when - CreateFile() with dwDesiredAccess == 0 called on remote share returns - valid handle even if file doesn't exist. - -2001-06-20 Egor Duda <deo@logos-m.ru> - - * fhandler_socket.cc (fhandler_socket::signal_secret_event): New - function. - * fhandler.h: Declare it. - * fhandler_socket.cc (fhandler_socket::create_secret_event): Don't - signal secret event immediately. - (fhandler_socket::check_peer_secret_event): Do it after peer event - was opened. - * net.cc (cygwin_connect): Or if socket is non-blocking. - (cygwin_accept): Ditto. - -Mon Jun 18 17:09:25 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change. - - * fork.cc (fork_copy): Print more debugging info. - (fork_parent): Change order of arguments to accomdate buggy gcc. - (fork): Ditto. - -Sun Jun 17 18:54:46 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_unlink): Reorganize to try harder to delete file with - DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE - doesn't work properly. - -Sat Jun 16 13:06:49 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not - actually stopping. - * fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set - controlling terminal if just inheriting a handle. - (fhandler_console::fixup_after_exec): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::init): Ditto. - * signal.cc (kill_worker): Set appropriate errno if proc_exists - determines that process does not really exist. - -Fri Jun 15 14:34:19 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Deal more robustly with foo/ behavior. - -Fri Jun 15 11:15:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size - parameter to value expected by GetTapeParameters(). - -Thu Jun 14 20:19:46 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits - for directory when !ntsec && !ntea. Also move common code prior to - call to get_attributes. - -Fri June 15 09:25:00 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond::Signal): Release the condition access - variable correctly. - -2001-06-14 Egor Duda <deo@logos-m.ru> - - * fhandler.cc (fhandler_base::open): Set win32 access flags to 0, when - requested. - * fhandler.h: New status flag FH_QUERYOPEN. - (fhandler::get_query_open): New function. - (fhandler::set_query_open): Ditto. - * syscalls.cc (stat_worker): Request query-only open mode. - -2001-06-12 Egor Duda <deo@logos-m.ru> - - * environ.cc (set_file_api_mode): New function. Move setting - of file APIs mode (OEM/ANSI) here. - (codepage_init): From here. - * winsup.h (set_file_api_mode): Declare it. - * fork.cc (fork_child): Set file APIs mode in forkee. - -Mon Jun 11 14:19:49 2001 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x. - * autoload.cc: Autoload ToolHelp functions. - - * sigproc.cc (proc_subproc): Incorporate SIGCHLD == SIG_IGN special - handling of zombie processes. Ensure that zombie processes which are - at the end of the zombie array are properly cleaned up. - -Mon Jun 11 11:18:56 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Fix call to path_conv constructor so that it REALLY - doesn't check for the null/non-empty path. - -Sun Jun 10 23:34:09 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::update_fs_info): Don't consider remote drives to - be NTFS. Set root_dir before invoking GetDriveType (from Kazuhiro - Fujieda <fujieda@jaist.ac.jp>). Eliminate extra checks for rootdir. - -Sun Jun 10 20:19:47 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Pre-check path for validity before eating trailing - space. Then, ensure that path_conv doesn't check the path for validity - again. - -Sun Jun 10 12:56:00 2001 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sigdelayed): Ensure that signal is cleared as - the last operation or suffer races. - * sigproc.cc (proc_subproc): Deal with zombie array overflow. - -Sun Jun 10 11:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add fchdir symbols. - * path.cc (chdir): Guard against invalid parameter. - (fchdir): New function. - * include/cygwin/version.h: Bump API minor version to 40. - * uinfo.cc (internal_getlogin): Remove unused variable. - -Sat Jun 9 23:20:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid): Set environment variables USERNAME and - USERDOMAIN before impersonation to workaround a LookupAccountSid() - misbehaviour. - * uinfo.cc (internal_getlogin): Revert most of the previous change. - Don't set environment variables USERNAME and USERDOMAIN. That's - the job of seteuid() now. Try to get logon server from Lsa - only if logon server isn't already known. - -Thu Jun 7 15:54:32 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_cond::Broadcast): Don't print error messages on - invalid mutexs - user programs are allowed to call - pthread_cond_broadcast like that. - (__pthread_cond_timedwait): Initialise themutex properly. - (__pthread_cond_wait): Initialise themutex properly. - -Tue Jun 5 19:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::dup): Allocate space for - savebuf on Cygwin heap. - (fhandler_console::char_command): Ditto. Use correct values for size. - -2001-06-05 Egor Duda <deo@logos-m.ru> - - * security.h (NTWriteEA): Change prototype. - * ntea.cc (NTReadEA): Don't check for global ntea setting, now - it's caller responsibility. - (NTWriteEA): Ditto. - * security.cc (get_file_attribute): Read attribute from EA only - if 'ntea' is enabled. - (set_file_attribute): Ditto. - * path.h: (class path_conv): Add members to store file system - information. - (path_conv::get_drive_type): New function. - * syscalls.cc (stat_worker): Use it. - * path.cc (path_conv::update_fs_info): New functions. - (path_conv::check): Get file system information from device where - file resides. On NTFS, try to read symlink contents from EA. - (get_symlink_ea): New function. - (set_symlink_ea): Ditto. - (symlink): Store symlink in extended attribute, if possible. - -Tue Jun 5 11:18:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): Always reset file position - to original value after checking for executable magic. - -Mon Jun 4 16:21:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_user::cygheap_user): Initialize token to - INVALID_HANDLE_VALUE. - * uinfo.cc (uinfo_init): Close token handle if needed. - -Sun Jun 3 20:52:13 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (normalize_posix_path): Revert .. check removed by previous - changes. - * cygheap.h: Temporarily declare path_prefix_p here. - -Mon Jun 4 0:14:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_event): Add destructor. - -Sun Jun 3 09:49:55 2001 Robert Collins <rbtcollins@hotmail.com> - - * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close - was obtained by dlopen(NULL,...). - -Sat Jun 2 23:11:52 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (sleep): Try to be a little more accomodating of signal - arrival. Ensure that the signal handler is called. - -Sat Jun 2 14:07:28 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (cygheap_root::cygheap_root): Remove constructor. - (cygheap_root::~cygheap_root): Remove destructor. - (cygheap_root::operator =): Remove. - (cygheap_root::set): New method. - * cygheap.h (cygheap_root): Reflect above changes. Store root info in - mount-like structure. - (cygheap_root:posix_ok): New method. - (cygheap_root::ischroot_native): Ditto. - (cygheap_root::unchroot): Ditto. - (cygheap_root::exists): Ditto. - (cygheap_root::posix_length): Ditto. - (cygheap_root::posix_path): Ditto. - (cygheap_root::native_length): Ditto. - (cygheap_root::native_path): Ditto. - * dir.cc (opendir): Remove special chroot test. - * path.cc (path_prefix_p): Remove front end. - (normalize_posix_path): Reorganize chroot tests to accommodate new - convention of allowing paths using posix chroot prefix. - (path_conv::check): Pass a "already ran normalize" option to - conv_to_win32_path. Return if there is an error from this function. - (mount_info::conv_to_win32_path): Add extra argument. Don't call - normalize_posix_path if caller has already done so. Substitute chroot - setting, if any, for root translation. Add chroot checking to final - output step. - * shared_info (mount_info): Accommodate additional argument to - conv_to_win32_path. - * syscalls.cc (chroot): Store both normalized posix path and native - path in chroot. - -Fri Jun 1 10:57:19 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Really make sure that isspace gets only an unsigned - char. - -Fri Jun 1 13:45:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (_rename): Handle the case that `foo' is renamed to - `bar' while `bar.lnk' is an existing shortcut-symlink. - -Thu May 31 15:57:57 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits - since we've already pre-cleared everything anyway. - -Wed May 30 23:51:32 2001 Earnie Boyd <earnie_boyd@yahoo.com> - - * path.cc (chdir): Always send unsigned chars to isspace since newlib's - isspace doesn't deal well with "negative" chars. - -Wed May 30 23:51:32 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_disk_file::open): Propagate remote status of - file garnered from path_conv. Move #! checking to fstat. - (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate - duplication. Move check for #! here from fhandler::open. - - * fhandler.h (fhandler_base::isremote): New method. - (fhandler_base::set_isremote): Ditto. - (fhandler_base::set_execable_p): Also record "don't care if executable - state". - (fhandler_base::dont_care_if_execable): New method. - * path.cc (path_conv::check): Clear new flags. Appropriately set - vol_flags, drive_type, and is_remote_drive. - * path.h: Add new flags and methods for manipulating them. - * syscalls.cc (_unlink): Use isremote() to determine if a path is - remote rather than calling GetDriveType. - (stat_worker): Ditto. - * security.cc (get_file_attribute): Or attribute with result of - NTReadEA to be consistent with get_nt_attribute. - -Tue May 29 19:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'. - (cygsid::getfromgr): Ditto. - * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout. - (extract_nt_dom_user): Try to get user and domain from SID in - pw->pw_gecos first. - * security.h (class cygsid): Change parameter of getfrompw() and - getfromgr() to `const'. - * uinfo.cc (internal_getlogin): Change order for evaluating user - information in winNT case. Drop usage of NetWkstaUserGetInfo(). - -Mon May 28 21:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks. - -Fri May 25 11:07:07 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use - this to determine if user specified 'foo.lnk' explicitly. Reorganize - slightly to get rid of one goto. - -Fri May 25 10:15:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Add a check to return correctly - if incoming `*.lnk' file is not a symlink. - -Thu May 24 15:46:50 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (slash_drive_prefix_p): Remove. - (mount_info::slash_drive_to_win32_path): Ditto. - (mount_info::conv_to_win32_path): Remove slash drive prefix check. - (mount_info::add_item): Ditto. - (mount_info::del_item): Ditto. - * shared_info.h (mount_info): Remove slash_drive_to_win32_path - declaration. - -Thu May 24 01:17:33 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Bump repeat count for debugging - kick out. - - * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec. - * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum. - (operator new): New. - (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns. - (Audio::Audio): Optimize slightly. - (fhandler_dev_dsp::open): Allocate s_audio using static buffer. - (fhandler_dev_dsp::fixup_after_exec): New function. Ditto. - -Wed May 23 17:45:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid): Restrict overriding external provided - user tokens to ntsec. Don't test external tokens for primary - group to evaluate if it should be overridden. Restrict creating - internal tokens to ntsec. - -Wed May 23 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chown_worker): Don't check for ENOSYS. - -Tue May 22 12:20:07 2001 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (sleep): Protect with sigframe. - -Tue May 22 17:58:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_attribute): Don't set errno. - -Mon May 21 15:08:00 2001 Christopher Faylor <cgf@cygnus.com> - - * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off. - * configure: Regenerate. - -Mon May 21 11:46:01 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump minor version number. - -Sun May 20 13:26:25 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_dsp.cc: Reformat to GNU standards. - (s_audio): Change to a pointer throughout. - (fhandler_dev_dsp::open): Initialize s_audio, if required. - -Sat May 19 23:40:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add load statements for `LookupAccountNameW', - `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory', - `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum', - `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and - `NtCreateToken'. - * ntdll.h: Add declaration for `NtCreateToken'. - * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid', - `well_known_network_sid', `well_known_batch_sid', - `well_known_interactive_sid', `well_known_service_sid' and - `well_known_authenticated_users_sid'. - (cygsid::string): Define as const method. - (cygsid::get_sid): Set psid to NO_SID on error. - (cygsid::getfromstr): Ditto. - (cygsid::getfrompw): Simplify. - (cygsid::getfromgr): Check for gr == NULL. - (legal_sid_type): Move to security.h. - (set_process_privilege): Return -1 on error, otherwise 0 or 1 related - to previous privilege setting. - * security.cc (extract_nt_dom_user): Remove `static'. - (lsa2wchar): New function. - (open_local_policy): Ditto. - (close_local_policy): Ditto. - (get_lsa_srv_inf): Ditto. - (get_logon_server): Ditto. - (get_logon_server_and_user_domain): Ditto. - (get_user_groups): Ditto. - (is_group_member): Ditto. - (get_user_local_groups): Ditto. - (sid_in_token_groups): Ditto. - (get_user_primary_group): Ditto. - (get_group_sidlist): Ditto. - (get_system_priv_list): Ditto. - (get_priv_list): Ditto. - (get_dacl): Ditto. - (create_token): Ditto. - (subauth): Return immediately if SE_TCB_NAME can't be assigned. - Change all return statements in case of error to jumps to `out' - label. Add `out' label to support cleanup. - * security.h: Add extern declarations for `well_known_local_sid', - `well_known_dialup_sid', `well_known_network_sid', - `well_known_batch_sid', `well_known_interactive_sid', - `well_known_service_sid' and `well_known_authenticated_users_sid'. - Add extern declarations for functions `create_token', - `extract_nt_dom_user' and `get_logon_server_and_user_domain'. - (class cygsid): Add method `assign'. Change operator= to call new - `assign' method. Add `debug_print' method. - (class cygsidlist): New class. - (legal_sid_type): Moved from sec_helper.cc to here. - * spawn.cc (spawn_guts) Revert reversion of previous patch. - Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid' - again. - * syscalls.cc (seteuid): Rearranged. Call `create_token' now when - needed. Call `subauth' if `create_token' fails. Try setting token - owner and primary group only if token was not explicitely created - by `create_token'. - * uinfo.cc (internal_getlogin): Try harder to generate correct user - information. Especially don't trust return value of `GetUserName'. - -Sat May 19 21:16:07 2001 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork_parent): Move atforkprepare call here. - (fork): From here. - -Sat May 19 18:35:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add missing load statement for `CancelIo'. - -Sat May 19 01:22:43 2001 Christopher Faylor <cgf@cygnus.com> - - * grp.cc (read_etc_group): Don't copy mutex on fork. - * pwd.cc (read_etc_passwd): Ditto. - * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL - specific area. - -Fri May 18 10:31:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_event::wait): Explicitely cancel IO when a signal - arrived to avoid data loss. Fallback to blocking IO when canceling - fails. - -Thu May 17 15:29:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (cygwin_set_impersonation_token): Never destroy - previous token object. - (subauth): Create token source with well defined identifier. - -Wed May 16 23:27:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE. - Token value is already invalid at that point. - -Wed May 16 21:34:00 2001 Fred Yankowski <fred@ontosys.com> - - * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR. - -Wed May 16 09:20:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (legal_sid_type): Fix conditional. Change to - inline function. - -Wed May 16 01:01:48 2001 Christopher Faylor <cgf@cygnus.com> - - * autoload.h: Eliminate. - * autoload.cc: Pull in autoload.h. Eliminate many macros. Rewrite to - avoid necessity of initialization routines. Just use a standard one. - (wsock_init): New function. Moved from net.cc. - * net.cc (wsock_init): Move to autoload.cc. - (wsadata): Make global. - * dtable.cc (dtable::build_fhandler): Use more reliable method for - checking if net stuff has been loaded. - -Tue May 15 19:52:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork): Eliminate superfluous call to getuid(). - * security.h: New define `NO_SID'. Remove declarations of functions - moved to methods into class cygsid. - (class cygsid): Declare new methods `getfromstr', `get_sid', - `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string' - and new constructors and operators =, == and !=. - Declare new global cygsids `well_known_XXX_sid' substituting the - corresponding `get_XXX_sid' functions. Remove declarations of - these functions. - * sec_helper.cc (well_known_admin_sid): New global variable. - (well_known_system_sid): Ditto - (well_known_creator_owner_sid): Ditto - (well_known_world_sid): Ditto - (cygsid::string): New method, substituting `convert_sid_to_string_sid'. - (cygsid::get_sid): New method, substituting `get_sid'. - (cygsid::getfromstr): New method, substituting - `convert_string_sid_to_sid'. - (cygsid::getfrompw): New method, substituting `get_pw_sid'. - (cygsid::getfromgr): New method, substituting `get_gr_sid'. - (cygsid::get_id): New method, substituting `get_id_from_sid'. - (get_admin_sid): Eliminated. - (get_system_sid): Ditto. - (get_creator_owner_sid): Ditto. - (get_world_sid): Ditto. - * grp.cc: Use new cygsid methods and well known sids throughout. - * registry.cc: Ditto. - * sec_acl.cc: Ditto. - * security.cc: Ditto. - * shared.cc: Ditto. - * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional. - * uinfo.cc (internal_getlogin): Ditto. - * spawn.cc (spawn_guts) Revert previous patch. - -Tue May 15 10:20:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr - field to host byte order before comparing with INADDR_LOOPBACK. - -Tue May 15 9:03:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add autoload statements for ws2_32 functions - `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult', - `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent', - `WSAWaitForMultipleEvents'. - * net.cc: Define wsock_evt. - (wsock_event): New class. - (cygwin_sendto): Use overlapped socket io if available. - (cygwin_recvfrom): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - * security.cc (subauth): Set Win32 error to 0 to safely ask for the - error code of dynamically loaded function `LsaRegisterLogonProcess'. - -Mon May 14 15:37:29 2001 Christopher Faylor <cgf@cygnus.com> - - * errno.cc (_sys_errlist): Add missing commas. - -Mon May 14 16:13:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (subauth): Check if Secur32.dll could be loaded. - -Sun May 13 22:49:04 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Revert allow_ntsec check so that volume - info is always retrieved and isdisk setting is properly set. - -Sun May 13 14:02:36 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when - duping a filehandle. - -Sat May 12 18:19:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (rmdir): Rearrange slightly to allow removing directories - even when R/O attribute is set. - -Fri May 11 16:53:38 2001 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Use correct pids. - * path.cc (mount_info::conv_to_win32_path): Correct test for whether to - include a slash. - -Fri May 11 01:04:17 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Don't print message when executing - from a cygwin program. - -2001-05-10 Egor Duda <deo@logos-m.ru> - Christopher Faylor <cgf@redhat.com> - - * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to - win32-style environment if they don't already exist. - -2001-05-10 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as - paths including `:' or `\'. - -Wed May 9 14:46:32 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_termios::echo_erase): Declare new method. - * fhandler_termios.cc (fhandler_termios::echo_erase): New method for - echoing erase characters. - (fhandler_termios::line_edit): Check the echo flag before echoing - control characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). - -Wed May 9 10:43:30 2001 Christopher Faylor <cgf@cygnus.com> - - * include/pthread.h: Remove C++ comment. - -Tue May 8 11:09:59 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (_cfree): Add regparm attribute. - (_crealloc): Ditto. - - * dcrt0.cc (dll_crt0_1): Default to always checking for executable for now. - - * dtable.cc (dtable::not_open): Move method. - * dtable.h (dtable): Here. - - * exceptions.cc (ctrl_c_handler): Don't expect process group leader to - handle a signal if it doesn't exist. - - * fhandler.h (fhandler_base): Make openflags protected. - - * localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__. - - * path.cc (path_conv::check): Add some comments. Change strcat to assignment. - - * lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate. - - * fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if necessary. - * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto. - -Mon May 7 21:33:17 2001 Christopher Faylor <cgf@cygnus.com> - - * include/sys/file.h: Revert special X_OK usage. Just make it a - constant. - -Sun May 6 17:05:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.h (pthread_cond): New element cond_access to allow atomic - broadcasts. - * thread.cc (pthread_cond::pthread_cond): Initialise cond_access. - (pthread_cond::~pthread_cond): Destroy cond_access. - (pthread_cond::Broadcast): Use cond_access. - (pthread_cond::Signal): Use cond_access. - (pthread_cond_wait): Use cond_access. - (pthread_cond_timedwait): Use cond_access. - -Sun May 6 11:55:40 2001 Christopher Faylor <cgf@cygnus.com> - - * string.h (cygwin_strchr): Make 'static inline' so that things will - still work when optimized. - -Sat May 5 01:04:11 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Vastly increase test for exception - loop guard variable. - -Fri May 4 22:23:33 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (stack_info): Add some controls. - (stack_info::init): Add extra arguments to control method of - initialization.. If we have a known good frame, set things up so that - this frame is not skipped the first time through. Record whether - caller cares about arguments or not. - (stack_info::walk): Don't store arguments if they're unwanted. - (stackdump): Add isexception parameter for use when called by exception - handler. - (cygwin_stackdump): Accommodate extra argument to stackdump. - (handle_exceptions): Ditto. - (sig_handle): Ditto. - (interrupt_on_return): Accommodate extra arguments to stack walk - initialization. - -Fri May 4 21:05:20 2001 Christopher Faylor <cgf@cygnus.com> - - * localtime.c: Revert exclusion of windows.h. - -Fri May 4 17:03:16 2001 Christopher Faylor <cgf@cygnus.com> - - * string.h: Fix last-minute typo. - -Fri May 4 16:49:34 2001 Christopher Faylor <cgf@cygnus.com> - - * pinfo.h: Correctly set __SIGOFFSET. - - * path.cc (hash_path_name): Avoid calling library functions for simple - copying of characters. - - * shortcut.c: Use WIN32_LEAN_AND_MEAN. - * smallprint.c: Ditto. - - * environ.cc (getwinenv): Minor clarity fix. - - * localtime.c: No need to include windows.h - - * string.h: New file. - -Fri May 4 16:37:30 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (ctrl_c_handler): Always send signal to process if it - has no tty. - -2001-05-04 Egor Duda <deo@logos-m.ru> - - * fhandler_socket.cc (set_connect_secret): Use /dev/urandom to - generate secret cookie. - -Thu May 3 16:37:55 2001 Christopher Faylor <cgf@cygnus.com> - - * include/pthread.h (pthread_cleanup_push): Eliminate space preceding - arguments. - (pthread_cleanup_pop): Ditto. - -Thu May 3 18:16:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_init): Rename `was_in_progress' to `wsock_started' - for clearness. - -Thu May 3 10:44:16 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (handle_exceptions): Break out of "loop" if the - debugger doesn't seem to be attaching to our process. - -Wed May 2 20:18:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Use new definition of LoadDLLinitfunc throughout. - Redefine wrapper for wsock32.dll and ws2_32.dll. - (std_dll_init): New function. - * autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef. - Add new defines LoadDLLinitfunc and LoadDLLstdfunc. - * net.cc (wsock_init): Add guard variable handling. Take care - to call WSAStartup only once. Load WSAStartup without using - autoload wrapper to eliminate recursion. Eliminate FIONBIO - and srandom stuff. - -Tue May 1 01:26:15 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_win32_path): More path tweaking. - -Tue May 1 00:34:46 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mount_info::conv_to_win32_path): Fix debugging output to - avoid a SIGSEGV. Avoid double backslashes in middle of filename. - -Mon Apr 30 21:51:14 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (mkrelpath): New function. - (mount_info::conv_to_win32_path): Eliminate now-unneeded relative path - name arg and processing. - (path_conv::check): Accommodate relative path names again. Accommodate - one extra argument in mount_info::conv_to_win32_path. Tack trailing - slash on end of relative path as a side effect, like before. - * shared_info.h (mount_info::conv_to_win32_path): Reflect new argument - ordering. - -Mon Apr 30 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add LoadDLLinitfunc for secur32.dll. - Add LoadDLLfuncEx statements for AllocateLocallyUniqueId@4, - DuplicateTokenEx@24, LsaNtStatusToWinError@4, - LsaDeregisterLogonProcess@4, LsaFreeReturnBuffer@4, - LsaLogonUser@56, LsaLookupAuthenticationPackage@12, - LsaRegisterLogonProcess@12, - * environ.cc: Add extern declaration for `subauth_id'. - (subauth_id_init): New function for setting `subauth_id'. - (struct parse_thing): Add entry for `subauth_id'. - * fork.cc (fork_parent): Call `RevertToSelf' and - `ImpersonateLoggedOnUser' instead of `seteuid'. - * security.cc: Define global variable `subauth_id'. - (extract_nt_dom_user): New function. - (cygwin_logon_user): Call `extract_nt_dom_user' now. - (str2lsa): New static function. - (str2buf2lsa): Ditto. - (str2buf2uni): Ditto. - (subauth): Ditto. - * security.h: Add prototype for `subauth'. - * spawn.cc (spawn_guts): Use cygheap->user.token only if impersonated. - Use `cygsid' type. Remove impersonation before allowing access to - workstation/desktop to everyone. Call `RevertToSelf' and - `ImpersonateLoggedOnUser' instead of `seteuid'. - * syscalls.cc (seteuid): Rearranged to allow using subauthentication - to retrieve user tokens when needed. - -Mon Apr 30 20:26:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Formatting change. - -Mon Apr 30 19:58:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc: Eliminate MAX_DOMAIN_NAME define. - (read_etc_group): Substitute MAX_DOMAIN_NAME by - INTERNET_MAX_HOST_NAME_LENGTH. - * passwd.cc (parse_pwd): Don't force pw_name to be lower case. - * sec_helper.cc: Substitute MAX_USER_NAME by UNLEN, - MAX_COMPUTERNAME_LENGTH by INTERNET_MAX_HOST_NAME_LENGTH throughout. - (lookup_name): Slight cleanup. - * security.cc (alloc_sd): Substitute MAX_USER_NAME by UNLEN. - * security.h: Define DEFAULT_UID as DOMAIN_USER_RID_ADMIN and - DEFAULT_GID as DOMAIN_ALIAS_RID_ADMINS. - * shared.cc (memory_init): Substitute MAX_USER_NAME by UNLEN. - * thread.h: Ditto. - * uinfo.cc (internal_getlogin): Substitute MAX_USER_NAME by UNLEN. - Substitute MAX_COMPUTERNAME_LENGTH and MAX_HOST_NAME by - INTERNET_MAX_HOST_NAME_LENGTH. - * winsup.h: Include lmcons.h. Eliminate MAX_USER_NAME and - MAX_HOST_NAME. Move DEFAULT_UID and DEFAULT_GID to security.h. - -Mon Apr 30 12:35:40 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Don't use path_flags when converting to - MS-DOS syntax unless parsing tail of path component. Stop parsing path - when we reach the 'root' of the path. Correctly copy tail to path - component. - -Sun Apr 29 22:28:06 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (INIT_EXCEPTION_HANDLER): Eliminate. - (init_exceptions): Just use init_exception_handler. - (open_stackdumpfile): New function. - (stack_info::first_time): Eliminate. - (stack_info::init): Set up fields to avoid "first_time" consideration. - (stack_info::walk): Remove "first_time" consideration. - (stackdump): Change arguments to accept initial frame pointer and open - stack file flag. - (stack): Eliminate. - (cygwin_stackdump): Use stackdump() rather than stack(). - (try_to_debug): Remove all synchronization logic. Just keep looping in - exception handler until debugger notices us. Return 1 if successfully - started debugger. - (handle_exceptions): Just return if we know that we're debugging. - Reorganize to avoid creating a stackdump file if we are starting a - debugger. Return from exception handler if debugger started - successfully. - (sig_handle): Create a stackdump only if debugger wasn't started. - * winsup.h (try_to_debug): Add an argument. - -Sun Apr 29 21:41:25 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (symlink_info::check): Remove extra arguments, move - functionality back to path_conv::check. Clear symlink bit from pflags - argument before detecting if this is a symlink. - (path_conv::check): Convert posix path here instead of - symlink_info::check. Only grab volflags when using ntsec. - (symlink_info::check_case): Just replace appropriate part of input - path. - -Sat Apr 28 19:36:13 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, change 'tty_attached' to 'real_tty_attached', for clarity. - Throughout, change 'OutputStopped' to 'output_stopped', for - consistency. - * dtable.cc (stdio_init): Set controlling tty if not set by stdio - opens. - * exceptions.cc (ctrl_c_handler): Avoid special pgid checking if no tty - is associated with the process. - (Suggested by Tim Baker <dbaker@direct.ca>) - * external.cc (fillout_pinfo): Return actual tty number for ctty. - * fhandler_console.cc (get_tty_stuff): Set ctty when shared memory is - allocated. Accept flags input from open(). - (set_console_ctty): New function. - (fhandler_console::open): Pass flags to get_tty_stuff and rely on this - function to set the ctty, if appropriate. - * fhandler_termios.cc (fhandler_termios::set_ctty): Move to tty_min - class. - * fhandler_tty.cc (fhandler_tty_slave::open): Use tc field to access - set_ctty(). - * tty.h (TTY_CONSOLE): Move to include/sys/cygwin.h. - (tty_min): Add set_ctty class here. - * include/sys/cygwin.h (TTY_CONSOLE): New home here. - - * path.cc (symlink_info): Make contents an actual buffer. Pass more - flags to case_check. - (path_conv::check): Reorganize to do parsing based on posix path rather - than native path. - (symlink_info::check): Expect posix path as input. Translate to native - path here. Accept path_conv flags. Stop parsing if not a symlink - regardless of whether previous path was a symlink. - -2001-04-27 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * thread.cc (thread_init_wrapper): Use _REENT_INIT to initialize the - reent structure of newlib. - -Fri Apr 27 14:02:24 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sig_send): Add exception parameter to sig_send. - * sigproc.cc (sig_send): Ditto. Use it when setting frame info. - * exceptions.cc (handle_exceptions): Use exception flag when calling - sig_send. - -2001-04-27 Egor Duda <deo@logos-m.ru> - - * tty.cc (tty::make_pipes): Set to_slave pipe mode to nonblocking. - * fhandler_tty.cc (fhandler_pty_master::accept_input): If pipe buffer - is full, give slave a chance to read data. - -2001-04-26 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * security.cc (alloc_sd): Add unrelated ACCESS_ALLOWED_ACE behind - the `everyone' ACE. - -Wed Apr 25 15:07:37 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h [sigthread]: Add exception field. - [sigframe::~sigframe]: Clear exception field. - [sigframe::set]: Set exception field from caller. - * sigproc.cc (sig_send): Set exception field when frame pointer is - passed in. - * exceptions.cc (interrupt_on_return): Always treat exception as - interruptible. - -2001-04-25 Egor Duda <deo@logos-m.ru> - - * cygwin.din: Export asctime_r, ctime_r, gmtime_r, localtime_r - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 39 - -Wed Apr 25 10:57:36 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump minor version number. - * childinfo.h: Bump child structure magic number. - -2001-04-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * uinfo.cc (internal_getlogin): Return pointer to struct passwd. - (uinfo_init): Accommodate the above change. - * syscalls.cc (seteuid): Ditto. - -Tue Apr 25 11:08:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add LoadDLLfunc statements for SetTokenInformation@16. - * cygheap.cc: Include security.h. - * grp.cc (internal_getgrent): New function. - (getgroups): Rearranged using `internal_getgrent' and the new - `cygsid' class. - * passwd.cc (internal_getpwent): New function. - * sec_acl.cc: Use new `cygsid' class throughout. - (acl_access): Use `internal_getgrent' instead of `getgrent'. - * sec_helper.cc: Use new `cygsid' class throughout. - (get_id_from_sid): Use `internal_getgrent' instead of `getgrent'. - Use `internal_getpwent' instead of `getpwent'. - * security.cc: Use new `cygsid' class throughout. - * security.h: Move `MAX_SID_LEN' from winsup.h to here. - Add extern declarations for `internal_getgrent' and `internal_getpwent'. - (class cygsid): New class. - * shared.cc (sec_user): Use new `cygsid' class. - * syscalls.cc (seteuid): Try to set owner to user and primary group to - current group in impersonation token before performing impersonation. - (setegid): Try to set primary group in process token to the new group - if ntsec is on. - * uinfo.cc (internal_getlogin): Use new `cygsid' class. - Try to set owner to user and primary group to current group in process - token if the process has been started from a non cygwin process. - (uinfo_init): Set primary group only if the process has been started - from a non cygwin process. - * winsup.h: Move define for `MAX_SID_LEN' to security.h. - -Mon Apr 16 23:20:00 2001 Andy Younger <andylyounger@hotmail.com> - - * fhandler_dsp.cc: Improved handling of 8 bit playback modes. - Put in mock support for SNDCTL_DSP_SETFRAGMENT. - -Tue Apr 24 23:51:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (getpwnam_r): Add pw_passwd handling as well. - (getpwuid_r): Ditto. - -Tue Apr 24 23:43:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (getpwnam_r): Use correct offsets into buffer. - Copy pw_gecos field as well. - (getpwuid_r): Ditto. - -2001-04-24 Egor Duda <deo@logos-m.ru> - - * dlmalloc.c: New file. Port of Doug Lea's malloc - * dlmalloc.h: Ditto. - * Makefile.in: Add support for MALLOC_DEBUG - * config.h.in: Ditto. - * winsup.h: Ditto. - * configure.in: Add --enable-malloc-debugging option. - * configure: Regenerate. - * debug.h: Include declarations for debugging malloc. - * tty.cc (grantpt): Fix definition. - (unlockpt): Ditto. - -Mon Apr 23 22:00:29 2001 Christopher Faylor <cgf@cygnus.com> - - Remove trailing underscore from fhandler_base and friends, throughout. - * fhandler.h (fhandler_base::set_open_status): New method. Stores - original open status. - (fhandler_base::get_open_status): New method. Retrieves original open - status. - (fhandler_base::reset_to_open_binmode): New method. - * fhandler.cc (fhandler_base::open): Save open status. - (fhandler_base::init): Ditto. - * fhandler_clipboard.cc (fhandler_clipboard::open): Ditto. - * fhandler_console.cc (fhandler_console::open): Ditto. - * fhandler_dsp.cc (fhandler_dsp::open): Ditto. - * fhandler_dev_mem.cc (fhandler_dev_mem::open): Ditto. - * fhandler_dev_random.cc (fhandler_dev_random::open): Ditto. - * fhandler_serial.cc (fhandler_serial::open): Ditto. - * fhandler_tty_slave.cc (fhandler_tty_slave::open): Ditto. - * fhandler_tty_master.cc (fhandler_tty_master::open): Ditto. - * fhandler_dev_zero.cc (fhandler_dev_zero::open): Ditto. - * syscalls.cc (setmode): Rework so that 0 mode value causes reversion - to open state. - - * fhandler_tty_slave.cc (fhandler_tty_slave::read): Use correct - multiplier when converting from deciseconds to milliseconds. - -Mon Apr 23 13:28:35 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.h (fhandler_base::clear_r_binary): New method. - (fhandler_base::clear_w_binary): New method. - * syscalls.cc (setmode): Accept 0 as mode value. Resets text/binary - behavior for fd to default. - -Mon Apr 23 12:46:07 2001 Christopher Faylor <cgf@cygnus.com> - - * net.cc [errmap]: Add '0' condition. - (find_winsock_errno): Don't translate no error to EPERM. - -Sun Apr 22 20:48:24 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump Cygwin version and API version. - -Mon Apr 23 9:27:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (MTinterface::Init): Always initialise per process variables. - -Sun Apr 22 19:18:18 2001 Christopher Faylor <cgf@cygnus.com> - - * features.h: Reinstate as wrapper for sys/features.h. - -Mon Apr 23 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Reformat comment. - * shared.cc: Drop function declarations already in security.h. - -Sun Apr 22 12:17:57 2001 Christopher Faylor <cgf@cygnus.com> - - * shortcut.c (check_shortcut): Close input file handle before - returning. - * path.cc (check_sysfile): Ditto. - (symlink_info::check): Rely on opened file handle being closed by - symlink checking routines. Set ext_tacked_on when .lnk is detected. - -Sat Apr 21 19:26:05 2001 Christopher Faylor <cgf@cygnus.com> - - * thread.cc (MTinterface::Init): Remove accidentally checked in code. - -Sun Apr 22 00:22:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * passwd.cc (getpwuid): Check for thread cancellation. - (getpwuid_r): Ditto. - (getpwname): Ditto. - (getpwnam_r): Ditto. - * thread.h (pthread_mutex): New constructors for pshared operation. - (MTinterface): Associative array for pshared mutex's. - * thread.cc (MTinterface::Init): Initailize pshared mutex array. - (pthread_cond::BroadCast): Implementation notes. - (pthread_cond::TimedWait): Remove use of SignalObjectAndWait on non-NT systems. - (pthread_mutex::pthread_mutex(unsigned short)): New function. - (pthread_mutex::pthread_mutex (pthread_mutex_t *, pthread_mutexattr *)):New function. - (pthread_mutex::pthread_mutex(pthread_mutexattr *)): Fail on pshared mutex's. - (__pthread_mutex_getpshared): New function. - (__pthread_join): Check for thread cancellation. - (__pthread_cond_timedwait): Support pshared mutex's. - (__pthread_cond_wait): Ditto. - (__pthread_condattr_setpshared): Error on PROCESS_SHARED requests. - (__pthread_mutex_init): Support pshared mutex's. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutexattr_setpshared): Support PTHREAD_PROCESS_PSHARED requests. - -Fri Apr 20 19:38:29 2001 Christopher Faylor <cgf@cygnus.com> - - * cygwin.din: Add *scanf and *scan_r functions. - -Fri Apr 20 22:25:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_process_privileges): Swap out. - * sec_helper.cc (set_process_privilege): Rename from - `set_process_privileges'. Takes the privilege to enable or disable - as parameter now. - * security.h: Add prototype for `set_process_privileges'. - -2001-04-19 Egor Duda <deo@logos-m.ru> - - * path.cc (path_conv::check): Always initialize member variables. - -Fri Apr 20 12:27:49 2001 Christopher Faylor <cgf@cygnus.com> - - * include/sys/file.h: More cleanup for X_OK. - -Fri Apr 20 11:48:45 2001 Christopher Faylor <cgf@cygnus.com> - - * include/sys/file.h: Move X_OK protection earlier. - - * dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed - handles. - -Fri Apr 20 16:29:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgroups): Change so that SIDs get compared instead - of strings to SIDs. - -Fri Apr 20 14:50:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add object files `sec_helper.cc' and `sec_acl.cc'. - * security.cc: Swap out several functions. - * sec_acl.cc: New file. Move Sun compatibel ACL functions from - `security.cc' to here. - * sec_helper.cc: New file. Move security helper functions from - `security.cc' to here. - * security.h: Changed to accommodate the above changes. - -Fri Apr 20 14:12:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc: Replace `group_in_memory_p' by `group_state'. - Eliminate group_sem throughout. - (enum grp_state): New enumeration type. - (read_etc_group): Make race safe. - * security.cc: Eliminate group_sem throughout. - -Thu Apr 19 9:40:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Drop usage of the same memory area if the same - region of the same file is mapped twice. - -Wed Apr 18 16:53:54 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, change fdtab references to cygheap->fdtab. - * child_info.h (cygheap_exec_info): Eliminate special fdtab stuff. - * spawn.cc (spawn_guts): Ditto. - * cygheap.cc (cygheap_init): Initialize fdtab, if appropriate. - * cygheap.h (CYGHEAPSIZE): Include size of init_cygheap. - (_cmalloc_entry): Include fdtab here. - * dtable.h (dtable): Declare/define new methods. - * dtable.cc (dtable::vfork_child_fixup): New method. - (dtable::fixup_after_exec): Remove unneeded extra arguments. - * dcrt0.cc (dll_crt0_1): Ditto. - - * environ.cc (getwinenv): Use case sensitive comparison. - (winenv): Make a copy of environment cache to avoid realloc problems - when duplicate environment variables exist in the environment. (From - Egor Duda) - - * net.cc (cygwin_socket): Revert Apr 14 change. - - * include/sys/file.h: Protect against previous X_OK definition. - -Tue Apr 17 12:18:28 2001 Christopher Faylor <cgf@cygnus.com> - - * passwd.cc: Eliminate passwd_sem throughout. - * security.cc: Ditto. - -Tue Apr 17 12:18:28 2001 Robert Collins <rbtcollins@hotmail.com> - - * cygwin.din: Export New functions. - * passwd.cc (read_etc_passwd): Make race safe. - (getpwuid_r): New function. - (getpwnam_r): New function. - -2001-04-18 Egor Duda <deo@logos-m.ru> - - * grp.cc (getgroups): Avoid crash if passwd field if /etc/group is - empty. - -Tue Apr 17 19:05:44 2001 Christopher Faylor <cgf@cygnus.com> - - * path.h (path_conv::add_ext_from_sym): Declare. - * path.cc (path_conv::add_ext_from_sym): Convert to pure inline method. - -Tue Apr 17 18:50:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (windows_device_names): Add missing NULL element. - -Tue Apr 17 12:14:54 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (windows_device_names): Move dsp to proper location. - -Tue Apr 17 13:44:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Set case_clash even if pcheck_case - is set to PCHECK_ADJUST when a case clash is given for the last - component in path. - (symlink_info::case_check): Ditto. - * syscalls.cc (_rename): Avoid overwriting an already existing file - if a case clash is given even if pcheck_case is set to PCHECK_ADJUST. - -Tue Apr 17 2:07:07 2001 Christopher Faylor <cgf@cygnus.com> - - * config.h.in: Turn off VFORK again. - -Mon Apr 16 23:45:24 2001 Christopher Faylor <cgf@cygnus.com> - - * path.h (cwdstuff): Move class. - * cygheap.h (cwdstuff): To here. - (init_cygheap): Add cwd field. - * child_info.h (cygheap_exec_info): Eliminate cwd stuff. - (child_info_spawn): Ditto. - * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call. Convert - cygcwd reference to cygheap->cwd. - * path.cc: Ditto, throughout. - (cwdstuff::copy): Eliminate. - (cwdstuff::fixup_after_exec): Ditto. - * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy. - - * fhandler.h (FH_OSS_DSP): Move into "fast" device category. - -Mon Apr 16 19:19:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Move fh_paging_file from some functions to be - a global static variable. - (class mmap_record): Add `devtype_' member to remember - the device type of the file. Add declaration for methods - `get_device', `alloc_fh' and `free_fh'. - (mmap_record::mmap_record): Initialize `devtype_' correctly. - (mmap_record::alloc_fh): New method. - (mmap_record::free_fh): Ditto. - (munmap): Use new mmap_record::alloc_fh and mmap_record::free_fh - methods to create a correct fhandler. - (msync): Ditto. - (fixup_mmaps_after_fork): Ditto. - -Mon Apr 16 16:01:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgroups): If `allow_ntsec' is set, use the process token - information to evaluate the groups list. - -Mon Apr 16 00:08:02 2001 Christopher Faylor <cgf@cygnus.com> - - * features.h: Remove this file as it is now being supplied by newlib. - -Sun Apr 15 23:23:29 2001 Christopher Faylor <cgf@cygnus.com> - - * autoload.cc: Add winmm functions needed by fhandler_dsp.cc. - -Sun Apr 15 22:53:52 2001 Andy Younger <andylyounger@hotmail.com> - - * fhandler_dsp.cc: New file. Implements OSS like /dev/dsp. - * include/sys/soundcard.h: New file. User land includes for OSS - /dev/dsp. - * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP - definition. - * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp - device. - * path.cc (windows_device_names): Add /dev/dsp into list of device - names. - * Makefile.in (DLL_OFILES): Add fhandler_dsp.o. - -Sun Apr 15 16:36:27 2001 Christopher Faylor <cgf@cygnus.com> - - * uname.c (uname): Default n in in86 to 6 if Windows returns > 6. - -Sun Apr 15 15:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'. - (add_ext_from_sym_): New inline function. - -Sat Apr 14 19:23:52 2001 Christopher Faylor <cgf@cygnus.com> - - * config.h.in: Turn on VFORK by default. - -Sat Apr 14 18:04:35 2001 Christopher Faylor <cgf@cygnus.com> - - * net.cc (cygwin_socket): Set SO_LINGER to small value so closed UNIX - domain sockets will not stay around. - -Sat Apr 14 18:01:43 2001 Pierre A. Humblet <Pierre.Humblet@ieee.org> - - * select.cc (socket_cleanup): Set SO_LINGER to small value so closed - dummy sockets do not stay around. Use correct value for second argument - to shutdown. - -Sat Apr 14 17:04:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.h (MTinterface): Add threadcount. - * thread.cc (MTinterface::Init): Set threadcount to 1. - (__pthread_create): Increment threadcount. - (__pthread_exit): Decrement threadcount and call exit() from the last thread. - -Fri Apr 13 11:34:24 2001 Robert Collins <rbtcollins@hotmail.com> - - * fork.cc (fork_child): Call the __pthread_atforkchild function. - (fork_parent): Call the __pthread_atforkparent function. - * cygwin.din: Export pthread_atfork. - * thread.h (callback): New class. - (MTinterface): Use it. - * thread.cc (__pthread_atforkprepare): New function. - (__pthread_atforkparent): New function. - (__pthread_atforkchild): New function. - (__pthread_atfork): New function. - * pthread.cc (pthread_atfork): New function. - -Fri Apr 13 9:52:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (add_ext_from_sym): New define evaluating `known'suffix'. - (path_conv::check): Use add_ext_from_sym throughout. - -Thu Apr 12 23:19:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Check for case clash. - * environ.cc: Add extern declaration for `pcheck_case'. - (check_case_init): New function. - (struct parse_thing): Add "check_case" option. - * errno.cc (_sys_nerrlist): Add text for ECASECLASH. - (strerror): Add case branch for ECASECLASH. - * fhandler.cc (fhandler_disk_file::open): Check for case clash. - * path.cc: Add global variable `pcheck_case'. - (struct symlink_info): Add member `case_clash' and method `case_check'. - (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'. - (pathnmatch): New funtion. - (pathmatch): Ditto. - (path_conv::check): Add handling for case checking. - (symlink): Check for case clash. - (symlink_info::check): Add parameter for case checking. - Handle case checking. - (symlink_info::case_check): New method. - (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT. - * path.h: Add extern declarations for `pathmatch' and - `pathnmatch'. - (enum case_checking): New enumeration type describing - the case checking behaviour of path conversion routines. - (class path_conv): Add member `case_clash'. - * syscalls.cc (_link): Check for case clash. - -Thu Apr 12 12:49:53 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (mkfifo): New function stub. - -2001-04-12 Robert Collins <rbtcollins@hotmail.com> - - * configure.in: Remove PTH_ALLOW. - * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions. Add - new pthread exports. - * pthread.cc: New wrapper functions for the above new exports. - * sched.cc (valid_sched_parameters): New function. - (sched_setparam): Use it. - (sched_set_thread_priority): New function. Used by pthread_sched*. - * thread.cc (pthread_key_destructor::InsertAfter): New function. - (pthread_key_destructor::UnlinkNext): New function. - (pthread_key_destructor::Next): New function. - (pthread_key_destructor_list::Insert): New function. - (pthread_key_destructor_list::Remove): New function. - (pthread_key_destructor_list::Pop): New function. - (pthread_key_destructor::pthread_key_destructor): New function. - (pthread_key_destructor_list::IterateNull): New function. - (MTinterface::Init): Initialise new member. - (pthread::pthread): Initialise new members. - (pthread::create): Copy new attributes. Set the new thread priority. - (pthread_attr::pthread_attr): Initialise new members. - (pthread_key::pthread_key): Setup destructor function. - (pthread_key::~pthread_key): Remove destructor function. - (pthread_mutexattr::pthread_mutexattr): New function. - (pthread_mutexattr::~pthread_mutexattr): New function. - (__pthread_once): New function. - (__pthread_cleanup): New function. - (__pthread_cancel): New function. - (__pthread_setcancelstate): New function. - (__pthread_setcanceltype): New function. - (__pthread_testcancel): New function. - (__pthread_attr_getinheritsched): New function. - (__pthread_attr_getschedparam): New function. - (__pthread_attr_getschedpolicy): New function. - (__pthread_attr_getscope): New function. - (__pthread_attr_setinheritsched): New function. - (__pthread_attr_setschedparam): New function. - (__pthread_attr_setschedpolicy): New function. - (__pthread_attr_setscope): New function. - (__pthread_exit): Call any key destructors on thread exit. - (__pthread_join): Use the embedded attr values. - (__pthread_detach): Use the embedded attr values. - (__pthread_getconcurrency): New function. - (__pthread_getschedparam): New function. - (__pthread_key_create): Pass the destructor on object creation. - (__pthread_key_delete): Correct incorrect prototype. - (__pthread_setconcurrency): New function. - (__pthread_setschedparam): New function. - (__pthread_cond_timedwait): Support static mutex initialisers. - (__pthread_cond_wait): Ditto. - (__pthread_mutex_getprioceiling): New function. - (__pthread_mutex_lock): Support static mutex initialisers. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): New function. - (__pthread_mutexattr_getprotocol): New function. - (__pthread_mutexattr_getpshared): New function. - (__pthread_mutexattr_gettype): New function. - (__pthread_mutexattr_init): New function. - (__pthread_mutexattr_destroy): New function. - (__pthread_mutexattr_setprotocol): New function. - (__pthread_mutexattr_setprioceiling): New function. - (__pthread_mutexattr_getprioceiling): New function. - (__pthread_mutexattr_setpshared): New function. - (__pthread_mutexattr_settype): New function. Remove stubs for non - MT_SAFE compilation. - * thread.h: Remove duplicate #defines. Add prototypes for new - functions in thread.cc. - (pthread_key_destructor): New class. - (pthread_key_destructor_list): New class. - (pthread_attr): Add new members. - (pthread): Remove members that are duplicated in the pthread_attr - class. - (pthread_mutex_attr): Add new members. - (pthread_once): New class. - * include/pthread.h: Add prototypes for new functions exported from - cygwin1.dll. Remove typedefs. - * include/sched.h: Add prototypes for new functions in sched.cc. - * include/cygwin/types.h: Add typedefs from pthread.h - -Tue Apr 10 22:02:53 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (struct symlink_info): Add extn and ext_tacked_on fields. - (path_conv::check): Only tack on extension if a known one didn't - already exist. - (suffix_scan::has): Return pointer to known extension. - (symlink_info::check): Record location of extension, if any. - -2001-04-09 Egor Duda <deo@logos-m.ru> - - * fhandler.h (class fhandler_socket): Add members and methods to - support secure connections on AF_UNIX sockets. - * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method. - (fhandler_socket::get_connect_secret): Ditto. - (fhandler_socket::create_secret_event): Ditto. - (fhandler_socket::close_secret_event): Ditto. - (fhandler_socket::check_peer_secret_event): Ditto. - (fhandler_socket::fixup_after_fork): Duplicate secret event to child. - (fhandler_socket::dup): Copy address family. - (fhandler_socket::close): Close secret event. - * net.cc (get_inet_addr): Read secret cookie. - (cygwin_connect): Check if peer knows secret cookie value. - (cygwin_accept): Ditto. Copy address family to newly created socket. - (cygwin_bind): Generate and write secret cookie. - (wsock_init): Initialize random number generator. - -Sun Apr 8 20:40:58 2001 Christopher Faylor <cgf@cygnus.com> - - * Makefile.in: Put -lgcc last in list of libraries, since stdc++ - library needs it. - * cygwin.din: Remove obsolete "__empty" export. - * exceptions.cc (call_signal_handler_now): Force inclusion of function - even when -finline-functions is specified. - * sigproc.h: Remove obsolete call_signal_handler declaration. - -Sun Apr 8 20:36:55 2001 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de> - - * fhandler_console.cc (cp_get_internal): New function. - (cp_convert): New function. - (con_to_str): New function. - (str_to_con): New function. - (fhandler_console::read): Replace OemToCharBuff with con_to_str. - (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con. - -Thu Apr 5 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Fix conditional which still allowed - successful stat'ing of non-existant files. - -Wed Apr 4 10:37:44 2001 Christopher Faylor <cgf@cygnus.com> - - * child_info.h: Bump magic number for fork/exec/spawn. - -Tue Apr 3 20:06:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO. - -Mon Apr 2 22:48:58 2001 Christopher Faylor <cgf@cygnus.com> - - * cygrun.c (main): Fix compiler warning. - * gmon.c (_mcleanup): Ditto. - * profil.c (profile_off): Ditto. - - * net.cc (find_winsock_errno): New function. - (__set_winsock_errno): Use find_winsock_errno. - (cygwin_setsockopt): Detect SO_ERROR for debugging. - (cygwin_getsockopt): Ditto. Translate error when getsockopt returns - SO_ERROR. - * winsup.h: regparmize __set_winsock_errno. - * include/sys/strace.h: Document that strace functions can't use - regparm. - -2001-04-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic - number of a directory. - -Mon Apr 2 00:24:08 2001 Christopher Faylor <cgf@cygnus.com> - - * shared_info.h (mount_info): Remove mnt_ elements. - * thread.h (struct _winsup_t): Add mnt_ elements. - * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup (). - -Sun Apr 1 20:10:34 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sigframe::call_signal_handler): Return value of - call_signal_handler_now. - * sigproc.h (sigframe): Use constructor. - * syscalls.cc (_read): Correct errno test prior to calling signal - handler. - -Sun Apr 1 00:38:06 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sigframe::call_signal_handler): Move outside of "C" - block or some compilers will complain. - -Sun Apr 1 00:24:14 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (call_signal_handler_now): Rename from - call_signal_handler to avoid C++ confusion. - -Sun Apr 1 00:08:15 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (fillout_mntent): Always remove drive root directories from - future consideration by "/cygdrive" reporting. - (cygdrive_getmnt): Avoid reporting removable drives or drives with no - media mounted. - -Sat Mar 31 21:56:19 2001 Christopher Faylor <cgf@cygnus.com> - - * thread.h (struct _winsup_t): Remove obsolete elements. Add - available_drives element. - * path.cc (mount_info::getmntent): Report "/cygdrive" drives when - mounted drives are exhausted. - (fillout_mntent): New function. - (mount_item::getmntent): Use fillout_mntent. - (cygdrives_mntent): New function. Returns next available "/cygdrive". - (setmntent): Initialize available "/cygdrives". - * syscalls.cc: Remove some if 0'ed code. - * times.cc (timezone): Use more descriptive variable name. - -Sat Mar 31 18:59:52 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (class sigframe): Implement 'unregister()' method. - (sigframe::~sigframe): Use unregister method. - (sigframe::call_signal_handler): Declare new method. - * exceptions.cc (sigframe::call_signal_handler): New method. - Unregisters current sigframe before calling signal handler. - (setup_handler): Clear waiting threads prior to arming signal_arrived. - * syscalls.cc (_read): Change goto to loop. Recalculate sigframe - inside of loop so that constructor is called when appropriate. - * wait.cc (wait4): Ditto. - - * signal.cc: Change "sig" to "signal" in debugging messages throughout. - * sigproc.cc: Ditto. - -Sat Mar 31 17:12:08 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_serial.cc (fhandler_serial::raw_write): Close protected - handles with ForceCloseHandle or suffer spurious warnings. - -Sat Mar 31 16:23:32 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z. - -Sat Mar 31 11:09:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_console): Add members `insert_mode'. - * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'. - (fhandler_console::fhandler_console): Initialize `insert_mode'. - (fhandler_console::char_command): Add terminal capabilities - "enter insert mode" = \E[4h and "exit insert mode" = \E[4l. - Care for insert mode on terminal capability "repeat char" = \E[x;yb. - (fhandler_console::write_normal): Care for insert mode before writing - to the console. - (array keytable): Add keymapping for modified cursor and control - block keys (xterm like). - -Fri Mar 30 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_console): Add members `savebufsiz' and - `savebuf' to allow save/restore of screen. - * fhandler_console.cc (fhandler_console::dup): Duplicate `savebufsiz' - and `savebuf'. - (fhandler_console::fhandler_console): Initialize `savebufsiz' and - `savebuf'. - (fhandler_console::char_command): Add terminal capabilities - "save screen content" = \E[?47h and "restore screen content" = \E[?47l. - -Wed Mar 28 19:28:50 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (chdir): Eat trailing whitespace on input path. - -Tue Mar 27 22:38:42 2001 Christopher Faylor <cgf@cygnus.com> - - * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem - to be defined. Wrap definitions in extern "C". Include winsup.h to - assure proper definitions. - - * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that - binmode.o, etc., will control default stdio settings. - * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force - binmode/textmode settings. Default pipes to binmode. - -Tue Mar 27 11:31:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Fix conditional for previous patch. - -Mon Mar 26 18:48:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Outflank copy-on-write problem on 9x by - setting access mode to FILE_MAP_READ when read access is requested. - -Sun Mar 25 20:12:21 2001 Christopher Faylor <cgf@cygnus.com> - - * dlfcn.cc (check_access): Eliminate. - (check_path_access): Use passed in path_conv buf. - (get_full_path_of_dll): Use passed in name buf to avoid a static. Rip - out most of the path checking since LoadLibrary will do all of this - automatically. - (dlopen): Set errno when appropriate (may not be compliant?). - * environ.cc (posify): Don't pass in "native" path if it seems to - actually be posix. - -Thursday Mar 22 2001 Robert Collins <rbtcollins@hotmail.com> - - * fhandler.h (fhandler_dev_clipboard): Extend to support writing. - * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard): - Initialize new fields. Open clipboard here. - (fhandler_dev_clipboard::dup): New method. - (fhandler_dev_clipboard::open): Accommodate new fields. Register - clipboard here, if appropriate. - (set_clipboard): New function. Moves buffer to clipboard. - (fhandler_dev_clipboard::write): Truly implement clipboard writing. - (fhandler_dev_clipboard::read): Reimplement to allow successive reads. - (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard. - (fhandler_dev_clipboard::close): Clear out new fields. Support - sequential reads and sequential writes. Support for binary data via a - native clipboard format. - -2001-03-22 Egor Duda <deo@logos-m.ru> - - * fhandler_console.cc (fhandler_console::set_default_attr): Update - console color attributes on tty reset. - -Wed Mar 21 22:12:36 2001 Christopher Faylor <cgf@cygnus.com> - - * autoload.cc (kernel32_init): New function for kernel32 autoload - initialization. - (SignalObjectAndWait): Add conditional load of this function when it is - available. - -2001-03-21 Robert Collins <rbtcollins@hotmail.com> - - * sched.cc: New file. Implement sched*. - * include/sched.h: New file. User land includes for sched*. - * Makefile.in: Add sched.o - * cygwin.din: Add exports for sched*. - -Tue Mar 20 14:48:46 2001 Christopher Faylor <cgf@cygnus.com> - - * dtable.cc: Guard against new winsock.h/winsock2.h warnings when - mixing winsock*.h and sys/types.h. - * fhandler_socket.cc: Ditto. - * net.cc: Ditto. - * select.cc: Ditto. - * exceptions.cc: Remove unneeded define. - -Mon Mar 19 17:43:29 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (interruptible): Update debugging output. - (setup_handler): Ensure that wait_sig loop wakes up when we punt on - sending a signal. - * poll.cc (poll): Add signal guard here. - -2001-03-19 Egor Duda <deo@logos-m.ru> - - * tty.h (tty::create_inuse): Add new parameter to allow non- - inheritable 'inuse' events. - * tty.cc (tty::create_inuse): Use new parameter. - * fhandler_tty.cc (fhandler_tty_master::init): Ditto. - * fhandler_tty.cc (fhandler_pty_master::open): Ditto. - * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive - event. - * tty.cc (tty_list::terminate): Close master_alive event. - * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves - when master side is closed. - -Mon Mar 19 14:32:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when - file descriptor is -1. - -Sat Mar 17 18:30:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (check_posix_perm): New static function. - (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY - support. - (pathconf): Ditto. - * include/cygwin/version.h: Bump API minor number to 37. - -2001-03-18 Egor Duda <deo@logos-m.ru> - - * fhandler.h (fhandler_tty_slave): Declare new methods. - * select.cc (fhandler_tty_slave::select_read): New method. - * select.cc (fhandler_tty_slave::ready_for_read): Ditto. - * select.cc (verify_tty_slave): New function. - * fhandler_termios.cc (fhandler_termios::line_edit): Empty input - buffer on signal. - * fhandler_tty.cc (fhandler_tty_slave::read): Check for input data - after reading from pipe. Reset event if input pipe is empty. - * tty.h (class tty): Allow creating events with manual reset. - * tty.cc (tty::get_event): Use manual_reset flag. - * tty.cc (tty::common_init): Create input_available_event with - manual reset. - -Sat Mar 17 21:48:03 2001 Christopher Faylor <cgf@cygnus.com> - - * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid - when passed in pid. Don't prematurely break when searching for a pid. - - * thread.h (_winsup_t): Eliminate unneeded field. - -Sat Mar 17 20:46:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp. - * syscalls.cc (_unlink): Ditto. - (_rename): Ditto. - -Sat Mar 17 12:43:15 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when - input is "foo". - -Sat Mar 17 18:10:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_socket): Set protocol to 0 when address family is - AF_UNIX to avoid WSAEPROTONOSUPPORT error. - -Sat Mar 17 09:51:32 2001 Mathew Brozowski <brozow@tavve.com> - - * net.cc (cygwin_socket): Pass protocol parameter to socket call. - -Sat Mar 17 02:05:38 2001 Christopher Faylor <cgf@cygnus.com> - - * dir.cc (readdir): Use strcasematch for consistency. - * path.cc (symlink_info): Eliminate known_suffix. - (path_conv::check): Always copy ext_here to end of buffer, if found. - (suffix_scan): Eliminate ext_here, add suffixes_start. - (suffix_scan::has): Eliminate an argument. Reorganize. Always return - pointer to end of input path. - (suffix_scan::next): Take a second pass through the suffix list looking - for .lnk. - (symlink_info::check): Eliminate known_suffix usage. - -Sat Mar 17 00:10:52 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (stat_dev): Give devices full read/write by default. - -Saturday Mar 17 3:45 2001 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (MTinterface::CreateCond): Check for null attr pointer. - -Fri Mar 16 21:13:23 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input - when a signal is sent or we'll end up in an EOF/signal race. - -Fri Mar 16 20:25:40 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc: Translate scan states from defines to enums. - (suffix_scan): Rename state to nextstate for clarity. - (lnk_match): Change to allow multiple states to indicate that a .lnk - has been matched. - (suffix_scan::has): Eliminate a goto. Handle .lnk as a special case, - since a .lnk may also need to be tacked on the end of a .lnk. - (suffix_scan::next): Don't increment next state. Set it specifically. - Recognize new .lnk states. - -Saturday Mar 17 01:19 2001 Robert Collins rbtcollins@hotmail.com - - * cygwin.din: Export the new functions. - * pthread.cc (pthread_cond_*): Add wrapper functions that call - __pthread_cond* functions. - * thread.cc (__pthread_cond_*): Implement the pthread_cond* functions. - * thread.h: Add new class entries and prototypes for __pthread_cond* - functions. - * include/pthread.h: user land header prototypes for pthread_cond* - functions and related defines. - -Wed Mar 14 16:30:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (parse_options): Use strtok_r instead of strtok. - * security.cc (convert_string_sid_to_sid): Ditto. - (aclfromtext): Ditto. Fix buffer usage. - -Wed Mar 14 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (lnk_suffixes): Remove. - (class suffix_scan): Add `lnk_state' flag. - (suffix_scan::lnk_match): Return state of `lnk_state' now. - (suffix_scan::has): Changed behaviour if file has `.lnk' suffix. - (suffix_scan::next): Set `lnk_state' where appropriate. - (symlink_info::check): Fix a wrong `break'. - * syscalls.cc (chown_worker): Change debug statement to reflect - lchown fix. - (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of - `PC_SYM_IGNORE'. - -Tue Mar 13 13:52:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to - symlinks when stat'ing on FAT or FAT32 file systems. - -2001-03-12 Egor Duda <deo@logos-m.ru> - - * fhandler.h (fhandler_termios::fixup_after_exec): New function. - * fhandler_termios.cc (fhandler_termios::fixup_after_fork): New - function. Fixup output handle. - * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output - handle is now fixed up in fhandler_termios::fixup_after_fork(). - -2001-03-12 Egor Duda <deo@logos-m.ru> - - * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup - after fork. - * fhandler_console.cc (fhandler_console::fhandler_console): Fixup - after fork is now enabled in the base class constructor. - -Mon Mar 12 11:19:41 2001 Christopher Faylor <cgf@cygnus.com> - - * mkvers.sh: Include config.h so that DEBUGGING is correctly defined. - -Mon Mar 12 09:47:55 2001 Christopher Faylor <cgf@cygnus.com> - - * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process - is not a cygwin process (suggested by Jason Gouger - <cygwin@jason-gouger.com>). - -Sun Mar 11 16:00:58 2001 Christopher Faylor <cgf@cygnus.com> - - * child_info.h: Bump magic number for fork/exec/spawn. - -Sat Mar 10 20:54:47 2001 Christopher Faylor <cgf@cygnus.com> - - * autoload.cc (noload): Use proper method for multiline strings or - newer gcc's complain. - * exceptions.cc (unused_sig_wrapper): Ditto. - * fhandler.h (fhandler_base): Make get_io_handle and friends return - self. - * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accommodate - DEBUGGING flag to avoid spurious warnings when inheritance is set. - -Sat Mar 10 16:52:12 2001 Christopher Faylor <cgf@cygnus.com> - - * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler - warning. - - * exceptions.cc (setup_handler): Clarify debugging message. - * sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test. It is - handled by normal PROC_CLEARWAIT case. - (wait_sig): Eliminate "dispatched" tracking. Remove __SIGCHILDSTOPPED - test. Decrement counter again before jumping out of - InterlockedDecrement loop so that subsequent InterlockedIncrement will - keep the counter at the correctly decremented value and also detect - when there are pending signals. - * sigproc.h: Remove __SIGCHILDSTOPPED element. - (procstuff): Remove PROC_CHILDSTOPPED element. - -Sat Mar 10 15:22:44 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't - exist (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). Also set EACCES - when directory is not writable. - -Wed Mar 7 15:49:47 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_read): Change definition to return ssize_t to be - consistent with read. - (_write): Change definition to return ssize_t to be consistent with - write. - -Wed Mar 7 01:08:21 2001 Christopher Faylor <cgf@cygnus.com> - - * sigproc.h (sigthread): Declare new methods. Create new winapi_lock - field. - (sigframe:;set): Call get_winapi_lock after frame is set so that signal - handler thread knows not to call SuspendThread. - (sigframe::~sigframe): Release winapi_lock. - * exceptions.cc (sigthread::get_winapi_lock): New method. - (sigthread::release_winapi_lock): New method. - (setup_handler): Use get_winapi_lock to ensure that signalled thread is - not blocked in a Windows API. - - * path.h (path_types): Avoid broken GCC warning. - -Tue Mar 6 14:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (suffix_scan::has): Change order of conditionals - to allow checking for .lnk suffixes even if in_suffixes is empty. - -Tue Mar 6 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.c (cygwin_premain0): Add missing parameter. - * binmode.c (cygwin_premain0): Ditto. - * textmode.c (cygwin_premain0): Ditto. - -Tue Mar 6 12:04:00 2001 Jason Tiller <jtiller@sjm.com> - - * auto_load.cc: Add "GetKeyboardLayout" entry in the list of - Win32 User32.DLL exports to provide. - * fhandler.h (class fhandler_console): Add meta_mask private - member to remember which keystroke modifiers should generate - META. - * fhandler_console.cc (fhandler_console::read): Modify code that - tests a keystroke for a META-escaped key to use the 'meta_mask' - variable. - (fhandler_console::fhandler_console): Add definition for - variable "meta_mask" used to determine if a keystroke should be - preceded by META in the client console stream. Set meta_mask - based on whether or not user's keyboard language is English - - non-English keyboards pass AltGr (right <ALT>) unmolested, - whereas English keyboards now interpret left- and right-<ALT> - as META. - -Mon Mar 5 20:15:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * include/a.out.h: Add copyright hint. - * include/fcntl.h: Ditto. - * include/lastlog.h: Ditto. - * include/memory.h: Ditto. - * include/mntent.h: Ditto. - * include/paths.h: Ditto. - * include/poll.h: Ditto. - * include/syslog.h: Ditto. - * include/termio.h: Ditto. - * include/tzfile.h: Ditto. - * include/arpa/inet.h: Ditto. - * include/asm/byteorder.h: Ditto. - * include/asm/socket.h: Ditto. - * include/asm/types.h: Ditto. - * include/cygwin/if.h: Ditto. - * include/cygwin/mtio.h: Ditto. - * include/cygwin/rdevio.h: Ditto. - * include/cygwin/socket.h: Ditto. - * include/net/if.h: Ditto. - * include/netinet/in.h: Ditto. - * include/netinet/in_systm.h: Ditto. - * include/netinet/ip.h: Ditto. - * include/netinet/ip_icmp.h: Ditto. - * include/netinet/tcp.h: Ditto. - * include/sys/cdefs.h: Ditto. - * include/sys/cygwin.h: Ditto. - * include/sys/ioctl.h: Ditto. - * include/sys/mman.h: Ditto. - * include/sys/mount.h: Ditto. - * include/sys/mtio.h: Ditto. - * include/sys/procfs.h: Ditto. - * include/sys/resource.h: Ditto. - * include/sys/smallprint.h: Ditto. - * include/sys/socket.h: Ditto. - * include/sys/strace.h: Ditto. - * include/sys/syslog.h: Ditto. - * include/sys/sysmacros.h: Ditto. - * include/sys/termio.h: Ditto. - * include/sys/termios.h: Ditto. - * include/sys/uio.h: Ditto. - * include/sys/un.h: Ditto. - * include/sys/utsname.h: Ditto. - * include/sys/vfs.h: Ditto. - * include/sys/wait.h: Ditto. - * regexp/regerror.c: Ditto. - * regexp/regexp.h: Ditto. - * regexp/regmagic.h: Ditto. - -Mon Mar 5 01:25:03 2001 Christopher Faylor <cgf@cygnus.com> - - * dlopen.c (dlopen): Return NULL when name is NULL (suggested by - chrisiasci@aol.com). - - * cygwin.din: Add a new, internally used export - - _check_for_executable. - * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries. - Pass user_data to premain functions. - * fhandler.cc (fhandler_disk_file::open): Only check for executable if - the linked program is interested in the executable bit. - (fhandler_disk_file::check_execable_p): Delete. - * fhandler.h (executable_states): New enumeration of various states of - executable bit caring. - (fhandler_base::set_execable_p): New method. - - * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal - has been sent to the tty. Return -1 when this is so. - * fhandler_console.cc (fhandler_console::read): Return -1 when signal - sending character encountered. - - * path.cc (path_conv::check): Record when path refers to a disk device. - Move executable extension check here. - (check_sysfile): Accommodate new EXEC path states. - (has_suffix): Remove. - (next_suffix): Remove. - (class suffix_scan): New clas. - (suffix_scan::has): New method. - (suffix_scan:next): New method. - (symlink_info::check): Use suffix_scan method to control for scanning - for suffixes. - * path.h (path_conv::exec_state): New method. - * perprocess.h: Make "C" friendly. - * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC. - Bump CYGWIN_VERSION_API_MINOR. - * include/sys/cygwin.h: Change premain declarations. - - * winsup.h: Move __cplusplus test to after builtin defines. - -2001-03-04 Egor Duda <deo@logos-m.ru> - - * fhandler.h (class fhandler_tty_common): New mutex and event to - syncronize input on master tty with slave tty. - * fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to - syncronize with slave. - * fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and - event to syncronize with master. Do not limit amount of data read - from master to vmin value. Interrupt on signal and return already - read data, if any. - * fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and - event. - * fhandler_tty.cc (fhandler_tty_common::close): Ditto. - * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto. - * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto. - * fhandler_tty.cc (fhandler_tty_common::dup): Ditto. - * tty.h (tty::open_input_mutex): New function. - * tty.cc (tty::common_init): Create input mutex and event. - -Fri Mar 2 13:32:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir): Fix creating path in symlink check. - -Fri Mar 2 12:33:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir): Fix shortcut==symlink condition. - * environ.cc: Add extern decl for `allow_winsymlinks'. - (struct parse_thing): Add entry for `[no]winsymlinks'. - * path.cc (symlink): Change to be able to create both, - symlink==shortcut and symlink==systemfile, dependent of - the setting of `allow_winsymlinks'. - * security.cc (cygwin_logon_user): Add debug output. - * shortcut.c: Add defines from path.h. - (has_exec_chars): Copy from path.h. - (check_shortcut): Check for executable file condition if not a - shortcut. - -Thu Mar 1 21:06:07 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a - process if started by non-cygwin parent. - -Thu Mar 1 20:48:11 2001 Christopher Faylor <cgf@cygnus.com> - - * select.cc (peek_console): Don't report read_ready on mouse events - unless we are looking for mouse events. - * fhandler.h (fhandler_console::mouse_aware): New method. - -Wed Feb 28 15:10:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc: Eliminate `#include <wchar.h>'. - -2001-02-28 Egor Duda <deo@logos-m.ru> - - * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine - drive geometry or partition size to allow seeking from the end of - raw floppy device. Don't allow positioning past the end of media or - to offsets bigger then max off_t. - -2001-02-27 Egor Duda <deo@logos-m.ru> - - * fhandler.h (class fhandler_console): Make all variables that - describe "state" of console to be members of fhandler_console. - default_color is now the color which is set when console recieves - reset command. - * fhandler_console.cc (fhandler_console::fhandler_console): Turn - mouse handling and raw keyboard mode off by default. Initialize - state information. - * fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New - function. - * fhandler_console.cc (fhandler_console::set_default_attr): New - function. Reset console attributes to default values. - * fhandler_console.cc (fhandler_console::open): Reset attributes. - * fhandler_console.cc (fhandler_console::get_win32_attr): New function. - Calculate win32-style console attribute based on terminal attributes. - * fhandler_console.cc (fhandler_console::set_cursor_maybe): Use - member variable. - * fhandler_console.cc (fhandler_console::read): If in raw-win32 - keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK - sequences. - * fhandler_console.cc (fhandler_console::dup): Copy all state - information to the dup()ed handle. - * fhandler_console.cc (fhandler_console::scroll_screen): Use current - fill-in attribute. - * fhandler_console.cc (fhandler_console::clear_screen): Ditto. - * fhandler_console.cc (fhandler_console::char_command): Check if we - saw '?' symbol by member variable. Set terminal attributes on \033[Xm - commands. \033[24m - turn off underline mode, \033[27m - turn off - reverse mode, \033[39m - restore default foreground color. - \033[49m - restore default background color. \033[2000h - turn on raw - keyboard mode, \033[2000l - turn off raw keyboard mode. - * fhandler_console.cc (fhandler_console::write): Set attribues to - default values on reset command. - -2001-02-26 Mike Simons <msimons@moria.simons-clan.com> - - * times.cc (settimeofday): Replace function stub with working code. - -Mon Feb 26 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * strace.cc (strace::vprntf): Move prntf functionality to this function - adding an va_list interface to strace. - (strace::printf): Calls strace::vprntf now. - (strace_printf): New function providing an extern "C" interface to - trace output. - * include/sys/strace.h: Make plain C clean. - (class strace): Add `vprntf' method. - -Mon Feb 26 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * shortcut.c: Remove #include <sys/strace.h>. - -Sun Feb 25 10:32:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment. - -Sun Feb 25 10:18:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * shortcut.c (check_shortcut): Change symlink condition. - -Fri Feb 23 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly. - * fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto. - -Thu Feb 22 17:09:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink): Keep relative paths relative in the DOS - path inside of a shortcut. If that's impossible or the target - path is already absolute save an absolute path. - -Thu Feb 22 15:33:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h: Revert previous patch. - * errno.cc: Ditto. - * dir.cc: Eliminate `dir_suffixes'. - (opendir): Remove usage of `dir_suffixes'. - (rmdir): Ditto. - * fhandler.cc (fhandler_disk_file::open): Remove usage of - `inner_suffixes'. - * path.cc: Rename `inner_suffixes' to `lnk_suffixes'. - (path_conv::check): Remove usage of `inner_suffixes'. - (symlink): Ditto. - (symlink_info::check): Handle checking for `.lnk' in path_conv - exclusively here. - (chdir): Remove usage of `dir_suffixes'. - * shortcut.c: Eliminate debug_printf lines. - (check_shortcut): Don't set error except on failing ReadFile. - * spawn.cc: Remove ".lnk" from `std_suffixes'. - * syscalls.cc (_unlink): Remove usage of `inner_suffixes'. - Remove ".lnk" from `stat_suffixes'. - (_rename): Add check for renaming a symlink to keep the ".lnk" - suffix after renaming. - -Thu Feb 22 13:38:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * shortcut.c: New file. Provides a C interface to reading of - Windows shortcuts to avoid compiler flag `-fvtable-thunks'. - * shortcut.h: Ditto. - * Makefile.in: Add shortcut.o to DLL_OFILES. - * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for - using in shortcut.c. - * errno.cc (geterrno_from_win_error): Define as extern "C". - * path.cc (struct symlink_info): Remove methods `check_shortcut' and - `check_sysfile'. - (shortcut_header): Move to shortcut.c. - (shortcut_initalized): Ditto. - (create_shortcut_header): Ditto. - (cmp_shortcut_header): Ditto. - (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function. - (symlink_info::check_sysfile): Redefine as a global function using the - same parameter list as `check_shortcut' for clearness. - (symlink_info::check): Change parameter list for calls to - `check_shortcut' and `check_sysfile'. - -Thu Feb 22 12:04:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when - resolving real_path. - * path.cc (symlink): Ditto for win32_topath. - -Wed Feb 21 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll. - * autoload.cc: Add LoadDLLinitfunc for ole32.dll. - Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0 - and CoCreateInstance@20. - * dir.cc (dir_suffixes): New datastructure. - (readdir): Check for R/O *.lnk files to hide the suffix. - (opendir): Use `dir_suffixes' in path conversion. - (rmdir): Ditto. - * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag - before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY - into account only if the file is no symlink. - * path.cc (inner_suffixes): New datastructure. - (SYMLINKATTR): Eliminated. - (path_conv::check): Use `inner_suffixes' on inner path components. - (shortcut_header): New global static variable. - (shortcut_initalized): Ditto. - (create_shortcut_header): New function. - (cmp_shortcut_header): Ditto. - (symlink): Create symlinks by creating windows shortcuts. Preserve - the old code. - (symlink_info::check_shortcut): New method. - (symlink_info::check_sysfile): Ditto. - (symlink_info::check): Check for shortcuts. Move code reading - old system attribute symlinks into symlink_info::check_sysfile(). - (chdir): Use `dir_suffixes' in path conversion. - * security.cc (get_file_attribute): Check for S_IFLNK flag. - Force 0777 permissions then. - * spawn.cc (std_suffixes): Add ".lnk" suffix. - * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion. - Check for shortcut symlinks to eliminate R/O attribute before - calling DeleteFile(). - (stat_suffixes): Add ".lnk" suffix. - (stat_worker): Force 0777 permissions if file is a symlink. - -2001-02-21 Egor Duda <deo@logos-m.ru> - - * sigproc.cc (getsem): Make semaphore always non-inheritable. - -Mon Feb 19 22:25:53 2001 Christopher Faylor <cgf@cygnus.com> - - * dcrt0.cc (locale_init): Remove. - -2001-02-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * cygwin.din: Export rand48 functions. - * thread.cc (MTinterface::Init): Remove the initialization of - `reent_data'. - * dcrt0.cc: Add the initalizer to the declaration of `reent_data'. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35. - -2001-02-16 Egor Duda <deo@logos-m.ru> - - * signal.cc (signal): Prohibit setting handlers for SIGKILL and - SIGSTOP - * signal.cc (sigaction): Ditto - * syscalls.cc (_lseek): Return EINVAL on invalid input - -Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com> - - * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when - the library is not found - -2001-02-14 Egor Duda <deo@logos-m.ru> - - * fhandler_console.cc (fhandler_console::char_command): Ignore unknown - rendition codes in \033[xx;yym control sequences - -Fri Feb 9 23:19:01 2001 Christopher Faylor <cgf@cygnus.com> - - * fork.cc (fork_parent): Return EAGAIN when can't record pid. - * pinfo.h (pinfo::remember): Return value of call to proc_subproc. - * sigproc.cc (proc_subproc): Return error if can't record pid. - -Fri Feb 9 12:17:27 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (mknod): Add valid parameters. - -Thu Feb 8 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED - and on MAP_PRIVATE|MAP_ANON in the special case of offset 0. - -Thu Feb 8 21:57:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (class list): Add member `hash'. - (list::list): Initialize `hash'. - (list::get_list_by_fd): Use filepath hash value to get the correct - mapping list if it's not an anonymous mapping. - (map::add_list): Initialize `hash' with filepath hash value. - (mmap): Check for reusing a mapping only on MAP_SHARED. - -Wed Feb 7 18:47:36 2001 Christopher Faylor <cgf@cygnus.com> - - * signal.cc (killpg): Correct first argument. - -Wed Feb 7 22:22:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Add LoadDLLinitfunc for iphlpapi.dll. - Add LoadDLLfuncEx statements for GetIfTable@12 and GetIpAddrTable@12. - * fhandler_socket.cc (fhandler_socket::ioctl): Move variable - definitions to the beginning of the function to allow better debugging. - Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU. - * net.cc: Include iphlpapi.h. - (get_2k_ifconf): Rewritten. Uses IP Helper API now. - (get_nt_ifconf): Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC - and SIOCGIFMTU. - (get_95_ifconf): Ditto. Renamed from `get_9x_ifconf'. - (get_ifconf): Name loopback `lo' instead of `lo0' as in Linux. - Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU. - Call `get_95_ifconf' only on Windows 95, `get_nt_ifconf' only - on Windows NT < Service Pack 3, `get_2k_ifconf otherwise. - * include/asm/socket.h: Add defines for SIOCGIFHWADDR, SIOCGIFMETRIC - and SIOCGIFMTU. - * include/cygwin/if.h: Add `ifr_hwaddr', `ifr_metric' and `ifr_mtu'. - (struct ifreq): Add `ifru_hwaddr'. - -Tue Feb 6 15:04:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Add a check for the special case when - a process creates a file using mode 000 using ntsec. - -Mon Feb 5 17:00:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Always add GENERIC_READ access - when opening raw disk devices. - * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise - access. - * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device - binary. - (fhandler_dev_raw::raw_write): Don't drop read buffer content when - writing after read. - -Mon Feb 5 13:30:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::fixup_map): New method to duplicate - the memory protection in a just forked child. - (mmap): Realign gran_len to page boundary only on anonymous - mapping before saving in the mmap_record. - (munmap): Cleanup code. - (msync): Ditto. - (fixup_mmaps_after_fork): Ditto. Call mmap_record::fixup_map now. - -Thu Feb 1 23:08:29 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (creturn): Correctly calculate cygheap_max. - -Wed Jan 31 10:04:58 2001 Christopher Faylor <cgf@cygnus.com> - - * shared.cc (shared_info::initialize): Reduce size of heap. - -Wed Jan 31 13:22:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/resource.h: Fix typo. - -Wed Jan 31 13:20:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/resource.h: Add RLIMIT_NLIMITS and RLIM_NLIMITS. - -Tue Jan 30 18:15:23 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump version to 1.3.0. - -Tue Jan 30 8:55:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo::init): Use INVALID_HANDLE_VALUE instead of - explicit cast (HANDLE) 0xffffffff. - * shared.cc (open_shared): Ditto. - -Mon Jan 29 17:15:22 2001 Bill Hegardt <bill@troyxcd.com> - - * fhandler_serial.cc (raw_write): Use local copy of OVERLAPPED - structure instead of shared structure to fix a race condition between - read/write. - -Mon Jan 29 14:30:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Remove obsolete check for MAP_SHARED|MAP_ANON as - being invalid. - -Mon Jan 29 10:23:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::find_empty): Fix loop condition. - -Sun Jan 28 19:40:40 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_link): Make sure that newpath does not exist. Set - errno if it does. - -Sun Jan 28 19:29:08 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cheap): Don't specify a load address for the heap. - It doesn't work on #!*& Windows 9x. - (cygheap_init): Move GetUserName to memory_init. - * dcrt0.cc (dll_crt0_1): Call new memory_init functin, eliminate call - to heap_init. - * heap.cc (heap_init): Improve error output. - * heap.h: Correct some declarations. - * shared.cc (mount_table_init): Remove. - (memory_init): Renamed from shared_init. Reorganize to accommodate - strange Windows 9x problems with cygheap/heap interaction. - * shared_info.h: Rename shared_init to memory_init. - -Sun Jan 28 01:25:33 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump API version. - -Sun Jan 28 01:18:22 2001 Christopher Faylor <cgf@cygnus.com> - - * cygheap.cc (init_cheap): Move username initialization. - (cygheap_init): Here. - * shared_info.h (mount_info): Add a sys_mount_table_counter field. - (shared_info): Ditto. - * path.cc (mount_info::conv_to_win32_path): Check that our mount table - is in sync with the system mount table and reinitialize it if not. - (mount_info::add_reg_mount): Bump sys_mount_table counters if the - system mount table changes. - (mount_info::del_reg_mount): Ditto. - (mount_info::write_cygdrive_info_to_registry): Ditto. - (mount_info::remove_cygdrive_info_from_registry): Ditto. - -Sun Jan 28 00:28:30 2001 Christopher Faylor <cgf@cygnus.com> - - Throughout, change 'cygwin_shared.mount' to 'mount_table'. - * child_info.h (child_info): Move shared_h, console_h to cygheap. Add - mount_h. - * cygheap.h (init_cygheap): Add shared_h, console_h. - * cygheap.cc (init_cheap): Initialize heap at a fixed location after - the shared memory regions. Initialize cygheap->user name here. - * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants. - Remove cygheap_init since it is done in shared_init now. - (_dll_crt0): Initialize mount_h, remove shared_h and console_h - initialization. - * fhandler_console.cc (console_shared_h): Eliminate. - (get_tty_stuff): Use cygheap->console_h rather than console_shared_h. - * heap.cc (heap_init): Use page size constant calculated earlier in - initialization. - * shared.cc: Eliminate cygwin_shared_h. Add cygwin_mount_h. - (mount_table_init): New function for initializing a user mount table. - (open_shared_file_map): Use constant for shared memory region. - Initialize cygheap and mount table here. - (open_shared): Improve debugging output. - (shared_info::initialize): Eliminate call to mount.init. - (shared_terminate): Use cygheap->shared_h. Close cygwin_mount_h. - (open_shared_file_map): Eliminate. - * shared_info.h (mount_info): Add a version field. - (shared_align_past): New macro for calculating location for shared - memory regions. - * sigproc.cc (init_child_info): Eliminate shared_h, console_h. - * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different - user. - * syscalls.cc (system_info): New global holding system memory defaults. - (getpagesize): Use system_info. - * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent. - * winsup.h: Declare system_info. - - * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than - retrieving the name again. - -Sat Jan 27 10:18:02 2001 Christopher Faylor <cgf@cygnus.com> - - * path.cc (path_conv::check): Detect when path has symlinks. - (symlink_info::check): Remove debugging stuff. - (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks. - -Fri Jan 26 21:20:28 2001 Christopher Faylor <cgf@cygnus.com> - - * exceptions.cc (sigreturn): Call any pending signals prior to - resetting the signal mask so that stacked signals behave correctly. - (sigdelayed): Avoid a race where a signal could end up calling an - incorrect signal handler if two signals come in close together. - -Tue Jan 23 21:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fhandler_disk_file::mmap): Call CreateFileMapping with - len != 0 only when performing an anonymous mapping. - -Mon Jan 22 15:35:28 2001 Christopher Faylor <cgf@cygnus.com> - - * path.h: Add a new constant. - * syscalls.cc (_read): Oscillate errno check. - -Mon Jan 22 15:27:12 2001 Christopher Faylor <cgf@cygnus.com> - - * include/cygwin/version.h: Bump API to reflect setlogmask. - -Sun Jan 21 22:40:25 2001 Jason Tishler <jt@dothill.com> - - * cygwin.din: Add export for setlogmask(). - * syslog.cc (setlogmask): New function. - -Thu Jan 18 10:27:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (setrlimit): Support RLIMIT_NOFILE. - -Wed Jan 17 23:23:12 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (setdtablesize): Call with amount to increment not total - amount. Return success or failure error code. - -Wed Jan 17 09:47:13 2001 Christopher Faylor <cgf@cygnus.com> - - * autoload.cc (LoadDLLinitfunc): Remove debugging statement. - - * exceptions.cc (sig_handle_tty_stop): Move setting of PID_STOPPED to - earlier in interrupt. - (interrupt_setup): i.e., here. - (sig_handle): Don't queue multiple SIGSTOPS. - * fhandler.h (bg_check_types): Enumerate return value of bg_check for - clarity. - * signal.cc (kill_pgrp): Minor cleanup. - * fhandler_termios.cc (fhandler_termios::bg_check): Use enumerated type - for function return. Don't raise signal if a signal is already queued. - * fhandler_console.cc (fhandler_console::read): Use enumerated return - type for bg_check. - * select.cc: Ditto, throughout. - * read.cc: Ditto, throughout. - * termios.cc: Ditto, throughout. - (_read): YA interrupt detect simplification. - * wait.cc (wait4): Ditto. - -Wed Jan 17 10:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::~cygheap_user): Temporarily - disable free'ing memory. - -Tue Jan 16 18:01:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Initialize fh to avoid compiler warnings. - -Mon Jan 15 21:07:00 2001 Christopher Faylor <cgf@cygnus.com> - - * wait.cc (wait4): Rename variable for consistency. Allow restartable - signal behavior. - -Mon Jan 15 23:15:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap): Add more parameter checking. Change error output - in case of EINVAL. Treat mmapping /dev/zero like MAP_ANONYMOUS. - -Mon Jan 15 20:34:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: include <unistd.h>. Define some bit operations for - the new page map. - (mmap_record): Change type of base_address_ to caddr_t. - Add map_map_ member. Add several methods to manipulate map_map_. - (mmap_record::alloc_map): New method. - (mmap_record::free_map): Ditto. - (mmap_record::find_empty): Ditto. - (mmap_record::map_map): Ditto. - (mmap_record::unmap_map): Ditto. - (list::add_record): Change return type to `mmap_record *'. - Allocate page map. - (list::match): New method. - (mmap): Partly rewritten to take care for the new page map. Add some - parameter checking. - (munmap): Ditto. - -Mon Jan 15 13:50:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (heap_init): Fix extern declaration of getpagesize. - * syscalls.cc (getpagesize): Fix another typo. - -Mon Jan 15 12:48:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (getpagesize): Save pagesize in global variable to - avoid calling GetSystemInfo too often. - * heap.cc (getpagesize): Eliminate. - (heap_init): Use getpagesize function from syscalls.cc. - -Mon Jan 15 11:56:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE - request to avoid implementing the same twice. - -Sun Jan 14 14:07:50 2001 Christopher Faylor <cgf@cygnus.com> - - * syscalls.cc (_read): Use more lightweight method for determining if - read has been interrupted by a signal. - -Fri Jan 12 00:35:15 2001 Christopher Faylor <cgf@cygnus.com> - - * debug.h: Add regparm attributes to some functions. - - * signal.cc (sigaction): Don't treat SIGCONT specially. - - * exceptions.cc (interrupt_setup): Save sa_flags of interrupted signal - for later use. - (sig_handler): Default any stopping signal to SIGSTOP. - (call_signal_handler): New function. - (sigdelayed0): New function. - * sigproc.cc (sigproc_init): Initialize SIGSTOP sigaction for special - behavior. - * sigproc.h: Define call_signal_handler. - * syscalls.cc (_read): Allow restartable signal behavior. - -Thu Jan 11 13:17:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base): New method `fixup_mmap_after_fork'. - (fhandler_disk_file: Ditto. - (fhandler_dev_mem): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::open): Set OBJ_INHERIT attribute - for device\physicalmemory handle. - (fhandler_dev_mem::mmap): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork): New - method. - * mmap.cc (mmap_record): Add private `fdesc_' member. Change - constructor accordingly. - (get_fd): New method. - (mmap): Use new mmap_record constructor. - (fhandler_base::fixup_mmap_after_fork): New method. - (fhandler_disk_file::fixup_mmap_after_fork): Ditto. - (fixup_mmaps_after_fork): Call `fixup_mmap_after_fork' of appropriate - fhandler class. - -Wed Jan 10 22:08:30 2001 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * sigproc.cc (wait_sig): Allow SIGCONT when stopped. - -Tue Jan 9 16:55:00 2001 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by René Møller Fonseca <fonseca@mip.sdu.dk> - * include/sys/socket.h: Change prototype to have 2nd parameter `const'. - * net.cc (cygwin_bind): Change 2nd parameter to `const'. - -Sun Jan 7 22:59:37 2001 Christopher Faylor <cgf@cygnus.com> - - * pinfo.cc (codepage_init): Move function. - * environ.cc (codepage_init): To here. - * exceptoins.cc (SIG_NONMASKABLE): Remove SIGCONT from consideration - since it is supposed to be maskable. - * signal.cc (sigaction): Ditto. - * sigproc.cc (wait_sig): Ditto. - * winsup.h: Eliminate global declaration of codepage_init. - -Thu Jan 5 9:33:00 2001 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Set errno on EFAULT instead of returning - it. - (setrlimit): Ditto. - -Thu Jan 5 3:38:00 2001 David Sainty <David.Sainty@optimation.co.nz> - - * resource.cc (setrlimit): Prevent failing with an error when the - operation would not have changed anything. - -Thu Jan 4 10:29:54 2001 Earnie Boyd <earnie_boyd@yahoo.com> - - * thread.cc: Need LONG_MAX definition. - -Wed Jan 3 13:47:23 2001 Christopher Faylor <cgf@cygnus.com> - - * thread.cc (MTinterface::CreateSemaphore): Correctly set semaphore - max. - -Wed Jan 3 09:44:51 2001 Christopher Faylor <cgf@cygnus.com> - - * fhandler_console.cc (fhandler_console::read): Restore missing test - for code page before doing OemToCharBuff. - -Wed Jan 3 09:20:20 2001 Jason Tishler <jt@dothill.com> - - * include/cygwin/version.h: Fix typo in CYGWIN_VERSION_DLL_COMBINED - macro. diff --git a/winsup/cygwin/ChangeLog-2002 b/winsup/cygwin/ChangeLog-2002 deleted file mode 100644 index 21fcf2a18..000000000 --- a/winsup/cygwin/ChangeLog-2002 +++ /dev/null @@ -1,6655 +0,0 @@ -2002-12-30 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (events_init): Display name of mutex on failure. - -2002-12-30 Christopher Faylor <cgf@redhat.com> - - * windows.cc (setitimer): Return ENOSYS on invalid argument. - -2002-12-28 Christopher Faylor <cgf@redhat.com> - - * fhandler_termios.cc (fhandler_termios::line_edit): Perform echo - before input is accepted or suffer a "race". - -2002-12-27 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_tty_master::set_winsize): Declare new function. - * fhandler_console.cc (fhandler_console::send_winch_maybe): If - appropriate, call tty master function to handle screen size change. - * fhandler_tty.cc (fhandler_tty_master::set_winsize): New function. - (fhandler_tty_master::init): Call set_winsize to set initial screen - size. - -2002-12-26 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_master::init): Set initial size of tty - to that of console in which tty is operating. - (process_input): Semi-revert previous change. Need to just use current - terminfo settings since this function is running in a thread, blocked - when the terminfo changes. - -2002-12-26 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_termios::line_edit): Replace third argument with - passed-in termios struct. - * fhandler_console.cc (fhandler_console::read): Prior to loop, make a - copy of current termios for passing to line_edit prior so that all - characters are processed consistently. - * fhandler_tty.cc (fhandler_pty_master::write): Ditto. - (process_input): Make a copy of curent termios prior to read for use in - subsequent line_edit. - * fhandler_termios.cc (fhandler_termios::line_edit): Replace third - parameter with passed-in termios struct and use it throughout rather - than the data from the current fhandler_termios class. - -2002-12-25 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-12-25 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (events_init): Initialize critical section to control - exiting via signal. - (signal_exit): Enter critical section early to avoid exit races with - main thread. - * dcrt0.cc (do_exit): Use exit_lock critical section to avoid races. - -2002-12-25 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::detach): Set errno with set_sig_errno so - that EINTR is properly restored after signal. - -2002-12-21 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Default fhandler objects to -fomit-frame-pointer. - Eliminate redundant CFLAGS settings. - -2002-12-20 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (line_edit_status): Reorganize so that tests for error - condition can be < or >. - * fhandler_tty.cc (fhandler_pty_master::write): Don't return after - sending a signal. - - * fhandler_termios.cc (fhandler_termios::line_edit): Trivial change to - use built-in bool types. - -2002-12-19 Pierre Humblet <pierre.humblet@ieee.org> - - * localtime.cc (tzsetwall): Set lcl_is_set and lcl_TZname - in the Cygwin specific part of the routine. - -2002-12-19 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::open): Use "flags" rather than "mode" - in Win9X directory code. - -2002-12-19 Steve Osborn <bub@io.com> - - * fhandler.h (line_edit_status): Add a new element. - * fhandler_termios.cc (fhandler_termios::line_edit): After - accept_input, handle both potential error condition and pipe full - conditions. - * fhandler_tty.cc (fhandler_pty_master::accept_input): Return -1 on - error. - (fhandler_pty_master::write): Handle pipe full condition. - -2002-12-16 Steve Osborn <bub@io.com> - Christopher Faylor <cgf@redhat.com> - - * fhandler_termios.cc (fhandler_termios::line_edit): Return - line_edit_error and remove last char from readahead buffer if - accept_input() fails. - * fhandler_tty.cc (fhandler_pty_master::accept_input): Return 0 and - restore readahead buffer when tty slave pipe is full. - -2002-12-16 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::cmdline): Allocate sufficient space for myself - command line args. - -2002-12-14 Steve Osborn <bub@io.com> - - * fhandler_termios.cc (fhandler_termios::line_edit): Call - accept_input() in character processing loop. Set return value - independently of input_done. - -2002-12-14 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::read): Signal event, if necessary, and - raw_read hasn't done so. - -2002-12-14 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::raw_read): Reset priorities to minimize - window where thread termination may cause data loss. - (fhandler_base::read): Always return at end of function. Just set len - to copied_chars when len is zero. Return immediately after raw_read if - len <= 0. Remove in_len setting and just check end instead. Fix CRLF - handling at end of buffer. - -2002-12-14 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Call well known SID initializer function. - * security.h (cygsid::init): Declare new static method. - * sec_helper.cc (cygsid::init): New method for initializing well - known SIDs. - -2002-12-14 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h: Declare well_known_creator_group_sid. - * sec_helper.cc: Define and initialize well_known_creator_group_sid. - -2002-12-14 Corinna Vinschen <corinna@vinschen.de> - - * netdb.cc: Remove strtok_r comment. - -2002-12-14 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_user_local_groups): Use LookupAccountSid to find the - local equivalent of BUILTIN. - -2002-12-14 Christopher Faylor <cgf@redhat.com> - - * pipe.cc (make_pipe): Set fork fixup flag for read pipe. - -2002-12-14 Christopher Faylor <cgf@redhat.com> - - * winbase.h: Turn on inline versions of Interlocked* by default. - -2002-12-14 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net> - - * winbase.h: Fixup inline asm functions. Add ilockcmpexch. - -2002-12-13 Christopher Faylor <cgf@redhat.com> - - Throughout, change fhandler_*::read and fhandler_*::raw_read to void - functions whose second arguments are both the length and the return - value. - * fhandler.cc (fhandler_base::read): Rework slightly to use second - argument as input/output. Tweak CRLF stuff. - (fhandler_base::readv): Accommodate fhandler_*::read changes. - * cygthread.h (cygthread::detach): Declare as taking optional handle - argument. - (cygthread::detach): When given a handle argument, wait for the handle - to be signalled before waiting for thread to detach. Return true when - signal detected. - -2002-12-12 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add MINGW_LDFLAGS when linking cygrun.exe. - -2002-12-10 Christopher Faylor <cgf@redhat.com> - - * cygthread.h (cygthread::stack_ptr): New element. - (cygthread::detach): Accept a "wait_for_signal" argument. - (cygthread::terminate_thread): New function. - * cygthread.cc (cygthread::stub): Set stack pointer argument. - (cygthread::terminate_thread): New function. Forcibly terminate - thread. - (cygthread::detach): Optionally wait for signals and kill thread when - signal arrives. - * exceptions.cc (signal_exit): Set signal_arrived prior to exiting to - wake up anything blocking on signals. - * fhandler.h (fhandler_base::set_r_no_interrupt): Change to accept bool - argument. - (fhandler_pipe::ready_for_read): Declare. - * pipe.cc (pipeargs): New structure. - (read_pipe): New thread stub wrapper for normal pipe read. - (fhandler_pipe::read): Modify to call reader in a cygthread, - terminating on signal, as appropriate. - * select.cc (fhandler_pipe::ready_for_read): Define new function. - -2002-12-10 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (free_protoent_ptr): Add missing free() for base structure. - (free_servent_pt): Ditto. - (free_hostent_pt): Ditto. - -2002-12-10 Craig McGeachie <slapdau@yahoo.com.au> - - * netdb.cc (parse_alias_list): Change strtok calls to strtok_r. - (parse_services_line): Ditto. - (parse_protocol_line): Ditto. - -2002-12-10 Pierre Humblet <pierre.humblet@ieee.org> - - * pwdgrp.h (pwdgrp_check::pwdgrp_state): Replace by - pwdgrp_check::isinitializing (). - (pwdgrp_check::isinitializing): Create. - * passwd.cc (grab_int): Change type to unsigned, use strtoul and set - the pointer content to 0 if the field is invalid. - (parse_pwd): Move validity test after getting pw_gid. - (read_etc_passwd): Replace "passwd_state <= " by - passwd_state::isinitializing (). - (internal_getpwuid): Ditto. - (internal_getpwnam): Ditto. - (getpwent): Ditto. - (getpass): Ditto. - * grp.cc (parse_grp): Use strtoul for gr_gid and verify the validity. - (read_etc_group): Replace "group_state <= " by - group_state::isinitializing (). - (internal_getgrgid): Ditto. - (getgrent32): Ditto. - (internal_getgrent): Ditto. - -2002-12-10 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h: Move declarations of internal_getgrent, - internal_getpwsid and internal_getgrsid to pwdgrp.h. - * pwdgrp.h: Declare internal_getpwsid, internal_getpwnam, - internal_getpwuid, internal_getgrsid, internal_getgrgid, - internal_getgrnam, internal_getgrent and internal_getgroups. - Delete "emulated" from enum pwdgrp_state. - (pwdgrp_check::isuninitialized): Create. - (pwdgrp_check::pwdgrp_state): Change state to initializing - rather than to uninitialized. - (pwdgrp_read::gets): Remove trailing CRs. - * passwd.cc (grab_string): Don't look for NLs. - (grab_int): Ditto. - (parse_pwd): Don't look for CRs. Return 0 if entry is too short. - (search_for): Delete. - (read_etc_passwd): Simplify tests to actually read the file. - Set state to loaded before making internal_getpwXX calls. - Replace search_for calls by equivalent internal_pwgetXX calls. - (internal_getpwsid): Use passwd_state.isuninitialized to decide - to call read_etc_passwd. - (internal_getpwuid): Create. - (internal_getpwnam): Create. - (getpwuid32): Simply call internal_getpwuid. - (getpwuid_r32): Call internal_getpwuid. - (getpwnam): Simply call internal_getpwnam. - (getpwnam_r): Call internal_getpwnam. - * grp.cc (parse_grp): Don't look for CRs. Adjust blank space. - (add_grp_line): Adjust blank space. - (class group_lock): Ditto. - (read_etc_group): Simplify tests to actually read the file. - Set state to loaded before making internal_getgrXX calls. - Replace getgrXX calls by equivalent internal calls. - (internal_getgrsid): Use group_state.isuninitialized to decide - to call read_etc_group. - (internal_getgrgid): Create. - (internal_getgrnam): Create. - (getgroups32): Simply call internal_getgrgid. - (getgrnam32): Simply call internal_getgrnam. - (internal_getgrent): Call group_state.isuninitialized. - (internal_getgroups): Create from the former getgroups32, using - two of the four arguments. Set gid to myself->gid and username - to cygheap->user.name (). - (getgroups32): Simply call internal_getgroup. - (getgroups): Call internal_getgroup instead of getgroups32. - (setgroups32): Call internal versions of get{pw,gr}XX. - * sec_helper.cc: Include pwdgrp.h. - (is_grp_member): Call internal versions of get{pw,gr}XX. - * security.cc: Include pwdgrp.h. - (alloc_sd): Call internal versions of get{pw,gr}XX. - * syscalls.cc: Include pwdgrp.h. - (seteuid32): Call internal versions of get{pw,gr}XX. - (setegid32): Ditto. - * uinfo.cc: Include pwdgrp.h. - (internal_getlogin): Call internal versions of get{pw,gr}XX. - (cygheap_user::ontherange): Ditto. - * sec_acl.cc: Include pwdgrp.h. - (setacl): Call internal versions of get{pw,gr}XX. - (acl_access): Ditto and simplify logic. - (aclfromtext): Ditto. - -2002-12-09 2002-12-02 Egor Duda <deo@logos-m.ru> - - * lib/pseudo-reloc.c: New file. - * lib/_cygwin_crt0_common.cc: Perform pseudo-relocs during - initialization of cygwin binary (.exe or .dll). - -2002-12-06 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Reflect name change from strtodf to strtof. Export - strtof. - * include/cygwin/version.h: Bump API minor number. - -2002-12-04 Steve Osborn <bub@io.com> - - * fhandler.h (fhandler_termios::line_edit): Change return from an int - to an enum to allow the function to return an error. - * fhandler_console.cc (fhandler_console::read): Update the line_edit - call to use the new enum. - * fhandler_termios.cc (fhandler_termios::line_edit): Change return from - an int to an enum to allow the function to return an error. Put - put_readahead call before doecho for future patch. - * fhandler_tty.cc (fhandler_pty_master::write): Change to call - line_edit one character at a time, and stop if an error occurs. - -2002-12-04 Craig McGeachie <slapdau@yahoo.com.au> - - * netdb.cc: New file. - * Makeile.in (DLL_OFILES): Add reference to the new netdb.cc file. - * cygwin.din : Add new aliased exports for service and protocol - enumerations in netdb.cc. - -2002-12-04 Thomas Pfaff <tpfaff@gmx.net> - - * cxx.cc: New file. Implement new, new[], delete and delete[] - operators and __cxa_pure_virtual if compiled by gcc >=3. - * Makefile.in (DLL_OFILES): Add cxx.o. - Remove libstdc++.a from cygwin1.dll link step. - -2002-11-29 Steve Osborn <bub@io.com> - - * fhandler_tty.cc (fhandler_pty_master::accept_input): Move - read_retval assignment to prevent race condition. Remove read_retval - from return statement. - -2002-11-29 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (winpids::set): Renamed from init. - (winpids::init): New declaration. - (winpids::cs): Ditto. - (winpids::winpids): Use set rather than init. - * external.cc (fillout_pinfo): Ditto. - * dcrt0.cc (dll_crt0_1): Call winpids::init. - * pinfo.cc (winpids::set): Renamed from init. Wrap calls in critical - section. - (winpids::init): New function. - (winpids::cs): Define. - -2002-11-28 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sig_dispatch_pending): Remove assertion. - -2002-11-27 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-11-27 Mikael Ylikoski <my@post.utfors.se> - - * fhandler_socket.cc (fhandler_socket::sendto): Fix potential - unitialized value return. - -2002-11-27 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export pthread_getsequence_np. - * include/cygwin/version.h: Bump API minor version. - -2002-11-26 Jason Tishler <jason@tishler.net> - - * cygwin.din: Export nl_langinfo(). - * include/cygwin/version.h: Bump API minor version. - -2002-11-26 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_pty_master::accept_input): Just use a - normal Sleep or suffer amazing pauses when other tty apps are running. - (fhandler_pty_master::process_slave_output): Ditto. - -2002-11-25 Pierre Humblet <pierre.humblet@ieee.org> - - * passwd.cc (read_etc_passwd): Never add an entry when starting - on Win95/98/ME if a default entry is present. - * uinfo.cc (internal_getlogin): Look for the default uid if needed. - Always call user.set_name (). - -2002-11-25 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (getacl): Set errno to ENOSPC if command is GETACL and - nentries is less than the number of entries in the file's ACL. - -2002-11-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc: Fix some formatting. Only set and check `other' bits in - a_perm throughout. Use ILLEGAL_GID id for all entries having no id. - (setacl): Fix inheritance condition. - (getacl): Set all permission bits in CLASS_OBJ and DEF_CLASS_OBJ - entries. Remove DENY bits before returning to calling function. - (acltomode): Fix usage of searchace(). If available, use CLASS_OBJ - to mask GROUP_OBJ permissions. - (aclfrommode): Fix usage of searchace(). If available, set CLASS_OBJ - permissions to same value as GROUP_OBJ permissions. - -2002-11-24 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_acl.cc (getace): Fix the behavior when allow and - deny entries are present in arbitrary order. - (getacl): Report the actual number of entries when - aclbufp is NULL, even if nentries is zero. Fix the mask - reporting, handle the case where the owner and group sids - are equal and streamline the code. - (acl_worker): Take allow_ntsec into account. - -2002-11-05 Thomas Pfaff <tpfaff@gmx.net> - - * dcrt0.cc (dll_crt0_1): Add call to pthread::initMainThread to - initialize mainthread when it is safe to call new. - * init.cc (dll_entry): Change call to store reents in tls key. - * thread.cc (_reent_clib) : Change call to get reents from tls - key. - (_reent_winsup): Ditto. - (MTinterface::Init): Key handling changed. Remove initialization - of member variables. - (MTinterface::fixup_after_fork): Reinitialize mainthread object - after fork. Reset threadount to 1. - (pthread::initMainThread): Create mainthread object dynamically. - and initialize with valid handles. - (pthread::self): Remove calls to create thread objects. - (pthread::setTlsSelfPointer): Change call to store thread self - handle in tls key. - (pthread::getTlsSelfPointer): New static method. - (pthread::exit): Remove setTlsSelfPointer call. - (pthread::initCurrentThread): New method. - (pthread::thread_init_wrapper): Change call to store thread self - handle in tls key. - (pthread::join): Check for a valid joiner. - (pthreadNull::pthreadNull): Mark Null object as detached. - (pthreadNull::exit): Terminate thread via ExitThread. - * thread.h (pthread::initMainThread): Change parameter in function - call. - (pthread::getTlsSelfPointer): New static method. - (pthread::initCurrentThread): New method. - (MTinterface::reent_key): Remove. - (MTinterface::thread_self_dwTlsIndex): Ditto.. - (MTinterface::indexallocated): Ditto. - (MTinterface::mainthread): Ditto. - (MTinterface::reent_key): New member. - (MTinterface::thread_self_key): Ditto. - (MTinterface::MTinterface): Initialize all members. - -2002-11-23 Christopher Faylor <cgf@redhat.com> - - * wait.cc (wait4): Force pending signal delivery before waiting for - process completion. - -2002-11-23 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-11-22 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (handle_sigsuspend): Force pending signal delivery - before waiting for signals to happen. - * signal.cc (sleep): Force pending signal delivery before sleeping. - (usleep): Ditto. - (signal): Force pending signal delivery before manipulating signal - stuff. - (sigprocmask): Ditto. - (kill_worker): Ditto. - (abort): Ditto. - (sigaction): Ditto. - * syscalls.cc (readv): Force pending signal delivery before I/O. - (writev): Ditto. - (open): Ditto. - * net.cc: Ditto, throughout. - * sigproc.cc (sig_dispatch_pending): Deliver any pending signals prior - to returning. - - * tty.cc (tty::make_pipes): Increase pipe buffer size. - -2002-11-22 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Fix comment. - -2002-11-21 Igor Pechtchanski <pechtcha@cs.nyu.edu> - - * external.cc (cygwin_internal): Fix va_arg references. - -2002-11-21 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sigthread::get_winapi_lock): Just do standard 'give up - timeslice' wait. - (setup_handler): Revamp YA to attempt to deliver signal multiple times - on failure rather than punting to wait_sig. - * miscfuncs.cc (low_priority_sleep): Accept INFINITE sleep to mean - "don't reset the priority after setting it to idle". Return previous - priority. - * winsup.h (SLEEP_0_STAY_LOW): Define. - (low_priority_sleep): Return an int. - * sigproc.h: Define WAIT_SIG_PRIORITY here. - * sigproc.cc: Remove WAIT_SIG_PRIORITY definition. - -2002-11-20 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h: Declare internal_getpwsid and internal_getgrsid. - Undeclare internal_getpwent. Define DEFAULT_UID_NT. Change - DEFAULT_GID. - * passwd.cc (internal_getpwsid): New function. - (internal_getpwent): Suppress. - (read_etc_passwd): Make static. Rewrite the code for the completion - line. Set curr_lines to 0. - (parse_pwd): Change type to static int. Return 0 for short lines. - (add_pwd_line): Pay attention to the value of parse_pwd. - (search_for): Do not look for nor return the DEFAULT_UID. - * grp.cc (read_etc_group): Make static. Free gr_mem and set - curr_lines to 0. Always call add_pwd_line. Rewrite the code for the - completion line. - (internal_getgrsid): New function. - (parse_grp): If grp.gr_mem is empty, set it to &null_ptr. - Never NULL gr_passwd. - (getgrgid32): Only return the default if ntsec is off and the gid is - ILLEGAL_GID. - * sec_helper.cc (cygsid::get_id): Use getpwsid and getgrsid. - (cygsid_getfrompw): Clean up last line. - (cygsid_getfromgr): Ditto. - (is_grp_member): Use getpwuid32 and getgrgid32. - * uinfo.cc (internal_getlogin): Set DEFAULT_GID at start. - Use getpwsid. Move the read of /etc/group after the second access - to /etc/passwd. Change some debug_printf. - -2002-11-20 Steven O'Brien <steven.obrien2@ntlworld.com> - - * poll.cc (poll): ...but set POLLIN instead. - -2002-11-20 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_attribute_from_acl): Always test "anti", - just in case an access_denied ACE follows an access_allowed. - Handle the case owner_sid == group_sid, with a FIXME. - Remove unnecessary tests for non-NULL PSIDs. - (alloc_sd): Use existing owner and group sids if {ug}id == -1. - Handle case where owner_sid == group_sid. - Do not call is_grp_member. Try to preserve canonical ACE order. - Remove unnecessary tests for non-NULL PSIDs. Reorganize - debug_printf's. - (get_initgroups_sidlist): Put well_known_system_sid on left - side of ==. - (add_access_denied_ace): Only call GetAce if inherit != 0. - (add_access_allowed_ace): Ditto. Use appropriate sizeof. - * syscalls.cc (chown_worker): Pass {ug}id equal to -1 to - alloc_sd, which removes the need to obtain old_{ug}id. - (chmod): Remove call to get_file_attribute (), simply pass - {ug}id equal to -1 to alloc_sd. - -2002-11-20 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Don't set POLLERR if a listening socket has a - pending connect. Don't use errno value from call to - fhandler_socket::recvfrom(). - -2002-11-19 Christopher Faylor <cgf@redhat.com> - - * net.cc: Sprinkle sigframes throughout. - -2002-11-16 Christopher Faylor <cgf@redhat.com> - - * tty.cc (tty::make_pipes): Make pipe buffer larger. - -2002-11-15 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (getgroups32): Protect against closing cygheap->user.token. - -2002-11-15 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump API_MINOR to accommodate below - changes. - -2002-11-14 Sergey Okhapkin <sos@prospect.com.ru> - - * cygwin.din (siginterrupt): New export. - * signal.cc (siginterrupt): New. - -2002-11-15 Sergey Okhapkin <sos@prospect.com.ru> - - * select.cc (peek_serial): Don't call PurgeComm() to avoid characters - loss. - -2002-11-14 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Add debugging output. Set thread - priority to idle if pending signals to allow other threads to get into - interruptible state. - * miscfuncs.cc (sys_mbstowcs): Save current thread in variable to avoid - an OS call. - * wait.cc (wait_sig): Reset thread priority each time through loop - since the priority may have been set down to deal with pending signals. - -2002-11-14 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::tcgetattr): Don't take any - special action when vmin_ == 0. - -2002-11-14 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgroups32): Revert previous patch. Use impersonation - token if process is in impersonated state. - * sec_helper.cc (is_grp_member): Rewrite. Call getgroups32 only - for current user. Scan passwd and group info otherwise. - -2002-11-14 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::write): Allow characters >= - 0177 to be displayed in the title bar. - -2002-11-14 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgroups32): Don't use access token of current user when - retrieving group info for another user. - -2002-11-13 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::detach): Eliminate reliance on passed in dll - address. Infer from module of caller instead. - (cygwin_detach_dll): Ignore dll_index argument. - * dll_init.h (dll_list::detach): Reflect argument change above. - -2002-11-13 Christopher Faylor <cgf@redhat.com> - - * ioctl.cc (ioctl): Always print ioctl results, even when it's a tty. - -2002-11-13 Christopher Faylor <cgf@redhat.com> - - * winsup.h (low_priority_sleep): Declare. - -2002-11-13 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (low_priority_sleep): New function. Use throughout - where code is supposed to be giving up time slice. - - * fhandler_console.cc (fhandler_console::read): Switch button 2/3 - output escape sequences to be consistent with xterm. - -2002-11-12 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (chmod): Simplify conditional. - * sec_helper (cygsid::getfromstr): Reorganize to remove - calls to strcpy and strtok_r. - (cygsid::getfromgr): Change type to __uid32_t instead of int. - Keep only the allow_ntsec branch. Never call LookupAccountSid - which calls PDCs, simply return -1 in case of failure. - Use cygsid == instead of calling EqualSid and remove test - for NULL psid. - * security.h: Declare cygsid::getfromgr as __uid32_t. - -2002-11-10 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Run indent. - -2002-11-10 Alexander Gottwald <Alexander.Gottwald@s1999.tu-chemnitz.de> - - * autoload.cc (GetIfEntry): Add symbol. - * net.cc (get_2k_ifconf): Get the interface entries with the GetIfEntry - call intead of the GetIfTable call. Clean-up multiple IP address naming. - -2002-11-09 Sergey Okhapkin <sos@prospect.com.ru> - - * fhandler.h (class fhandler_pipe): New ioctl() method. - * pipe.cc (fhandler_pipe::ioctl): New. - -2002-11-07 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::ioctl): Fix typo. - -2002-11-07 Christopher January <chris@atomice.net> - - * include/cygwin/fs.h: New file. - * include/cygwin/hdreg.h: New file. - * fhandler_floppy.cc (fhandler_floppy::ioctl): Add implementation for - HDIO_GETGEO, BLKGETSIZE, BLKGETSIZE64, BLKRRPART and BLKSSZGET ioctls. - -2002-11-07 Gilles Courcoux <Gilles.Courcoux@col.bsf.alcatel.fr> - - * fhandler_socket.cc (fhandler_socket::ioctl): Return correct flags - for loopback interface when name is given on input instead of address. - -2002-11-07 Jason Tishler <jason@tishler.net> - - * cygwin.din: Export fseeko() and ftello(). - * include/cygwin/version.h: Bump API minor version. - -2002-11-06 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (keytable[]): Revert previous change. It would - break too many things. - -2002-11-06 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (keytable[]): Redefine F1 - F5 to something a - little more sensical. - -2002-11-06 Sergey Okhapkin <sos@prospect.com.ru> - - * syscalls.cc (getutid): Use UT_IDLEN where appropriate. - -2002-11-06 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump API minor number for below export. - -2002-11-06 Sergey Okhapkin <sos@prospect.com.ru> - - * cygwin.din (pututline): New exported function. - * syscalls.cc (login): Use pututiline(). - (setutent): Open utmp as read/write. - (endutent): Check if utmp file is open. - (utmpname): call endutent() to close current utmp file. - (getutid): Enable all cases, use strncmp() to compare ut_id fields. - (pututline): New. - * tty.cc (create_tty_master): Set ut_pid to current pid. - -2002-11-05 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::ioctl): Don't try to figure out - if OS has the capability to retrieve RTS/CTS. Just set default values - if DeviceIoControl fails. (suggested by Sergey Okhapkin) - -2002-11-05 Sergey Okhapkin <sos@prospect.com.ru> - - * fhandler_serial.cc (fhandler_serial::raw_read): Use correct type for - minchars. - (fhandler_serial::ioctl): Set errno if the ClearCommError fails. - (fhandler_serial::tcsetattr): Use correct value for vmin_. - (fhandler_serial::tcgetattr): Ditto. - -2002-11-05 Thomas Pfaff <tpfaff@gmx.net> - - * fhandler_socket.cc (fhandler_socket::recvmsg): Call if from == NULL - WSARecvFrom with fromlen = NULL. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Fix thinko in previous checkin. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Set priority low when sleeping, - waiting for commune completion so that we don't spin waiting for lower - priority processes. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (WAIT_SIG_PRIORITY): Bump to THREAD_PRIORITY_TIME_CRITICAL. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Initialize buffer or suffer random - crashes. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * fhandler_process.cc (fhandler_process::fill_filebuf): Deal with error - condition from cmdline retrieval. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (WAIT_SIG_PRIORITY): Bump to highest priority. - -2002-11-04 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-11-03 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::ioctl): Reformat. Set errno - appropriately. Exit from the bottom. Correctly deal with third - argument for TCFLSH. (Suggested by Sergey Okhapkin) - -2003-11-03 Sergey Okhapkin <sos@prospect.com.ru> - - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Do nothing if the new - window size is equal to the old one. Send SIGWINCH if slave connected - to a pseudo tty. - (fhandler_pty_master::ioctl): Do nothing if the new window size is - equal to the old one. - -2002-10-31 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::open): Verify pc isn't NULL. - -2002-10-30 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-10-30 Christopher Faylor <cgf@redhat.com> - - * external.cc (cygwin_internal): Implement CW_CMDLINE. - * pinfo.h (SIGCOMMUNE): New signal type. - (commune_result): New structure for commune functions. - (picom): New enum for commune functions. - (_pinfo::hello_pid): New. Pid who's communicating with me. - (_pinfo::tothem): New. Handle of communicating pipe. - (_pinfo::fromthem): Ditto. - (_pinfo::commune_recv): Declare. - (_pinfo::commune_send): Declare. - (_pinfo::alive): Declare. - (_pinfo::cmdline): Declare. - (_pinfo::lock): Declare. - * pinfo.cc (set_myself): Initialize new _pinfo lock. - (_pinfo::alive): Define. Determines if process still exists. - (_pinfo::commune_recv): Define. Receive info from another cooperating process. - (_pinfo::commune_send): Define. Send info to another cooperating process. - (_pinfo::cmdline): Define. Determine command line of a given process. - * include/sys/cygwin.h (CW_CMDLINE): Define. - - *sigproc.cc (talktome): Communicate with any processes who want to talk - to me. - (wait_sig): Honor __SIGCOMMUNE. - - * fhandler.cc (fhandler_virtual::fixup_after_exec): Declare. - * fhandler_proc.cc: Use malloc/free/realloc throughout rather than - cmalloc since buffers don't need to be propagated to subprocesses. - * fhandler_registry.cc: Ditto. - * fhandler_virtual.cc: Ditto. - (fhandler_virtual::fixup_after_exec): Define. - * fhandler_process.cc: Ditto for malloc/free/realloc. - (process_listin): Add "cmdline". - (fhandler_process::fill_filebuf): Implement PROCESS_CMDLINE. - - * miscfuncs.cc (isalpha_array): New array populated with xor values for - alpha characters to switch from one case to another. - * string.h (cygwin_strcasematch): New asm implementation of case match. - * string.h (cygwin_nstrcasematch): New asm implementation of counted - case match. - -2002-10-24 Pierre Humblet <pierre.humblet@ieee.org> - - * pwdgrp.h (pwdgrp_read::open): Compare fh to INVALID_HANDLE_VALUE. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Nevermind. - Revert everything to previous state wrt ntsec and exec bits. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * shared.cc (shared_info::initialize): Use correct value for version - comparison. - * include/cygwin/version.h (CYGWIN_VERSION_MAGIC): Use all of a DWORD - for magic calculation. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Oops. Only - do the executable thing for #! scripts since .exe files wouldn't be - executable in ntsec case regardless. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Always - consider .exe files and '#!' shell scripts to be executable. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::exiting): New variable. - (cygthread::initialized): Delete. - (cygthread::stub): Use exiting variable to determine when to exit. - (cygthread::runner): Delete. - (cygthread_protect): New variable. - (cygthread::init): Don't start runner thread. Initialize muto for list - protection. - (cygthread::freerange): Return pointer to cygthread. - (cygthread::operator new): Change logic to start threads on an - as-needed basis. - (cygthread::detach): Don't zero id. - (cygthread::terminate): Don't kill any executing threads. Just set - exiting flag. - * cygthread.h (cygthread): Reflect above changes. - * dcrt0.cc (dll_crt0_1): Move cygthread initialization later. - - * fork.cc (fork_child): Do fdtab fixup after dll fixup or (apparently) - winsock may allocate memory in dll load address. - -2002-10-22 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_helper.cc (cygsid::get_id): If the sid matches a sid stored in - cygheap->user, return the uid or gid from myself. - * security.cc (alloc_sd): If gid == myself->gid, return the group sid - from cygheap->user. Remove the test for uid == original_uid, which is - counter-productive. - -2002-10-22 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_fixup_in_child): Use user_heap element in - cygheap. - (init_cheap): Ditto for declaration. - * fork.cc (fork_parent): Use user_heap element in cygheap. - * heap.h (inheap): Ditto. - * heap.cc (sbrk): Ditto. - (heap_init): Ditto. Reorganize to shrink heap chunk as required and - record new value in cygheap. - * dcrt0.cc (dll_crt0_1): More "move the cygthread init" games. - * shared.cc (open_shared): Rework memory protection to properly deal - with relocated shared segment. - (shared_info::heap_chunk_size): Rename element to 'heap_chunk'. - * shared_info.h (shared_info): Ditto for declaration. - * strace.cc (strace::hello): Report on heap chunk size from cygheap - since it may shrink. - -2002-10-20 Christopher Faylor <cgf@redhat.com> - - Change _function() to function() throughout. - * cygwin.din: Remove last vestiges (?) of newlib wrappers. - -2002-10-20 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::detach): Always wait for event or suffer an - apparently inavoidable race. - * dcrt0.cc (dll_crt0_1): Allocate threads after stack has been - relocated. - * debub.cc (lock_debug): Don't acquire lock on exit. - * fork.cc (fork_child): Recreate mmaps before doing anything else since - Windows has a habit of using blocks of memory in the child that could - previously have been occupied by shared memory in the parent. - * mmap.cc (fhandler_disk_file::fixup_mmap_after_fork): Issue error here - and provide some details about what went wrong. - (fixup_mmaps_after_fork): Remove error message. - * shared.cc (open_shared): Move warning message so that more detail is - possible. - * sigproc.cc (sigproc_init): Initialize sync_proc_subproc to avoid a - race. - (sigproc_terminate): Specifically wait for process thread to terminate. - -2002-10-20 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Fix typo. - (cygthread::terminate): Don't zero thread handle prior to using it. - -2002-10-20 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Remove obsolete sigchld logic. - -2002-10-20 Christopher Faylor <cgf@redhat.com> - - Rename _kill() to kill() throughout. Rename _raise() to raise() - throughout. Rename _pid() to pid() throughout. - * Makefile.in: Compile some objects with -fomit-frame-pointer. - * cygwin.din: Reverse aliasing for _kill. - * syscalls.cc (_getpid_r): New function, implemented for newlib - compatibility. - - * shared.cc (open_shared): Remove reserving of memory since previous - change eliminate the need for this hack. - -2002-10-19 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_child): Move pinfo fixup later to attempt some minor - gains from concurrency with cythread::init. - -2002-10-18 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Initialize cygwin threads here only when not - forking. - * fork.cc (fork_child): Initialize cygwin thread later in process to - avoid allocating memory for thread stacks. - * shared.cc (open_shared): Issue warning if NT and shared segment is - relocated. - -2002-10-18 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc: Bump number of cygthreads up to accommodate - applications which use ttys. - -2002-10-18 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_child): Move mmap initialization. - * shared.cc (shared_info::heap_chunk_size): Store info as megabytes. - Search HKEY_LOCAL_MACHINE as well as HKEY_CURRENT_USER. - * shared_info.h (shared_info::initial_heap_size): Change element name - to reflect new functionality. - * strace.cc (strace::hello): Report on initial heap size. - -2002-10-18 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (verifyable_object_isvalid): Test for a valid object - pointer before testing for static ptr. - -2002-10-17 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::init_std_file_from_handle): Force "devices" to - always be in binary mode. Temporary fix until ssh is rebuilt? - -2002-10-17 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::set_file_pointers_for_exec): New function. - * dtable.h (dtable::set_file_pointers_for_exec): Declare new function. - * spawn.cc (spawn_guts): Call dtable::set_file_pointers_for_exec to set - pointers to EOF when execing non-cygwin applications. - -2002-10-17 Robert Collins <rbtcollins@hotmail.com> - - * thread.h (pthread_mutex::isGoodInitializerOrBadObject): Declare. - * thread.cc (pthread_mutex::isGoodInitializerOrBadObject): Implement. - (pthread_mutex::init): Use isGoodInitializerOrBadObject to avoid - unneeded SEGV's during debugging. - -2002-10-17 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (verifyable_object_isvalid): Test for static object first. - -2002-10-16 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::read): Attempt #527 to properly - implement VMIN/VTIME. - -2002-10-15 Christopher Faylor <cgf@redhat.com> - - * shared.cc (open_shared): Revert to "old" method for shared memory - location if !wincap.needs_memory_protection. - * wincap.cc: Implement needs_memory_protection throughout. - * wincap.h: Ditto. - -2002-10-15 Christopher Faylor <cgf@redhat.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - (child_info_fork::mount_table): Remove. - (child_info_fork::myself_addr): Remove. - * fork.cc (fork_child): Don't set either of the above. - * dcrt0.cc (dll_crt0_1): Call memory_init as early as possible. - * fhandler_console.cc (console_state): Move to shared_info.h. - (fhandler_console::get_tty_stuff): Reflect open_shared arg change. - * pinfo.cc (myself_addr): Remove definition. - (pinfo::init): Get myself address from open_shared. - * pinfo.h (myself_addr): Remove declaration. - * shared.cc (open_shared): Rework so that known shared memory locations - are protected. Take shared memory type as fifth argument. - (memory_init): Reflect open_shared arg change. - * shared_info.h (shared_locations): New enum. - (console_state): Move here. - (open_shared): Reflect open_shared arg change in declaration. - -2002-10-14 Christopher Faylor <cgf@redhat.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - (child_info_fork::heaptop): Remove obsolete element. - (child_info_fork::heabbase): Ditto. - (child_info_fork::heapptr): Ditto. - (child_info_fork::mount_table): New element. - (child_info_fork::myself_addr): Ditto. - * dcrt0.cc (dll_crt0_1): Set mount_table and myself_addr when forking. - (initial_env): Add newline to "sleeping" message. - * dll_init.cc (reserve_upto): Accommodate cygwin heap when freeing - memory. Make debugging output a little more descriptive. - * fork.cc (fork_parent): Save mount_table and myself_addr. - * pinfo.cc (myself_addr): New variable. - (set_myself): Pass PID_MYSELF flag to init. - (pinfo::init): Honor PID_MYSELF. Save address where myself shared - memory resides in myself_addr, for fork. - * pinfo.h (myself_addr): Declare. - * shared.cc (memory_init): On fork, use previously saved address for - location of mount table. - * include/sys/cygwin.h (PID_MYSELF): New value. - - * dtable.cc (dtable::stdio_init): Don't pass access type to - init_std_file_from_handle. It's always the same. - (dtable::init_std_file_from_handle): Remove access type argument. - Assume read/write. - * dtable.h (dtable::init_std_file_from_handle): Ditto for declaration. - - * exceptions.cc (try_to_debug): Don't try to debug if already being - debugged. - - * fhandler_console.cc (shared_console_info_save): New variable. - (fhandler_console::get_tty_stuff): Save address of shared console stuff - for fork. - -2002-10-13 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Reintroduce clearing of __name but do - it before SetEvent to eliminate a race. - (cygthread::terminate): Accumulate list of threads to check for - termination and call WaitForMultipleObjects on list rather than waiting - for each thread individually. - * sigproc.cc (subproc_init): Zap hwait_subproc thread handle since it - is no longer used. - -2002-10-13 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Fix so that cygthread::terminate is *really* - called only for exec. - -2002-10-13 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Don't zero __name here. That - introduces a race. - -2002-10-13 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-10-13 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Don't create event for long-running - threads. Initialize thread_sync event here which is used to Suspend - using an event rather than relying on SuspendThread/ResumeThread. - (cygthread::init): Save handle to runner thread for future termination. - (cygthread::cygthread): Only resume thread when it is actually - suspended. Otherwise signal thread completion event. - (cygthread::terminate): Forcibly terminate runner thread and any helper - threads. Call DisableThreadLibrary calls if execing. - * cygthread.h (cygthread::thread_sync): Declare. - * dcrt0.cc (do_exit): Eliminate calls to obsolete window_terminate and - shared_terminate. - * exceptions.cc (events_terminate): Don't bother closing title_mutex - since it is going away anyway. - * pinfo.cc (_pinfo::exit): Call cygthread::terminate to ensure that - threads are shut down before process exit or otherwise strange races - seem to occur. - * shared.cc (shared_terminate): Eliminate. - * shared.h (shared_terminate): Eliminate declaration. - * winsup.h (window_terminate): Eliminate declaration. - * spawn.cc (spawn_guts): Call cygthread::terminate early in process if - execing. Call DisableThreadLibrary calls if execing. - * window.cc (Winmain): Call ExitThread to force exit. - (window_terminate): Eliminate. - - * dcrt0.cc (do_exit): Track exit state more closely. - -2002-10-10 Christopher Faylor <cgf@redhat.com> - - * window.cc (gethwnd): Use SetThreadPriority method. - -2002-10-10 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (new-cygwin1.dll): Reorganize library order. - - * dcrt0.cc (do_exit): Move thread stuff after vfork stuff or threads - are terminated during vfork. - * sigproc.cc (proc_terminate): Grab proc lock prior to signalling - subproc thread exit to avoid an extra "wait-for-thread-to-exit". - -2002-10-09 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Don't create an event for "cygself" - threads. Assume that they exit via an ExitThread call. - * cygthread.h (cygthread::SetThreadPriority): New function. - (cygthread::zap_h): New function. - * dcrt0.cc (do_exit): Move cygthread::terminate earlier and establish - exit_state guard. - * fhandler.h (fhandler_tty_master::output_thread): Delete. - * fhandler_tty.cc (fhandler_tty_master::init): Set priority for threads - via method. Zap handles when done. Don't treat process_output - specially. - (process_output): Call ExitThread directly. - (fhandler_tty_master::fixup_after_fork): Don't worry about - output_thread. - (fhandler_tty_master::fixup_after_exec): Ditto. - * sigproc.cc (proc_terminate): Don't detach from hwait_subproc. Just - let it exit. - (sigproc_init): Close thread handle after initialization. - (wait_sig): Use GetCurrentThread() as SetThreadPriority call rather - than *event* handle. Call ExitThread directly on termination. - (wait_subproc): Call ExitThread directly on termination. - * tty.cc (tty_list::terminate): Don't attempt to detach from - output_thread. - -2002-10-08 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (dup_now): Make fatal error a little more informative. - (cygheap_setup_for_child): Detect when default size of shared region is - less than the current size and allocate that much. - (_cbrk): Just return NULL on inability to allocate. - (_cmalloc): Ditto. - * cygheap.h (CYGHEAPSIZE): Change size to reflect newer, tinier - fhandler sizes. - * spawn.cc (av::error): New element, reflects potential errno from cmalloc. - (av::~av): Don't free NULL pointers. - (av::replace0_maybe): Detect out-of-memory conditions. - (av::dup_maybe): Ditto. - (av::dup_all): Ditto. - (av::unshift): Ditto. - (spawn_guts): Set errno and return if argv creation ran into problems. - - * fhandler.h (fhandler_union): Change member names to something safer. - - * fhandler_console.cc (fhandler_console::get_tty_stuff): Always set - fhandler_console::dev_state regardless of whether shared region is - initialized. - - * cygthread.cc (cygthread::runner): Use ExitThread rather than return - (planning for future). - -2002-10-08 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (dev_console): New class. - (fhandler_console::dev_state): New class element. - (fhandler_console::mouse_aware): Use dev_state element. - (fhandler_console::get_tty_stuff): Declare new function. - * fhandler_console.cc: Use dev_state fhandler_console element, - throughout. - (fhandler_console::get_tty_stuff): Move to fhandler_console class. - Incorporate dev_console information. Move constructor stuff here. - -2002-10-07 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::init_std_file_from_handle): Try to mimic standard - open behavior with files redirected from stdin/stdout/stderr, i.e., - fmode settings take precedence over mount settings. - -2002-10-07 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (unknown_file): New variable. - (dtable::init_std_file_from_handle): Don't set binmode if we couldn't - determine the actual file name on stdin/stdout/stderr. - (handle_to_fn): Return unknown_file when can't determine filename. - -2002-10-07 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't - need to track thread detaches. - * init.cc (dll_entry): Reorganize slightly. Fix api_fatal message. - -2002-10-05 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Very minor cleanup. - (cygthread::stub): Report overflows in cygwin thread pool when - DEBUGGING is on and special environment variable is not set. - (cygthread::terminate): Set event only when event actually exists. - * exceptions.cc (signal_exit): Set priority of main thread to low - before setting current thread to high. - -2002-10-01 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_key::keys): Copy on fork. Add a comment explaining - why. - (pthreadNull::_instance): Copy on fork. Absolutely no state exists - in pthreadNull. - -2002-09-30 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_pipes.cc (transport_layer_pipes::accept): - Remove trailing \n from debug_printf. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - * thread.cc (pthread_mutex::initMutex): Remove \n from api_fatal. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - * thread.cc (pthread::precreate): Use explicit "no inherit" option when - creating mutex. - (pthread_mutex::nativeMutex::init): Ditto. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - * thread.cc (pthread_key::keys): Do not copy on fork. - (pthread_mutex::mutexInitializationLock): Ditto. - (pthreadNull::_instance): Ditto. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (unused_sig_wrapper): Still need additional level of - indirection when setting errno. - -2002-09-30 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_mutex::initMutex): Use the wrapper init call. - (pthread_mutex::nativeMutex::init): Implement. - (pthread_mutex::nativeMutex::lock): Ditto. - (pthread_mutex::nativeMutex::unlock): Ditto. - (pthread_mutex::init): Use the wrapper lock and unlockcalls. - * thread.h (pthread_mutex): Move mutexInitializationLock into a - nativeMutex wrapper class. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - Remove \n from calls to strace class printfs throughout. - -2002-09-30 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (unused_sig_wrapper): Accommodate newer compilers. - -2002-09-29 Christopher Faylor <cgf@redhat.com> - - * security.cc (allow_ntsec): Default to zero. - * environ.cc (environ_init): Set allow_ntsec to TRUE by default, - assuming OS allows it. - -2002-09-29 Christopher Faylor <cgf@redhat.com> - - * environ.cc (environ_init): Avoid a compiler warning. - * path.cc (path_conv::check): Ditto. - * path.h (path_conv::operator int): Ditto. - * regex/engine.c: Ditto throughout. - * regex/regcomp.c: Ditto throughout. - * regex/regexec.c: Ditto throughout. - -2002-09-29 Christopher Faylor <cgf@redhat.com> - - * thread.cc: Use "%E" in *_printf throughout rather than calling - GetLastError. GNUify comments. - (__pthread_mutex_lock): Don't return error on EBUSY since that just - means that the mutex has already been initialized. - -2002-09-30 Robert Collins <rbtcollins@hotmail.com> - - * pthread.cc (pthread_mutex_init): Use new pthread_mutex::init. - * thread.cc: Change __pthread_mutex_init to pthread_mutex::init - throughout. - (MTinterface::Init): Initialise pthread_mutex support. - (pthread_mutex::mutexInitializationLock): Instantiate. - (pthread_mutex::initMutex): New method. - (__pthread_cond_dowait): Don't dereference untrusted pointers. - Use the new pthread_mutex::init method. - (__pthread_condattr_init): Don't dereference untrusted pointers. - (__pthread_mutex_init): Rename to pthread_mutex::init. - Lock and release mutexInitializationLock to prevent races on - mutex initialisation. - * thread.h (pthread_mutex::initMutex): New method, initialise - pthread_mutex supporting state on process initialisation. - (pthread_mutex::init): Initialise a single mutex. - (pthread_mutex::mutexInitializationLock): A win32 mutex for - syncronising pthread mutex initialisation. - (__pthread_mutex_init): Remove this. - -2002-09-28 Christopher Faylor <cgf@redhat.com> - - * thread.h (verifyable_object:~verifyable_object): Make virtual. - -2002-09-28 Christopher Faylor <cgf@redhat.com> - - * cygthread.h (cygthread::terminate): Declare new function. - (cygthread::initialized): Change to 'int'. - * cygthread.cc (cygthread::stub): Exit thread if initialized < 0. - (cygthread::new): Ditto. - (cygthread::runner): Ditto. Set initialized using xor to preserve - sign. - (cygthread::terminate): New function. - * dcrt0.cc (do_exit): Call cygthread::terminate. - -2002-09-27 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_key::run_destructor): Run_destructor is not - const as it needs to set the key value. - * thread.h (pthread_key::run_destructor): Ditto. - -2002-09-27 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_key::run_destructor): Follow opengroup algorithm. - I.e. only run the destructor NON-NULL key values, and reset the key - to NULL before running the destructor. Reported by Thomas Pfaff. - -2002-09-25 Christopher Faylor <cgf@redhat.com> - - * cygrun.c (main): Fix setting of CYGWIN environment variable. - - * Makefile.in: Remove linking of unnecessary libraries. - -2002-09-24 Christopher January <chris@atomice.net> - - * fhandler_proc.cc (format_process_stat): make ctty a real device - number. - (format_process_status): use effective uid/gid as real and saved - uid/gid. - -2002-09-24 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_INVALID_ADDRESS to new errno code - EOVERFLOW. - (_sys_errlist): Add entries for EILSEQ and EOVERFLOW. - (strerror): Ditto. - * mmap.cc (map_map): Set errno in case of error. - (mmap64): Remove setting errno explicitely to ENOMEM. - -2002-09-24 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (map_map): Add debug output. - (mmap64): Evaluate gran_len correctly even if offset isn't 0. - -2002-09-22 Christopher Faylor <cgf@redhat.com> - - More GNUify non-GNU formatted functions calls throughout. - -2002-09-22 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_O_FILES): Restore formatting. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - GNUify non-GNU formatted functions calls throughout. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (with_strerr): Remove macro. - (server_shmmgr::segment_t::~segment_t): Remove calls to with_strerr. - (server_shmmgr::segment_t::attach): Ditto. - (server_shmmgr::new_segment): Ditto. - * shm.cc (with_strerr): Remove macro. - (client_shmmgr::shmdt): Remove calls to with_strerr. - (client_shmmgr::attach): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/sys/ipc.h: Move to "include/cygwin/ipc.h". - * include/sys/msg.h: Move to "include/cygwin/msg.h". - * include/sys/sem.h: Move to "include/cygwin/sem.h". - * include/sys/shm.h: Move to "include/cygwin/shm.h". - * include/cygwin/ipc.h: New file. - * include/cygwin/msg.h: Ditto. - * include/cygwin/sem.h: Ditto. - * include/cygwin/shm.h: Ditto. - * cygserver_shm.h: Update includes. - * msg.cc: Ditto. - * sem.cc: Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * safe_memory.h (safe_delete): Make a templated function. - * cygserver.cc (~server_request): Update use of safe_delete. - (main): Ditto. - * cygserver_client.cc (client_request::handle_request): Ditto. - (client_request::make_request): Ditto. - * cygserver_process.cc (~process_cleanup): Ditto. - (process::remove): Ditto. - (process::cleanup): Ditto. - (process_cache::process): Ditto. - * cygserver_shm.cc (server_shmmgr::segment_t::detach): Ditto. - (server_shmmgr::delete_segment): Ditto. - * shm.cc (client_shmmgr::shmdt): Ditto. - * threaded_queue.cc (~threaded_queue): Ditto. - (threaded_queue::worker_loop): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * safe_memory.h: Replace #include <new> with an explicit - definition of the placement new operator. - (safe_delete): Remove unnecessary ## operator. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (class server_shmmgr): Remove `cleanup_t' - friend declaration. - (cleanup_t::cleanup_t): Use the segment's shmid as the key rather - than the segment pointer itself. - (cleanup_t::segptr): Remove method. - (cleanup_t::shmid): New method. - (cleanup_t::cleanup): Update for new key value. - (server_shmmgr::find (segment_t *)): Remove method. - * include/cygwin/cygserver_process.h (cleanup_routine::key): Make - method const. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver_process.h - (cleanup_routine::_key): New field. - (cleanup_routine::cleanup_routine): Initialise new field with new - argument. - (cleanup_routine::operator==): New method. - (cleanup_routine::key): New method. - (cleanup_routine::cleanup): Make argument non-const. - (process::is_active): New method. - (process::remove): Ditto. - (process::check_exit_code): Rename method. - * cygserver_process.cc (process::add): Reorganize code. - (process::remove): New method. - (process::check_exit_code): Rename method. - (process::cleanup): Use new `process::is_active' method. - (process_cache::process): Ditto. - (process_cache::sync_wait_array): Ditto. - (process_cache::check_and_remove_process): Ditto. - * cygserver_shm.cc (server_shmmgr): Make `cleanup_t' a friend. - (segment_t::detach): Make argument non-const. Remove cleanup - object from client if appropriate. - (cleanup_t::_segptr): Remove field. - (cleanup_t::cleanup_t): Initialise parent explicitly. Remove - field. - (cleanup_t::segptr): New method. - (cleanup_t::cleanup): Add error checking and reporting. - (server_shmmgr::shmdt): Make argument non-const. - (server_shmmgr::find (segment_t *)): New method. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (client_request_shutdown::client_request_shutdown): - Comment out verbose tracing statement. - * cygserver_client.cc - (client_request_get_version::client_request_get_version): Ditto. - (client_request_attach_tty::client_request_attach_tty): Ditto. - * cygserver_shm.cc (client_request_shm::client_request_shm): - Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_pipes.cc (transport_layer_pipes::listen): - Set `_is_listening_endpoint' appropriately. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver_transport.h - (transport_layer_base::listen): Change return type. - (transport_layer_base::connect): Ditto. - * include/cygwin/cygserver_transport_pipes.h - (transport_layer_pipes::listen): Change return type. - (transport_layer_pipes::connect): Ditto. - (transport_layer_pipes::_sec_none_nih): Remove unused field. - (transport_layer_pipes::_is_listening_endpoint): New field. - * cygserver_transport_pipes.cc: Synchronize with sockets code. - (transport_layer_pipes::transport_layer_pipes): Initialise new - field. Separate out asserts. - (transport_layer_pipes::listen): Change return type. Add asserts. - (transport_layer_pipes::accept): Add asserts. - (transport_layer_pipes::read): Change conditional to an assert. - Add assert. - (transport_layer_pipes::write): Ditto. - (transport_layer_pipes::connect): Change return type. Change - conditional to an assert. Add asserts. Rationalize error code - slightly. - (transport_layer_pipes::impersonate_client): Add asserts. - * include/cygwin/cygserver_transport_sockets.h - (transport_layer_sockets::listen): Change return type. - (transport_layer_sockets::connect): Ditto. - (transport_layer_sockets::_addr): Change type of field. - (transport_layer_sockets::_addr_len): Ditto. - (transport_layer_sockets::_is_accepted_endpoint): New field. - (transport_layer_sockets::_is_listening_endpoint): Ditto. - * cygserver_transport_sockets.cc - (MAX_CONNECT_RETRY): New constant. - (transport_layer_sockets::transport_layer_sockets): Initialise new - fields. Only initialise the socket address where necessary. - (transport_layer_sockets::listen): Change return type. Rewrite. - (transport_layer_sockets::accept): Add asserts. Add tracing - statements. Use a local variable to hold the accepted address. - (transport_layer_sockets::close): Add tracing statements. Unlink - the UNIX domain socket file as appropriate. Close the socket - cleanly. - (transport_layer_sockets::read): Rewrite method. - (transport_layer_sockets::write): Ditto. - (transport_layer_sockets::connect): Change return type. Rewrite. - * cygserver.cc (server_submission_loop::request_loop): Run the - listening thread at high priority with special handling for - shutdown. - (main): Print the request error code rather than errno in shutdown - request code. Install signal handlers with sigaction(2) to avoid - setting SA_RESTART. Check value of the listen method call, now it - has one. - * cygserver_client.cc (client_request::make_request): Check new - return value on connect method call. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver_transport_pipes.h - (cygserver_transport_pipes::_sd): Rename field. - (cygserver_transport_pipes::_sec_none_nih): Ditto. - (cygserver_transport_pipes::_sec_all_nih): Ditto. - (cygserver_transport_pipes::_pipe_name): Ditto. - (cygserver_transport_pipes::_hPipe): Ditto. - (cygserver_transport_pipes::_is_accepted_endpoint): Ditto. - * cygserver_transport_pipes.cc - (transport_layer_pipes::transport_layer_pipes): Rename fields. - (transport_layer_pipes::init_security): Ditto. - (transport_layer_pipes::listen): Ditto. - (transport_layer_pipes::accept): Ditto. - (transport_layer_pipes::close): Ditto. - (transport_layer_pipes::read): Ditto. - (transport_layer_pipes::write): Ditto. - (transport_layer_pipes::connect): Ditto. - (transport_layer_pipes::impersonate_client): Ditto. - (transport_layer_pipes::revert_to_self): Ditto. - * include/cygwin/cygserver_transport_sockets.h - (cygserver_transport_sockets::_fd): Rename field. - (cygserver_transport_sockets::_addr): Ditto. - (cygserver_transport_sockets::_addr_len): Ditto. - * cygserver_transport_sockets.cc - (transport_layer_sockets::transport_layer_sockets): Rename fields. - (transport_layer_sockets::listen): Ditto. - (transport_layer_sockets::accept): Ditto. - (transport_layer_sockets::close): Ditto. - (transport_layer_sockets::read): Ditto. - (transport_layer_sockets::write): Ditto. - (transport_layer_sockets::connect): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (with_strerr): Fix use of %p format. - * shm.cc (client_shmmgr::shmat): Ditto. - (client_shmmgr::shmctl): Ditto. - (client_shmmgr::shmdt): Ditto. - (client_shmmgr::attach): Ditto. - -2002-09-22 Christopher Faylor <cgf@redhat.com> - - * woutsup.h (system_printf): Remove extraneous semicolon from macro - definition. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_pipes.cc - (transport_layer_pipes::connect): Use ProtectHandle in DLL code. - (transport_layer_pipes::close): Use ForceCloseHandle in DLL code. - -2002-09-22 Nicholas Wourms <nwourms@netscape.com> - - * threaded_queue.h (class queue_submission_loop): Correct friend - declaration for GCC 3.1.1. - * include/cygwin/cygserver_process.h (class process): Ditto. - (class process_cache): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (server_shmmgr::shmdt): Only call - delete_segment if the segment exists [sic]. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * safe_memory.h: Include <new> rather than <new.h> for gcc 3. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * safe_memory.h: New file extracted from "woutsup.h". - * woutsup.h: Move the "safe" new/delete macros into the new - "safe_memory.h" header file and include that here. - * cygserver_client.cc: Explicitly include "safe_memory.h" for - client-side code. - (client_request::make_request): Use the "safe" new/delete macros - unconditionally, i.e. use them on the client side as well as on - the server side. - * cygserver_transport.cc: Explicitly include "safe_memory.h" for - client-side code. - (create_server_transport): Use the "safe" new/delete macros - unconditionally, i.e. use them on the client side as well as on - the server side. - * shm.cc: Include "safe_memory.h". - (client_shmmgr::instance): Use the "safe" new/delete macros. - (client_shmmgr::shmdt): Ditto. - (client_shmmgr::new_segment): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_process (process::process): Add the client's cygpid - and winpid to all tracing statements as appropriate. - (process::exit_code): Ditto. - (process_cache::check_and_remove_process): Ditto. - * cygserver_shm.cc (server_shmmgr::shmat): Ditto. - (server_shmmgr::shmdt): Ditto. - (server_shmmgr::shmctl): Add a process object argument and remove - the explicit cygpid argument. Add the client's cygpid and winpid - to all tracing statements as appropriate. - (server_shmmgr::shmget): Ditto. - (client_request_shm::serve): Update for the new signature of the - shmctl and shmget methods. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (client_request_shutdown::serve): Don't set the - shutdown flag directly, but send a SIGINT, as the signal handler - sets the flag and the signal breaks the pause(2) in the main loop. - (print_usage): Add new options. - (main): Add new --cleanup-threads and --request-threads options to - set the number of threads used by the daemon. Use pause(2) rather - the win32 Sleep in the main loop. - * shm.cc (shmat): Add sigframe. - (shmctl): Ditto. - (shmdt): Ditto. - (shmget): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc: Automatically detach processes from any - segments they are attached to at exit. - (class server_shmmgr::attach_t): New class. - (server_shmmgr::segment_t::IS_DELETED): Rename and make private. - (server_shmmgr::segment_t::_sequence): Make private. - (server_shmmgr::segment_t::_flg): Ditto. - (server_shmmgr::segment_t::_hFileMap): Ditto. - (server_shmmgr::segment_t::_attach_head): New private field. - (server_shmmgr::segment_t::segment_t): Initialise new fields. - Make non-inline. - (server_shmmgr::segment_t::~segment_t): New method. - (server_shmmgr::segment_t::is_deleted): Ditto. - (server_shmmgr::segment_t::is_pending_delete): Ditto. - (server_shmmgr::segment_t::mark_deleted): Ditto. - (server_shmmgr::segment_t::attach): Ditto. - (server_shmmgr::segment_t::detach): Ditto. - (server_shmmgr::segment_t::find): Ditto. - (class server_shmmgr::cleanup_t): New class. - (server_shmmgr::_shm_atts): New private field. - (server_shmmgr::shmat): Add a process object argument to replace - the removed process_cache, cygpid and winpid arguments. Remove - the process_cache manipulations. Move body of code to the - segment_t::attach method. Increment _shm_atts when required. - Update tracing statements. - (server_shmmgr::shmdt): Add a process object argument to replace - the removed cygpid argument. Move body of code to the - segment_t::detach method. Decrement _shm_atts when required. - Update tracing statements. - (server_shmmgr::shmget): Use the new segment_t::is_deleted method. - (server_shmmgr::server_shmmgr): Initialise the new _shm_atts - field. - (server_shmmgr::delete_segment): Remove the CloseHandle code, as - this is now done in the segment_t destructor. - (client_request_shm::serve): Look up the client's process object - and pass to the server_shmmgr::shmat and server_shmmgr::shmdt - methods rather than passing the cache, winpid and cygpid. - * cygserver_process.h: Add a cygpid to the process object to make - it more useful and then pass process objects rather than winpids - where possible. - (cleanup_routine::cleanup): Change argument to be a pointer to a - process object. - (class process): Re-order fields for no discernible reason. - (process::_cygpid): New field. - (process::process): Add a cygpid argument. - (process::winpid): New method. - (process::cygpid): Ditto. - (process::add): Make public, as it always should have been. - (process_cache::process): Add a cygpid argument. - * cygserver_process.cc (process::process): Add a cygpid argument - and use it to initialise the `_cygpid' field. Re-order - initialisers to match new field order. - (process::cleanup): Pass `this' rather than just the winpid to - cleanup_routine::cleanup. - (process_cache::process): Add a cygpid argument and pass it to the - process object constructor. - * include/sys/shm.h (shmatt_t): Make unsigned as per SUSv3. - (shm_info::shm_atts): New field. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (class server_shmmgr::segment_t): Add `_' - prefix to the names of all fields. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * msg.cc: New file of stub functions, no functionality. - * sem.cc: Ditto. - * shm.cc (client_shmmgr::shmctl): Add support for an out shm_info - buffer for the SHM_INFO command. - (client_shmmgr::shmget): Use %X to print keys. - * include/sys/ipc.h: Comment all fields and values. - (IPC_PRIVATE): Change to be non-negative. - * include/sys/msg.h: New file with SUSv3 and ipcs(8) interfaces. - * include/sys/sem.h: Ditto. - * include/sys/shm.h: Comment all fields and values. - (struct shm_info): New struct. - * cygserver_shm.h (client_request_shm::shminfo): Rename. - (client_request_shm::shm_info): New method. - (client_request_shm::_parameters.out.hFileMap): Move into union. - (client_request_shm::_parameters.out.shminfo): Rename. - (client_request_shm::_parameters.out.shm_info): New field. - * cygserver_shm.cc (server_shmmgr::_shm_ids): Rename. - (server_shmmgr::_shm_tot): New field. - (server_shmmgr::shmctl): Rename `out_shminfo' argument. Add - `out_shm_info' argument. Fill in the `out_shm_info' argument in - the SHM_INFO command. - (server_shmmgr::shmget): Check `shmflg' against the mode of - existing segments as per Stevens 1990, p. 123. - (server_shmmgr::server_shmmgr): Initialise the new `_shm_tot' - field. - (server_shmmgr::new_segment): Set ENOMEM if CreateFileMapping - fails. Pass `size' to new_segment. - (server_shmmgr::new_segment): Add size argument and use it to - check against and update the new `_shm_tot' field. - (server_shmmgr::delete_segment): Update the new `_shm_tot' field. - * Makefile.in (DLL_OFILES): Add new DLL object files. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_pipes.cc: The main change is to make the - client try harder to connect to the server if it's previously - connected, and so has good grounds for believing that the server - is running. - (MAX_WAIT_NAMED_PIPE_RETRY): Change to be an enumerator. - (WAIT_NAMED_PIPE_TIMEOUT): Ditto. - (transport_layer_pipes::accept): Use interlocked operators on - `pipe_instance'. - (transport_layer_pipes::close): Rearrange so that FlushFileBuffers - and DisconnectNamedPipe are only called for accepted endpoints. - Use interlocked operators on `pipe_instance'. - (transport_layer_pipes::read): Use set_errno where required. - (transport_layer_pipes::write): Ditto. - (transport_layer_pipes::connect): Add local static variable - `assume_cygserver'. Set it if a connection is made to cygserver, - clear it if a connection is not made even after retrying. If set, - ignore all errors from CreateFile and retry the connection. Catch - the situation where WaitNamedPipe fails to wait [sic] and add a - `Sleep (0)' so that the server gets a chance to run. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * dcrt0.cc: Only check for cygserver if and when required. - (dll_crt0_1): Remove call to `cygserver_init ()'. - * fhandler_tty.cc (fhandler_tty_slave::open): Change the cygserver - logic to allow for the fact that `cygserver_init ()' may not yet - have been called. - (fhandler_tty_slave::cygserver_attach_tty): Tweak the cygserver - request logic to conform to the practice elsewhere in the code. - * tty.cc (tty::common_init): Add an explicit call to - `cygserver_init ()' if it hasn't already been called. - * include/cygwin/cygserver.h (CYGSERVER_UNAVAIL): Rename from - `CYGSERVER_DEAD'. - (client_request_get_version::check_version): Make available in - cygserver as well the DLL. - (check_cygserver_available): Ditto. Remove `check_version_too' - argument. - (cygserver_init): Ditto. And likewise. - * cygserver_client.cc (client_request_get_version::check_version): - Make available in cygserver as well the DLL. - (client_request::make_request): This may now be called without - `cygserver_init ()' having been called first. Detect this and - call it as required. Add tracing. - (check_cygserver_available): Make available in cygserver as well - the DLL. Remove `check_version_too' argument and always check the - version information. And since this is called from within - `cygserver_init ()', force `cygserver_running' before calling - `client_request::make_request ()'. - (cygserver_init): Make available in cygserver as well the DLL. - Remove `check_version_too' argument. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc: Implement the ipcs(8) interfaces, IPC_INFO, - SHM_STAT and SHM_INFO. - (server_shmmgr::segment_t::sequence): New static field. - (server_shmmgr::segment_t::key): Remove field, use the new - ds.shm_perm.key field instead. - (server_shmmgr::segment_t::shmid): Remove field. - (server_shmmgr::segment_t::intid): New field. - (server_shmmgr::segment_t::segment_t): Use the `key' argument to - initialise `ds.shm_perm.key'. Change from using `shmid' to - `intid'. - (server_shmmgr::_shmseg_cnt): Renamed from `_shmid_cnt'. - (server_shmmgr::_intid_max): Renamed from `_shmid_max. - (server_shmmgr::shmat): Move the out arguments to the start of the - argument list. Rename the `pid' argument as `cygpid'. Add - tracing. Pass an intid to `find ()', not a shmid. - (server_shmmgr::shmctl): Add separate out arguments. Rename the - `pid' argument as `cygpid'. Add support for the ipcs(8) - interfaces. Add tracing. Pass an intid to `find ()', not a - shmid. - (server_shmmgr::shmdt): Rename the `pid' argument as `cygpid'. - Add tracing. Pass an intid to `find ()', not a shmid. - (server_shmmgr::shmget): Add a separate out arguments. Rename the - `pid' argument as `cygpid'. Add tracing. - (server_shmmgr::server_shmmgr): Update for new field names. - (server_shmmgr::find_by_key): Update for the new `ds.shm_perm.key' - field. - (server_shmmgr::find): Update to use the new `segment_t::intid' - field. - (server_shmmgr::new_segment): Rename the `pid' argument as - `cygpid'. Check that the requested size is within bounds. Handle - new error result from `new_segment (key, HANDLE)'. - (server_shmmgr::new_segment): Work with intids, not shmids. Check - that the new intid is within bounds. Update for new field names. - (server_shmmgr::delete_segment): Pass an intid to `find ()', not a - shmid. Update for new field names. - (client_request_shm::serve): Check that the incoming message - length is the size of the `_parameters.in' struct, not of the - whole in/out parameter union. Likewise, set the outgoing message - length to the size of the `_parameters.out' struct. Update for - the new server_shmmgr interfaces. - * include/sys/ipc.h (ipc_perm::key): New field. - * include/sys/shm.h (SHM_INFO): New constant. - * cygserver_ipc.h (IPCMNI): New constant. - (ipc_int2ext): Add `sequence' argument and munge this into the - external ipc id. - (ipc_ext2int_subsys): Unmunge the sequence number from the - external ipc id. - (ipc_ext2int): Ditto. - (ipc_inc_id): Remove. - (ipc_dec_id): Remove. - * cygserver_shm.h (SHMMAX): New constant. - (SHMMIN): Ditto. - (SHMMNI): Ditto. - (SHMSEG): Ditto. - (SHMALL): Ditto. - (client_request_shm::_parameters): Re-arrange as a union of two - separate structs, one for in arguments, the other for out. - (client_request_shm::shmid): Update for the new parameter layout. - (client_request_shm::ds): Ditto. - (client_request_shm::info): New method. - * shm.cc (client_shmmgr::_shmat_cnt): New static field. - (client_shmmgr::shmat): Add locking. Add tracing. - (client_shmmgr::shmctl): Update for ipcs(8) commands. Add - tracing. Add more argument checking. - (client_shmmgr::shmdt): Add locking. Add tracing. Update the new - `_shmat_cnt' field. - (client_shmmgr::shmget): Add tracing. - (client_shmmgr::fixup_shms_after_fork): Add tracing. Add - consistency checking. - (client_shmmgr::attach): Add more tracing. - (client_shmmgr::new_segment): Update the new `_shmat_cnt' field. - (client_request_shm::client_request_shm): Update for the new - parameter layout. Set the outgoing message length to the size of - the `_parameters.in' struct, not of the whole in/out parameter - union. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * shm.cc: Remove the use of a static client_shmmgr object. - (client_shmmgr::_instance): New static variable. - (client_shmmgr::instance): Allocate a new shmmgr on the heap, - rather than using a local static object. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport.cc (create_server_transport): Fix - cut-and-paste error. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_client.cc (client_request::handle_request): Don't - bother with the client request activity marker when compiled with - debugging output. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_pipes.cc - (MAX_WAIT_NAMED_PIPE_RETRY): New constant. - (WAIT_NAMED_PIPE_TIMEOUT): Ditto. - (transport_layer_pipes::close): The `pipe' field is now either - NULL or a valid handle, and it should never have the value - `INVALID_HANDLE_VALUE'. - (transport_layer_pipes::read): Ditto. - (transport_layer_pipes::write): Ditto. - (transport_layer_pipes::connect): Ditto. - (transport_layer_pipes::impersonate_client): Ditto. - (transport_layer_pipes::connect): Ditto. New, but still bogus, - retry logic. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (server_shmmgr::server_shmmgr): All fields have - to be initialized now that the singleton is no longer static. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc (server_shmmgr::_instance): New static field. - (server_shmmgr::_instance_once): Ditto. - (server_shmmgr::initialise_instance): New static method. - (server_shmmgr::instance): Use a pthread_once_t rather than - relying on a local static variable. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * woutsup.h: Remove all uses of the C++ new and delete operators - throughout cygserver until they are fully thread-safe. - (safe_new0): New macro to replace the C++ new operator. - (safe_new): Ditto. - (safe_delete): New macro to replace the C++ delete operator. - * cygserver_client.cc (client_request::handle_request): Replace - all uses of the C++ new and delete operators with the new macros - from "woutsup.h". - (client_request::make_request): Ditto. - * cygserver_process.cc (~process_cleanup): Ditto. - (process::cleanup): Ditto. - (process_cache::process): Ditto. - (process_cache::check_and_remove_process): Ditto. - * cygserver_shm.cc (server_shmmgr::new_segment): Ditto. - (server_shmmgr::delete_segment): Ditto. - * cygserver_transport.cc (create_server_transport): Ditto. - * cygserver_transport_pipes.cc - (transport_layer_pipes::accept): Ditto. - * cygserver_transport_sockets.cc - (transport_layer_sockets::accept): Ditto. - * threaded_queue.cc (~threaded_queue): Ditto. - (threaded_queue::worker_loop): Ditto. - (threaded_queue::stop): Replace sleep(3) with win32 Sleep. - * cygserver.cc (~server_request): Replace all uses of the C++ new - and delete operators with the new macros from "woutsup.h". - (server_submission_loop::request_loop): Ditto. - (main): Ditto. Replace sleep(3) with win32 Sleep. Replace - iostreams with FILEs. - (print_usage): Replace iostreams with FILEs. - (print_version): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_transport_sockets.cc - (transport_layer_sockets::accept): Rename local variable - `accept_fd' to avoid shadowing the `fd' field. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygwin_ipc.h: Moved (back) to "include/sys/ipc.h". - * cygwin_shm.h: Moved (back) to "include/sys/shm.h". - * include/sys/ipc.h: New file. - * include/sys/shm.h: New file. - * cygserver_shm.h: Update for new header file locations. - * ipc.cc: Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_client.cc (client_request::make_request): Comment out - a verbose tracing statement. - * cygserver_process.cc (process_cache::sync_wait_array): Fix - broken assert. - * include/cygwin/cygserver.h (class client_request): Remove excess - use of `class' qualifier in declarations. - (class client_request_get_version): Ditto. - (class client_request_shutdown): Ditto. - (class client_request_attach_tty): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_ipc.h: New file. - * cygserver_shm.h: Re-written from scratch. - * cygserver_shm.cc: Ditto. - * shm.cc: Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * threaded_queue.h (class queue_request): Re-write. - (threaded_queue_thread_function): Remove. - (class queue_process_param): Remove. - (class threaded_queue): Re-write. - (class queue_submission_loop): New version of the old - `queue_process_param' class. - (TInterlockedExchangePointer): New templated function. - (TInterlockedCompareExchangePointer): Ditto. - * threaded_queue.cc (worker_function): Remove. - (class threaded_queue): Re-write. - (class queue_process_param): Remove. - (class queue_submission_loop): New version of the old - `queue_process_param' class. - * include/cygwin/cygserver_process.h (process_cleanup): Re-write. - (class process_process_param): Remove. - (class cleanup_routine): Re-write. - (class process): Re-write. - (class process_cache): Re-write. - * cygserver_process.cc (process_cleanup): Re-write. - (class process_process_param): Remove. - (class cleanup_routine): Re-write. - (class process): Re-write. - (class process_cache): Re-write. - * cygserver.cc (request_count): Remove unused variable. - (class server_request): Move methods inline. - (class server_process_param): Remove. - (class server_request_queue): Remove. - (request_queue): Move into `main ()' and change type to - `threaded_queue'. - (request_loop): Remove. - (class server_submission_loop): New version of the old - `server_process_param' class. - (shutdown_server): New variable. - (client_request_shutdown::serve): Set `shutdown_server' to trigger - shutdown. - (handle_signal): Ditto. - (main): Install signal handler for SIGINT rather than SIGQUIT. - Use new interfaces for the `request_queue' and the `cache'. - Create a `server_submission_loop' and add to the `request_queue'. - Add check for the `shutdown_server' variable to the main loop. - * cygserver_shm.cc (client_request_shm::serve): Release the - process object after use. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_client.cc (client_request::handle_request): Correct - tracing statement. - * cygserver_transport_pipes.cc: Remove local definition of - FILE_FLAG_FIRST_PIPE_INSTANCE constant. - * cygwin_ipc.h: Update copyright notice. - * cygwin_shm.h: Ditto. - * woutsup.h: Add definition of _WIN32_WINNT. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_client (client_request::make_request): Replace my - inappropriate use of set_errno () with error_code () throughout. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver.h: Add forward declarations of class - transport_layer_base and class process_cache to reduce - dependencies between header files. - * include/cygwin/cygserver_process.h: Add include of - "threaded_queue.h". - * cygserver.cc: Remove unnecessary cygserver header files. - * cygserver_client.cc: Ditto. - * cygserver_process.cc: Ditto. - * cygserver_shm.cc: Ditto. - * cygserver_shm.h: Ditto. - * cygserver_transport_pipes.cc: Ditto. - * dcrt0.cc: Ditto. - * fhandler_tty.cc: Ditto. - * tty.cc: Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.h: Replace <sys/shm.h> with "cygwin_shm.h" after - merge from HEAD. - * cygwin_ipc.h: Update with changes to include/sys/ipc.h lost in - merge from HEAD. - * cygwin_shm.h: Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc: The tests for a duplicate server instance are now - the responsibility of the transport layer. - (request_loop): Use new `recoverable' flag in call to - `cygserver_transport::accept ()' and shutdown on an unrecoverable - error. - (main): Never call `cygserver_init ()'. Fake `cygserver_running' - just for sending a shutdown request. - * cygserver_client.cc (client_request::send): Comment out - message-size tracing statements as verbose. - (client_request::handle): Ditto. - (client_request_get_version::check_version): #ifdef as DLL-only. - (check_cygserver_available): Ditto. - (cygserver_init): Ditto. - * include/cygwin/cygserver.h - (client_request_get_version::check_version): #ifdef as DLL-only. - (check_cygserver_available): Ditto. - (cygserver_init): Ditto. - * include/cygwin/cygserver_transport.h - (transport_layer_base::impersonate_client): #ifdef as - cygserver-only. - (transport_layer_base::revert_to_self): Ditto. - (transport_layer_base::listen): Ditto. - (transport_layer_base::accept): Ditto. Add a `recoverable' out - flag for error handling. - * include/cygwin/cygserver_transport_sockets.h: Ditto. - * include/cygwin/cygserver_transport_pipes.h: Ditto. - (transport_layer_pipes): Change type of the `pipe_name' field. - Remove the `inited' field, as unnecessary. Add new - `is_accepted_endpoint' field. - * include/cygwin/cygserver_transport.cc - (transport_layer_base::impersonate_client): #ifdef as - cygserver-only. - (transport_layer_base::revert_to_self): Ditto. - * include/cygwin/cygserver_transport_sockets.cc - (transport_layer_sockets::listen): #ifdef as cygserver-only. - (transport_layer_sockets::accept): #ifdef as cygserver-only. - Analyse any errno from `accept ()' and set `recoverable' as - appropriate. - * cygserver_transport_pipes.cc: Add local #define of - `FILE_FLAG_FIRST_PIPE_INSTANCE'. - (pipe_instance_lock_once): New variable. - (pipe_instance_lock): Ditto. - (pipe_instance): Ditto. - (initialise_pipe_instance_lock): New function. - (transport_layer_pipes::transport_layer_pipes): Change - initialization of `pipe_name'. Initialize `is_accepted_endpoint' - as appropriate. Remove use of `inited'. - (transport_layer_pipes::impersonate_client): #ifdef as - cygserver-only. - (transport_layer_pipes::revert_to_self): Ditto. - (transport_layer_pipes::listen): Ditto. - (transport_layer_pipes::accept): Ditto. Keep track of how often - many named pipes have been created, in the `pipe_instance' - variable, and pass the `FILE_FLAG_FIRST_PIPE_INSTANCE' flag on the - open of the first instance. Analyse the error code from - `CreateNamedPipe ()' and set the `recoverable' flag as - appropriate. - (transport_layer_pipes::close): Update the `pipe_instance' count. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * woutsup.h (cygserver_running): Add declaration. - (api_fatal): Eliminate. - * include/cygwin/cygserver.h - (client_request_get_version::check_version): Change return type to - bool. - (check_cygserver_available): New function. - (cygserver_init): Add check_version_too argument. - * cygserver_client.cc (allow_daemon): Make a bool. - (client_request_get_version::make_request): See errno on error. - Remove special case for CYGSERVER_REQUEST_GET_VERSION; this is now - handled in cygserver_init(). - (client_request_get_version::check_version): Use syscall_printf() - instead of api_fatal(). Return true if cygserver version is - compatible. - (check_cygserver_available): New function; code moved here from - cygserver_init(). - (cygserver_init): Move some code into check_cygserver_available(). - * cygserver.cc (__set_errno): Copy from debug.cc so that - set_errno() can be used when __OUTSIDE_CYGWIN__. - (main): Call cygserver_init() to set up cygserver_running and add - checks against this to (try and) prevent multiple copies of - cygserver running simultaneously. Remember to delete all - transport connections so that (one day) the transport classes can - tidy up on cygserver shutdown. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (main): Adjust tracing output for a cleaner display - when compiled without --enable-debugging. - * threaded_queue.cc (threaded_queue::cleanup): Ditto. - (queue_process_param::stop): Ditto. - * include/cygwin/cygserver.h - (client_request::make_request): Make non-virtual. - (client_request::send): Make virtual and protected, not private. - (client_request_attach_tty::send): New virtual method. - * cygserver_client.cc: Use the `msglen()' accessor rather than - `_header.msglen' throughout. - (client_request_attach_tty::send): New method. - (client_request::make_request): Remove the explicit close of - `transport' as it is closed on deletion. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver.h: Change the client_request classes to - give greater encapsulation and to allow variable length requests - and replies. - (enum cygserver_request_code): Now client_request::request_code_t. - (class request_header): Now client_request::header_t. Make a - union of the request_code and the error_code. The `cb' field, - which was the buffer length, is now the `size_t msglen' field. - (struct request_get_version): Now - client_request_get_version::request_get_version. - (struct request_shutdown): Remove unused type. - (struct request_attach_tty): Now - client_request_attach_tty::request_attach_tty. - (client_request::_buf): Make field const. - (client_request::_buflen): New const private field. - (client_request::request_code): New accessor. - (client_request::error_code): Ditto. - (client_request::msglen): Ditto. - (client_request::handle_request): New static method. - (client_request::make_request): New virtual method. - (client_request::handle): New method. - (client_request::send): Make private. - (client_request_get_version::check_version): New method. - (client_request_get_version::serve): Make private. - (client_request_get_version::version): Ditto. - (client_request_shutdown::serve): Ditto. - (client_request_attach_tty::req): Ditto. - (client_request_attach_tty::serve): Ditto. - (client_request_attach_tty::from_master): Make method const. - (client_request_attach_tty::from_master): Ditto. - * cygserver_client.cc - (client_request_get_version::client_request_get_version): Track - changes to the client_request classes. - (client_request_attach_tty::client_request_attach_tty): Ditto. - (client_request_get_version::check_version): New method to - encapsulate code from cygserver_init(). - (client_request_shutdown::client_request_shutdown): Move into - "cygserver.cc". - (client_request::send): Track changes to the client_request - classes. Add more error checking. - (client_request::handle_request): New static method containing the - first half of the old server_request::process() code. - (client_request::make_request): New method to replace the old - cygserver_request() function. - (client_request::handle): New method containing the second half of - the old server_request::process() code. - (cygserver_init): Track changes to the client_request classes. In - particular, some code moved into the - client_request_get_version::check_version() method. - * cygserver.cc (client_request_attach_tty::serve): Track changes - to the client_request classes. In particular, only return a reply - body if some handles are successfully duplicated for the client. - And remove goto's. - (client_request_get_version::serve): Track changes to the - client_request classes. - (client_request_shutdown::serve): Ditto. - (class client_request_invalid): Dead, and so young too. - (server_request::request_buffer): Remove unnecessary field. - (client_request_shutdown::client_request_shutdown): Moved here - from "cygserver_client.cc". - (server_request::process): Implementation moved into the new - client_request::handle_request() and client_request::handle() - methods. - * cygserver_shm.h (class client_request_shm): Put client- and - server-specific interfaces inside #ifdef/#ifndef __INSIDE_CYGWIN__ - guards. - (client_request_shm::serve): Make private. - * cygserver_shm.cc - (client_request_shm::client_request_shm): Track changes to the - client_request classes. - (client_request_shm::serve): Ditto - * shm.cc (client_request_shm::client_request_shm): Ditto. Use - alloc_sd() rather than set_security_attribute() to get access to - the SECURITY_DESCRIPTOR length, so that we can use it to set the - request body length. - (shmat): Track changes to the client_request classes. In - particular, allocate client_request objects on the stack rather - than on the heap, and use the client_request::make_request() - method rather than the old cygserver_request() function. - (shmdt): Ditto. - (shmctl): Ditto. - (shmget): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::cygserver_attach_tty): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver_transport.h - (cygserver_transport::read): Change buffer type to void *. - (cygserver_transport::write): Ditto. - * include/cygwin/cygserver_transport_sockets.h - (cygserver_transport_sockets::read): Ditto. - (cygserver_transport_sockets::write): Ditto. - * include/cygwin/cygserver_transport_pipes.h - (cygserver_transport_pipes::read): Ditto. - (cygserver_transport_pipes::write): Ditto. - * cygserver_transport_sockets.cc - (cygserver_transport_sockets::read): Ditto. - (cygserver_transport_sockets::write): Ditto. - * cygserver_transport_pipes.cc - (cygserver_transport_pipes::read): Ditto. Set errno on error, to - match behaviour of cygserver_transport_sockets class. - (cygserver_transport_pipes::write): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (version): New static variable. - (server_request_queue::add_connection): Remove my gratuitous use - of studly caps. - (setup_privileges): Declare static. - (handle_signal): Ditto. - (longopts): Make a local variable of main(). - (opts): Ditto. - (print_usage): New function. - (print_version): Ditto (tip of the hat to Joshua Daniel Franklin - for inspiration here). - (main): More argument checking. Add --help and --version options. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver.h (client_request::serve): Make pure - virtual. - * cygserver.cc (client_request::serve): Remove definition of pure - virtual method. - (class client_request_invalid): New class. - (server_request::process): Use new client_request_invalid - class. And remove goto's. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (class server_request): Add virtual destructor. - (server_request_queue::addConnection): New method to replace bad - virtual add() method. - (request_loop): Replace call to queue->add() with call to - queue->addConnection(). - (server_request::server_request): Use field initialization. - (server_request::~server_request): New virtual destructor. - (server_request::process): Remove close and delete of - transport_layer_base object. It is deleted by the server_request's - own destructor and closed by its own destructor. - * include/cygwin/cygserver.h - (client_request::operator request_header): Remove unused method. - * cygserver_client.cc: Ditto. - * include/cygwin/cygserver_process.h - (class cleanup_routine): Add virtual destructor. - (cleanup_routine::cleanup): Make pure virtual. - (class process_cache): Make destructor non-virtual. - (process_cache::add): Ditto. - * cygserver_process.cc - (cleanup_routine::~cleanup_routine): New virtual destructor. - * include/cygwin/cygserver_transport.h - (class transport_layer_base): Add virtual destructor. - * cygserver_transport.cc - (transport_layer_base::~transport_layer_base): New virtual - destructor. - * include/cygwin/cygserver_transport_pipes.h - (class transport_layer_pipes): Add virtual destructor. - * cygserver_transport_pipes.cc - (transport_layer_pipes::~transport_layer_pipes): New virtual - destructor. - (transport_layer_pipes::close): Null out handle after closing. - * include/cygwin/cygserver_transport_sockets.h - (class transport_layer_sockets): Add virtual destructor. - * cygserver_transport_sockets.cc - (transport_layer_sockets::~transport_layer_sockets): New virtual - destructor. - (transport_layer_sockets::close): Null out fd after closing. - * threaded_queue.h (class queue_request): Add virtual destructor. - (queue_request::process): Make pure virtual. - * threaded_queue.cc (~queue_request): New virtual destructor. - (queue_request::process): Remove definition of pure virtual - method. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver.h (client_request::send): Make - non-virtual. - (class client_request_attach_tty): Put client- and server-specific - interfaces inside #ifdef/#ifndef __INSIDE_CYGWIN__ guards. - * cygserver_client.cc: Ditto. - (cygserver_init): Fix error handling. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc: Throughout the code, check and correct level of - the XXX_printf() functions used. Comment out several of the - debug_printf() calls with "// verbose:". Reformat and correct - typos of some of the XXX_printf() formats. - * cygserver_process.cc: Ditto. - * cygserver_shm.cc: Ditto. - * cygserver_transport_pipes.cc: Ditto. - * cygserver_transport_sockets.cc: Ditto. - * shm.cc (hi_ulong): New function to allow printing of a 64-bit - key with current small_printf implementation. - (lo_ulong): Ditto. - (client_request_shm::client_request_shm): Use hi_ulong() and - lo_ulong() in call to debug_printf(). - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver_shm.cc: Remove #define __INSIDE_CYGWIN__ from around - <sys/shm.h> as it no longer contains any internal code. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/sys/ipc.h (IPC_PRIVATE): Add cast to key_t. - (IPC_INFO): New flag for ipcs(8). - (IPC_RMID IPC_SET IPC_STAT): Renumber. - * include/sys/shm.h (SHM_RDONLY SHM_RND): Renumber with distinct - values [sic]. - (class _shmattach): Internal type moved to "cygserver_shm.h". - (class shmnode): Ditto. - (class shmid_ds): Ditto. - (struct shmid_ds): Add spare fields. - (struct shminfo): New type for IPC_INFO interface. - * cygserver_shm.h: Remove obsolete #if 0 ... #endif block. - (class shm_cleanup): Remove unused class. - (struct _shmattach): Internal type moved from <sys/shm.h>. - (struct shmnode): Ditto. - (struct int_shmid_ds): Ditto. Renamed to avoid name clash with - public interface struct shmid_ds. Use the shmid_bs structure as a - field. - * cygserver_shm.cc: Remove obsolete #if 0 ... #endif block. - (client_request_shm::serve): Update for redefinition of - int_shmid_ds structure. - * shm.cc (build_inprocess_shmds): Ditto. - (fixup_shms_after_fork): Ditto. - (shmctl): Ditto. - (shmget): Ditto. Remove obsolete #if 0 ... #endif code. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * include/cygwin/cygserver_transport.h - (transport_layer_base::transport_layer_base): Remove since it is - now redundant. - (transport_layer_base::listen): Make a pure virtual method. - (transport_layer_base::accept): Ditto. - (transport_layer_base::close): Ditto. - (transport_layer_base::read): Ditto. - (transport_layer_base::write): Ditto. - (transport_layer_base::connect): Ditto. - * cygserver_transport.cc - (transport_layer_base::transport_layer_base): Remove since it is - now redundant. - (transport_layer_base::listen): Remove since it is now a pure - virtual method. - (transport_layer_base::accept): Ditto. - (transport_layer_base::close): Ditto. - (transport_layer_base::read): Ditto. - (transport_layer_base::write): Ditto. - (transport_layer_base::connect): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygserver.cc (check_and_dup_handle): Only use security code if - running on NT, i.e. if wincap.has_security(). - (client_request_attach_tty::serve): Add check for has_security(). - * cygserver_process.cc (process_cache::process): Use DWORD winpid - throughout to avoid win32 vs. cygwin pid confusion. - (process::process): Ditto. - * cygserver_shm.cc (client_request_shm::serve): Only use security - code if running on NT, i.e. if wincap.has_security(). - * cygserver_shm.h (client_request_shm::parameters.in): Replace the - ambiguous pid field with cygpid and winpid fields. - (client_request_shm::client_request_shm): Reduce to only two - client-side constructors: one for SHM_CREATE, another for all the - other requests. - * shm.cc (client_request_shm::client_request_shm): - Ditto. Initialize cygpid and winpid fields here. On NT initialize - sd_buf here using set_security_attribute() to make use of the euid - and egid. - (shmat): Use new client_request_shm constructor. - (shmdt): Ditto. - (shmctl): Ditto. - (shmget): Ditto. Remove security code, now performed in the - relevant client_request_shm constructor. - * include/cygwin/cygserver_process.h: (class cleanup_routine): - Change winpid type to DWORD. - (class process): Ditto. - -2002-09-22 Conrad Scott <conrad.scott@dsl.pipex.com> - - * woutsup.h: New file. - * cygserver.cc: Use "woutsup.h" and new XXX_printf macros. - (getfunc): New function, copied verbatim from "strace.cc". - (__cygserver__printf): New function. - * cygserver_client.cc: Use "woutsup.h" and new XXX_printf macros. - * cygserver_process.cc: Ditto. - * cygserver_shm.cc: Ditto. - * cygserver_transport.cc: Ditto. - * cygserver_transport_pipes.cc: Ditto. - * cygserver_transport_sockets.cc: Ditto. - * threaded_queue.cc: Ditto. - * shm.cc: Remove trailing \n from XXX_printf format strings. - * Makefile.in: Remove special __OUTSIDE_CYGWIN__ case for - cygserver_shm.cc. - -2002-09-21 Christopher Faylor <cgf@redhat.com> - - * init.cc (dll_entry): Temporarily disable thread detach code. - -2002-09-21 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::dup): Don't set handle on failure. - Caller has already taken care of that. - * fhandler_console.cc (fhandler_console::open): Initialize handles to - NULL. - (fhandler_console::close): Ditto. - -2002-09-21 Christopher Faylor <cgf@redhat.com> - - GNUify non-GNU formatted functions calls throughout. - -2002-09-21 Conrad Scott <conrad.scott@dsl.pipex.com> - - * cygwin_ipc.h: Move to "include/cygwin/ipc.h". - * cygwin_shm.h: Move to "include/cygwin/shm.h". - * include/cygwin/ipc.h: New file. - * include/cygwin/shm.h: New file. - * ipc.c:c Update <cygwin/ipc.h> include. - * cygserver_shm.cc: Update <cygwin/shm.h> include. - * shm.cc: Ditto. - -2002-09-21 Robert Collins <rbtcollins@hotmail.com> - - * pthread.cc: Use class::call for converted pthread and semaphore - calls. - * thread.cc: Convert various __pthread_call and __sem_call to - pthread::call and sem::call throughout. - * pthread.h (__pthread_cancel): Convert to pthread::cancel. - (__pthread_join): Convert to pthread::join. - (__pthread_detach): Convert to pthread::detach. - (__pthread_create): Convert to pthread::create. - (__pthread_once): Convert to pthread::once. - (__pthread_atfork): Convert to pthread::atfork. - (__pthread_suspend): Convert to pthread::suspend. - (__pthread_continue): Convert to pthread::resume. - (__sem_init): Convert to semaphore::init. - (__sem_destroy): Convert to semaphore::destroy. - (__sem_wait): Convert to semaphore::wait. - (__sem_trywait): Convert to semaphore::trywait. - (__sem_post): Convert to semaphore::post. - -2002-09-21 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc: Finish the removal of the separate pthread_key - destructor list. - Remove all pthread_key_destructor and pthread_key_destructor_list - references throughout. - (pthread::exit): Call the new pthread_key interface to activate - destructors. - (pthread_key::keys): Change into a list. - (pthread_key::saveAKey): New method, used via forEach. - (pthread_key::restoreAKey): Ditto. - (pthread_key::destroyAKey): Ditto. - (pthread_key::fixup_before_fork): Use the List::forEach functionality. - (pthread_key::fixup_after_fork): Ditto. - (pthread_key::runAllDestructors): New method implementation. - (pthread_key::pthread_key): Use List::Insert rather than custom list - code. - (pthread_key::~pthread_key): Use List::Remove for the same reason. - * thread.h: Remove all pthread_key_destructor and - pthread_key_destructor_list references throughout. - (List): Move the interface above pthread_key in the header. - Use atomic operations during insert and delete. - (List::forEach): A generic interface for doing something on each node. - (pthread_key::runAllDestructors): New method, run all destructors. - (pthread_key::fork_buf): Make private. - (pthread_key::run_destructor): Ditto. - (pthread_key::saveAKey): New method for clearer source. - (pthread_key::restoreAKey): Ditto. - (pthread_key::destroyAKey): Ditto. - (MTinterface::destructors): Remove. - -2002-09-21 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc: Partial refactoring of pthread_key destructor - handling. Loosely based on Thomas Pfaff's work. - (pthread_key_destructor_list::Insert): Remove. - (pthread_key_destructor_list::Pop): Remove. - (pthread_key_destructor_list::IterateNull): Call the key's - run_destructor method. - (pthread_key::pthread_key): Initialize new member. - (pthread_key::get): Mark as const for correctness. - (pthread_key::run_destructor): Implement. - * thread.h (pthread_key::get): Mark as const for correctness. - (pthread_key::run_destructor): Declare. - (List): New template class that implements a generic list. - (pthread_key_destructor_list): Inherit from List, and remove - now duplicate functions. - -2002-09-21 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc: Change verifyable_object_isvalid calls with - PTHREAD_CONDATTR_MAGIC, PTHREAD_MUTEXATTR_MAGIC, PTHREAD_COND_MAGIC, - SEM_MAGIC to objecttype::isGoodObject() calls throughout. - (pthread_condattr::isGoodObject): Implement. - (pthread_mutex::isGoodInitializer): Implement. - (pthread_mutex::isGoodInitializerOrObject): Minor bugfix in the - check for verifyable_object_isvalid result. - (pthread_mutexattr::isGoodObject): Implement. - (pthread_cond::isGoodObject): Ditto. - (pthread_cond::isGoodInitializer): Ditto. - (pthread_cond::isGoodInitializerOrObject): Ditto. - (semaphore::isGoodObject): Ditto. - * thread.h (pthread_mutex::isGoodInitializer): Declare. - (pthread_condattr::isGoodObject): Ditto. - (pthread_cond::isGoodObject): Const correctness. - (pthread_cond::isGoodInitializer): Declare. - (pthread_cond::isGoodInitializerOrObject): Ditto. - (semaphore::isGoodObject): Const correctness. - -2002-09-21 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc: Change verifyable_object_isvalid calls with - PTHREAD_MUTEX_MAGIC and PTHREAD_KEY_MAGIC and PTHREAD_ATTR_MAGIC to - ::isGoodObject() calls throughout. - (MTinterface::Init): Remove dead code. - (pthread_attr::isGoodObject): Implement. - (pthread_key::isGoodObject): Implement. - (pthread_mutex::isGoodObject): Implement. - (pthread_mutex::isGoodInitializerOrObject): Implement. - (pthread::isGoodObject): Update signature. - * thread.h (pthread_key::isGoodObject): Declare. - (pthread_attr::isGoodObject): Ditto. - (pthread_mutex::isGoodObject): Ditto. - (pthread_mutex::isGoodInitializerOrObject): Ditto. - (pthread::isGoodObject): Change to a const parameter for const - correctness. - (pthread_mutexattr::isGoodObject): Declare. - (pthread_condattr::isGoodObject): Ditto. - (pthread_cond::isGoodObject): Ditto. - (semaphore::isGoodObject): Ditto. - -2002-09-19 Christopher Faylor <cgf@redhat.com> - - Cleanup calls to CreateFile throughout. - * dcrt0.cc (__api_fatal): Correctly check for failing return from CreateFile. - * assert.cc (__assert): Don't check return value from CreateFile for NULL. - * fhandler_console.cc (set_console_state_for_spawn): Ditto. - * fork.cc (fork_parent): Ditto. - -2002-09-18 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::initialized): Avoid copying on fork or some - threads may not end up in the pool. - (cygthread::new): Avoid race when checking for initialized. Add - debugging code. - -2002-09-18 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::raw_read): Add case for - ERROR_INVALID_HANDLE due to Win95 directories. - (fhandler_base::open): Handle errors due to Win95 directories. - (fhandler_base::close): Add get_nohandle () test. - (fhandler_base::set_close_on_exec): Ditto. - (fhandler_base::fork_fixup): Ditto. - (fhandler_base::lock): Change error code to Posix EINVAL. - (fhandler_base::dup): If get_nohandle (), set new value to - INVALID_HANDLE_VALUE instead of NULL. - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Call fstat_by_name - if get_nohandle (). Remove extraneous element from strpbrk. - (fhandler_disk_file::open): Remove test for Win95 directory. - - * fhandler_random.cc (fhandler_dev_random::open): Add set_nohandle (). - * fhandler_clipboard.cc (fhandler_dev_clipboard::open): Ditto. - * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. - (fhandler_dev_zero::close): Delete. - * fhandler.h (class fhandler_dev_zero): Ditto. - -2002-09-17 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (pthread_key::set): Preserve GetLastError(). Reported - by Thomas Pffaf. - -2002-09-17 Robert Collins <rbtcollins@hotmail.com> - - This work inspires by Thomas Pfaff's pthread_fork patch (1). - * fork.cc (fork_child): Remove MTinterface fixup call, it's - adsorbed by pthread::atforkchild. - Rename __pthread_atforkchild to pthread::atforkchild to give - access to private members. - (fork_parent): Rename __pthread_atforkparent to - pthread::atforkparent to give it access to private members. - Ditto for __pthread_atforkprepare. - * thread.cc: Fix some formatting problems throughout. - (MTinterface::fixup_before_fork): Implement. - (MTinterface::fixup_after_fork): Fix pthread_keys. - (pthread_key::keys): Implement. - (pthread_key::fixup_before_fork): Ditto. - (pthread_key::fixup_after_fork): Ditto. - (pthread_key::pthread_key): Add to pthread_key::keys. - (pthread_key::~pthread_key): Remove from pthread_key::keys. - (pthread_key::saveKeyToBuffer): Implement. - (pthread_key::recreateKeyFromBuffer): Ditto. - (pthread::atforkprepare): Prepare all MT classes for fork. - (pthread::atforkchild): And fix them up afterwards. - * thread.h (pthread_key): Buffer the key value during - fork in fork_buf. - List the keys needing to be fixed up in a linked list with - head pthread_key::keys. - (pthread): Move atfork cygwin internal calls into the class. - (MTInterface): Provide a fixup_before_fork for objecst that - need to save state. - (__pthread_atforkprepare): Remove. - (__pthread_atforkparent): Remove. - (__pthread_atforkchild): Remove. - -2002-09-16 Christopher Faylor <cgf@redhat.com> - - * init.cc: Cleanup slightly and remove obsolete code. - -2002-09-11 Robert Collins <rbtcollins@hotmail.com> - - * init.cc (dll_entry): On thread detach, if the thread hasn't - exit()ed, do so. - * pthread.cc (pthread_getsequence_np): Remove the - __pthread_getsequence_np wrapper. This requires errno.h. - * thread.cc (pthread::self): Instantiate a new pthread object - when called and none exists. return a NULL object if instantiation - fails. - (pthread::precreate): Factor out common code. - (pthread::postcreate): Ditto. - (pthread::create): Ditto. - (pthread::exit): Remove the TLS value when we exit to prevent - double exits. - (MTinterface::Init): Bugfix - don't mark the TLS index as created - if one was not allocated. - Apply Extract Method to move pthread specific initialisation into - pthread. - (pthread::initMainThread): Extracted method from MTinterface::Init. - (pthread::setTlsSelfPointer): Extracted method from various pthread - calls, to make reading those functions easier. - (pthread::setThreadIdtoCurrent): Ditto. - (pthread::cancel_self): Bring into the .cc file, it's only used - within the class. - (pthread::getThreadId): Ditto. - (pthread::thread_init_wrapper): Apply Extract Method to the TLS - setting logic. - (pthread::isGoodObject): Extracted method from various pthread - wrapper calls, for clarity of reading. - (pthread::getsequence_np): Converted from __pthread_getsquence_np. - (__pthread_create): Apply Extract Method to the object validation. - (__pthread_cancel): Ditto. - (__pthread_join): Ditto. - (__pthread_detach): Ditto. - (__pthread_suspend): Ditto. - (__pthread_continue): Ditto. - (__pthread_getschedparam): Ditto. - (__pthread_getsequence_np): Remove. - (__pthread_setschedparam): Apply Extract Method to the object - validation. - (pthreadNull::getNullpthread): New method, return the pthreadNull - object. - (pthreadNull::pthreadNull): Private constructor to prevent accidental - use. - (pthreadNull::~pthreadNull): Prevent compile warnings. - (pthreadNull::create): Override pthread behaviour. - (pthreadNull::exit): Ditto. - (pthreadNull::cancel): Ditto. - (pthreadNull::testcancel): Ditto. - (pthreadNull::setcancelstate): Ditto. - (pthreadNull::setcanceltype): Ditto. - (pthreadNull::push_cleanup_handler): Ditto. - (pthreadNull::pop_cleanup_handler): Ditto. - (pthreadNull::getsequence_np): Ditto. - (pthreadNull::_instance): Ditto. - * thread.h (pthread): Declare pre- and post-create. - Move GetThreadId to private scope and rename to getThreadId. - Move setThreadIdtoCurrent to private scope. - Make create virtual. - Make ~pthread virtual. - Declare initMainThread. - Declare isGoodObject. - Make exit virtual. - Make cancel virtual. - Make testcancel virtual. - Make setcancelstate virtual. - Make setcanceltype virtual. - Make push_cleanup_handler virtual. - Make pop_cleanup_handler virtual. - Declare getsequence_np. - Declare setTlsSelfPointer. - (pthreadNull): New null object class for pthread. - (__pthread_getsequence_np): Remove. - -2002-09-13 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid32): Treat ILLEGAL_UID invalid. - (setegid32): Treat ILLEGAL_GID invalid. - -2002-09-10 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (initgroups): Call groups::clear_supp to free the - supplementary group sids that may have been set by setgroups. - * security.cc (cygsidlist::free_sids): Also zero the class members. - * security.h (groups::clear_supp): New. - Rename cygsidlist_unknown to cygsidlist_empty. - -2002-09-08 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Don't protect - input/output handles since they are not properly manipulated later. - * tty.cc (tty::make_pipes): Ditto. - -2002-09-06 Christopher Faylor <cgf@redhat.com> - - * winsup.h (_WIN32_WINNT): Protect. - -2002-09-06 Christopher Faylor <cgf@redhat.com> - - * winsup.h (_WIN32_WINNT): Define. - -2002-09-03 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Drop shortcut.o. - * path.cc: Move all shortcut functions from shortcut.c to here. - (check_shortcut): Implement without using COM interface. - * path.h: Move definition of SHORTCUT_HDR_SIZE to here. - * shortcut.c: Remove. - * shortcut.h: Ditto. - -2002-09-03 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.h (fhandler_socket::read): Remove method. - (fhandler_socket::write): Ditto. - (fhandler_socket::readv): New method. - (fhandler_socket::writev): Ditto. - (fhandler_socket::recvmsg): Add new optional argument. - (fhandler_socket::sendmsg): Ditto. - * fhandler.cc (fhandler_socket::read): Remove method. - (fhandler_socket::write): Ditto. - (fhandler_socket::readv): New method. - (fhandler_socket::writev): Ditto. - (fhandler_socket::recvmsg): Use win32's scatter/gather IO where - possible. - (fhandler_socket::sendmsg): Ditto. - * net.cc (cygwin_recvmsg): Check the msghdr's iovec fields. - (cygwin_sendmsg): Ditto. Add omitted sigframe. - -2002-09-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * cygwin.din: Revert exporting new wchar functions. - * include/cygwin/version.h: Change comment for API minor 62. - -2002-09-02 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Remove getpagesize() call. - * shared.cc (memory_init): Move it here. - -2002-08-31 Christopher January <chris@atomice.net> - - * fhandler_proc.cc: Add <sys/param.h> include. - (format_proc_uptime): Use KernelTime and UserTime only as they include - the other counters. - (format_proc_stat): KernelTime includes IdleTime, so subtract IdleTime - from KernelTime. Make number of 'jiffies' per second same as HZ define. - * fhandler_process.cc: Add <sys/param.h> include. - (format_process_stat): Make number of 'jiffies' per second same as - HZ define. Use KernelTime and UserTime only to calculate start_time. - -2002-08-30 Christopher Faylor <cgf@redhat.com> - - (inspired by a patch from Egor Duda) - * select.cc (fhandler_tty_slave::ready_for_read): Remove. - * fhandler.h (fhandler_tty_slave::ready_for_read): Remove declaration. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Set "don't - need ready for read" flag. - (fhandler_tty_slave::read): Don't do anything special with vtime when - vmin == 0. - -2002-08-30 Egor Duda <deo@logos-m.ru> - - * autoload.cc (GetConsoleWindow): Correct parameter count. - -2002-08-30 Christopher January <chris@atomice.net> - Christopher Faylor <cgf@redhat.com> - - * tty.cc (tty_list::allocate_tty): Use GetConsoleWindow, if available. - Call FindWindow in a loop. - * autoload.cc (GetConsoleWindow): Export - -2002-08-30 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (check_iovec_for_read): Don't check buffer when zero - length iov_len. - (check_iovec_for_write): Ditto. - -2002-08-27 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.h (fhandler_base::readv): New method. - (fhandler_base::writev): Ditto. - * fhandler.cc (fhandler_base::readv): New method. - (fhandler_base::writev): Ditto. - * syscalls.cc (_read): Delegate to readv(2). - (_write): Ditto, mutatis mutandi. - (readv): Rewrite, based on the old _read code, to use the new - fhandler_base::readv method. Improve access mode handling and ensure - all calls reach the final strace statement. - (writev): Ditto, mutatis mutandi. - * include/sys/uio.h (struct iovec): Change field types to match SUSv3. - * winsup.h (check_iovec_for_read): New function. - (check_iovec_for_write): Ditto. - * miscfuncs.cc (check_iovec_for_read): Ditto. - (check_iovec_for_write): Ditto. - -2002-08-30 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add more prototypes for new wchar functions in newlib. - -2002-08-30 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add prototypes for new wchar functions in newlib. - * include/cygwin/version.h: Bump API minor number. - -2002-08-29 Boris Schaeling <boriss@web.de> - Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Peek sockets ready for read to see if there's - actually data. - -2002-08-28 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (hthreads): Remove unneeded global. - (cygthread::simplestub): New static member function. - (cygthread::runner): Don't set hthreads. - (cygthread::freerange): New member function. - (cygthread::operator new): Call freerange if all cygwin slots are used - up. - (cygthread::exit_thread): Don't mess with event if freerange thread. - (cygthread::detach): Ditto. - * cygthread.h (class cygthread): Declare new member functions and - variables. - -2002-08-28 Christopher Faylor <cgf@redhat.com> - - * malloc.cc: Protect some definitions to avoid a compile time warning. - -2002-08-27 Nicholas Wourms <nwourms@netscape.net> - - * cygwin.din: Export getc_unlocked, getchar_unlocked, - putc_unlocked, putchar_unlocked functions. - * include/cygwin/version.h: Bump api minor. - -2002-08-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Eliminate flags - not understood by WinSock. - (fhandler_socket::sendto): Ditto. If WinSock sendto() returns - WSAESHUTDOWN, change errno to EPIPE and raise SIGPIPE if MSG_NOSIGNAL - isn't set in flags. - * include/cygwin/socket.h: Define MSG_WINMASK and MSG_NOSIGNAL. - * include/cygwin/version.h: Bump API minor number. - -2002-08-28 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Eliminate erroneous POLLERR conditional. - -2002-08-26 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler_socket.cc (fhandler_socket::check_peer_secret_event): - Fix strace message. - (fhandler_socket::connect): Remove sigframe. - (fhandler_socket::accept): Ditto. - (fhandler_socket::getsockname): Ditto. - (fhandler_socket::getpeername): Ditto. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - (fhandler_socket::close): Ditto. - (fhandler_socket::ioctl): Ditto. - * ioctl.cc (ioctl): Add sigframe. - * net.cc (cygwin_sendto): Ditto. - (cygwin_recvfrom): Ditto. - (cygwin_recvfrom): Ditto. - (cygwin_connect): Ditto. - (cygwin_shutdown): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_accept): Ditto. Improve strace message. - (cygwin_getsockname): Ditto. Ditto. - (cygwin_recvmsg): Ditto. Ditto. - (cygwin_sendmsg): Fix strace message. - -2002-08-27 Christopher Faylor <cgf@redhat.com> - - * child_info.h: Add _PROC_WHOOPS enum value. - (CURR_CHILD_INFO_MAGIC): Update. - (child_info::magic): Make 'long'. - * cygheap.h: Export _cygheap_start. - * cygheap.cc: Don't declare _cygheap_start. - * cygmagic: Use cksum to produce checksums. Append 'U' to end of - checksum. - * dcrt0.cc (initial_env): Calculate sleep ms before reusing buffer. - (_dll_crt0): Detect cygheap mismatch as indicative of different cygwin - version. Set child_proc_info to NULL when _PROC_WHOOPS. - (multiple_cygwin_problem): If child_info specific problem, then set - child_proc_info type to _PROC_WHOOPS. - * shared_info.h (CURR_MOUNT_MAGIC): Update. - (CURR_SHARED_MAGIC): Ditto. - -2002-08-25 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.h (fhandler_socket::recvfrom): Fix prototype. - (fhandler_socket::sendto): Ditto. - * fhandler_socket.cc (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::sendto): Ditto. - * include/sys/socket.h (recv): Fix prototype. - (recvfrom): Ditto. - (send): Ditto. - (sendto): Ditto. - * net.cc (cygwin_sendto): Ditto. Improve strace message - (cygwin_recvfrom): Ditto. Ditto. - (cygwin_setsockopt): Improve strace message. - (cygwin_getsockopt): Ditto. - (cygwin_connect): Ditto. - (cygwin_accept): Ditto. - (cygwin_bind): Ditto. - (cygwin_getsockname): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_recv): Fix prototype. - (cygwin_send): Ditto. - (cygwin_recvmsg): Improve strace message. - (cygwin_sendmsg): Ditto. - -2002-08-25 Pierre Humblet <Pierre.Humblet@ieee.org> - - * sec_acl.cc (getacl): Check ace_sid == well_known_world_sid - before owner_sid and group_sid so that well_known_world_sid - means "other" even when owner_sid and/or group_sid are Everyone. - * security.cc (get_attribute_from_acl): Created from code common - to get_nt_attribute() and get_nt_object_attribute(), with same - reordering as in getacl() above. - (get_nt_attribute): Call get_attribute_from_acl(). - (get_nt_object_attribute): Ditto. - -2002-08-26 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (cygrunk.exe): Make a -mno-cygwin program. - * cygrun.c (main): Export CYGWIN=ntsec unless otherwise set. - - * shared.cc (shared_name): Only add build date to shared name when - *testing*. - -2002-08-24 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_IMPORTS): Move libuuid.a and libshell32.a to list - rather than referring to them via -l. Add DLL imports last in link - line for new-cygwin.dll and cygrun.exe. - -2002-08-19 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (pinfo::remember): Arrange for destructor call if - proc_subproc returns error. - * sigproc.cc (zombies): Store 1 + total zombies since proc_subproc uses - NZOMBIES element. - -2002-08-19 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp_read::pwdgrp_read): Remove. - (pwdgrp_read::~pwdgrp_read): Ditto. - (pwdgrp_read::open): Reset fh to NULL instead of INVALID_HANDLE_VALUE. - (pwdgrp_read::close): Ditto. - -2002-08-19 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_console::send_winch_maybe): New method. - * fhandler_console.cc (set_console_state_for_spawn): Remove if 0'ed - code. - (fhandler_console::send_winch_maybe): Define new method. - (fhandler_console::read): Use send_winch_maybe where appropriate. - (fhandler_console::init): Just call all tcsetattr rather than - output_tcsetattr. - * select.cc (peek_console): Reorganize so that send_winch_maybe is - called for everything but keyboard input. - -2002-08-18 Christopher Faylor <cgf@redhat.com> - - * perthread.h (vfork_save): Add ctty, sid, pgid, exitval fields. - (vfork_save::restore_pid): New method. - (vfork_save::restore_exit): New method. - * fork.cc (vfork): Save ctty, sid, pgid and restore them when returning - to "parent". Use exitval field if exiting but never created a new - process. - * syscalls.cc (setsid): Detect when in "vfork" and force an actual fork - so that pid will be allocated (UGLY!). - (getsid): New function. - * dcrt0.cc (do_exit): Use vfork_save::restore_exit method for returning - from a vfork. - * spawn.cc (spawnve): Use vfork_save::{restore_pid,restore_exit} - methods for returning from vfork. - * cygwin.din: Export getsid. - * include/cygwin/version.h: Bump api minor number. - - * malloc.cc: #ifdef sYSTRIm for when MORECORE_CANNOT_TRIM is true. - -2002-08-18 Christopher Faylor <cgf@redhat.com> - - * cygmalloc.h (MORECORE_CANNOT_TRIM): Define. - -2002-08-18 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sigCONT): Define. - * sigproc.h (sigCONT): Declare. - (wait_sig): Create sigCONT event here. - * exceptions.cc (sig_handle_tty_stop): Wait for sigCONT event rather - than stopping thread. - (sig_handle): Set sigCONT event as appropriate on SIGCONT rather than - calling ResumeThread. - -2002-08-17 Christopher Faylor <cgf@redhat.com> - - * malloc.cc: Update to 2.7.2. - * malloc_wrapper.cc (malloc_init): Call user level mallocs to determine - if the malloc routines have been overridden. - -2002-08-16 Christopher Faylor <cgf@redhat.com> - - * winsup.h: Remove malloc_*lock functions. - -2002-08-16 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Add support for new malloc.o and renamed - malloc_wrapper.o. Use -fomit-frame-pointer for malloc.o compilation. - * malloc_wrapper.cc: New file. Rename from malloc.cc. Add support for - more malloc functions. Eliminate export_* calls. Just use straight - malloc names. Remove unused argument from malloc lock functions. - * cygwin.din: Just export straight malloc names. Add malloc_stats, - malloc_trim, malloc_usable_size, mallopt, memalign, valloc. - * dcrt0.cc (__cygwin_user): Eliminate export_* malloc entries. - * fork.cc (fork_parent): Remove unused argument from malloc_lock - argument. - * malloc.cc: New file. Doug Lea's malloc v2.7.1. - * cygmalloc.h: New file. - * include/cygwin/version.h: Bump API_MINOR. - - * sync.h (muto::acquire): Use appropriate number for regparm attribute. - (muto::reset): Ditto. - (muto::release): Ditto. - -2002-08-16 Pavel Tsekov <ptsekov@gmx.net> - - * exceptions.cc (interrupt_setup): Ensure that the previous signal mask - is properly saved. - -2002-08-15 Thomas Pfaff <tpfaff@gmx.net> - - * dcrt0.cc: Modify define for CYGWIN_GUARD. - (alloc_stack_hard_way): Just use CYGWIN_GUARD in VirtualAlloc call. - -2002-08-11 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.h (fhandler_socket::recv): Remove method. - (fhandler_socket::send): Ditto. - * fhandler_socket.cc (fhandler_socket::recv): Ditto. - (fhandler_socket::send): Ditto. - (fhandler_socket::read): Delegate to fhandler_socket::recvfrom. - (fhandler_socket::write): Delegate to fhandler_socket::sendto. - (fhandler_socket::sendto): Check for null `to' address. - * net.cc (cygwin_sendto): Check for zero request length. - (cygwin_recvfrom): Ditto. Fix signature, use void *buf. - (cygwin_recv): Delegate to cygwin_recvfrom. - (cygwin_send): Delegate to cygwin_sendto. - -2002-08-11 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::cygthread): Close another race. - -2002-08-11 Christopher Faylor <cgf@redhat.com> - - * assert.cc (__assert): Call debugger on assertion failure if - debugging. - * dcrt0.cc (dll_crt0_1): Just wait for signal thread to go live rather - than going through the overhead of invoking it. - * fork.cc (fork_child): Ditto. - * exceptions.cc (signal_fixup_after_fork): Call sigproc_init here. - * sigproc.cc (proc_can_be_signalled): Assume that the signal thread is - live. - (sig_dispatch): Ditto. - (sig_send): Ditto. - (wait_for_sigthread): Rename from "wait_for_me". Assume that - wait_sig_inited has been set and that this function is only called from - the main thread. - * sigproc.h (wait_for_sigthread): Declare new function. - -2002-08-08 Christopher Faylor <cgf@redhat.com> - - * environ.cc (parse_options): Remember the "no" part of any options for - later export. - -2002-08-07 Conrad Scott <conrad.scott@dsl.pipex.com> - - * winsup.h (__check_null_invalid_struct): Make ptr argument non-const. - (__check_null_invalid_struct_errno): Ditto. - * miscfuncs.cc (__check_null_invalid_struct): Ditto. - (__check_null_invalid_struct_errno): Ditto. - (__check_invalid_read_ptr_errno): Remove superfluous cast. - * net.cc (get): Set appropriate errno if fd is not a socket. - (cygwin_sendto): Fix parameter checking. - (cygwin_recvfrom): Ditto. - (cygwin_setsockopt): Ditto. - (cygwin_getsockopt): Ditto. - (cygwin_connect): Ditto. - (cygwin_gethostbyaddr): Ditto. - (cygwin_accept): Ditto. - (cygwin_bind): Ditto. - (cygwin_getsockname): Ditto. - (cygwin_listen): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_send): Ditto. - (cygwin_shutdown): Ditto. Move sigframe to fhandler_socket. - (cygwin_recvmsg): Fix parameter checking. Add tracing. - (cygwin_sendmsg): Ditto. - * fhandler_socket.cc (fhandler_socket::shutdown): Add sigframe. - * resource.cc (setrlimit): Fix parameter checking. - -2002-08-08 Joe Buehler <jbuehler@hekimian.com - - * sec_helper.cc (sec_acl): remove extraneous arg to debug_printf. - -2002-08-07 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler_socket.cc (fhandler_socket::accept): Fix FIONBIO call. - -2002-08-06 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (_csbrk): Avoid !cygheap considerations. - (cygheap_init): Deal with unintialized cygheap issues here. - (cheap_init): Move cygheap_max setting here. - -2002-08-06 Christopher Faylor <cgf@redhat.com> - Conrad Scott <conrad.scott@dsl.pipex.com - - * cygheap.cc (_csbrk): Allocate some slop initially. Don't erroneously - add sbrk amount to returned value in initial case. - -2002-08-06 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Don't set mount_h here. - * sigproc.cc (init_child_info): Set it here instead. - * shared.cc (cygwin_mount_h): Make NO_COPY. - -2002-08-06 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Accept flag to pass info structure to - thread function. - (cygthread::operator new): Add defensive debugging output. - (cygthread::cygthread): Add debugging output. Set name after thread - has been awakened to avoid a race. - (cygthread::exit_thread): Use handle operator rather than using ev - directly. - (cygthread::exit_thread): Reorganize to provide debugging. Set __name - to NULL. - * cygthread.h (cygself): Define. - * fhandler_tty.cc (fhandler_tty_master::init): Use cygself as argument - so that invoked thread can access its own info. - (process_output): Derive cygthread info of thread from thread argument. - * sigproc.cc (sigproc_init): Use cygself as argument so that invoked - thread can access its own info. - (wait_sig): Derive cygthread info of thread from thread argument. - -2002-08-06 Conrad Scott <conrad.scott@dsl.pipex.com> - - * debug.h (handle_list::allocated): Remove field. - * debug.cc (newh): Don't malloc extra entries. - (add_handle): Downgrade strace message level. - (delete_handle): Remove case for `allocated' entries. - -2002-08-05 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Change event creation to manual - reset. Set __name after calling SetEvent to prevent races. - (cygthread::detach): Always reset event here to prevent races. - -2002-08-03 Conrad Scott <conrad.scott@dsl.pipex.com> - - * debug.h (WaitForMultipleObjects): Correct typo. - -2002-08-01 Pierre Humblet <Pierre.Humblet@ieee.org> - - * security.cc (verify_token): Do not reject a token just because - the supplementary group list is missing Everyone or a groupsid - equal to usersid, or because the primary group is not in the token, - as long as it is equal to the usersid. - * syscalls.cc (seteuid32): Use common code for all successful returns. - * grp.cc (getgroups32): Never includes Everyone in the output. - -2002-08-01 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::exit_thread): Define new method. - * cygthread.h (cygthread::exit_thread): Declare new method. - * fhandler.h (fhandler_tty_master::hThread): Delete. - (fhandler_tty_master::output_thread): Define. - * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Adjust - constructor. - (fhandler_tty_master::init): Use cygthread rather than handle. - (process_output): Use cygthread method to exit. - (fhandler_tty_master::fixup_after_fork): Set output_thread to NULL - after fork. - (fhandler_tty_master::fixup_after_exec): Set output_thread to NULL - after spawn/exec. - * tty.cc (tty_list::terminate): Detach from output_thread using - cygthread method. - -2002-08-01 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_link): Revert previous change and just always - dereference the oldpath. - -2002-08-01 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (link): Properly deal with a link to a symlink. - -2002-08-01 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc: Remove cruft. - -2002-08-01 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_OFILES): Add cygthread.o. - * dcrt0.cc (dll_crt0_1): Eliminate various thread initialization - functions in favor of new cygthread class. - * debug.cc: Remove thread manipulation functions. - * debug.h: Ditto. - * external.cc (cygwin_internal): Use cygthread method for determining - thread name. Remove capability for setting thread name. - * fhandler_console.cc (fhandler_console::read): Use cygthread method - rather than iscygthread function. - * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Use - cygthread methods to create threads. - (fhandler_tty_common::__acquire_output_mutex): Use cygthread method to - retrieve thread name. - * select.cc (pipeinf): Use cygthread pointer rather than handle. - (start_thread_pipe): Ditto. - (pipe_cleanup): Ditto. - (serialinf): Ditto. - (start_thread_serial): Ditto. - (serial_cleanup): Ditto. - (socketinf): Ditto. - (start_thread_socket): Ditto. - (socket_cleanup): Ditto. - * sigproc.cc (hwait_sig): Ditto. - (hwait_subproc): Ditto. - (proc_terminate): Ditto. - (sigproc_terminate): Ditto. - (sigproc_init): Initialize cygthread hwait_sig pointer. - (subproc_init): Initialize cygthread hwait_subproc pointer. - (wait_sig): Rely on cygthread HANDLE operator. - * strace.cc (strace::vsprntf): Use cygthread::name rather than threadname. - * window.cc (gethwnd): Use cygthread method to initialize thread. - -2002-07-31 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.h (fhandler_base::get_r_no_interrupt): Make non-virtual. - * net.cc (fdsock): Call set_r_no_interrupt. - -2002-07-30 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_read): Clarify debugging output. - -2002-07-30 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_base::get_r_no_interrupt): Make virtual. - -2002-07-30 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Incorporate . - and .. processing here. - (fhandler_cygdrive::readdir): Assume . and .. are already in pdrive. - (fhandler_cygdrive::seekdir): Ditto. - -2002-07-29 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Move debug_fixup_after_fork_exec. - * cygheap.cc (cygheap_fixup_in_child): Call debug_fixup_after_fork_exec - immediately after cygheap has been set up. - -2002-07-29 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Change some formatting. - * include/cygwin/version.h: Bump API minor version. - -2002-07-28 Pierre Humblet <Pierre.Humblet@ieee.org> - - * cygheap.h (class cygheap_user): Add member groups. - * security.h (class cygsidlist): Add members type and maxcount, methods - position, addfromgr, alloc_sids and free_sids and operator+= (const - PSID psid). Modify contains () to call position () and optimize add () - to use maxcount. - (class user_groups): Create. Update declarations of verify_token and - create_token. - * security.cc (cygsidlist::alloc_sids): New. - (cygsidlist::free_sids): New. - (get_token_group_sidlist): Create from get_group_sidlist. - (get_initgroups_sidlist): Create from get_group_sidlist. - (get_group_sidlist): Suppress. - (get_setgroups_sidlist): Create. - (verify_token): Modify arguments. Add setgroups case. - (create_token): Modify arguments. Call get_initgroups_sidlist and - get_setgroups_sidlist as needed. Set SE_GROUP_LOGON_ID from auth_pos - outside of the loop. Rename the various group sid lists consistently. - * syscalls.cc (seteuid32): Modify to use cygheap->user.groups. - (setegid32): Call cygheap->user.groups.update_pgrp. - * grp.cc (setgroups): Create. - (setgroups32): Create. - * uinfo.cc (internal_getlogin): Initialize and update - user.groups.pgsid. - * cygwin.din: Add setgroups and setgroups32. - -2002-07-28 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::read): Use appropriate - kill_pgrp method. - * select.cc (peek_console): Ditto. - * fhandler_termios.cc (fhandler_termios::bg_check): Send "stopped" - signal to entire process group as dictated by SUSv3. - * termios.cc (tcsetattr): Detect when stopped signal sent and force a - stop before setting anything. - -2002-07-26 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump API version to indicate that ntsec is - on by default now. - -2002-07-26 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler_registry.cc (fhandler_registry::close): Return any error - result to the caller. - * syscalls.cc (_close): Return result of fhandler::close to the caller. - -2002-07-25 Christopher Faylor <cgf@redhat.com> - - * security.cc (allow_ntsec): Default to on. - (allow_smbntsec): Default to off. - -2002-07-24 David MacMahon <davidm@smartsc.com> - - * times.cc (to_time_t): Always round time_t down to nearest second. - -2002-07-25 Egor Duda <deo@logos-m.ru> - - * Makefile.in: Check if API version is updated when exports are - changed and stop if not so. - -2002-07-24 Egor Duda <deo@logos-m.ru> - - * include/cygwin/version.h: Bump minor API version. - -2002-07-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc: Change 'must_init_serial_line capability' - to 'supports_reading_modem_output_lines' throughout (negated meaning). - * wincap.cc: Ditto. - * wincap.h: Ditto. - -2002-07-23 Nicholas Wourms <nwourms@netscape.net> - - * cygwin.din (fcloseall): Add symbol for export. - (fcloseall_r): Ditto. - -2002-07-24 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Always set fileattr when component == 0. - (readlink): Use path_conv method rather than field. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto, - throughout. - * path.h (path_conv): Make fileattr private. - * exceptions.cc (try_to_debug): Default to idle priority when looping. - -2002-07-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc: Use must_init_serial_line capability throughout. - * wincap.cc: Set flag must_init_serial_line appropriately. - * wincap.h: Add flag must_init_serial_line. - -2002-07-23 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_group_sidlist): Create group list from /etc files - even if DC is available but access fails. - -2002-07-22 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc: Fix formatting problems introduced by below - changes. - -2002-07-22 Jacek Trzcinski <jacek@certum.pl> - - * fhandler.h (class fhandler_serial): Add new members of the class - - rts,dtr and method ioctl(). Variables rts and dtr important for Win 9x - only. - * fhandler_serial.cc (fhandler_serial::open): Add initial setting of - dtr and rts. Important for Win 9x only. - (fhandler_serial::ioctl): New function. Implements commands TIOCMGET, - TIOCMSET and TIOCINQ. - (fhandler_serial::tcflush): Fix found error. - (fhandler_serial::tcsetattr): Add settings of rts and dtr. Important - for Win 9x only. - * termios.h: Add new defines as a support for ioctl() function on - serial device. - -2002-07-20 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (LoadDLLprime): Add jmp call to allow streamlining of - later jmp rewrite. - (doit): Avoid use of cx register. Just change one word to avoid races. - -2002-07-18 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_unix_group_sidlist): Create. - (get_supplementary_group_sidlist): Evolve into get_unix_group_sidlist. - (get_user_local_groups): Add check for duplicates. - (get_user_primary_group): Suppress. - (get_group_sidlist): Silently ignore PDC unavailability. - Call get_unix_group_sidlist() before get_user_local_groups(). - Remove call to get_supplementary_group_sidlist(). Never call - get_user_primary_group() as the passwd group is always included. - Add well_known_authenticated_users_sid in only one statement. - -2002-07-19 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::tcflush): Fix typo. - -2002-07-15 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_group_sidlist): Fix formatting. - -2002-07-14 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (initial_env): Force path and CYGWIN_DEBUG contents to lower - case. - * exceptions.cc (error_start_init): Use the name derived from - GetModuleName rather than myself->progname. - -2002-07-14 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Move debug_init call back to here. Avoid a - compiler warning. - * shared.cc (memory_init): Remove debug_init call. - * debug.h (handle_list): Change "clexec" to "inherited". - * debug.cc: Remove a spurious declaration. - (setclexec): Conditionalize away since it is currently unused. - (add_handle): Use inherited field rather than clexec. - (debug_fixup_after_fork_exec): Ditto. Move debugging output to - delete_handle. - (delete_handle): Add debugging output. - * fhandler.cc (fhandler_base::set_inheritance): Don't bother setting - inheritance in debugging table since the handle was never protected - anyway. - (fhandler_base::fork_fixup): Ditto. - - * exceptions.cc (debugger_command): Revert. - -2002-07-14 Conrad Scott <conrad.scott@dsl.pipex.com> - - * debug.cc (clexec): Add missing `hl = hl->next'. - -2002-07-14 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (cygrun.exe): Add a -lcygwin on the end. - -2002-07-14 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (cygserver.exe): Add -lstdc++. - (cygrun.exe): Move -lgcc last. - -2002-07-13 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Delay closing of some handles until cygheap - has been set up. - (break_here): New function, for debugging. - (initial_env): Add program name to "Sleeping" message. Implement new - "CYGWIN_DEBUG" environment variable option. - * exceptions.cc (debugger_command): Add argument to dumper call. - * strace.cc (strace::hello): Use winpid if cygwin pid is unavailable. - (strace::vsprntf): Ditto. - -2002-07-13 Christopher Faylor <cgf@redhat.com> - - * debug.h (handle_list): Move here from debug.cc. Add "inherit" flag - functionality. - * cygheap.cc (init_cheap): Move cygheap_max calculation to _csbrk. - (_csbrk): Reorganize to not assume first allocation is <= 1 page. - (cygheap_setup_for_child): Mark protected handle as inheritable. - * cygheap.h (cygheap_debug): New struct. - (init_cygheap): Add new structure when debugging. - * dcrt0.cc (dll_crt0_1): Remove call to debug_init. Close ppid_handle - here, if appropriate. Don't protect subproc_ready, since it is already - protected in the parent. Call memory_init prior to ProtectHandle to - ensure that cygheap is set up. Call debug_fixup_after_fork_exec when - appropriate. - (_dll_crt0): Don't close ppid_handle here. - * debug.cc: Use cygheap debug structure rather than static elements - throughout. - (add_handle): Don't issue a warning if attempt to protect handle in - exactly the same way from exactly the same place. Add pid info to - warning output. Accept additional argument controlling whether handle - is to be inherited. Add pid to stored information. - (debug_fixup_after_fork_exec): Renamed from debug_fixup_after_fork. - Reorganize to avoid erroneously skipping handles. - (mark_closed): Add pid info to warning output. - (setclexec): Rename from setclexec_pid. - * fhandler.cc (fhandler_base::get_default_fmode): Minor reorg. - (fhandler_base::fstat): Add debugging output. - (fhandler_base::set_inheritance): Call setclexec rather than - setclexec_pid. - (fhandler_base::fork_fixup): Ditto. - * fhandler_console.cc (get_tty_stuff): Mark protected handle as - inheritable. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - * tty.cc (tty::make_pipes): Ditto. - (tty::common_init): Ditto. - * fork.cc (fork_parent): Ditto. - (fork_child): Close protected handles with correct name. Remove - debug_fixup_after_fork call. - * fhandler_socket.cc (fhandler_socket::create_secret_event): Mark - protected handle as inheritable/non-inheritable, as appropriate. - * shared.cc (memory_init): Mark protected handle as inheritable. - Call debug_init here. - * sigproc.cc (wait_sig): Close protected handle with correct name. - * spawn.cc (spawn_guts): Rename spr to subproc_ready and mark it as - inheritable. - - * exceptions.cc (debugger_command): Try to run dumper.exe, if found. - - * syscalls.cc (fstat64): Don't follow symlinks for path_conv lookup - since path is already resolved. - -2002-07-12 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Change erroneous entries. - -2002-07-11 Pavel Tsekov <ptsekov@gmx.net> - - * fhandler_disk_file.cc (fhandler_disk_file::open): Don't - move the file pointer to the end of file if O_APPEND is - specified in the open flags. - -2002-07-09 Christopher Faylor <cgf@redhat.com> - - * debug.cc: Avoid explicit zeroing of globals. - (lock_debug): Make locker a static member. Avoid unlocking when - already unlocked (from Conrad Scott). - (debug_init): Initialize lock_debug::locker here. - * fork.cc (fork_child): Fix up fdtab earlier to avoid some (but not - all) confusion with close-on-exec craziness. - -2002-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::is_unconnected): Constify. - (fhandler_socket::is_connect_pending): Ditto. - (fhandler_socket::is_connected): Ditto. - (fhandler_socket::set_connect_state): New method. - (struct select_record): Add member `except_on_write'. - (select_record::select_record): Initialize all bool values to `false'. - * fhandler_socket.cc: Use set_connect_state() method throughout. - (fhandler_socket::connect): Set state always to connected if connection - isn't pending. - * net.cc (cygwin_getsockopt): Revert erroneous previous patch. - * select.cc (set_bits): Check for `except_on_write'. Set fd in - write_fds if set. Set connect state to connected if fd has been - returned by WINSOCK_SELECT. - (peek_socket): Check for `except_on_write'. - (start_thread_socket): Ditto. - (fhandler_socket::select_write): Don't set `write_ready' if connect - is pending. Set `except_on_write' if connect is pending. - -2002-07-05 Christopher Faylor <cgf@redhat.com> - - * ntdll.h (_SYSTEM_PROCESSOR_TIMES): Force eight byte alignment. - (_SYSTEM_TIME_OF_DAY_INFORMATION): Ditto. - - * path.cc (suffix_scan::has): Reorganize to eliminate double scanning - for for .exe (in the typical case). - -2002-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (UNCONNECTED): New define. - (CONNECT_PENDING): Ditto. - (CONNECTED): Ditto. - (class fhandler_socket): Add member `had_connect_or_listen'. - Add member functions `is_unconnected', `is_connect_pending' and - `is_connected'. - * fhandler_socket.cc (fhandler_socket::connect): Set member - `had_connect_or_listen' according to return code of WinSock - call. - (fhandler_socket::listen): Ditto. - * net.cc (cygwin_getsockopt): Modify SO_ERROR return value in - case of socket with pending connect(). - * select.cc (peek_socket): Only add socket to matching fd_set - if it's not "ready". Call WINSOCK_SELECT only if at least one - socket is in one of the fd_sets. - (start_thread_socket): Only add socket to matching fd_set - if it's not "ready". - (fhandler_socket::select_write): Set write_ready to true also - if socket isn't connected or listening. - -2002-07-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::set_sun_path): Don't free - memory here. Allow NULL parameter. - -2002-07-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): Add missing copy operation - on sun_path. - -2002-07-03 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-07-03 Christopher Faylor <cgf@redhat.com> - - * include/sys/statfs.h: New header file. - -2002-07-03 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (cygwin_attach_handle_to_fd): Default to implicit bin mode - if none specified. - * fhandler.cc (fhandler_base::init): Make bin argument a guarantee - rather than a suggestion. - * path.cc (path_conv::check): Load flag returned from - cygwin_conv_to_win32_path into path_flags. - -2002-07-03 Conrad Scott <conrad.scott@dsl.pipex.com> - - * tty.cc (tty::common_init): Reverse logic of cygserver check in - call to SetKernelObjectSecurity. - -2002-07-03 Thomas Pfaff <tpfaff@gmx.net> - - * autoload.cc (WSAEventSelect): Define new autoload function. - (WSAEnumNetworkEvents): Ditto. - * fhandler_socket.cc (fhandler_socket::accept): If socket is - in blocking mode wait for incoming connection and signal. - -2002-07-02 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cheap): Rearrange error message. - (cygheap_fixup_in_child): Ditto. - * dtable.cc: Remove if 0'ed code. - * fhandler_dsp.cc (fhandler_dev_dsp::open): Force binmode. - * sec_helper.cc (cygsid::get_id): Use system_printf for error message. - * tty.cc (tty::common_init): Ditto. - -2002-07-02 Christopher Faylor <cgf@redhat.com> - - * net.cc (cygwin_getpeername): Defend against NULL pointer dereference. - -2002-07-02 Egor Duda <deo@logos-m.ru> - - * include/cygwin/version.h: Bump API minor version. - -2002-07-01 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_logon_server): Interpret a zero length - domain as the local domain. - (get_group_sidlist): Add authenticated users SID to SYSTEM's group - list instead of SYSTEM itself. - (verify_token): Accept the primary group sid if it equals - the token user sid. - -2002-07-02 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (__fpclassifyd): Add symbol. - (__fpclassifyf): Ditto. - (__signbitd): Ditto. - (__signbitf): Ditto. - -2002-07-02 Corinna Vinschen <corinna@vinschen.de> - - * security.h (DONT_INHERIT): Eliminate definition. - (INHERIT_ALL): Ditto. - (INHERIT_ONLY): Ditto. - * sec_acl.cc: Use appropriate defines from accctrl.h instead of the - above throughout. - * security.cc: Ditto. - -2002-07-01 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.c (seteuid32): Return immediately if the program is not - impersonated and both uid and gid are original. - (setegid32): Return immediately if the new gid is the current egid. - -2002-07-01 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (seteuid32): Fix incorrect placement of Pierre's patch - below. - -2002-07-01 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (seteuid32): Fix incorrect use of system_printf. - -2002-07-02 Christopher January <chris@atomice.net> - - * autoload.cc (GetSecurityInfo): Define new autoload function. - (RegQueryInfoKeyA): Ditto. - * fhandler.h (fhandler_virtual::fill_filebuf): Change return type to - bool. - (fhandler_proc::fill_filebuf): Ditto. - (fhandler_registry::fill_filebuf): Ditto. - (fhandler_process::fill_filebuf): Ditto. - (fhandler_registry::value_name): Add new member. - (fhandler_registry::close): Add new method. - (fhandler_process::p): Remove member. - * fhandler_proc.cc (fhandler_proc::open): Add set_nohandle after - calling superclass method. Check return value of fill_filebuf. - (fhandler_proc::fill_filebuf): Change return type to bool. Add return - statement. - * fhandler_process.cc (fhandler_process::open): Add set_nohandle after - calling superclass method. Remove references to p. Check return value - of fill_filebuf. - (fhandler_process::fill_filebuf): Change return type to bool. Don't - use dereference operator on p. Add return statement. - (fhandler_process::format_process_stat): Fix typo. - * fhandler_registry.cc: Add static open_key declaration. - (fhandler_registry::exists): Assume path is already normalised. Try - opening the path as a key in its own right first, before reverting to - enumerating subkeys and values of the parent key. - (fhandler_registry::fstat): Add additional code to return more relevant - information about the registry key/value. - (fhandler_registry::readdir): Explicitly set desired access when - opening registry key. Remove output of buf from debug_printf format - string. - (fhandler_registry::open): Use set_io_handle to store registry key - handle. Set value_name member. Move code to read a value from the - registry to fill_filebuf. Add call to fill_filebuf. - (fhandler_registry::close): New method. - (fhandler_registry::fill_filebuf): Change return type to bool. Add - code to read a value from registry. - (fhandler_registry::open_key): Make function static. Use KEY_READ as - desired access unless this is the last path component. Check the - return value of RegOpenKeyEx for an error instead of hKey. - * fhandler_virtual.cc (fhandler_virtual::lseek): Check the return value - of fill_filebuf. - (fhandler_virtual::open): Remove call to set_nohandle. - (fhandler_virtual::fill_filebuf): Change return type to bool. Add - return statement. - * security.cc (get_nt_object_attribute): New function. - (get_object_attribute): New function. - * security.h (get_object_attribute): New function declaration. - -2002-07-01 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.c (seteuid32): Do not return an error when the token cannot - be created only because of a problem with the gid. - -2002-07-01 Christopher Faylor <cgf@redhat.com> - - * fhandler_clipboard.c (fhandler_dev_clipboard::open): Force text mode. - * fhandler_console.cc (fhandler_console::open): *Really* force binary - mode rather than make it optional. - * fhandler_proc.cc (fhandler_proc::open): Ditto. - * fhandler_process.cc (fhandler_process::open): Ditto. - * fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::open): Ditto. - * fhandler_registry.cc (fhandler_registry::open): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - * fhandler_virtual.cc (fhandler_virtual::open): Ditto. - * fhandler_windows.cc (fhandler_windows::open): Ditto. - * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. - * net.cc (fdsock): Ditto. - * path.cc (set_flags): Add more debugging. - -2002-07-01 Christopher Faylor <cgf@redhat.com> - - * debug.cc (threads): Avoid initialization. - * uinfo.cc (cygheap_user::ontherange): (from Corinna Vinschen) Actually - make below changes work. - -2002-07-01 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::ontherange): Make cygwin root the last resort - for HOMEPATH/HOMEDRIVE for consistency with HOME. - -2002-07-01 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (sec_none): Move to sec_helper.cc. - (sec_none_nih): Ditto. - (sec_all): Ditto. - (sec_all_nih): Ditto. - (get_null_sd): Ditto. - (sec_acl): Ditto. - (__sec_user): Ditto. - * sec_helper.cc (sec_none): Move from shared.cc to here. - (sec_none_nih): Ditto. - (sec_all): Ditto. - (sec_all_nih): Ditto. - (get_null_sd): Ditto. - (sec_acl): Ditto. - (__sec_user): Ditto. - -2002-06-30 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::ontherange): Potentially set HOME from - existing homepath and homedrive cygheap_user fields (not currently used - yet). Set HOME to / if no other alternative. - (cygheap_user::test_uid): Simplify. - -2002-06-30 Christopher Faylor <cgf@redhat.com> - - * environ.cc (parse_options): Use setenv to potentially replace CYGWIN - value on export. Fixes broken behavior since November 2000 changes. - (regopt): Return indication of whether or not something has been parsed - from the registry. - (environ_init): Only attempt to export CYGWIN variable when values were - set from the registry. It is exported automatically otherwise. - -2002-06-30 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_process::pid): New field. - (fhandler_process::fstat): Remove unneeded array. Set pid element. - (fhandler_process::open): Ditto. - (fhandler_process::fill_filebuf): Handle case where 'p' field is NULL. - -2002-06-30 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_process::p): New field. - (fhandler_process:fill_filebuf): Revert to same definition as virtual - in parent class. - (fhandler_process::open): Fill out p field rather than passing as an - argument. - (fhandler_process::fill_filebuf): Use p pointer rather than argument. - -2002-06-29 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (extract_nt_dom_user): Check for all buffer overflows. - Call LookupAccountSid after trying to get domain & user from passwd. - (get_group_sidlist): Obtain the domain and user by calling - extract_nt_dom_user instead of LookupAccountSid. - -2002-06-29 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::test_uid): Use standard issetuid test. - -2002-06-29 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (NetGetDCName): Change to make this an optional load - function. - * cygheap.h (cygheap_user::logsrv): Return NULL when operation fails. - (cygheap_user::winname): Ditto. - (cygheap_user::domain): Ditto. - * uinfo.cc (cygheap_user::env_logsrv): Save results in temp variable. - (cygheap_user::env_userprofile): Ditto. - -2002-06-29 Christopher Faylor <cgf@redhat.com> - - * environ.cc (spenv::retrieve): Detect return of env_dontadd from - cygheap_user methods. - (build_env): Avoid incrementing environment pointer if not actually - adding to the environment. That could result in garbage in the - environment table. Be more defensive when reallocing envblock. - -2002-06-29 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::test_uid): Return NULL or further tests are - sorta useless. - (cygheap_user::env_domain): Recalculate if name is missing. - -2002-06-29 Christopher Faylor <cgf@redhat.com> - - * environ.cc (spenv::from_cygheap): Still need to take setuid into - consideration. - -2002-06-28 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::env_logsrv): Return "almost_null" in case - where no domain or username is "SYSTEM". - -2002-06-28 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_user): Reorg to accommodate environment caching. - (cygheap_user::logsrv): New method. - (cygheap_user::winname): Ditto. - (cygheap_user::domain): Ditto. - (cygheap_user::test_uid): Ditto. - * cygheap.cc (cygheap_user::set_name): Reflect name "pwinname" name - change. - * environ.cc (getwinenveq): New function. - (penv::from_cygheap): penv::from_cygheap): Change arguments. - (spenv::retrieve): Ditto for call. Use getwinenveq to retrieve info - from environment. Always return value from cygwin environment, if it - exists. - * environ.h (getwinenveq): Declare. - * uinfo.cc (cygheap_user::ontherange): Use logsrv() rather than - env_logsrv(). - (cygheap_user::test_uid): Define new method. - (cygheap_user::env_logsrv): Accept environment arguments. Use test_uid - to find info. - (cygheap_user::env_domain): Ditto. - (cygheap_user::env_userprofile): Ditto. - (cygheap_user::env_homepath): Ditto. - (cygheap_user::env_homedrive): Ditto. - (cygheap_user::env_name): Ditto. - -2002-06-27 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cfree_and_set): New function. - (cygheap_user::set_name): Use cfree_and_set to reset members. - * cygheap.h (cygheap_user): Delete static members. - (cygheap_user::puserprof): New member. - (cfree_and_set): Declare. - * dcrt0.cc (almost_null): Define. - * environ.cc (env_dontadd): Redefine as "almost_null". - * winsup.h (almost_null): Declare. - * syscalls.cc (cfree_and_set): Remove unused variable. - * uinfo.cc (cygheap_user::homepath_env_buf): Eliminate. - (cygheap_user::homedrive_env_buf): Ditto. - (cygheap_user::userprofile_env_buf): Ditto. - (cygheap_user::ontherange): YA change to try to preserve existing - HOMEPATH and HOMEDRIVE. Return almost_null values when variables - should not actually exist. - (cygheap_user::env_logsrv): Ditto. - (cygheap_user::env_domain): Ditto. - (cygheap_user::env_userprofile): Ditto. - -2002-06-27 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Let __progname point to the applications - basename. Move eliminating ".exe" suffix from argv[0] so that it - always also affects __progname. - -2002-06-27 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread::create): Add trace printf to get CreateThread - LastError. - -2002-06-27 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (list::match): Check using pagesize aligned size. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Force - FindFirstFile on first file of directory when asking for x:\ . - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_user::set_name): Correct thinko in below change. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_user::set_name): Avoid clearing things when just - setting name to itself or during first time initialization. - - * environ.cc (check_case_init): Make case insensitive. - -2002-06-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::bind): Add method definition. - (fhandler_socket::connect): Ditto. - (fhandler_socket::listen): Ditto. - (fhandler_socket::accept): Ditto. - (fhandler_socket::getsockname): Ditto. - (fhandler_socket::getpeername): Ditto. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - (fhandler_socket::shutdown): Ditto. - * fhandler_socket.cc (get_inet_addr): Move here from net.cc. - (fhandler_socket::bind): New method. - (fhandler_socket::connect): Ditto. - (fhandler_socket::listen): Ditto. - (fhandler_socket::accept): Ditto. - (fhandler_socket::getsockname): Ditto. - (fhandler_socket::getpeername): Ditto. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - (fhandler_socket::shutdown): Ditto. - * net.cc: Various formatting cleanups throughout. - (get_inet_addr): Move to fhandler_socket.cc. - (cygwin_bind): Move base functionality to appropriate fhandler_socket - method. - (cygwin_connect): Ditto. - (cygwin_listen): Ditto. - (cygwin_accept): Ditto. - (cygwin_getsockname): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_recvfrom): Ditto. - (cygwin_recvmsg): Ditto. - (cygwin_sendto): Ditto. - (cygwin_sendmsg): Ditto. - (cygwin_shutdown): Ditto. - -2002-06-26 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp_read::~pwdgrp_read): Avoid compiler warning. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (_dcrt0): Be more defensive when reserved block is used and - it's not cygwin info. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * autoload (noload): Avoid clobbering bx register. - - * environ.cc (codepage_init): Use case insensitive match. - - * fhandler_console.cc (cp_get_internal): Delete. - (con_to_str): Use get_cp to derive code page. - (str_to_con): Ditto. - * miscfuncs.cc (get_cp): New function. - (sys_wcstombs): New function. Converted from macro. - (sys_mbstowcs): Ditto. - * winsup.h: Reflect above changes. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * winsup.h: Minor cleanup. - * path.h (path_conv::[]): New operator. - * syscalls.cc (_link): Use path_conv operators rather than methods, - where appropriate. Minor white space cleanup. - -2002-06-26 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-06-25 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h (PTHREAD_CANCELED): Define a reasonable value. - * pthread.cc (pthread_exit): Call method instead of function. - (pthread_setcancelstate): Ditto. - (pthread_setcanceltype): Ditto. - (pthread_testcancel): Ditto. - * thread.h (pthread::cancel_event): New member. - (__pthread_cancel_self): New prototype. - (pthread::exit): New Method. - (pthread::cancel): Ditto. - (pthread::testcancel): Ditto. - (pthread::cancel_self): Ditto. - (pthread::static_cancel_self): Ditto. - (pthread::setcancelstate): Ditto. - (pthread::setcanceltype): Ditto. - (__pthread_cancel): Give c++ linkage. - (__pthread_exit): Remove. - (__pthread_setcancelstate): Ditto. - (__pthread_setcanceltype): Ditto. - (__pthread_testcancel): Ditto. - * thread.cc (pthread::pthread): Inititialize cancel_event. - (pthread::~pthread): Close cancel_event if needed. - (pthread::create): Create cancel_event. - (pthread::exit): New method. Replacement for __pthread_exit. - (pthread::cancel): New method. - (pthread::testcancel): Ditto. - (pthread::static_cancel_self); New static method. - (pthread::setcancelstate): New method. Replacement for - __pthread_setcancelstate. - (pthread::setcanceltype): New method. Replacement for - __pthread_setcanceltype. - (pthread::pop_cleanup_handler): Add lock for async cancel safe - cancellation. - (pthread::thread_init_wrapper): Change __pthread_exit to - thread->exit(). - (__pthread_cancel): Call method thread->cancel(). - (__pthread_exit): Remove. - (__pthread_setcancelstate): Ditto. - (__pthread_setcanceltype): Ditto. - (__pthread_testcancel): Ditto. - -2002-06-25 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (sm): Make NO_COPY. - -2002-06-25 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chown): Convert uid to 32 bit. - (lchown): Ditto. - (fchown): Ditto. - -2002-06-24 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::find_unused_handle): Avoid coercion. - -2002-06-24 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (fhandler_base::dup2): Cleanup. Ensure that lock is turned - off in error condition. - -2002-06-24 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (internal_getlogin): Set myself->uid and myself->gid instead - of user.real_uid and user.real_gid. - (uinfo_init): Evaluate orig_uid and real_uid from myself->uid. Ditto - for gid. - -2002-06-23 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_group_sidlist): Add pw argument and use pw->pw_name - in call to get_supplementary_group_sidlist. - (create_token): Add pw argument and use it in call to - get_group_sidlist. - * security.h: Add pw argument in declaration of create_token. - * syscalls.cc (seteuid32): Add pw argument in call to create_token. - -2002-06-23 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.cc (fhandler_base::fstat): Set S_IFIFO for pipes. - * fhandler_socket.cc (fhandler_socket.cc::fstat): Set S_IFSOCK. - -2002-06-23 Christopher Faylor <cgf@redhat.com> - - * lib/_cygwin_S_IEXEC.cc: Remove obsolete file. - -2002-06-23 Christopher Faylor <cgf@redhat.com> - - Use cygwin_{shm,ipc}.h instead of /sys/{shm,ipc}.h throughout. - * sys/ipc.h: Remove. - * sys/shm.h: Remove. - * cygwin_ipc.h: New file. - * cygwin_shm.h: New file. - -2002-06-23 Christopher Faylor <cgf@redhat.com> - - * cygwin.sc: Add recent changes from ld sources. - -2002-06-23 Conrad Scott <conrad.scott@dsl.pipex.com> - - * winsup.h: Move #ifdef EXPCGF code into "winbase.h". - * winbase.h: #ifdef EXPCGF code moved here from "winsup.h". - -2002-06-12 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::cleanup_stack): Rename cleanup_handlers to - cleanup_stack. - * thread.cc (pthread::pthread): Ditto. - (pthread::create): Fix mutex verification. - (pthread::push_cleanup_handler): Renam cleanup_handlers to - cleanup_stack. Remvoe Mutex calls, use InterlockedExchangePointer - instead. - (pthread::pop_cleanup_handler): Rename cleanup_handlers to - cleanup_stack. - (pthread::pop_all_cleanup_handlers): Ditto. - (__pthread_once): Check state first and return if already done. - (__pthread_join): Revert DEADLOCK test to __pthread_equal call. - (__pthread_detach): Unlock mutex before deletion. - -2002-06-21 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (cygrun.exe): Move -lgcc where it will do some good. - -2002-06-21 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat64_to_stat32): Correctly evaluate st_rdev. - (fstat64): Set st_rdev to same value as st_dev. - (stat_worker): Ditto. - -2002-06-21 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Carefully check owner_sid again after trying - SIDs from cygheap. - -2002-06-21 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Remove unnecessary retrieval of owner name. - Check uid for current user first and use SIDs from cygheap if so. - Set errno to EINVAL if user SID isn't retrievable. Just print user SID - as debug output. - Don't bail out if group SID isn't retrievable. Change debug output - appropriately. - -2002-06-21 Christopher Faylor <cgf@redhat.com> - - * errno.cc: Change text description for EBADF throughout. - -2002-06-20 Pierre Humblet <pierre.humblet@ieee.org> - - * uinfo.cc (cygheap_user::ontherange): Use env_name for NetUserGetInfo. - (cygheap_user::env_logsrv): Verify env_domain is valid. - * environ.cc: Include child_info.h and keep spenvs[] sorted. - (environ_init): Check child_proc_info instead of myself->ppid_handle. - -2002-06-19 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::set_flags): Change priority of "linked - in" default binmode setting so that it has priority over optional - setting. - -2002-06-19 Christopher Faylor <cgf@redhat.com> - - Use hMainProc where appropriate, throughout. - * environ.cc (spenv::retrieve): Add debugging statements. - - * pinfo.cc (set_myself): Don't call strace.hello if already stracing. - * strace.cc (strace): Move NO_COPY keyword so that it will actually - take effect. - -2002-06-19 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::ontherange): Call NetUserGetInfo() only with - non-NULL logserver parameter. - -2002-06-16 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_user::issetuid): New method. - * dtable.cc (dtable::vfork_child_dup): Use new method to determine if - we are in "setuid mode." - * fork.cc (fork_parent): Ditto. - * spawn.cc (spawn_guts): Ditto. - * syscalls.cc (seteuid32): Ditto. - (setegid32): Ditto. - * environ.cc (spenv::retrieve): (Suggested by Pierre Humblet) Do - potential recalculation of cygheap_user stuff when in setuid mode. - Return special value when environment variable should be calculated but - not added. - (build_env): Don't add retrieved value to dstp if it is 'dont_add'. - -2002-06-16 Christopher Faylor <cgf@redhat.com> - - Changes suggested by Pierre Humblet. - * environ.cc (NL): New macro. - (conv_envvars): Use NL macro to fill in name and namelen. - (spenv::namelen): New field. - (spenvs): Use NL to fill in name and namelen. - (spenv::retrieve): Eliminate length argument. Instead, use namelen - throughout. - (build_env): Don't calculate length of initial FOO= part of - environment. Accommodate spenv::retrive argument change. - -2002-06-16 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_user::winname): New field. - * cygheap.cc (cygheap_user::set_name): Clear winname when name changes. - * uinfo.cc (cygheap_user::env_logsrv): Avoid calculating server when - Windows user == SYSTEM. - (cygheap_user::env_domain): Set winname here too. - (cygheap_user::env_userprofile): Eliminate superfluous tests. - (cygheap_user::env_name): Seed winname by calling env_domain(). - -2002-06-12 Pierre Humblet <pierre.humblet@ieee.org> - - * spawn.cc (spawn_guts): Revert removal of ciresrv.moreinfo->uid = - ILLEGAL_UID. - -2002-06-15 Christopher Faylor <cgf@redhat.com> - - * child_info.h (child_proc_info): Declare as base class. - (spawn_info): Declare as alias of child_proc_info to aid debugging. - (fork_info): Ditto. - * cygheap.cc (cygheap_fixup_in_child): Use child_proc_info global - rather than parameter. - * cygheap.h (cygheap_fixup_in_child): Reflect above change in - declaration. - * dcrt0.cc (_dll_crt0): Move 'si' definition here. Assign - child_proc_info. - (dll_crt0_1): Accommodate cygheap_fixup_in_child and *_info changes. - * environ.cc (spenv::retrieve): Make regparm. - * environ.h (environ_init): Ditto. - (win_env::add_cache): Ditto. - (build_env): Ditto. - (getwinenv): Ditto. - * fork.cc (sync_with_parent): Use fork_info global. - (fork_child): Ditto. - -2002-06-14 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (cygheap_user::ontherange): Don't set HOMEDRIVE or HOMEPATH - unless one or the other is specified. - -2002-06-14 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_user::userprofile_env_buf): New static member. - * environ.cc (build_env): Add debugging statement. - (spenvs): Switch functions for USERDOMAIN and USERNAME. - * spawn.cc (spawn_guts): Move environment initialization prior to - cygheap_setup_for_child or environment info will never be copied to - child. - -2002-06-14 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_user): Add static members to hold home{drive,path} - info. - * uinfo.cc (cygheap_user::ontherange): Use static class members for - local HOME* storage. - -2002-06-14 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_user::set_logsrv): Remove. - (cygheap_user::set_domain): Ditto. - * cygheap.h (cygheap_user::set_logsrv): Remove declaration. - (cygheap_user::set_domain): Ditto. - (cygheap_user::env_domain): Declare new method. - (cygheap_user::env_name): Ditto. - * environ.cc (spenvs): Add two environment variables. - * spawn.cc (spawn_guts): Call build_env after RevertToSelf. Always set - ciresrv.mount_h. - (cygheap_user::ontherange): Recalculate homedrive/homepath if they are - empty. Use env_logsrv to get logon server. - (cygheap_user::env_logsrv): Calculate server name here rather than - relying on it having been previously calculated. - (cygheap_user::env_domain): Ditto for domain name. - (cygheap-user::env_name): New method. - -2002-06-12 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (seteuid32): Do not get or set the environment. Do not - call LookupAccountSid nor internal_getlogin. Set cygheap->user name - and sid from the passwd entry. - * uinfo.cc (uinfo_init): Only call internal_getlogin when starting from - a non Cygwin process and use the values returned in user. - (internal_getlogin): Simplify to case where starting from a non Cygwin - process. Store return values in user and return void. Do not set the - Windows default environment. - * dcrt0.cc (dll_crt0_1): Call uinfo_init only when needed. Do not set - myself->uid nor reset user.sid. - * spawn.cc (spawn_guts): Get the sid from cygheap->user. Always - RevertToSelf(). Don't set uid in impersonated case. - * cygheap.cc (cygheap_user::set_sid): Do not set orig_sig. - (cygheap_user::set_orig_sid): New. - * cygheap.h: Declare cygheap_user::set_sid. - * winsup.h: Add argument to uinfo_init(). - -2002-06-14 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (build_env): If realloc moves envblock, move s with it. - -2002-06-13 Nicholas S. Wourms <nwourms@netscape.net> - - * winver.rc: Add more words to copyright. - -2002-06-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::set_name): Revert previous change. - * environ.cc (spenv::retrieve): Check return value of call to - cygheap->user.*from_cygheap(). - -2002-06-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::set_name): Remove setting homedrive and - homepath to NULL. - (cygheap_user::set_logsrv): Fix free'ing of plogsrv. - * cygheap.h (cygheap_user::cygheap_user): Initialize homedrive and - homepath to NULL. - -2002-06-13 Christopher Faylor <cgf@redhat.com> - - * security.cc (get_logon_server): Use strcasematch rather than - strcasecmp. - -2002-06-12 Christopher Faylor <cgf@redhat.com> - - * path.cc (chdir): Minor cleanup. - -2002-06-12 Christopher Faylor <cgf@redhat.com> - - * environ.cc (build_env): Correctly fill out windows environment block - with win32 paths rather than posix paths. - -2002-06-12 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_user::set_name): Set homedrive and homepath to - NULL on user name change. - (cygheap_user::set_logsrv): Allocate enough space for leading \\ so - that we can put this in the environment, if needed. - * cygheap.h (homebodies): New enum. - (cygheap_user::homedrive): New field. - (cygheap_user::homepath): Ditto. - (cygheap_user::env_logsrv): New method. - (cygheap_user::env_homepath): New method. - (cygheap_user::env_homedrive): New method. - (cygheap_user::env_userprofile): New method. - (cygheap_user::ontherange): New method. - * environ.cc (envsize): Eliminate debugging argument. - (environ_init): Assume that envc counts number of elments not total - size. - (spenv): New class. - (spenvs): New array, rename from forced_winenv_vars, using spenv. - (spenv::retrieve): New method. - (build_env): Rename from 'winenv' -- one stop shopping for building new - environment blocks for both windows and "unix". - * environ.h (build_env: Declare. - (winenv): Delete declaration. - (envsize): Ditto. - * spawn.cc (spawn_guts): Use build_env to build windows and cygwin - environment blocks. - * uinfo.cc (internal_getlogin): Eliminate environment manipulation. - Default to info from GetUserName if it exists. Move HOMEPATH and - HOMEDRIVE stuff elsewhere. Move HOME setting elsewhere. Only set HOME - environment variable in processes that are not parented by a cygwin - process. - (cygheap_user::ontherange): Define new method. - (cygheap_user::env_logsrv): Ditto. - (cygheap_user::env_homepath): Ditto. - (cygheap_user::env_homedrive): Ditto. - (cygheap_user::env_userprofile): Ditto. - -2002-06-11 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): More hToken removal cleanup. - -2002-06-09 Pierre Humblet <pierre.humblet@ieee.org> - - * spawn.cc (spawn_guts): Define sec_attribs and call sec_user_nih() - only once. - -2002-06-10 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Ensure that -MD gets added to CFLAGS regardless of - CFLAGS command-line setting. - - * cygwin.din: Export sexec* functions as function which returns ENOSYS - (i.e., sexec* is deprecated). - * dtable.cc (dtable::vfork_child_dup): Ensure that impersonation is - restored even on failure. - * exec.cc: Throughout, remove references to sexec* and _spawnve. - * pinfo.h: Remove _spawnve declaration. - * spawn.cc: Rename _spawnve to spawnve and use throughout. - (spawn_guts): Eliminate hToken argument and processing of same. Just - perform special actions if impersonating. - (spawnve): Rename from _spawnve. - -2002-06-10 Christopher Faylor <cgf@redhat.com> - - * include/sys/strace.h (strace): Avoid use of constructor. - -2002-06-10 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Initialize wincap and check for sanity before - running global ctors. - * wincap.h (wincap): Eliminate constructor. Default is to zero memory, - anyway. - * wincap.cc (wincap): Copy this on fork to avoid initialization in - forked processes. - -2002-06-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::fixup_after_fork): Revert patch from - 2002-06-04. - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Ditto. - (fhandler_socket::dup): Ditto. - * net.cc (fdsock): Make sockets explicitely noninheritable on NT. - -2002-06-09 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Correctly - set number of links for directory, if appropriate. - -2002-06-10 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc: Variation of a patch from Thomas Pffaf. - (__pthread_detach): Cleanup thread object if the thread has terminated. - (__pthread_join): Change order of error checks, and lock against - join/detach/exit races. - (__pthread_exit): Lock object against join/detach/exit races. - (pthread::thread_init_wrapper): Ditto. - (thread_init_wrapper): Rename to pthread::thread_init_wrapper. - (pthread::create): Check that the mutex initialized correctly. - (pthread::push_cleanup_handler): Lock against potential cancellation - race. NB: this may not be required if pthread_cleanup_push is non- - cancelable. - * thread.h (pthread::mutex): New member. - (thread_init_wrapper): Rename to pthread::thread_init_wrapper. - (pthread::thread_init_wrapper_: New static member. - -2002-06-10 Robert Collins <rbtcollins@hotmail.com> - - * cygwin.din: Add _pthread_cleanup_push and _pthread_cleanup_pop. - * pthread.cc: Change __pthread_self to pthread::self() thruoghout. - (_pthread_cleanup_push): New function. - (_pthread_cleanup_pop): Ditto. - * thread.cc: Thanks to Thomas Pfaff for the pthread cleanup_push,_pop - patch, this work is derived from that. - Change __pthread_self to pthread::self() thruoghout. - (__pthread_self): Rename to pthread::self. - (pthread::self): New method. - (pthread::pthread): Initialize new member. - (pthread::push_cleanup_handler): New method. - (pthread::pop_cleanup_handler): New method. - (pthread::pop_all_cleanup_handlers): New method. - (__pthread_exit): Pop all cleanup handlers. - * thread.h (pthread::push_cleanup_handler): Declare. - (pthread::pop_cleanup_handler): Ditto. - (pthread::pop_all_cleanup_handlers): Ditto. - (pthread::self): New static method. - (__pthread_exit): Give C++ linkage. - (__pthread_join): Ditto. - (__pthread_detach): Ditto. - (__pthread_self): Remove. - -2002-04-24 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h (__pthread_cleanup_handler): New structure. - (pthread_cleanup_push): Rewritten. - (pthread_cleanup_pop): Ditto. - (_pthread_cleanup_push): New prototype. - (_pthread_cleanup_pop): Ditto. - -2002-04-24 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (thread_init_wrapper): Check if thread is already joined. - (__pthread_join): Set joiner first. - (__pthread_detach): Ditto. - -2002-06-10 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_transport.cc (create_server_transport): Finish the split - out of sockets code from transport_layer_base. Thanks to Nicholas - Wourms and Conrad Scott for catching this. - -2002-06-08 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (pinfo_dummy): Initialize to correct size. - -2002-06-08 Christopher Faylor <cgf@redhat.com> - - * path.cc: Change MOUNT_AUTO to MOUNT_CYGDRIVE throughout. - * shared_info.h (CURR_MOUNT_MAGIC): Update. - -2002-06-08 Christopher Faylor <cgf@redhat.com> - - * external.cc (cygwin_internal): Make v1 mount table access invalid. - * path.cc (mount_info::init): Remove had_to_create_mount_areas initialization. - (mount_info::from_registry): Remove v1 table import. - (mount_info::read_v1_mounts): Eliminate. - (mount_info::import_v1_mounts): Ditto. - * shared_info.h (mount_info): Ditto for both of above. - * sys/mount.h (MOUNT_DEVFS): New enum. - (MOUNT_PROC): Ditto. - -2002-06-08 Christopher Faylor <cgf@redhat.com> - - * include/wchar.h: Define __need_size_t. - -2002-06-07 Christopher Faylor <cgf@redhat.com> - - * fhandler_socket.cc (fhandler_socket::fstat): Don't assume that socket - is unix-domain socket. - -2002-06-07 Christopher Faylor <cgf@redhat.com> - - * times.cc (hires_ms::prime): Set init flag. - -2002-06-07 Conrad Scott <conrad.scott@dsl.pipex.com> - - * times.cc (hires_ms::prime): Adjust epoch of initime_us from 1601 to - 1970. - -2002-06-06 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (timeGetDevCaps): Define new autoload function. - (timeGetTime): Ditto. - (timeBeginPeriod): Ditto. - (timeEndPeriod): Ditto. - * hires.h (hires_base): New class. Rename from hires. - (hires_us): New class. - (hires_ms): New class. - * strace.cc (strace::microseconds): Use hires_us class. - * times.cc (gettimeofday): Use hires-ms class. - (hires_us::prime): Rename from hires::prime. - (hires_us::usecs): Rename from hires:usecs. - (hires_ms::prime): New method. - (hires_ms::usecs): New method. - (hires_ms::~hires_ms): New destructor. - -2002-06-06 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (noload): Correctly save argument count register. - -2002-06-05 Conrad Scott <conrad.scott@dsl.pipex.com> - - * fhandler.cc (fhandler_base::fstat): Initialise tv_nsec member of - st_atim, st_mtim, and st_ctim fields. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto. - * fhandler_process.cc (fhandler_process::fstat): Ditto. - * glob.c (stat32_to_STAT): Copy across the whole st_atim, st_mtime, and - st_ctim fields. - * syscalls.cc (stat64_to_stat32): Ditto. - * times.cc (to_timestruc_t): New function. - (time_as_timestruc_t): New function. - * winsup.h: Add to_timestruc_t and time_as_timestruc_t functions. - * include/cygwin/stat.h: Replace time_t with timestruc_t throughout for - all file times, removing the st_spare1, st_spare2, and st_spare3 fields - in the process. Add macros to access tv_sec fields by old names. - * include/cygwin/types.h: Typedef timespec_t and timestruc_t as struct - timespec. - -2002-06-03 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_helper.cc (lookup_name): Suppress. - * security.cc (alloc_sd): Remove logsrv argument. - Remove two calls to lookup_name. - (set_security_attribute): Remove logsrv argument. - Remove logsrv argument in call to alloc_sd. - (set_nt_attribute): Remove logsrv argument. - Remove logsrv argument in call to set_security_attribute. - (set_file_attribute): Remove logsrv argument. - Remove logsrv argument in call to set_nt_attribute. - (set_file_attribute): Remove logsrv argument. - Remove logsrv argument in call to set_file_attribute. - * syscalls.cc (chown_worker): Remove logserver argument in - call to set_file_attribute. - (chmod): Ditto. - * shm.cc (shmget): Remove logsrv argument in call to alloc_sd. - * uinfo.cc (internal_getlogin): Replace calls to - lookup_name by call to LookupAccountName. - * security.h: Remove logsrv in declarations of set_file_attribute - and alloc_sd. Remove declaration of lookup_name. - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * child_info.h (CHILD_INFO_MAGIC): Oops. Revert previous change. gcc - 3.1 bug? - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * child_info.h (CHILD_INFO_MAGIC): Update. - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * strace.cc (strace::hello): Set inited, when appropriate. - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Eliminate some newlib wrappers. - * path.cc (get_devn): Only consider first 99 potential com devices. - (get_device_number): Ditto. - * times.cc (_times): Eliminate. - (_times): Rename from times(). - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * dir.cc (rmdir): Streamline. Detect attempts to remove directories - from "read-only" virtual devices. (Suggested by Pavel Tsekov) - * syscalls.cc (unlink): Detect attempts to remove directories from - "read-only" virtual devices. (From Pavel Tsekov) - -2002-06-05 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (handle_to_fn): Check error return value from NtQueryObject - first before seeing if name buffer is NULL. - - * grp.cc (read_etc_group): Fix gcc warning regarding snprintf format. - * passwd.cc (read_etc_passwd): Ditto. - -2002-04-18 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::joiner): New member. - * thread.cc (pthread::pthread): Initialize joiner to NULL - (pthread::create): Increment of thread counter moved from - __pthread_create to this location. - (__pthread_create): Increment thread counter removed. - (thread_init_wrapper): Set joiner to self when thread was created - detached. - (__pthread_exit): delete thread when it is detached and not - joined. - (__pthread_join): Check for deadlock and delete thread when it has - terminated. - (__pthread_detach): Set joiner to self when thread state - changed to detached. - -2002-06-05 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (read_etc_group): When emulating nonexisting group file on - NT systems, read primary group SID from process token. Use that info - to create correct group entry. On error or on 9x systems fallback - to emulating Administrators group as before. - * passwd.cc (read_etc_passwd): When emulating nonexisting passwd file - on NT systems, read user and primary group SID from process token. - Use that info to create correct passwd entry. On error or on 9x - systems fallback to emulating user with Administrator user id and - Administrators group as before. - -2002-06-05 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (etc_group): Removed. - (parse_grp): Make line parameter nonconst. Don't copy data into new - allocated memory. Check for CR instead of LF to accomodate new - read method. - (add_grp_line): Make line parameter nonconst. - (read_etc_group): Rearrange using new pwdgrp_read class. - * passwd.cc (parse_pwd): Don't copy data into new allocated memory. - Check for CR instead of LF to accomodate new read method. - (read_etc_passwd): Rearrange using new pwdgrp_read class. - * pwdgrp.h (pwdgrp_check::set_last_modified): Use different - parameters. - (class pwdgrp_read): New class for opening and reading passwd and - group files. - -2002-06-04 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (handle_to_fn): Attempt to handle "raw" accesses to remote - shares. - * path.cc (mount_info::conv_to_win32_path): Set flags to binary when - mount entry is not found. - (mount_info::set_flags_from_win32_path): Ditto. - -2002-06-04 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (handle_to_fn): Correct placement and length of name - buffer. (Suggested by Pavel Tsekov) - -2002-06-04 Christopher Faylor <cgf@redhat.com> - - Remove fcntl.h includes throughout. - * fhandler.h: Move fcntl.h include here. - (fhandler_base::set_flags): Accept supplied_bin argument. Make - non-inlined. - * dtable.cc (dtable::init_std_file_from_handle): Just use binmode from - pc. - (reset_to_open_binmode): Use set_flags. - * cygwin.din (open): Avoid newlib wrapper. - (read): Ditto. - (unlink): Ditto. - (write): Ditto. - * fhandler.cc (fhandler_base::set_flags): Accept supplied_bin argument. - Make binmode decisions here. - (fhandler_base::open): Avoid using pc if it is NULL. Eliminate binmode - logic. Just call set_flags with binmode argument. - (fhandler_base::init): Call set_flags with binmode argument. - * fhandler_clipboard.cc (fhandler_dev_clipboard::open): Ditto. - * fhandler_console.cc (fhandler_console::open): Ditto. - (fhandler_console::init): Force binary on open. - * fhandler_disk_file.cc (fhandler_disk_file::open): Don't set binmode - here. Let it happen in base class. - * fhandler_dsp.cc (fhandler_dev_dsp::open): Force binmode open. Set - return value appropriately if unable to open. - * fhandler_proc.cc (fhandler_proc::open): Make sure flags are set - before open_status. - * fhandler_process.cc (fhandler_process::open): Ditto. - * fhandler_registry.cc (fhandler_registry::open): Ditto. - * fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::open): Force O_BINARY by default. - * fhandler_serial.cc (fhandler_serial::init): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - (fhandler_pty_master::open): Ditto. - * fhandler_virtual.cc (fhandler_virtual::open): Ditto. - * fhandler_windows.cc (fhandler_windows::open): Ditto. - * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. - * net.cc (fdsock): Ditto. - * path.cc (path_conv::check): Avoid checking for executable extension - when directory. (Suggested by Pavel Tsekov) - (set_flags): Set PATH_TEXT explicitly, when appropriate. - (mount_info::conv_to_win32_path): Use set_flags() to set path flags. - * path.h (PATH_TEXT): New enum. - (path_conv::binmode): Return appropriate constant based on binmode. - * pipe.cc (make_pipe): Set binmode to O_TEXT xor O_BINARY. - * syscalls.cc (setmode_helper): Make debugging message a little - clearer. - (setmode): Set binmode via set_flags. - -2002-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add private method - fixup_after_fork (bool, HANDLE). - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Move - functionality to new private method. Add closing parent socket - if not called from dup(). Create method new calling private method - with appropriate parameter. - (fhandler_socket::fixup_after_exec): Call private method - fixup_after_fork with appropriate parameter. - (fhandler_socket::dup): Ditto. - -2002-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::open): Set errno to EACCES if - requested mode isn't supported. - -2002-06-03 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::open): Don't set binmode if already set. - Don't check for file. Files should already be set. Report on binary - mode for debugging. - (fhandler_base::fhandler_base): Don't set default binmode here. That's - for later. - * fhandler_console.cc (fhandler_console::output_tcsetattr): Don't set - binmode, ever, for console. - * fhandler_disk_file.cc (fhandler_disk_file::open): Always set the - binary mode to the value derived from mount table. - * path.cc (mount_info::conv_to_win32_path): Default to binmode if path - does not translate into anything in the mount table. - -2002-06-03 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_EXTRACT_DOMAIN_AND_USER - handling to call extract_nt_dom_user() from applications. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_EXTRACT_DOMAIN_AND_USER. - -2002-06-03 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat64_to_stat32): Transform st_dev correctly. - (fstat64): Add evaluating st_ino and st_dev. - (stat_worker): Evaluate st_dev as 32 bit value. - * include/cygwin/stat.h: Use new dev_t definition throughout. - * include/cygwin/types.h: Define __dev16_t and __dev32_t. Define - dev_t according to __CYGWIN_USE_BIG_TYPES__ setting. - * include/sys/sysmacros.h: Define major, minor and makedev - according to __CYGWIN_USE_BIG_TYPES__ setting. - -2002-06-03 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (setegid32): Verify the correctness of the gid - of the group returned by getgrgid32. - -2002-06-03 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (lsa2wchar): Suppressed. - (get_lsa_srv_inf): Suppressed. - (get_logon_server_and_user_domain): Suppressed. - (get_logon_server): Essentially new. - (get_user_groups): Add "domain" argument. Only lookup the - designated server and use "domain" in LookupAccountName. - (is_group_member): Simplify the arguments. - (get_user_local_groups): Simplify the arguments. Do only a - local lookup. Use "BUILTIN" and local domain in LookupAccountName. - (get_user_primary_group). Only lookup the designated server. - (get_group_sidlist): Remove logonserver argument. Do not lookup - any server for the SYSTEM account. - (create_token): Delete logonserver and call to get_logon_server. - Adjust arguments of get_group_sidlist, see above. - * security.h: Delete declaration of get_logon_server_and_user_domain - and add declaration of get_logon_server. - * uinfo.cc (internal_get_login): Call get_logon_server instead of - get_logon_server_and_user_domain. - -2002-06-02 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (handle_to_fn): Use largest match for device. Correctly - (?) deal with remote drive weirdness. - -2002-06-02 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Check - specifically for non-existent file, first. - (fhandler_disk_file::fstat): Perform fd open on files with funny - characters. - -2002-06-02 Christopher January <chris@atomice.net> - - * fhandler_process.cc (fhandler_process::open): Set fileid. - -2002-06-02 Christopher Faylor <cgf@redhat.com> - - Remove unneeded sigproc.h includes throughout. - * fhandler.h (fhandler_proc::fill_filebuf): Take a pinfo argument. - * fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Simplify search - for given pid. - (fhandler_proc::readdir): Assume that pid exists if it shows up in the - winpid list. - * fhandler_process.cc (fhandler_process::open): Simplify search for - given pid. Call fill_filebuf with pinfo argument. - (fhandler_process::fill_filebuf): Pass pinfo here and assume that it - exists. - * pinfo.h (pinfo::remember): Define differently if sigproc.h is not - included. - -2002-06-02 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::detach): Don't run destructor on exit. - -2002-06-01 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::fstat): Move dev and ino calculation into - caller. - * syscalls.cc (stat_worker): Calculate dev and ino calculation here, if - zero. - * fhandler_proc.cc (fhandler_proc::fhandler_proc): Minor reorg for - debugging. - * fhandler_process.cc (fhandler_process::exists): Return 0 on - nonexistence. - (fhandler_process::fstat): Simplify pid logic. - * fhandler_tape.cc (fhandler_dev_tape::fstat): Minor reformatting. - -2002-06-01 Christopher Faylor <cgf@redhat.com> - - * path.cc (chdir): Don't allow cd'ing to a non-directory virtual path. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (readdir): Move inode calculation into caller. - (fhandler_cygdrive::readdir): Add "." and "..". - * dir.cc (readdir): Move inode calculation here so that fhandler - readdirs can benefit. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::open): Reinstate setting of - flags. - - * dtable.cc (dtable::init_std_file_from_handle): Default to using - binmode derived from path_conv, when required. - * fhandler.h (fhandler_base::get_w_binary): Default to binmode if - nothing else is specified. - * fhandler.h (fhandler_base::get_r_binary): Ditto. - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_handle): Work - around g++ warning. - - * path.cc (path_conv::check): Remove a debugging statement. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::open): Always default to - binmode. - (fhandler_console::write_normal): Don't honor binmode setting. There - is already a termios setting for this. - (fhandler_console::init): Correct argument order in init call. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::open): Make default open mode == binmode. - (fhandler_base::init): Set open flags based on derived binmode argument. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::init): Eliminate unneeded debugging statement. - -2002-05-31 Christopher Faylor <cgf@redhat.com> - - * fhandler_proc.cc (fhandler_proc::readdir): Set errno when no more - files. - * fhandler_process.cc (fhandler_process::readdir): Ditto. - * fhandler_registry.cc (fhandler_registry::readdir): Ditto. - -2002-05-30 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Set fileattr to INVALID_FILE_ATTRIBUTES - for nonexistent virtual device path. - (chdir): Set correct errno when attempt is made to cd to nonexistent - virtual device path. - -2002-05-30 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Always call - fstat_by_name if fd is not opened to allow fstat_by_name to properly - set errno. - -2002-05-30 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Replace autoload statments for ZwXXX by NtXXX. - Drop ZwQuerySystemInformation since NtQuerySystemInformation was - already available. - * fhandler_proc.cc (format_proc_uptime): Replace call to - ZwQuerySystemInformation by call to NtQuerySystemInformation. - (format_proc_stat): Ditto. - * fhandler_process.cc (format_process_stat): Replace call to - ZwQueryInformationProcess by call to NtQueryInformationProcess. - (get_process_state): Ditto. - (get_mem_values): Ditto. Replace call to ZwQueryVirtualMemory by - call to NtQueryVirtualMemory. - * ntdll.h: Cleanup. Drop ZwQuerySystemInformation since - NtQuerySystemInformation was already available. Replace declarations - of ZwXXX functions by declarations of NtXXX. - * pinfo.cc (winpids::enumNT): Replace call to ZwQuerySystemInformation - by call to NtQuerySystemInformation. - -2002-05-29 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (binmode): Default to binmode when mode is not known. - -2002-05-29 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h (EXTERNAL_PINFO_VERSION): Reinstate. - * external.cc (fillout_pinfo): Use it. - -2002-05-29 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (fillout_pinfo): Use new version define. - * include/sys/cygwin.h (external_pinfo): Define - EXTERNAL_PINFO_VERSION_16_BIT and EXTERNAL_PINFO_VERSION_32_BIT - instead of just EXTERNAL_PINFO_VERSION. - -2002-05-29 Christopher Faylor <cgf@redhat.com> - - * external.cc (fillout_pinfo): Set new version field in external_pinfo - structure. - * include/sys/cygwin.h (external_pinfo): Replace strace_file with - version field. - -2002-05-29 Corinna Vinschen <corinna@vinschen.de> - - Change internal uid datatype from __uid16_t to __uid32_t - throughout. - * cygwin.din: Export new symbols getpwuid32, getpwuid_r32, getuid32, - geteuid32, setuid32, seteuid32. - * passwd.cc (getpwuid32): New function. - (getpwuid_r32): Ditto. - * syscalls.cc (seteuid32): Ditto. - (setuid32): Ditto. - * uinfo.cc (getuid32): Ditto. - (geteuid32): Ditto. - * winsup.h (uid16touid32): New macro, correct casting from __uid16_t - to __uid32_t. - (gid16togid32): Ditto fir gids. - (getuid32): Declare. - (geteuid32): Ditto. - (getpwuid32): Ditto. - * include/sys/cygwin.h (struct external_pinfo): Add members uid32 and - gid32. - -2002-05-29 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h: Protect some symbols against multiple - definition. - * include/netinet/ip.h: Ditto. - * include/netinet/tcp.h: Ditto. - -2002-05-29 Wu Yongwei <adah@netstd.com> - - * include/netinet/ip.h: Replace by BSD derived version of the file. - * include/netinet/tcp.h: Ditto. - * include/netinet/udp.h: New file. - * include/cygwin/ip.h: Remove. - -2002-05-29 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::init_std_file_from_handle): Attempt stronger - detection of invalid handle. - (handle_to_fn): Detect pathological condition where NT resets the - buffer pointer to NULL on an invalid handle. - -2002-05-28 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Properly - check for whether we should be opening the file to search for #! - characters. Set path_conv structure execability, too, when - appropriate. - -2002-05-28 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_security_attribute): Call getegid32() instead of - getegid(). - * include/cygwin/grp.h: Declare getegid32(). - -2002-05-28 Corinna Vinschen <corinna@vinschen.de> - - Change internal gid datatype from __gid16_t to __gid32_t - throughout. - * cygwin.din: Export new symbols chown32, fchown32, getegid32, - getgid32, getgrgid32, getgrnam32, getgroups32, initgroups32, lchown32, - setgid32, setegid32, getgrent32. - * grp.cc (grp32togrp16): New static function. - (getgrgid32): New function. - (getgrnam32): Ditto. - (getgrent32): Ditto. - (getgroups32): Change name of internal function from getgroups. - (getgroups32): New function. - (initgroups32): Ditto. - * syscalls.cc (chown32): Ditto. - (lchown32): Ditto. - (fchown32): Ditto. - (setegid32): Ditto. - (setgid32): Ditto. - * uinfo.cc (getgid32): Ditto. - (getegid32): Ditto. - * include/cygwin/grp.h: Remove declaration of getgrgid() and getgrnam(). - Declare getgrgid32() and getgrnam32() instead. Declare getgid32(). - -2002-05-27 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (noload): Properly mask low order word for determining - number of bytes to pop. - -2002-05-27 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Minor logic - cleanup. - -2002-05-27 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (LoadFuncEx): Define via new LoadFuncEx2 macro. - (LoadFuncEx2): Adapt from LoadFuncEx. Provides control of return - value for nonexistent function. - (NtQueryObject): Declare. - (IsDebuggerPresent): Declare via LoadFuncEx2 and always return true if - not available. - * debug.h (being_debugged): Just rely on IsDebuggerPresent return - value. - * dtable.cc (handle_to_fn): New function. - (dtable::init_std_file_from_handle): Attempt to derive std handle's - name via handle_to_fn. - (dtable::build_fhandler_from_name): Fill in what we can in path_conv - structure when given a handle and path doesn't exist. - * fhandler.cc (fhandler_base::open): Don't set the file pointer here. - Use pc->exists () to determine if file exists rather than calling - GetFileAttributes again. - * fhandler.h (fhandler_base::exec_state_isknown): New method. - (fhandler_base::fstat_helper): Add extra arguments to declaration. - (fhandler_base::fstat_by_handle): Declare new method. - (fhandler_base::fstat_by_name): Declare new method. - * fhandler_disk_file (num_entries): Make __stdcall. - (fhandler_base::fstat_by_handle): Define new method. - (fhandler_base::fstat_by_name): Define new method. - (fhandler_base:fstat): Call fstat_by_{handle,name} as appropriate. - (fhandler_disk_file::fstat_helper): Accept extra arguments for filling - out stat structure. Move handle or name specific stuff to new methods - above. - (fhandler_disk_file::open): Use real_path->exists rather than calling - GetFileAttributes again. - * ntdll.h (FILE_NAME_INFORMATION): Define new structure. - (OBJECT_INFORMATION_CLASS): Partially define new enum. - (OBJECT_NAME_INFORMATION): Define new structure. - (NtQueryInformationFile): New declaration. - (NtQueryObject): New declaration. - * path.cc (path_conv::fillin): Define new method. - * path.h (path_conv::fillin): Declare new method. - (path_conv::drive_thpe): Rename from 'get_drive_type'. - (path_conv::volser): Declare new method. - (path_conv::volname): Declare new method. - (path_conv::root_dir): Declare new method. - * syscalls.cc (fstat64): Send real path_conv to fstat as second - argument. - -2002-05-24 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (lsa2str): New function. - (get_priv_list): Call lsa2str instead of sys_wcstombs. - -2002-05-22 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (seteuid): Do not take allow_ntsec into account. - Attempt to use an existing or new token even when the uid - matches orig_uid, but the gid is not in the process token. - Major reorganization after several incremental changes. - (setegid): Do not take allow_ntsec into account. Minor - reorganization after several incremental changes. - -2002-05-26 Christopher Faylor <cgf@redhat.com> - - * debug.h (being_debugged): New macro. - * dtable.cc (dtable::extend): Use new macro. - * exceptions.cc (try_to_debug): Ditto. - * strace.cc (strace::hello): Only output debugging info when we think - we're being debugged. - -2002-05-25 Robert Collins <rbtcollins@hotmail.com> - - * winsup.h: Remove duplicate declarations of malloc_lock and - malloc_unlock. - -2002-05-24 Christopher Faylor <cgf@redhat.com> - - Remove unneeded sync.h, where appropriate, throughout. - Remove unneeded heap.h, where appropriate, throughout. - Remove unneeded exceptions.h, where appropriate, throughout. - Remove unneeded perprocess.h, where appropriate, throughout. - -2002-05-22 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (create_token): Call __sec_user() instead of - sec_user() to remove dependence on allow_ntsec. Verify that - the returned sd is non-null. - -2002-05-25 Robert Collins <rbtcollins@hotmail.com> - - * gmon.c (fake_sbrk): Correctly return -1 on failed malloc's. - -2002-05-24 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::build_fhandler_from_name): Just pass posix path - along to set_name via return_and_clear_normalized_path. - (dtable::build_fhandler): New method with const char * argument. - (dtable::reset_unix_path_name): Eliminate. - (dtable::dup_worker): Use correct build_fhandler method. - * mmap.cc (mmap_record::alloc_fh): Ditto. - * dtable.h (dtable::build_fhandler): New method. - (dtable::reset_unix_path_name): Eliminate. - * fhandler.cc (fhandler_base::set_name): Assume that unix_name has - already been cmalloced. - (fhandler_base::reset_unix_path_name): Eliminate. - (fhandler_base::~fhandler_base): Coercion for cfree. - * fhandler.h (fhandler_base::unix_path_name): Make const char *. - (fhandler_base::win32_path_name): Ditto. - (fhandler_base::reset_unix_path_name): Eliminate. - * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Accommodate - const char *ness of win32_path_name. - * fhandler_socket.cc (fhandler_socket::fstat): Accommodate new set_name - requirements. - * path.cc (path_conv::return_and_clear_normalized_path): New method. - (path_conv::clear_normalized_path): Eliminate. - (path_conv::~path_conv): Ditto. - (path_conv::check): Accommodate new build_fhandler method. - * path.h (path_conv::~path_conv): Eliminate. - (path_conv::clear_normalized_path): Ditto. - (path_conv::return_and_clear_normalized_path): Declare new method. - -2002-05-23 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Make sure any trailing path component is - part of potential normalized posix path. - -2002-05-23 Christopher Faylor <cgf@redhat.com> - - * smallprint.c (__small_vsprintf): Implement '%o' after all these - years. - -2002-05-22 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_virtual::exists): Eliminate path argument. - (fhandler_proc::exists): Ditto. - (fhandler_registry::exists): Ditto. - (fhandler_process::exists): Ditto. - * fhandler_proc.cc (fhandler_proc::exists): Ditto. Use built-in name. - * fhandler_process.cc (fhandler_process::exists): Ditto. - (fstat): Ditto. - * fhandler_registry.cc (fhandler_registry::exists): Ditto. - (fhandler_registry::fstat): Ditto. - * fhandler_virtual.cc (fhandler_virtual::opendir): Ditto. - * path.cc (path_conv::check): Ditto. Add debugging. - -2002-05-22 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (dup): Always call dup2 for error handling. - -2002-05-22 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Revert previous patch. - -2002-05-22 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Define pthread stuff only if _POSIX_THREADS - is defined. - -2002-05-19 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (open_local_policy): Initialize lsa to - INVALID_HANDLE_VALUE instead of NULL. - (get_logon_server_and_user_domain): Test for INVALID_HANDLE_VALUE - instead of NULL. - (create_token): Both of the above. - -2002-05-18 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Make handling of - nlink consistent for remote files. - -2002-05-18 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Always set executable bit for executable - extension. - -2002-05-17 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::lseek): Avoid calling SetFilePointer with - high order part of 64 bit address on OS's which do not support that - kind of operation. Otherwise Windows 95 will become confused. - -2002-05-16 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_raw.cc (fhandler_dev_raw::open): Replace set_errno() - by __seterrno_from_win_error(). - * security.cc (open_local_policy): Ditto. - (get_lsa_srv_inf): Ditto. - (get_user_groups): Ditto. - (get_user_primary_group): Ditto. - (create_token): Ditto. - (subauth): Ditto. - -2002-05-17 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (utimes): Use FILE_WRITE_ATTRIBUTES even on 9x/Me when - opening file for writing timestamp. - * wincap.cc: Remove flag has_specific_access_rights. - * wincap.h: Ditto. - -2002-05-13 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (seteuid): Set default dacl in process token. - Replace in-line code by call to verify_token(). - (setegid): Reverse change from 2002-01-21. Add call to - RevertToSelf and set primary group in impersonation token. - * security.cc (create_token): Store pgrpsid in token security - descriptor, except if it already appears in my_grps. - Use sec_acl() in place of get_dacl(). - (verify_token): Create from code in seteuid(), with tighter checks. - (get_dacl): Deleted. - (get_group_sidlist): Add argument to indicate if pgrpsid is already - in the groups. - * security.h: Define verify_token(). - * autoload.cc: Load GetKernelObjectSecurity(). - -2002-05-13 Mark Bradshaw <bradshaw@staff.crosswalk.com> - - * cygwin.din: Add strlcat and strlcpy. - * include/cygwin/version.h: Increment API minor version number. - -2002-05-09 Pierre Humblet <pierre.humblet@ieee.org> - - * shared.cc (__sec_user): Split into sec_acl() and call orig_sid(). - (sec_acl): Create from part of __sec_user(), except creator/owner. - * security.h: Define sec_acl() and MAX_DACL_LEN. - -2002-05-12 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::open): Avoid using - O_DIROPEN when OS doesn't support it. Return proper errno in that - case. - -2002-05-12 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_read): Change error to EBADF if attempt to read from a - non-readable fd. - -2002-05-11 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (executable_states): For now, make dont_care_if_executable - equivalent to not_executable. - * sys/mount.h: Define MOUNT_NOTEXEC. - * path.h (fs_info): New class. - (path_conv): Move fs-specific fields to new 'fs' structure. - (path_conv::update_fs_info): Move to fs_info and rename to just 'update'. - * path.cc (fs_info::update): Ditto. Return 'true' if successful. - (fillout_mntent): Add ',noexec' to list of reported options. - -2002-05-11 Christopher Faylor <cgf@redhat.com> - - * fhandler_virtual.cc (fhandler_virtual::close): Quiet a compiler - warning. - -2002-05-10 Christopher January <chris@atomice.net> - - * autoload.cc: Add dynamic load statements for - 'ZwQueryInformationProcess' and 'ZwQueryVirtualMemory'. - * fhandler.h: Change type of bufalloc and filesize members of - fhandler_virtual from int to size_t. Change type of position member - from __off32_t to __off64_t. Add new fileid member to fhandler_virtual - class. Make seekdir take an __off64_t argument. Make lseek take an - __off64_t argument. Add fill_filebuf method to fhandler_virtual. Add - fill_filebuf method to fhandler_proc. Add fill_filebuf method to - fhandler_registry. Add fill_filebuf method to fhandler_process. Add - saved_pid and saved_p members to fhandler_process. - * fhandler_proc.cc (proc_listing_array): Add 'loadavg', 'meminfo', and 'stat'. - (proc_fhandlers array): Ditto. - (fhandler_proc::open): Use fill_filebuf to flesh out the file contents. - (fhandler_proc::fill_filebuf): New method. - (fhandler_proc::format_proc_meminfo): Ditto. - (fhandler_proc::format_proc_stat): Ditto. - (fhandler_proc::format_proc_uptime): Ditto. - * fhandler_process.cc (process_listing): Add 'stat' and 'statm'. - (fhandler_process::fstat): Find the _pinfo structure for the process - named in the filename. Return ENOENT if the process is no longer - around. Set the gid and uid fields of the stat structure. - (fhandler_process::open): Store pid and pointer to _pinfo structure in - saved_pid and saved_p respectively. Use fill_filebuf to flesh out file - contents. - (fhandler_proc::fill_filebuf): New method. - (format_process_stat): New function. - (format_process_status): Ditto. - (format_process_statm): Ditto. - (get_process_state): Ditto. - (get_mem_values): Ditto. - * fhandler_registry.cc (fhandler_registry::seekdir): Change argument - type from __off32_t to __off64_t. - (fhandler_registry::fill_filebuf): New method. - * fhandler_virtual.cc (fhandler_virtual::seekdir): Change argument type - from __off32_t to __off64_t. - (fhandler_virtual::lseek): Ditto. - (fhandler_virtual::fill_filebuf): New method. - (fhandler_virtual::fhandler_virtual): Initialise fileid to -1. - * wincap.cc: Set flag has_process_io_counters appropriately. - * wincap.h: Add flag has_process_io_counters. - -2002-05-09 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_write): Change error to EBADF if attempt to write to a - non-writeable fd. - -2002-05-08 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cygheap_user): Add member `orig_psid'. - Add method `orig_sid()'. - * cygheap.cc (cygheap_user::set_sid): Maintain orig_psid. - -2002-04-28 Norbert Schulze <norbert.schulze@web.de> - - * localtime.cc (tzsetwall): Use wildabbr if generated timezone name - length < 3. - -2002-05-05 Pierre Humblet <pierre.humblet@ieee.org> - - * spawn.cc (spawn_guts): Move call to set_process_privilege() - to load_registry_hive(). - * registry.cc (load_registry_hive): ditto. - * fork.cc (fork_parent): Call sec_user_nih() only once. - -2002-05-04 Christopher January <chris@atomice.net> - - * path.h (path_conv::path_conv): Initialise normalized_path to NULL. - -2002-05-03 Christopher Faylor <cgf@redhat.com> - - * net.cc (getdomainname): Change second argument of getdomainname to - size_t. - -2002-05-03 Christopher January <chris@atomice.net> - - * fhandler_proc.cc (proc_listing): Add '.' and '..' to directory - listing. - (fhandler_proc::open): Change use of mode to flags. If the file does - not exist already, fail with EROFS if O_CREAT flag is set. Change - EROFS error to EACCES error when writing to a file. Use cmalloc to - allocate memory for filebuf. - (fhandler_proc::close): Use cfree to free filebuf. - (fhandler_proc::get_proc_fhandler): Properly detect attempts to access - unknown subdir. - * fhandler_process.cc (process_listing): Add '.' and '..' to directory - listing. - (fhandler_process::open): Use cmalloc to allocate memory for filebuf. - (fhandler_process::close): Use cfree to free filebuf. - * fhandler_registry.cc (registry_listing): Add . and '..' to directory - listing. - (fhandler_registry::open): Move check for open for writing before - open_key. Use cmalloc to allocate memory for filebuf. - (fhandler_registry::close): Use cfree to free filebuf. - (fhandler_registry::telldir): Use lower 16 bits of __d_position as - position in directory. - (fhandler_registry::seekdir): Ditto. - * fhandler_virtual.cc (fhandler_virtual::write): Change EROFS error to - EACCES error. - (fhandler_virtual::open): Set the NOHANDLE flag. - (fhandler_virtual::dup): Add call to fhandler_base::dup. Allocate - child's filebuf using cmalloc. Copy filebuf from parent to child. - (fhandler_virtual::close): Use cfree to free filebuf. - (fhandler_virtual::~fhandler_virtual): Ditto. - (from Chris Faylor <cgf@redhat.com>). - (fhandler_registry::readdir): Add support for '.' and '..' files in - subdirectories of /proc/registry. - * path.cc (path_conv::check): Do not return ENOENT if a file is not - found in /proc. - -2002-05-02 Christopher Faylor <cgf@redhat.com> - - * fhandler_proc.cc (fhandler_proc::fstat): Use fhandler name rather - than path_conv name. - (fhandler_proc::open): Ditto. - * fhandler_process.cc (fhandler_process::fstat): Use fhandler name - rather than path_conv name. - (fhandler_process::open): Ditto. - * fhandler_registry.cc (fhandler_registry::fstat): Use fhandler name - rather than path_conv name. - (fhandler_registry::open): Ditto. - * path.cc (path_conv::check): Don't copy posix path when virtual. - (mount_info::conv_to_win32_path): Don't zero string when isproc. Just - derive normal windows path. - - * path.h (path_conv::clear_normalized_path): Declare new method. - * path.cc (path_conv::clear_normalized_path): Define new method. - * dtable.cc (build_fhandler_from_name): Clear normalized path when - finished to conserve space. - -2002-05-02 Christopher Faylor <cgf@redhat.com> - - * fhandler_proc.cc (fhandler_proc::fstat): Prime with information from - fhandler_base::fstat. Use defines rather than constants for permission - settings. - -2002-04-30 Eric Blake <ebb9@email.byu.edu> - - * path.cc (hash_path_name): Improve hash function strength. - -2002-05-02 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (__pthread_cond_dowait): Fix a race on signalling from a - thread woken by the same condition variable it's signalling on. Thanks - to Michael Beach for the report and test case. - -2002-05-02 Christopher Faylor <cgf@redhat.com> - - * path.h (pathconv_arg): Add PC_POSIX. - (path_conv): Add normalized_path field. - * path.cc (path_conv::~path_conv): New destructor. - (path_conv::check): Set normalized_path, where appropriate. - * dtable.cc (build_fhandler_from_name): Use normalized path from - path_conv. - * syscalls.cc (chroot): Ditto. - - * cygheap.h: Remove path_prefix_p declaration. - -2002-02-26 Christopher January <chris@atomice.net> - Christopher Faylor <cgf@redhat.com> (minor fixups) - - * Makefile.in: Add fhandler_proc.o, fhandler_registry.o, - fhandler_process.o and fhandler_virtual.o. - * dtable.cc (dtable::build_fhandler): Add entries for FH_PROC, - FH_REGISTRY and FH_PROCESS. Set unix_name to the normalized posix - path. - * fhandler.h: Add constants for FH_PROC, FH_REGISTRY and FH_PROCESS. - Add class declarations for fhandler_virtual, fhandler_proc, - fhandler_registry and fhandler_virtual. Update fhandler_union - accordingly. - * fhandler_proc.cc: New file. Add implementation for fhandler_proc. - * fhandler_virtual.cc: New file. Add implementation for - fhandler_virtual. - * fhandler_process.cc: New file. Add implementation for - fhandler_process. - * fhandler_registry.cc: New file. Add implementation for - fhandler_registry. - * path.cc (isproc): New macro. - (isvirtual_dev): Ditto. - * path.cc (path_conv::check): Add check for virtual devices. - * path.cc (mount_info::conv_to_win32_path): Convert paths in /proc to - empty Win32 paths. - * path.cc (chdir): Replace check for FH_CYGDRIVE with more generic - isvirtual_dev macro. Force setting of posix path for virtual - fhandlers. - * path.h (path_prefix_p): Declare. - - -Wed May 1 16:06:02 2002 Jason Tishler <jason@tishler.net> - - * include/cygwin/types.h: Include <sys/sysmacros.h>. - -Wed Apr 17 11:27:04 2002 Jason Tishler <jason@tishler.net> - - * security.cc (get_lsa_srv_inf): Prevent extraneous backslashes for - the NT Domain case. - -2002-04-12 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_accept): Set socket type for accepted socket. - (socketpair): Set socket type for both sockets. - -2002-04-12 Egor Duda <deo@logos-m.ru> - - * fhandler.h (class fhandler_socket): New member to store socket type. - (fhandler_socket::get_socket_type): Access it. - (fhandler_socket::set_socket_type): Ditto. - * net.cc (cygwin_socket): Store socket type. - (cygwin_connect): Disable security checks for connectionless sockets. - (cygwin_accept): Ditto. - -2002-04-09 Mark Bradshaw <bradshaw@staff.crosswalk.com> - - * cygwin.din: Add strptime. - * include/cygwin/version.h: Increment API version number. - -2002-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork_child): Call fixup_mmaps_after_fork() somewhat earlier. - -2002-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Set read-only bit in - file_attributes when adequate. - -2002-03-28 Christopher Faylor <cgf@redhat.com> - - * times.cc (gettimeofday): Fix typo in previous patch. - -2002-03-27 Wu Yongwei <adah@netstd.com> - - * times.cc (gettimeofday): Revert to setting timezone info if tz != - NULL. - -2002-03-21 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Always set - st_[ug]id to value derived from get_file_attributes. - -2002-03-21 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (find_exec): Return input if file not found. - -2002-03-19 Boris Schaeling <boriss@web.de> - - * poll.cc (poll): Add support for invalid descriptors. - -2002-03-15 Robert Collins <rbtcollins@hotmail.com> - - * fhandler.h (fhandler_termios::lseek): Override lseek. - * fhandler_termios.cc (fhandler_termios::lseek): Implement this. - -2002-03-15 Christopher Faylor <cgf@redhat.com> - - * cygserver.cc: Include stdlib.h for exit declaration. - * threaded_queue.cc: Ditto. - -2002-03-15 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (pinfo::init): Use PID_ALLPIDS flag to control when a - redirected block should be marked as nonexistent. - (winpids::add): Use PID_ALLPIDS when looking for all pids. - * cygwin.h (PID_ALLPIDS): New enum element. - -2002-03-15 Corinna Vinschen <corinna@vinschen.de> - - * glob.c (stat32_to_STAT): New function. - (g_lstat): Call user space functions always with 32 bit struct stat - as a workaround. - (g_stat): Ditto. - * include/glob.h (struct glob): Don't prototype function pointers - when compiling Cygwin. - -2002-03-14 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (pinfo::init): Properly handle execed process stub when - PID_NOREDIR is specified. - -2002-03-13 Boris Schaeling <boriss@web.de> - - * poll.cc (poll): Remove variable open_fds. Rearrange and add code to - fix settings of revents. - -2002-03-13 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::map_map): Return -1 if VirtualProtect fails. - (list::erase): New method with no argument. Erase latest record - added. - (mmap64): Fail if map_map() fails. - -2002-03-12 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sysconf): Fix condition. - -2002-03-11 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (msync): Check area given by addr and len for being a - contigeous mmap'd region. - -2002-03-11 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork_child): Call fixup_mmaps_after_fork() before - closing parent process handle. Call fixup_mmaps_after_fork() - with parent process handle as parameter. - * mmap.cc (mmap_record::access): New method. - (fixup_mmaps_after_fork): Take process handle as parameter. - In case of FILE_MAP_COPY access, copy valid memory regions to child. - * pinfo.h (fixup_mmaps_after_fork): Change prototype accordingly. - -2002-03-07 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NetGetDCName): Add symbol. - (NetServerEnum): Remove symbol. - * security.cc (get_lsa_srv_inf): Call NetGetDCName() instead of - NetServerEnum() since it's faster. Don't call it at all if machine - is not a domain member. - -2002-03-06 Christopher Faylor <cgf@redhat.com> - - * path.cc (normalize_posix_path): Avoid runs of '.'s > 2. - -2002-03-05 Christopher Faylor <cgf@redhat.com> - - * errno.cc: Change EPERM associated text to "Operation not permitted" - throughout. - -2002-03-05 Christopher Faylor <cgf@redhat.com> - - * fhandler_socket.cc (fhandler_socket::close): Respond to signals while - looping, waiting for socket to close. Superstitiously clear last error - when WSAEWOULDBLOCK. - -2002-03-05 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_transport_pipes.cc (transport_layer_pipes::transport_layer_pipes): - Always init - until static members work correctly. - * shm.cc (shmget): Initialize the security descriptor - thanks Corinna! - * include/sys/ipc.h: Make the ipc control constants partitioned off from the sem - control constants. - -2002-03-04 Christian Lestrade <christian.lestrade@free.fr> - - * include/sys/termios.h: Define _POSIX_VDISABLE. Define CCEQ macro. - * fhandler_termios.cc: Include <sys/termios.h>. - (line_edit): Recognize disabled c_cc[] chars. Ignore VDISCARD when - not in ICANON mode. - -2002-03-04 Dmitry Timoshkov <dmitry@baikal.ru> - - * syscalls.cc (truncate64): Use ftruncate64 directly to not lose - upper 32 bits. - -2002-03-04 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_shm.cc (delete_shmnode): New function. - (client_request_shm::serve): Use it. - -2002-03-04 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_shm.cc (client_request_shm::serve): Implement SHM_DETACH. - * shm.cc (shmdt): Implement. - -2002-03-04 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_shm.cc: Run indent. - (deleted_head): New global for storing shm id's pending deletion. - (client_request_shm::serve): Return ENOSYS for invalid request types. - Implement SHM_DEL - delete a shm id. - * cygserver_shm.h (SHM_DEL): New type value. - * shm.cc (delete_inprocess_shmds): New function, does what it's name implies. - (shmctl): Implement shm_rmid control type. - -2002-03-04 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in (install): Remove install-bin to allow make install to work. - -2002-03-03 Robert Collins <rbtcollins@hotmail.com> - - * shm.cc (shmat): Prevent a compile error. - (shmdt): Set errno as this function is incomplete. - -2002-02-28 Christopher Faylor <cgf@redhat.com> - - * times.cc: Remove if 0'd code. Clean up slightly. - -2002-02-28 Robert Collins <rbtcollins@hotmail.com> - - * Merge cygwin_daemon into head minus the new shm and ipc exports. - -2002-02-28 Robert Collins <rbtcollins@hotmail.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): More debugging. - (fhandler_tty_slave::read): Fix printf type for the handle. - * tty.cc (tty::common_init): Add a FIXME for security. - -2002-01-29 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in (OBJS): Remove duplicate localtime.o. - -2002-01-17 Robert Collins <rbtcollins@hotmail.com> - - * cygserver.cc (check_and_dup_handle): Consolidate the two variants for - simplicity. - Add Some basic debug output. - (client_request_attach_tty::serve): Use the new debug_printf for clarity. - Mark the duplicated handles as inheritable - fixup_after_fork() doesn't reopen - tty's. - -2002-01-16 Robert Collins <rbtcollins@hotmail.com> - - * cygserver.cc (transport): Correct scope. - (client_request_attach_tty::serve): Add more debug information. - Fix erroneous use of transport instead of conn. - * cygserver_transport_pipes.cc (transport_layer_pipes::close): More debug. - (transport_layer_pipes::read): Ditto. - (transport_layer_pipes::write): Ditto. - (transport_layer_pipes::impersonate_client): Ditto. - -Mon Oct 8 7:41:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * cygserver.cc (server_request::process): Rename client_request_shm_get to - client_request_shm. - * cygserver_process.cc (process_cache::add): Rename to add_task. - Use process_cleanup instead of process_request. - (process_cache::remove_process): New method. - (process::process): Initialize new members. - (process::~process): New member. - (process::cleanup): New method. - (process::add_cleanup_routine): New method. - (process_request::process): Rename to process_cleanup. - Call the process object's cleanup method and then delete it. - (process_process_param::request_loop): Remove the signalling process. - * cygserver_shm.cc: Globally rename client_request_shm_get to client_request_shm. - (client_request_shm_get::serve): Handle attach request counting. - * cygserver_shm.h: Globally rename client_request_shm_get to client_request_shm. - (class shm_cleanup): New class. - * shm.cc: Globally rename client_request_shm_get to client_request_shm. - (client_request_shm::client_request_shm): New constructor for attach requests. - (shmat): Use it. - * include/cygwin/cygserver_process.h (class process_request): Rename to - process_cleanup. - (class cleanup_routine): New class. - (class process): New members and methods to allow calling back when the process - terminates. - -Thu Oct 4 14:12:00 2001 Robert Collins <rbtcollins@hotmail.com> - * cygserver.cc (request_loop): Make static. - (main): Use new cache constructor syntax. - Start cache worker threads. - Cleanup the cache at shutdown. - * cygserver_process.cc: Run indent. - (process_cache::process_cache): Add a trigger to use when adding a process. - (process_cache::process): Move process_entry to process. - Insert at the end of the list. - Trigger the request loop when new process's inserted. - (process_cache::process_requests): Do it. - (process_cache::add): New method. - (process_cache::handle_snapshot): New method. - (process::process): Merge in the process_entry fields. - (process::handle): Make a stub function. - (process::exit_code): New method. - (process_request::process): New method. - (process_process_param::request_loop): New method. - * cygserver_shm.cc: New header dependency - threaded_queue.h. - * threaded_queue.cc (threaded_queue::cleanup): Clearer messages. - (queue_process_param::stop): Short spinlock on interruptible threads. - * threaded_queue.h (class threaded_queue): New constructor. - * include/cygwin/cygserver_process.h (process_request): New class. - (process_entry): Remove. - (process): Merge in process_entry. - (process_cache): Inherit from threaded_queue. - -Tue Oct 2 23:24:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * cygserver.cc (class server_process_param): Use new constructor syntax. - * cygserver_process.cc (process_cache::~process_cache): New function. - * threaded_queue.cc: Define condition debug_printf. - Run indent. - (threaded_queue::cleanup): Move queue_process_param guts to a method. - (threaded_queue::process_requests): Ditto. - (queue_process_param::queue_process_param): New method. - (queue_process_param::~queue_process_param): Ditto. - (queue_process_param::start): Ditto. - (queue_process_param::stop): Ditto. - * threaded_queue.h (class queue_process_param): Add support for - interruptible request loops. - * cygwin/include/cygwin/cygserver_process.h (class process_cache): Add - destructor. - -Tue Oct 2 23:24:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * cygserver_client.cc: New flag allow_daemon to disable the daemon completely. - (cygserver_request): Check it. - (cygserver_init): Ditto. - * environ.cc (parse_thing): Add (no)daemon option. - -Tue Oct 2 23:00:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * shm.cc: Update to handle include changes from HEAD. - -Tue Oct 2 16:06:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in: Remove cygserver_shm.o from cygwin1.dll. - Rename cygserver_shm_outside.o to cygserver_shm.o. - * cygserver.cc (server_request::process): Use the new client_request - constructor. - * cygserver_client.cc: Remove the #ifdef's stubs for the server method - within cygwin. - (client_request_attach_tty::client_request_attach_tty): Use the new - client_request constructor. - (client_request_shutdown::client_request_shutdown): Ditto. - (client_request::client_request): Ditto. - * cygserver_shm.cc (client_request_shm_get::serve): Remove the - #ifdef'd stub for in-cygwin builds. - (client_request_shm_get::client_request_shm_get): Use the new - client_request constructor, and remove the in-cygwin variants. - * cygserver_shm.h (class client_request_shm_get): #ifndef test the - serve method - it's only used in cygserver. - * shm.cc (client_request_shm_get::client_request_shm_get): New function. - * include/cygwin/cygserver.h (request_header): New constructor. - (class client_request): Use it. - New constructor accepting the header size. - #ifndef test the server method - it's only used within cygserver. - (client_request_get_version): #ifdef test the server method. - (client_request_shutdown): Ditto. - (client_request_attach_tty): Ditto. - -Tue Oct 2 9:57:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in: add threaded_queue.o to cygserver.exe. - * cygserver.cc: Include threaded_queue.h - (class server_request): Inherit from queue_request. - (class server_process_param): Inherit from queue_process_param. - (class server_request_queue): Inherit from threaded_queue. - (request_loop): Adjust for new types. - (server_request_queue::process_requests): Remove guts to - threaded_queue::process_requests. - (server_request::server_request): Adjust for new types. - (worker_function): Delete. - (server_request_queue::create_workers): Delete. - (server_request_queue::cleanup): Delete. - (server_request_queue::add): Move guts to threaded_queue::add. - * threaded_queue.cc: New file. - * threaded_queue.h: New file. - -Mon Oct 1 12:38:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * cygserver.cc (client_request::serve): New function. - * cygserver_process.cc: Inlude <pthread.h> for pthread_once. - (process_cache::process_cache): Initialise a crtiical section for write access. - (process_cache::process): Use the critical section. Also add missing entries to - the cache. - (do_process_init): New function to initalise class process static variables. - (process::process): Ensure that the process access critical section is - initialised. - (process::handle): Close the handle of old process's when they have terminated - and we are returning the handle for a process with the same pid. - * cygserver_shm.cc: Run indent. - Include cygserver_process.h to allow process cache functionality. - (client_request_shm_get::serve): New parameter for process cache support. - Use the process cache, not OpenProcess to get a handle to the originating process. - Fix a handle leak with token_handle. - * cygserver_shm.h (class client_request_shm_get): Update ::serve for process - cache support. - * cygserver_transport_pipes.cc: Redefine debug_printf to be conditional on DEBUG. - * include/cygwin/cygserver.h: Do not implement client_request::serve in the - header. - * include/cygwin/cygserver_process.h (class process_cache): Add a write access - critical section to prevent races when requests from a multithreaded - application arrive. - -Sun Sep 30 23:41:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in: Add cygserver_process.o to cygserver.exe. - * cygserver.cc: Include signal.h and cygwin_version.h. - Define debug_printf as a macro. - Define DEBUG to a value. - (client_request_attach_tty::serve): Add beginning of process cache support. - Change from #ifdef DEBUG to work with new DEBUG style. - (client_request_get_version::serve): Add beginning of process cache support. - (class server_request): New prototype for support of process cache. - (class queue_process_param): New class to allow request loop threading. - (class server_request_queue): Add beginning of process cache support. - Allow request loop threading. - (request_loop): Thread function for request loops. - (server_request_queue::process_requests): Initiator for threaded request loops. - (client_request_shutdown::serve): Add beginning of process cache support. - (server_request::server_request): Ditto. - (server_request::process): Use debug_printf. Add beginning of process cache - support. - (server_request_queue::cleanup): Kill off any request loop threads. - (server_request_queue::add): Add beginning of process cache support. - (handle_signal): Trigger a shutdown. - (main): Print out some useful info at startup - version, date time. - Add process cache support. - Spawn a separate thread for the transport request loop, thus allowing concurrent - support for multiple transports. - * cygserver_client.cc (client_request_get_version::serve): Add process cache - support. - (client_request_attach_tty::serve): Add process cache support. - (client_request_shutdown::serve): Add process cache support. - * cygsserver_process.cc: New file with the process cache support. - * cygserver_shm.cc: Redefine debug_printf to allow conditional output. - * cygwin.din: Export shmdt(). - * shm.cc: Run indent. - Update FIXME's. - (shmdt): New function. - * include/cygwin/cygserver.h (class client_request): Add process cache support. - (class client_request_get_version): Ditto. - (class client_request_shutdown): Ditto. - (class client_request_attach_tty): Ditto. - * include/cygwin/cygserver_process.h: New header for process cache support. - -Sun Sep 30 8:52:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * include/cygwin/cygserver_transport.h: Add copyright header. - * include/cygwin/cygserver_transport_pipes.h: Ditto. - * include/cygwin/cygserver_transport_sockets.h: Ditto. - -Sat Sep 29 20:40:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * Makefile.in: Add cygserver_transport_sockets.o to DLL_OFILES. - Add cygserver_transport_sockets_outside.o to cygserver.exe. - * cygserver.cc: Include new include files. - * cygserver_client.cc: Ditto. - * cygserver_shm.h: No need to include <sys/socket.h> now. - * cygerver_transport.cc: Include new include files. - (transport_layer_base::transport_layer_base): Strip back to a stub. - (transport_layer_base::listen): Ditto. - (transport_layer_base::accept): Ditto. - (transport_layer_base::close): Ditto. - (transport_layer_base::read): Ditto. - (transport_layer_base::write): Ditto. - (transport_layer_base::connect): Ditto. - * cygserver_transport_pipes.cc: Include new header - "cygwin/cygserver_transport_pipes.h". - * cygserver_transport_sockets.cc: New file. - * dcrt0.cc: No need to include <sys/socket.h> now. - * fhandler_tty.cc: Ditto. - * tty.cc: Ditto. - * include/cygwin/cygserver_transport.h: Strip the base class to a stub. - Remove the cygserver_transport_pipes class. - * include/cygwin/cygserver_transport_pipes.h: New file. - * include/cygwin/cygserver_transport_sockets.h: New file. - -Tue Sep 25 16:22:00 2001 Robert Collins <rbtcollins@hotmail.com> - - * autoload.cc: Add dynamic load statement for 'ImpersonateNamedPipeClient'. - * Makefile.in: Add new object files, and build instructions for cygserver.exe. - * cygwin.din: Export ftok, shmat, shmctl and shmget. - * dcrt0.cc: Additional includes for cygserver support. - (dll_crt0_1): Initialise the cygserver client. - * fhandler.h (fhandler_tty): New method cygserver_attach_tty. - * fhandler_tty.cc: Additional includes for cygserver support. - (fhandler_tty_slave::open): Attempt to use the cygserver when obtaining - handles from the parent process. On failure or 9x use the current method. - (fhandler_tty_slave::cygserver_attach_tty): New function. - * fork.cc (fork_child): Fixup shm memory mapped areas. - * pinfo.h: Declare fixup_shms_after_fork(). - * security.h: Declare alloc_sd(). - * tty.cc: Additonal includes to support cygserver. - (tty::common_init): Don't allow others to open us if the cygserver is running. - * winsup.h: Declare cygserver_running. - * cygserver.cc: New file. - * cygserver_client.cc: New file. - * cygserver_shm.cc: New file. - * cygserver_shm.h: New file. - * cygserver_transport.cc: New file. - * cygserver_transport_pipes.cc: New file. - * ipc.cc: New file. - * shm.cc: New file. - * include/cygwin/cygserver.h: New file. - * include/cygwin/cygserver_transport.h: New file. - * include/sys/ipc.h: New file. - * include/sys/shm.h: New file. - -2002-02-28 Robert Collins <rbtcollins@hotmail.com> - - * thread.cc (semaphore::TryWait): Set errno as required by posix 1003.1. - (__sem_wait): Ditto. - (__sem_trywait): Ditto. - -2002-02-27 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-02-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (fstat64): New symbol. - (ftruncate64): Ditto. - (lseek64): Ditto. - (lstat64): Ditto. - (mmap64): Ditto. - (seekdir64): Ditto. - (stat64): Ditto. - (telldir64): Ditto. - (truncate64): Ditto. - * dir.cc (telldir64): New function. - (telldir): Call telldir64(). - (seekdir64): New function. - (seekdir): Call seekdir64(). - * fhandler.h: Redefine all methods using __off32_t to use __off64_t. - * fhandler.cc: Use __off64_t and struct __stat64 throughout. - * fhandler_clipboard.cc: Ditto. - * fhandler_disk_file.cc: Ditto. - * fhandler_dsp.cc: Ditto. - * fhandler_floppy.cc: Ditto. - * fhandler_mem.cc: Ditto. - * fhandler_random.cc: Ditto. - * fhandler_socket.cc: Ditto. - * fhandler_tape.cc: Ditto. - * fhandler_zero.cc: Ditto. - * pipe.cc: Ditto. - * glob.c: Ditto, call lstat64 and stat64 in Cygwin. - * mmap.cc: Use __off64_t throughout. - (mmap64): New function. - * sec_acl.cc (acl_worker): Use struct __stat64, call stat64 and lstat64. - * syscalls.cc (lseek64): New function. - (stat64_to_stat32): Ditto. - (fstat64): Ditto. - (stat64): Ditto. - (lstat64): Ditto. - (ftruncate64): Ditto. - (truncate64): Ditto. - (_fstat): Call fstat64. - (_stat): Call stat64. - (cygwin_lstat): Rename to avoid declaration problem. Call lstat64. - (stat_worker): Use struct __stat64. - (access): Ditto. - (ftruncate): Call ftruncate64. - (truncate): Call truncate64. - * wincap.cc: Set flag has_64bit_file_access appropriately. - * wincap.h: Add flag has_64bit_file_access. - * winsup.h (ILLEGAL_SEEK): Define as __off64_t. - (stat_dev): Declare using struct __stat64. - (stat_worker): Ditto. - * include/cygwin/stat.h (struct __stat32): Define if compiling Cygwin. - (struct __stat64): Ditto. - (struct stat): Revert definition with explicitly sized datatypes. - Eliminate sized field names. - * include/cygwin/types.h (blksize_t): New type. - (__blkcnt32_t): Ditto. - (__blkcnt64_t): Ditto. - (blkcnt_t): Ditto. - -2002-02-22 Christopher Faylor <cgf@redhat.com> - - * sync.h (new_muto): Just accept an argument which denotes the name of - the muto. Use this argument to construct static storage. - * cygheap.cc (cygheap_init): Reflect above change. - * exceptions.cc (events_init): Ditto. - * malloc.cc (malloc_init): Ditto. - * path.cc (cwdstuff::init): Ditto. - * cygheap.h (cwdstuff): Change name of lock element to make it less - generic. - * path.cc (cwdstuff::get_hash): Ditto. - (cwdstuff::get_initial): Ditto. - (cwdstuff::set): Ditto. - (cwdstuff::get): Ditto. - * sigproc.cc (proc_subproc): Ditto. - - * debug.cc (lock_debug): Change to method. Use method rather than - macro throughout. - - * tty.h (tty_min::kill_pgrp): Declare new method. - * fhandler_termios.cc (tty_min::kill_pgrp): New method. - (fhandler_termios::line_edit): Use new method for killing process. - * dcrt0.cc (do_exit): Ditto. - - * dtable.cc (dtable::get_debugger_info): New method for inheriting - dtable info from a debugger. - * tty.cc (tty_init): Attempt to grab file handle info from parent - debugger, if appropriate. - - # dtable.cc (dtable::stdio_init): Make this a method. - (dtable::init_std_file_from_handle): Don't set fd unless it's not open. - (dtable::build_fhandler_from_name): Move name setting to - dtable::build_fhandler. - (dtable::build_fhandler): Add win32 name parameter. - * dcrt0.cc (dll_crt0_1): Change to use dtable stdio_init. - * dtable.h (dtable): Reflect build_fhandler parameter change. - * mmap.cc (mmap_record::alloc_fh): Don't set name parameter in - build_fhandler. - * net.cc (fdsock): Remove set_name call since it is now handled by - build_fhandler. - - * sigproc.cc (proc_subproc): Release muto as early as possible. - -2001-02-22 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.c (rn): Allow long long values. - (__small_vsprintf): Add 'D', 'U' and 'X' formats for long long - parameters. - -2002-02-19 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::puts_readahead): Remove default parameter - setting. Newer gcc's complain about this. - (fhandler_base::set_readahead_valid): Ditto. - * fhandler_dsp.cc (Audio::open): Ditto. - (fhandler_dev_dsp::open): Ditto. - -2002-02-19 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_parent): Use sec_user_nih to control process/thread - inheritance/permission. - * spawn.cc (spawn_guts): Ditto. - * security.cc (create_token): Initialize token so that it is not tested - for bogus value later. Use sec_user to control process/thread - creation. - * security.h (__sec_user): Rename declaration from sec_user. - (sec_user_nih): Declare here as inline function wrapper for __sec_user. - (sec_user): Ditto. - * sigproc.cc (czombies): Allocate a character array for zombies to - avoid constructor overhead - (extremely hackish, I know). - (cpchildren): Ditto. - (pchildren): New define. - (zombies): Ditto. - (getsem): Use sec_user_nih to control semaphore inheritance/permission. - -2002-02-16 Christopher Faylor <cgf@redhat.com> - - * times.cc (hires::prime): Restore thread priority on failure - condition. - - * uinfo.cc (uinfo_init): Use more robust method for determining if - process was invoked from a non-cygwin process. - - * sync.h (muto::init): Eliminate "inheritance" parameter. - (new_muto): Reflect removal of parameter. - * sync.cc (muto::init): Ditto. - * cygheap.cc (cygheap_init): Ditto. - * debug.cc (threadname_init): Ditto. - * exceptions.cc (events_init): Ditto. - * malloc.cc (malloc_init): Ditto. - * path.cc (cwdstuff::init): Ditto. - * sigproc.cc (sigproc_init): Ditto. - - * grp.cc (group_lock): Use different method for locking with static - member. - (read_etc_group): REALLY ensure that read lock mutex is released. - * passwd.cc (passwd_lock): Use different method for locking with static - member. - (read_etc_passwd): REALLY ensure that read lock mutex is released. - - * shared.cc (sec_user): Correct reversed inheritance test. - -2002-02-15 Christopher Faylor <cgf@redhat.com> - - * hires.h (hires::usecs): Rename from utime. Accept an argument. - * strace.cc (strace::microseconds): Use hires class for calculating - times. - * sync.h (new_muto): Use NO_COPY explicitly in declaration. - * times.cc (gettimeofday): Reflect change in usecs argument. - (hires::usecs): Ditto. Changed name from utime. - * winsup.h (NO_COPY): Add nocommon attribute to force setting aside - space for variable. - * regcomp.c (REQUIRE): Add a void cast to bypass a warning. - -2002-02-15 Christopher Faylor <cgf@redhat.com> - - * hires.h: New file. - * times.cc (gettimeofday): Use hires class for calculating current time. - (hires::prime): New method. - (hires::utime): Ditto. - -2002-02-14 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h (cygwin_getinfo_types): New CW_STRACE_ACTIVE. - * external.cc (cygwin_internal): Handle CW_STRACE_ACTIVE. - -2002-02-14 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (unused_sig_wrapper): Eliminate unused parameter to - asm. - * external.cc (cygwin_internal): Change CW_STRACE_ON to - CW_STRACE_TOGGLE. - * strace.cc (strace::hello): Toggle strace on and off. - * sync.cc (muto::init): Rename from constructor. - * sync.h (muto::new): Delete. - (muto::delete): Ditto. - (new_muto): Simplify. Use muto.init for nearly everything. - * uinfo.cc (uinfo_init): Avoid closing a NULL handle. - * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_STRACE_OFF to - CW_STRACE_TOGGLE. Delete CW_STRACE_OFF. - * include/sys/strace.h (strace): Add "inited" field. - -2001-02-12 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/acl.h: Fix definition of aclent_t. - -2002-02-10 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_OFILES): Consolidate object files. - -2002-02-10 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h, cygheap.h, fhandler_clipboard.cc, fhandler_dsp.cc, - fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc, - fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc, - pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc, - security.h, thread.h, uinfo.cc, include/cygwin/acl.h: Fix copyright. - -2002-02-10 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h, cygheap.h, dcrt0.cc, dir.cc, fhandler.cc, fhandler.h, - fhandler_clipboard.cc, fhandler_disk_file.cc, fhandler_dsp.cc, - fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc, - fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc, - pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc, - security.h, spawn.cc, syscalls.cc, thread.h, uinfo.cc, winsup.h: - Change usage of uid_t to __uid16_t, gid_t to __gid16_t and - off_t to __off32_t throughout. Use INVALID_UID, INVALID_GID and - INVALID_SEEK instead casting -1 to the appropriate type. - * winsup.h: Define INVALID_UID, INVALID_GID and INVALID_SEEK. - * include/cygwin/acl.h: Define internal __aclent16_t and __aclent32_t - types. Don't declare acl functions when compiling Cygwin. - * include/cygwin/grp.h: Declare getgrgid() and getgrnam() with - correct types for internal usage. - -2002-02-10 Corinna Vinschen <corinna@vinschen.de> - - Patch suggested by Pierre A. Humblet <Pierre.Humblet@ieee.org>: - * uinfo.cc (internal_getlogin): Try evaluating user by SID even if - ntsec is off. - (uinfo_init): Set primary group even if ntsec is off. - -2002-02-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/grp.h: New file. - * include/cygwin/stat.h: Ditto. - * include/cygwin/types.h: Add definitions for __off32_t, - __off64_t, off_t, __uid16_t, __uid32_t, uid_t, __gid16_t, - __gid32_t and gid_t. - * include/sys/cygwin.h: Use correct uid and gid types. - -2002-02-09 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::dup2): Revert previous patch. - * fhandler.h: Ditto. - (fhandler_socket::recv): Define new method. - (fhandler_socket::send): Ditto. - * fhandler_socket.cc (fhandler_socket::recv): New method. - (fhandler_socket::send): Ditto. - (fhandler_socket::read): Call fhandler_socket::recv() now. - (fhandler_socket::write): Call fhandler_socket::send() now. - * net.cc (class wsock_event): Move definition to wsock_event.h. - (fdsock): Revert previous patch. - (cygwin_recv): Move implementation to fhandler_socket::recv(). - (cygwin_send): Move implementation to fhandler_socket::send(). - * wsock_event.h: New file. - -2002-02-06 Alexander Gottwald <Alexander.Gottwald@s1999.tuchemnitz.de> - - * net.cc (get_2k_ifconf): Create interface entries for tokenring cards. - -2002-02-08 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::dup2): Store fd for fhandler_socket. - * fhandler.h (fhandler_base::set_fd): New virtual method. - (fhandler_base::get_fd): Ditto. - (fhandler_socket::set_fd): Ditto. - (fhandler_socket::get_fd): Ditto. - * fhandler_socket.cc (fhandler_socket::read): Call cygwin_recv instead - of native Winsock recv. - (fhandler_socket::write): Call cygwin_send instead of native Winsock - send. - * net.cc (fdsock): Store fd in fhandler_socket. - -2002-02-07 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getsockname): Fix handling of NULL sun_path. - -2002-01-29 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (getdomainname): Fix registry key for 9x systems, too. - -2002-01-29 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (getdomainname): Fix registry key for NT systems. - -2002-01-28 Christopher Faylor <cgf@redhat.com> - - * external.cc (cygwin_internal): Initialize various internal settings - if required to allow use of some things from user loaded DLL. - (CW_STRACE_ON): Add new feature. - (CW_CYGWIN_PID_TO_WINPID): Ditto. - * pinfo.cc (set_myself): Call "strace.hello" to initiate possible - strace session. - (pinfo::init): Guard against dereferencing uninitialized myself. - * sigproc.cc (wait_sig): Call strace.hello() when __SIGTRACE "signal" - received. - * strace.cc (strace::hello): New method. - * wincap.cc (wincapc::init): Avoid initializing if already initialized. - * wincap.h (wincapc::wincapc): New method. - * include/sys/cygwin.h: Add new CW_ enums. Kludge typedefs of - {g,u}id_t if required. - * strace.h (strace::hello): Declare new method. - -2002-01-28 Earnie Boyd <earnie@users.sf.net> - - * include/sys/strace.h (_STRACE_ON): Define. - (_STRACE_OFF): Ditto. - -2002-01-24 Christopher Faylor <cgf@redhat.com> - - * speclib: Ensure that temporary def file is removed. - -2002-01-23 Christopher Faylor <cgf@redhat.com> - - * speclib: Use rm -f to remove temp file just to quiet any potential - warnings. - -2002-01-23 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (create_token): Use sec_user() to create - SECURITY_ATTRIBUTES structure for primary token. Use - MAXIMUM_ALLOWED access rights instead of TOKEN_ALL_ACCESS. - -2002-01-23 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink): Fix check for already existing file. - -2002-01-21 Christopher Faylor <cgf@redhat.com> - - * cygmagic: Suppress error output when figuring out if sum takes an - option. - -2002-01-21 Christopher Faylor <cgf@redhat.com> - - * cygmagic: Attempt to figure out if sum takes an option. - -2002-01-21 DJ Delorie <dj@redhat.com> - - * Makefile.in (libpthread.a): Pass the assembler also. - (libm.a): Ditto. - (libc.a): Ditto. - * speclib: Specify the assembler to dlltool. - -2002-01-21 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-01-21 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgrgid): Don't return default gid entry when ntsec is on. - * syscalls.cc (setegid): Don't set primary group in process token. - -2002-01-21 Christopher Faylor <cgf@redhat.com> - - * speclib: Don't use /dev/null as DLL name. Just default to what's - already in .def file. - -2002-01-21 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle): Remove last vestiges of SA_NOCLDSTOP code - which caused SIGCHLD to be ignored. - -2002-01-20 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-01-20 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (regfree): Make dll_export. - -2002-01-20 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (ctrl_c_handler): Convert windows pid to cygwin pid - when detecting if we should actually handle CTRL-C. - -2002-01-19 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (new-cygwin1.dll): Revert previous change. libsupc++.a - is only available in libstdc++-v3. - -2002-01-19 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle_tty_stop): Don't send SIGCHLD if parent - doesn't want it. - (sig_handle): Don't check for SA_NOCLDSTOP here. We don't have enough - information. - -2002-01-19 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2002-01-19 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (new-cygwin1.dll): Just use -lsupc++ for link. - * sigproc.cc (proc_exists): Change existence criteria. - * sync.h (new_muto): Add volatile to definition to avoid gcc - optimization problems. - -2002-01-19 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump API minor version to 51. - -2002-01-19 Mark Bradshaw <bradshaw@staff.crosswalk.com> - - * cygwin.din: Add recvmsg and sendmsg. - * net.cc: Add cygwin_recvmsg and cygwin_sendmsg. - * /usr/include/sys/socket.h: Add recvmsg and sendmsg. - -2002-01-19 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (create_token): Close processes token handle as soon - as it's not used anymore. - -2002-01-17 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add fnmatch.o to DLL_OFILES. - * cygwin.din: Add fnmatch export symbol. - * fnmatch.c: New file. - * include/fnmatch.h: Ditto. - * include/cygwin/version.h: Bump API minor version to 50. - -2002-01-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fchdir): Call chdir with full windows path. - -2002-01-14 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc: Use INVALID_FILE_ATTRIBUTES instead of "(DWORD) -1" - for file attributes throughout. - * fhandler.cc: Ditto. - * fhandler_disk_file.cc: Ditto. - * path.cc: Ditto. - * path.h: Ditto. - * syscalls.cc: Ditto. - * times.cc (utimes): Use path_conv::isdir() instead of explicit - GetFileAttributes() call. - -2002-01-13 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (multiple_cygwin_problem): Clarify logic and make - CYGWIN_MISMATCH_OK more powerful. - -2002-01-10 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle): Accept a second argument indicating - whether the signal came from this process or not. - * sigproc.h: Reflect sig_handle arg change. - * signal.cc (kill_pgrp): Add sigframe info. - (abort): New function. Eliminates newlib function of same name. - * sigproc.cc (wait_sig): Pass "signal from this process" value as arg - 2. - -2002-01-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (pathconf): Guard _PC_PATH_MAX branch against invalid - file parameter. - -2002-01-09 Christopher Faylor <cgf@redhat.com> - Robert Collins <rbtcollins@hotmail.com> - - * exceptions.cc (early_stuff_init): Rename from misnamed - set_console_handler. - (ctrl_c_handler): Attempt to work around potential signal duplication - during process startup. - (sig_handle): Ignore SIGINT when we're just an "exec stub". - * spawn.cc (spawn_guts): Store pid of spawned process in global for use - by ctrl_c_handler. - * dcrt0.cc (dll_crt0_1): Call renamed initialization function. - * winsup.h: Reflect function name change. - -2002-01-08 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_accept): Set sun_path for newly connected socket. - -2002-01-07 Ralf Habacker <Ralf.Habacker@freenet.de> - - * Makefile.in: Add uninstall target. - -2002-01-07 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (getsem): Clean up debugging output. - -2002-01-07 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (getsem): Set errno when unable to create own semaphore. - Reorganize to make clearer that error should only come from initial - creation of process semaphore. - -2002-01-06 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::init_std_file_from_handle): Add some defensive - code to invalid handle case. - -2002-01-06 Corinna Vinschen <corinna@vinschen.de> - - * ioctl.cc (ioctl): Make third argument optional. - * include/sys/ioctl.h: Ditto in declaration. - * dtable.cc (dtable::init_std_file_from_handle): Revert previous - bogus patch. - * window.cc (WndProc): Raise SIGURG instead of SIGIO in case of FD_OOB - message. - -2002-01-05 Christopher Faylor <cgf@redhat.com> - - * dir.cc (opendir): Guarantee release of alloced fhandler structure on - error. - -2002-01-05 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (sig_handle): Set default action for SIGURG to SIG_IGN. - -2002-01-05 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Don't treat NULL - handle as errorneous. - -2002-01-04 Christopher Faylor <cgf@redhat.com> - - * cygmagic: Change logic for equality test. - -2002-01-04 Christopher Faylor <cgf@redhat.com> - - * dir.cc (opendir): Don't attempt to call sub-opendir if ENOENT. - -2002-01-04 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Replace usage of AF_UNIX by Posix compliant AF_LOCAL - throughout. - (socketpair): Explicitly allow SOCK_STREAM and SOCK_DGRAM socket types - in families AF_UNIX and AF_LOCAL. Explicitly allow PF_UNSPEC, PF_LOCAL - and PF_INET protocols. Return error otherwise. Implement datagram - socketpairs. - -2002-01-01 Christopher Faylor <cgf@redhat.com> - - * speclib: Remove temp files automatically. - -2002-01-01 Corinna Vinschen <corinna@vinschen.de> - * fhandler.h (fhandler_socket::sun_path): New private member. - (fhandler_socket::set_sun_path): New method. - (fhandler_socket::get_sun_path): Ditto. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize - sun_path to NULL. - (fhandler_socket::~fhandler_socket): Free sun_path if needed. - (fhandler_socket::set_sun_path): New method. - * net.cc (cygwin_bind): Set sun_path to path of local socket file. - (cygwin_getsockname): Add code to return correct sockaddr for unix - domain sockets. diff --git a/winsup/cygwin/ChangeLog-2003 b/winsup/cygwin/ChangeLog-2003 deleted file mode 100644 index 6c16579a2..000000000 --- a/winsup/cygwin/ChangeLog-2003 +++ /dev/null @@ -1,5678 +0,0 @@ -2003-12-31 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Make crt0 functions NOSIGFE. - * include/cygwin/version.h: Gratuitous comment change. - * lib/_cygwin_crt0_common.cc: Remove unneeded declaration. - -2003-12-29 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (_threadinfo::stack): Increase stack size to accommodate - nested signal handlers. Reorganize to cause potential SEGV on stack - overflow. - * sigproc.cc (no_signals_available): Check sendsig value rather than - relying on obsolete sig_loop_wait. - (sigproc_terminate): Ditto. - (proc_can_be_signalled): Check sendsig value even for myself. - * tlsoffsets.h: Regenerate. - -2003-12-29 Christopher Faylor <cgf@redhat.com> - - Move open_fhs from fhandler.h to cygheap.h for easier tracking. - Accommodate this change throughout. - * dtable.cc (dtable::add_archetype): Use correct count when iterating - through *active* archetypes. - * dtable.cc (dtable::fixup_after_exec): Close handle if close_on_exec - and archetype exists since archetype currently does not set windows - close-on-exec flag (FIXME). - * fhandler_tty.cc (fhandler_tty_slave::open): Change debugging output - slightly. - (fhandler_tty_slave::close): Ditto. - (fhandler_tty_slave::fixup_after_fork): Just report on inherited use - counts since since archetype currently does not set windows - close-on-exec flag (FIXME). - * pinfo.cc (_pinfo::set_ctty): Change debugging output slightly. - * cygheap.cc (cygheap_init): Remove open_fhs accommodation and use - count reporting. - * perthread.h (vfork_save::fhctty): New element. - * perthread.h (vfork_save::open_fhs): New element. - * fork.cc (vfork): Muck around with ctty and open_fhs stuff, both of - which are now saved in the vfork_save structure. - -2003-12-27 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_tty_slave::archetype): Make public. - (report_tty_counts): New macro. Use throughout for reporting tty use - counts. - * dtable.cc (dtable::vfork_child_dup): Add debugging output for - usecount increment. Increment open_fhs if appropriate. - (dtable::vfork_parent_restore): "Close" artificially bumped ctty. - (dtable::vfork_child_fixup): Close ctty since it was bumped prior to - vfork. Save open_fhs around close since the closing of these handles - has no effect on the console. - * fhandler_tty.cc (fhandler_tty_slave::open): Reorganize calls to allow - for easier tracking of usecount modification. - (fhandler_tty_slave::open): Ditto. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (close_all_files): Simplify logic around closing ctty. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::set_ctty): *Always* call close on opened ctty since - it counts as an opened handle. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_tty_master::fixup_after_fork): Remove - declaration. - (fhandler_tty_master::fixup_after_exec): Ditto. - * fhandler_tty.cc (fhandler_tty_master::init): Fix so that children do - not inherit master tty handles. - (fhandler_tty_master::fixup_after_fork): Remove, since it was never - used. - (fhandler_tty_master::fixup_after_exec): Ditto. - * pinfo.cc (_pinfo::set_ctty): Increment open_fhs when ctty is set. - * cygheap.cc (cygheap_init): Ditto. - * syscalls.cc (setsid): *Always* call close on opened ctty since the - archetype is associated with the ctty and it counts as an opened - handle. - * tty.cc (tty::common_init): Don't protect input/output mutex since it - confuses subsequent fork/execs when CYGWIN=tty. - - * fhandler_process.cc (fhandler_process::fill_filebuf): Properly set - "file size" for "<defunct>" reporting when filebuf is zero length. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (try_to_debug): Fix off-by-one problem when resetting - environment variable after error_start detected. - - * fhandler_tty_slave.cc (fhandler_tty_slave::close): Clarify debug - message. - * syscalls.cc (setsid): Don't increment usecount here, since it will be - automatically decremented on close. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Protect against a race. - -2003-12-26 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount_item::build_win32): Backslashify paths in non-managed - case. - -2003-12-25 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (reent_data): Reluctantly resurrect. - (__cygwin_user_data::impure_ptr): Ditto. - (_dll_crt0): Reluctantly initialize _impure_ptr here. - (initialize_main_tls): Eliminate local_clib initialization since it now - happens in init_thread. - * init.cc (dll_entry): Reluctantly remove code which set _impure_ptr to - the main thread's local_clib. - * perthread.h (reent_data): Remove obsolete declaration. - - * sigproc.cc (proc_subproc): Add more debugging output. - (get_proc_lock): Ditto. - - *dcrt0.cc (dll_crt0_1): Allocate argv[0] via malloc since main thread - could exit. - -2003-12-23 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_child): After a pthread/fork, ensure that impure - pointer stuff which resides in parent is propagated to child thread. - -2003-12-23 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (set_signal_mask): Redefine to not pass by address. - Report calculated mask in debugging output. - * sigproc.h (set_signal_mask): Reflect above change in declaration. - -2003-12-22 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount_item::build_win32): Take path apart before feeding it - to fnmunge. - -2003-12-21 Christopher Faylor <cgf@redhat.com> - - Throughout, change use of _reent_winsup()-> to _my_tls.locals. - instead. - Throughout, remove obsolete MT_SAFE/_CYG_THREAD_FAILSAFE considerations. - Througout, add cygtls.h include. - * Makefile.in (DLL_OFILES): Add cygtls.o. Add some more objects to the - -fomit-frame-pointer list. - * acconfig.h: Remove obsolete settings. - * config.h.in: Ditto. - * bsdlib.cc: Add cygtls.h include. - * configure.in: Remove --enable-extra-threadsafe-checking. - * configure: Regenerate. - * cygtls.h (_local_storage): New struct renamed from _winsup_t (sic). - (_threadinfo:local_clib): Add new field. - (_threadinfo::locals): Ditto. - (_threadinfo::init_thread): Accept second _reent * argument. - (_threadinfo::call): Define as regparm. - (CYGTLS_PADSIZE): Remove unnecessary slop. - (_getreent): Define as a macro. - * thread.h: Remove _CYG_THREAD_FAILSAFE and MT_SAFE stuff. - (_winsup_t): Move to cygtls.h. - (ResourceLocks::ResourceLocks): Eliminate empty constructor. - (MTinterface::reents): Eliminate. - (MTinterface::thread_self_key): Eliminate. - (MTinterface::MTinterface): Eliminate. - * dcrt0.cc: Include stdio.h for _impure_ptr initialization. - (do_global_ctors): Remove run_ctors_p (sic) considerations. Don't call - atexit here. - (__main): Initialize destructors for user here. - (dll_crt0_1): Accept a dummy argument. Don't call init_thread here. - Don't set _impure_ptr here. Call do_global_ctors after more things - have been initialized. - (_dll_crt0): Define zeros buffer as max of needed size of - CYGTLS_PADSIZE so that it can be used for two purposes while minimizing - stack usage. Initialize _impure_ptr specifically, for speed. Call - dll_crt0_1 with buffer argument. - (cygwin_dll_init): Call dll_crt0_1 with dummy argument. - * dtable.cc (dtable::find_unused_handle): Remove call to - AssertResourceOwner. - * exceptions.cc: Move _threadinfo stuff to new file. - * cygtls.cc: New file. - * gentls_offsets: Accommodate increasing complexity of cygtls.h. - * hires.h (hires_base::~hires_base): Remove. - * init.cc (dll_entry): Remove setting of reents. - * thread.cc: Remove syslog.h include. - (__getreent): Simplify to use _my_tls. - (_reent_winsup): Delete. - (AssertResourceOwner): Delete. - (MTinterface::Init): Remove setting of _clib and _winsup, with all that - entails. - (MTinterface::fixup_after_fork): Ditto. - (pthread::thread_init_wrapper): Ditto. Also remove call to - set_tls_self_pointer. - (pthread::set_tls_self_pointer): Eliminate. - (pthread::get_tls_self_pointer): Just return _my_tls.tid; - (__reent_t::init_clib): Eliminate. - * tlsoffsets.h: Regenerate. - -2003-12-17 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (proc_subproc): Simplify code to just remove all zombies - if SIGCHLD == SIG_IGN. - -2003-12-17 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (pinfo::operator ==): Add a way to check for _pinfo types. - * sigproc.cc (proc_subproc): Ensure that zombie is removed when SIGCHLD - == SIG_IGN but still allow wait()ing threads to wake up. - -2003-12-16 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (set_signal_mask): Report on input argument rather than - getsigmask. - - * fhandler.h (fhandler_base): Make friends with close_all_files. - * pinfo.cc (_pinfo::set_ctty): Add more debugging. - * sigproc.cc (proc_can_be_signalled): Detect state when signal handler - thread is gone in target process as an EPERM situation. Set errno to - ESRCH if process doesn't exist. - (sigproc_terminate): Set sendsig to illegal value when closed. - (sig_send): Rely on proc_can_be_signalled setting the proper errno. - * syscalls.cc (close_all_files): Detect when all ttys are closed prior - to calling close_all_files. The ctty needs to be closed explicitly in - this case. - -2003-12-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/ipc.h: Include sys/types.h. - -2003-12-15 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread::init_main_thread): Make sure that the main thread - has valid handles. - (pthread::create_cancel_event): Fix error message. - -2003-12-14 Christopher Faylor <cgf@redhat.com> - - * winsup.h (access_worker): Declare with added fhandler_base parameter. - * syscalls.cc (access_worker): Accommodate extra fhandler_base - argument. Use it instead of stat_worker to determine stat information, - when appropriate. - * fhandler.cc (fhandler_base::device_access_denied): Pass fhandler - pointer to access_worker so that it can use the proper method for - determining stat information. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto. - * path.cc (path_conv::check): Add read-only attribute to /cygdrive - default settings. - -2003-12-14 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (ctrl_c_handler): Remove this thread from the signal - handler chain. - -2003-12-14 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Revert previous change and again - subsume cygthread::stub2. Just return from function now since - ExitThread is guaranteed by automatic _threadinfo wrapper. Define as - per ThreadProc convention. - (cygthread::stub2): Remove. - (cygthread::simplestub): Perform similar operations to cygthread::stub. - (cygthread::simplestub2): Remove. - * cygthread.h (cygthread::stub): Declare as per ThreadProc convention. - (cygthread::stub2): Remove declaration. - (cygthread::simplestub): Declare as per ThreadProc convention. - (cygthread::simplestub2): Remove declaration. - * cygtls.h (_threadinfo::call): Define first argument as per ThreadProc - convention. - (_threadinfo::call2): Ditto. - (_tlsbase): Define as char * pointer. - (_tlstop): New definition. - (_main_tls): Define here. - * dcrt0.cc (alloc_stack): Revert previous change which called - init_thread since information would be overwritten by fork later - anyway. - (dll_crt0_1): Use _tlsbase and _tlstop for setting stack bottom, top. - * exceptions.cc: Move _main_tls declaration to cygtls.h. - (_threadinfo::call): Define first argument as per ThreadProc - convention. - (_threadinfo::call2): Call ExitThread with thread function return - value. - (_threadinfo::init_thread): Don't initialize cygtls to zero if input - arg is NULL. - * fork.cc (fork_child): Reset _main_tls here. Reinitialize parts of - _my_tls after copying data from parent. - * init.cc (threadfunc_fe): New function. Front-end for all threads - created in cygwin processes. - (munge_threadfunc): New function. - (dll_entry): Call munge_threadfunc to force the call of a thread - wrapper. - * thread.cc (pthread::thread_init_wrapper): Perform similar operations - to cygthread::stub. - (pthread::thread_init_wrapper2): Remove. - * thread.h (pthread::thread_init_wrapper): Declare as per ThreadProc - convention. - (pthread::thread_init_wrapper2): Remove declaration. - * window.cc (Winmain): Just return from function now since ExitThread - is guaranteed by automatic _threadinfo wrapper. - -2003-12-12 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::delete_archetype): Add debugging. - (dtable::release): Move archetype deletion here. - (dtable::vfork_child_dup): Increment ctty usecount to catch later - close_all_files case in parent/child. - (dtable::vfork_child_fixup): Avoid using cygheap->foo where this should - really be using local references. Call close on archetyped handles - since the handles haven't had the noninherit flag set. - * fhandler_tty.cc (fhandler_tty_slave::close): Remove archetype - deletion code. Add defensive error message when DEBUGGING. - (fhandler_tty_common::set_close_on_exec): Use more robust method for - checking whether to set handles into noninherit if there is an - archetype associated with the fhandler. - -2003-12-12 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (alloc_stack): Move _main_tls if stack is relocated. - -2003-12-11 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (low_priority_sleep): Correct thinko which caused - SetPriority to be called unnecessarily. - * thread.cc (pthread::init_main_thread): Call new create_cancel_event - function. - (pthread::precreate): Ditto. - (pthread::postcreate): Remove cancel_event creation. - (pthread::create_cancel_event): Define new function. - * thread.h (pthread::create_cancel_event): Declare new function. - -2003-12-11 Brian Ford <ford@vss.fsi.com> - - * fhandler_serial.cc (fhandler_serial::tcflush): Simplify. Remove - read polling loop to avoid a hang with streaming devices. - -2003-12-11 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::set_ctty): Correct stupid typo. - -2003-12-11 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (cygheap_types): Add HEAP_ARCHETYPES. - (init_cheap::ctty): Change to pointer. - * dtable.h (dtable::find_archetype): Declare new function. - (dtable::add_archetype): Declare new function. - (dtable::delete_archetype): Declare new function. - (dtable::narchetypes): Declare. - (dtable::farchetypes): Declare. - (dtable::initial_archetype_size): Declare. - (dtable::dtable): Initialize new fields. - (dtable::initial_archetype_size): Declare. - * dtable.cc (dtable::find_archetype): Define new function. - (dtable::add_archetype): Define new function. - (dtable::delete_archetype): Define new function. - (dtable::initial_archetype_size): Define. - * fhandler.h (fhandler_base::archetype): Declare. - (fhandler_base::usecount): Declare. - * fhandler.cc (fhandler_base::fhandler_base): Initialize new fields. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Pass NULL to - third argument of set_ctty. - * fhandler_tty.cc (fhandler_tty_slave::open): Accommodate new archetype - method to create only one instance of a tty. - (fhandler_tty_slave::close): Don't close handles unless archetype - usecount is zero. When that happens, close archetype too. - (fhandler_tty_slave::dup): Just copy archetype. Set use count - appropriately. Set ctty, if appropriate. - (fhandler_tty_common::dup): Remove slave considerations. - (fhandler_tty_common::set_close_on_exec): Remove cygheap->ctty - considerations. - * pinfo.cc (_pinfo::set_ctty): Accommodate new archetype methods. - * pinfo.h (_pinfo::set_ctty): Make third argument explicit. - * syscalls.cc (close_all_files): Decrement controlling tty use count - before closing all handles to allow controlling tty to be closed. - Remove previous controlling tty considerations. - -2003-12-09 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_common::dup): Just copy cygheap->ctty - to child if duping the current ctty. - (fhandler_tty_common::close): Move debugging statement earlier in function. - (fhandler_tty_slave::close): Return success when closing ctty. - * syscalls.cc (close_all_files): Avoid calling fhandler_tty_slave close - method so that open_fhs will not be decremented when closing cygheap - ctty. - (setsid): Ditto. - * dcrt0.cc (do_exit): Reorganize to avoid leaving a critical section - active after vfork. - * fhandler.h (fhandler_tty_slave::get_unit): Remove regparm parameter - since it can't work in a virtualized function. - -2003-12-08 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::set_ctty): Don't copy over existing ctty if it is - active. - -2003-12-08 Christopher Faylor <cgf@redhat.com> - - * thread.cc (pthread::precreate): Delete duplicate setting of - cancel_event. - -2003-12-08 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_tty_slave::ttyname): Use name from pc since it - is guaranteed to be accurate. - * fhandler_tty.cc (fhandler_tty_slave::open): Increment open_fhs - appropriate when copying ctty. - (fhandler_tty_slave::close): Remove special case handling for - exit_state. Use ctty < 0 check instead. - (fhandler_tty_common::close): Set io_handle to NULL after closing. - * syscalls.cc (close_all_files): Specifically close cygheap->ctty, if - appropriate. - -2003-12-07 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Change type back to 'int' after erroneous - change below. - * wait.cc (wait4): Move sawsig initialization inside loop. - -2003-12-07 Christopher Faylor <cgf@redhat.com> - - Change use of BOOL, TRUE, FALSE to bool, true, false, as appropriate, - throughout. - -2003-12-07 Pierre Humblet <pierre.humblet@ieee.org> - - * tty.cc (tty::common_init): Remove call to SetKernelObjectSecurity and - edit some comments. - -2003-12-07 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (init_cygheap::ctty): Add new element. - * devices.in (device::parse): Remove special handling for /dev/tty. - * devices.cc: Regenerate. - * dtable.cc (build_fh_pc): Don't reset /dev/tty device. Let the device - opener do that. - * fhandler_termios.cc (tty_min::set_ctty): Redefine to _pinfo class. - * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Avoid - setting noninherit flag for ctty. - * tty.h: Move BOOLs to bools. - (tty_min::set_ctty): Redeclare to _pinfo class. - * pinfo.cc (_pinfo::set_ctty): Define new function based on - tty_min::set_ctty. Change first argument from tty number to tty_min - class. - * pinfo.h (_pinfo::set_ctty): Declare. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Reflect move - of set_ctty to _pinfo class. - * fhandler_tty.cc (fhandler_tty_slave::open): Treat FH_TTY specially. - Use saved cygheap value if it exists. Otherwise convert to real device - and save on first time open. - (fhandler_tty_common::dup): Potentially set controlling tty if duping a - slave tty. - * syscalls.cc (setsid): Close controlling tty in cygheap. - * tty.cc: Change some BOOLs to bools. - -2003-12-07 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (locked_append): New. - (updwtmp): Remove mutex code and call locked_append. - (pututline): Ditto. - -2003-12-06 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (_threadinfo::remove): Avoid a linked list walk. - -2003-12-06 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (_threadinfo::find_tls): New function. - * exceptions.cc (_threadinfo::find_tls): Rename from find_tls. Use - critical section to protect access to linked list. - -2003-12-06 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (_threadinfo::remove): Avoid returning without - unlocking critical section in the (hopefully impossible) case of an - unrecognized thread. - -2003-12-06 Christopher Faylor <cgf@redhat.com> - - * cygtls.h: Add more "don't parse this" guards. - (_threadinfo::init_thread): Rename from 'init'. - (_threadinfo::init): Declare new function. - (_threadinfo::protect_linked_list): Declare new critical section. - * dcrt0.cc (dll_crt0_1): Call init_thread to initialize thread stuff. - (_dll_crt0): Call _threadinfo::init prior to invoking dll_crt0_1. - * exceptions.cc (_threadinfo::init_thread): Rename from 'init'. - (_threadinfo::init): Define new function. Protect linked list - manipulation with new critical section. - (_threadinfo::call): Reflect function name change. - (_threadinfo::remove): Protect linked list manipulation with new - critical section - * gentls_offsets: Rework to allow multi-line "don't parse this" - protection. - * init.cc (dll_entry): Don't remove threads info stuff here since the - remove function uses a critical section which can't be used during - thread creation or destruction. - * thread.cc (pthread::exit): Call _threadinfo remove function here. - -2003-12-05 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub2): Remove myself from the list of - threads monitored by signals since this thread will never call raise or - sigwait. - (cygthread::simplestub2): Ditto. Set ev here. - (cygthread::cygthread): Don't set ev here for freerange thread. - -2003-12-04 Christopher Faylor <cgf@redhat.com> - - * path.cc (slash_unc_prefix_p): Allow '.' as a valid character after - '\\' in a UNC path. - -2003-12-04 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Remove ill-advised debugging output. - -2003-12-04 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h (struct __fcntl64): Fix datatype of l_start. - -2003-12-03 Corinna Vinschen <corinna@vinschen.de> - - Substitute 0x7fffffff and 0xffffffff by INT32_MAX and UINT32_MAX - throughout, except in assembler code. - -2003-12-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::lock): Use UINT32_MAX - instead of 0xffffffff. Accommodate Win 9x bug in evaluating length - of area to lock when given length is 0. - -2003-12-03 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_disk_file.cc (fhandler_disk_file::lock): Interchange - values of off_low and off_high. - -2003-12-03 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl_worker): Remove static storage class. - * flock.cc (flock): Use struct __flock64. Call fcntl_worker. - Use Cygwin errno functions instead of accessing errno directly. - * winsup.h: Declare fcntl_worker. - -2003-12-03 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc: Whitespace cleanup. - -2003-12-03 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Properly establish _threadinfo - environment. - (cygthread::stub2): New function. - (cygthread::simplestub): Ditto. - (cygthread::simplestub2): New function. - * cygthread.h (cygthread::stub2): Declare new function. - (cygthread::simplestub2): Ditto. - * cygtls.h (_threadinfo::call): Declare new function. - (_threadinfo::call2): Ditto. - * dcrt0.cc (dll_crt0_1): Accommodate new _threadinfo::init which - doesn't return pointer to tls. - (_dll_crt0): Remove obsolete DECLARE_TLS_STORAGE. - (dll_crt0): Ditto. - * exceptions.cc (_threadinfo::call): New function. - (_threadinfo::call2): Ditto. - (_threadinfo::init): Don't return pointer. - * thread.cc (pthread::thread_init_wrapper): Properly establish - _threadinfo environment. - (pthread::thread_init_wrapper2): New function. - * thread.h (pthread::thread_init_wrapper): Remove noreturn attribute - (pthread::thread_init_wrapper2): Declare new function. - * winbase.h: Remove obsolete code. - -2003-12-02 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Change the way that -f options are appended to CFLAGS, - slightly. - -2003-12-02 Christopher Faylor <cgf@redhat.com> - - * fcntl.cc (_fcntl): Silence a compiler warning. - -2003-12-02 Pierre Humblet <pierre.humblet@ieee.org> - - * pinfo.cc (pinfo::init): Use shared_name to construct the mapname. - -2003-12-01 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread_rwlock::add_reader): Remove mx parameter for - List_insert call. - (pthread::prepare): Ensure race safeness when adding function - pointers to atfork lists by using List_insert. - * thread.h (List_insert): Use InterlockedCompareExchangePointer to - ensure race safeness without using a mutex. - (List_remove): Use InterlockedCompareExchangePointer to - ensure race safeness with List_insert. - (List::insert): Remove mx parameter for List_insert call. - -2003-12-01 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (OBSOLETE_FUNCTIONS): Add fcntl. - (NEW_FUNCTIONS): Add fcntl64. - * cygwin.din: Export fcntl64. Make fcntl being SIGFE. - * fcntl.cc (fcntl_worker): New function. - (fcntl64): New function. - (_fcntl): Call fcntl_worker. Convert 32 bit flock structure into - 64 bit flock structure and vice versa. - * fhandler.cc (fhandler_base::lock): Change 2nd parameter to - struct __flock64 *. - * fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto. Rework - to be 64 bit aware. - * fhandler.h: Accommodate above method argument changes. - * include/cygwin/types.h: Add struct __flock32 and __flock64. - Define struct flock according to setting of __CYGWIN_USE_BIG_TYPES__. - * include/cygwin/version.h: Bump API minor number. - -2003-12-01 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_init): Set cygheap->shared_prefix. - * cygheap.h (struct init_cygheap): Add shared_prefix. - * shared.cc (shared_name): Use cygheap->shared_prefix. - -2003-12-01 Pierre Humblet <pierre.humblet@ieee.org> - - * shared.cc (shared_name): Take into account the SE_CREATE_GLOBAL_NAME - privilege when building the name string. - (open_shared): Remove the call to OpenFileMapping. - (shared_info::initialize): Move cygheap initialization to ... - (memory_init): ... here. Suppress now useless shared_h variable. - (user_shared_initialize): Make tu a cygpsid. - -2003-12-01 Dr. Volker Zell <Dr.Volker.Zell@oracle.com> - - * include/tzfile.h: Remove duplicate definition of TM_SUNDAY. - * localtime.cc: Point TZDIR to the /usr/share/zoneinfo directory used - by the tzcode package. - -2003-11-30 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc: Renamed from flock.c. - -2003-11-29 Christopher Faylor <cgf@redhat.com> - - * pinfo.h: Remove global_sigs declaration. - * siginfo.h: Move global_sigs declaration here. - * Makefile.in: Remove duplicate compiler flag. - -2003-11-29 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (_threadinfo::pop): Zero *contents* of popped stack - location rather than the actual stack pointer. - -2003-11-29 Nicholas Wourms <nwourms@netscape.net> - - * Makefile.in: (DLL_OFILES): Add flock.o. - * cygwin.din: Export flock. - * flock.c: New file. - * include/sys/file.h: Include sys/cdefs.h. - Add function prototype for flock(). - Add some comments from BSD's header for further clarity. - (L_SET, L_CURR, L_INCR, L_XTND): Redefine as the macros - SEEK_SET, SEEK_CUR, SEEK_CUR, & SEEK_END respectively. - (LOCK_SH,LOCK_EX,LOCK_NB,LOCK_UN): New macros for flock(). - * include/cygwin/version.h: Bump API minor number. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (no_signals_available): Fix so that non-zero exit state is - a true condition rather than errnoneously only checking other states - when exist_state was zero. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (_pinfo::getthread2signal): Remove obsolete function. - * cygtls.h (_threadinfo): Define tid more precisely. - (_threadinfo::operator HANDLE): Define. - * exceptions.cc (_threadinfo::interupt_now): Use _threadinfo HANDLE - operator to derive thread handle. - (setup_handler): Ditto. - * sigproc.cc: Reorganize includes. Fix no_signals_available test to - properly return true when !sig_wait_loop. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (_pinfo::getsig): Remove obsolete function, here and - throughout. - * exceptions.cc: Ditto. - * fhandler_termios.cc: Ditto. - * signal.cc: Ditto. - * sigproc.cc: Ditto. - - * Makefile.in: Revert previous change which made a cygwin.din newer - than a version.h a warning rather than an error. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Re-add inexplicably missing semaphore/msg functions. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * gendevices: Issue error when shilka is missing. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/signal.h: New file. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - Eliminate use of sigframe and sigthread throughout. - * Makefile.in (DLL_OFILES): Add sigfe.o. Remove reliance on cygwin.def - from cygwin0.dll dependency since dependence on sigfe.o implies that. - Generate def file on the fly using 'gendef'. - * configure.in: Don't auto-generate cygwin.def. - * configure: Regenerate. - * cygwin.din: Add SIGFE stuff where appropriate. - * dcrt0.cc (dll_crt0_1): Initialize cygwin tls early in process - startup. Set _main_tls to address of the main thread's cygwin tls. - * debug.h: Remove now unneeded WFSO and WFMO declarations. - * exceptions.cc (_last_thread): Define. - (set_thread_state_for_signals): New function. - (reset_thread_exception_for_signals): Ditto. - (init_thread_for_signals): Ditto. - (delete_thread_for_signals): Ditto. - (capture_thread_for_signals): Ditto. - (handle_exceptions): Set return address explicitly for exceptions prior - to calling sig_send. - (interrupt_on_return): Eliminate. - (setup_handler): Add preliminary implementation for dealing with - thread-specific signals by querying _main_tls. - (signal_exit): Use cygthread::main_thread_id instead of mainthread.id. - (call_signal_handler_now): For now, just handle the main thread. - * fork.cc (vfork): Save and restore main _my_tls. - * gendef: New file. Generates def file and sigfe.s file. - * gentls_offsets: New file. Generates offsets for perl to use in - sigfe.s. - * how-signals-work.txt: Mention that info is obsolete. - * init.cc (dll_entry): Initialize cygwin tls storage here. - * miscfuncs.cc (low_priority_sleep): Make a C function for easier - calling from asm. - * perthread.h (vfork_save::tls): New element. - * signal.cc (nanosleep): Replace previous use of - sigframe.call_signal_handler_now with straight call to - call_signal_handler_now. - (abort): Ditto. - * syscalls.cc (readv): Ditto. - * termios.cc (tcsetattr): Ditto. - * wait.cc (wait4): Ditto. - * sigproc.cc (sig_dispatch_pending): Ditto. - (sig_send): Ditto. - * sigproc.h: Declare call_signal_handler_now. - * thread.cc (pthread::thread_init_wrapper): Initialize cygwin tls. - Remove obsolete and unworking signal stuff. - * thread.h (verifyable_object::sigs): Eliminate. - (verifyable_object::sigmask): Eliminate. - (verifyable_object::sigtodo): Eliminate. - (verifyable_object::exit): Make attribute noreturn. - (verifyable_object::thread_init_wrapper): Ditto. - (pthread_null::exit): Ditto. - * winbase.h (__stackbase): Always define. - * winsup.h (low_priority_sleep): Declare as a "C" function. - * include/cygwin/version.h: Bump API version to reflect sigwait export. - - * include/sys/queue.h: Protect SLIST_ENTRY from previous declaration. - - * signal.cc (sigwait): Implement. - - * select.cc (fhandler_base::ready_for_read): Add debugging output. - - * devices.h: Define more device pointers via their storage. - * devices.in: Don't parse things like /dev/inet/tcp, as they really - have no meaning. - * devices.cc: Regenerate. - * gendevices: Set proper protection for output file. - - * cygtls.h: New file. - * gendef: New file. - * gentls_offsets: New file. - * tlsoffsets.h: New file. Autogenerated. - * config/i386/longjmp.c: Remove. File subsumed by gendef output. - * config/i386/makefrag: Remove obsolete file. - - * fhandler.cc: Remove spurious access_worker declaration. - - * spawn.cc (spawnve): Make debugging output more accurate. - - * cygwin-gperf: Remove. - * devices.cc: Remove. - -2003-11-28 Christopher Faylor <cgf@redhat.com> - - * speclib: Use correct EOF marker. Ensure that directory is actually - deleted when running under Windows. - -2003-11-27 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Reorganize to - avoid inappropriate .lnk extensions with munged filenames under managed - mode. - -2003-11-26 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (set_process_privilege): Rename restore_priv to - priv_luid. - -2003-11-26 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_helper.cc (set_process_privilege): Call LookupPrivilegeValue - before opening the token. - -2003-11-26 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Use local security_descriptor. Call - set_security_attribute appropriately. - * external.cc (cygwin_internal): Ditto. - * fhandler.cc (fhandler_base::open): Ditto. - * fhandler_socket.cc (fhandler_socket::bind): Ditto. - * path.cc (symlink_worker): Ditto. - * sec_acl.cc (setacl): Ditto. Call read_sd appropriately. - (getace): Ditto. - * sec_helper.cc (security_descriptor::malloc): New method. - (security_descriptor::realloc): New method. - (security_descriptor::free): New method. - * security.cc (read_sd): Get security_descriptor as parameter instead - of PSECURITY_DESCRIPTOR and a size. Drop unnecessary parameter check. - Allocate the security_descriptor buffer according to size returned by - a call to GetFileSecurity. Return buffer size on success. - (write_sd): Get security_descriptor as parameter instead of - PSECURITY_DESCRIPTOR and a size. - (get_nt_attribute): Use local security_descriptor. - (get_nt_object_attribute): Ditto in case of type == SE_REGISTRY_KEY. - Allocate security_descriptor buffer according to size returned by - a call to RegGetKeySecurity. - (alloc_sd): Make static. Get security_descriptor as parameter instead - of PSECURITY_DESCRIPTOR and a size. Drop unnecessary parameter check. - (set_security_attribute): Get security_descriptor as parameter instead - of PSECURITY_DESCRIPTOR and a size. - (set_nt_attribute): Use local security_descriptor. - (check_file_access): Ditto. - * security.h: Add class security_descriptor. - (read_sd): Change declaration to get security_descriptor as parameter - instead of PSECURITY_DESCRIPTOR and a size. - (write_sd): Ditto. - (set_security_attribute): Ditto. - (alloc_sd): Remove declaration. - * thread.cc (semaphore::semaphore): Use local security_descriptor. Call - set_security_attribute appropriately. - -2003-11-26 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.h (getace): Use FILE_*_BITS as permission mask. - * security.cc (get_attribute_from_acl): Ditto. - * security.h (FILE_READ_BITS): Define to match also GENERIC bits. - (FILE_WRITE_BITS): Ditto. - (FILE_EXEC_BITS): Ditto. - -2003-11-25 Christopher Faylor <cgf@redhat.com> - - * thread.cc: Minor whitespace cleanup. Remove some obsolete code. - -2003-11-24 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (build_fh_name): Set error in dummy fhandler when one is - noted during path_conv. - * fhandler.h (fhandler_base::set_error): New method. - -2003-11-24 Christopher Faylor <cgf@redhat.com> - - * configure.in: Avoid using cygserver unless hosting on cygwin. - -2003-11-23 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sig_send): Correct below checkin. Use - thisframe.call_signal_handler. - -2003-11-23 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (proc_exists): A zombie process does not exist. - (sig_send): Improve debugging output. Wait for pipe to be created - before trying to send to it. Call call_signal_handler_now if sending a - signal to myself. - -2003-11-22 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (check_sanity_and_sync): Correct api major version check so - that newer dlls will work with older apps but not vice versa. - -2003-11-21 Christopher Faylor <cgf@redhat.com> - - * sem.cc: Always include signal.h to handle SIGSYS raise when - !USE_SERVER. - * shm.cc: Ditto. - -2003-11-21 Christopher Faylor <cgf@redhat.com> - - * msg.cc: Always include signal.h to handle SIGSYS raise when - !USE_SERVER. - -2003-11-20 Christopher Faylor <cgf@redhat.com> - - * configure.in: Make --use-server the default. Remove powerpc target. - * configure: Regenerate. - -2003-11-20 Corinna Vinschen <corinna@vinschen.de> - - * msg.cc (msgctl): Raise SIGSYS if call not available. - (msgget): Ditto. - (msgrcv): Ditto. - (msgsnd): Ditto. - * sem.cc (semctl): Ditto. - (semget): Ditto. - (semop): Ditto. - * shm.cc (shmat): Ditto. - (shmctl): Ditto. - (shmget): Ditto. - (shmdt): Ditto. - -2003-11-19 Corinna Vinschen <corinna@vinschen.de> - - * cygserver.h (client_request::request_code_t): Add - CYGSERVER_REQUEST_MSG and CYGSERVER_REQUEST_SEM. - (admininstrator_group_sid): Add extern declaration. - * cygserver_ipc.h: Rewrite. - * cygserver_msg.h: New file. - * cygserver_sem.h: New file. - * cygserver_shm.h: More or less rewrite. - * cygwin.din: Add msgctl, msgget, msgrcv, msgsnd, semctl, semget and - semop. - * msg.cc: Rewrite. - * safe_memory.h: Remove. - * sem.cc: Rewrite. - * shm.cc: Rewrite. - * include/cygwin/ipc.h: Use appropriate guard. - (struct ipc_perm): Add seq. - (IPCID_TO_IX): New define from BSD. - (IPCID_TO_SEQ): Ditto. - (IXSEQ_TO_IPCID): Ditto. - (IPC_R): Ditto. - (IPC_W): Ditto. - (IPC_M): Ditto. - * include/cygwin/msg.h: Use appropriate guard. #ifdef _KERNEL all stuff - not explicitely defined by SUSv3. Use signed types in structs to match - types used in BSD. - (msgqnum_t): Define unsigned. - (msglen_t): Ditto. - (struct msqid_ds): Add msg_first and msg_last. - (struct msginfo): Remove msgpool. Add msgssz and msgseg. - * include/cygwin/sem.h: Use appropriate guard. #ifdef _KERNEL all stuff - not explicitely defined by SUSv3. Use signed types in structs to match - types used in BSD. - (SEM_UNDO): Define appropriately. - (struct semid_ds): Add sem_base. - (struct seminfo): Add semmap and semusz. - (SEM_A): New define from BSD. - (SEM_R): Ditto. - (SEM_ALLOC): Ditto. - (union semun): Define. - * include/cygwin/shm.h: Use appropriate guard. #ifdef _KERNEL all stuff - not explicitely defined by SUSv3. Use signed types in structs to match - types used in BSD. - (SHMLBA): Define using cygwin_internal(CW_GET_SHMLBA) call. - (struct shmid_ds): Add shm_internal. - (struct shm_info): Rename shm_ids to used_ids as in BSD. Add define - for shm_ids. - * include/cygwin/sysproto.h: New file. - * include/cygwin/version.h: Bump API minor number. - * include/sys/ipc.h: New file. - * include/sys/msg.h: New file. - * include/sys/queue.h: New file from BSD. - * include/sys/sem.h: New file. - * include/sys/shm.h: New file. - * include/sys/sysproto.h: New file. - -2003-11-19 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (build_fh_pc): Resurrect accidentally removed - DEV_CYGDRIVE_MAJOR case. - -2003-11-17 Brian Ford <ford@vss.fsi.com> - - * fhandler.cc (fhandler_base::lseek): Include high order offset - bits in return value. - -2003-11-17 Corinna Vinschen <corinna@vinschen.de> - - * bsdlib.cc (getprogname): New function. - (setprogname): New funtion. - * cygwin.din: Export getprogname and setprogname. - * include/cygwin/version.h: Bumb API version number. - -2003-11-15 Christopher Faylor <cgf@redhat.com> - - * include/limits.h: Revert unsanctioned changes below. - * include/cygwin/config.h: Ditto. - * include/sys/param.h: Ditto. - -2003-11-14 Robert Collins <rbtcollins@hotmail.com> - Ron Parker <rdparker@butlermfg.com> - - * bsdlib.cc: Update throughout to use CYG_MAX_PATH rather than MAX_PATH. - * cygheap.h: Ditto. - * dcrt0.cc: Ditto. - * delqueue.cc: Ditto. - * dlfcn.cc: Ditto. - * dll_init.cc: Ditto. - * dll_init.h: Ditto. - * dtable.cc: Ditto. - * environ.cc: Ditto. - * environ.h: Ditto. - * exceptions.cc: Ditto. - * external.cc: Ditto. - * fhandler_disk_file.cc: Ditto. - * fhandler_proc.cc: Ditto. - * fhandler_process.cc: Ditto. - * fhandler_raw.cc: Ditto. - * fhandler_registry.cc: Ditto. - * fhandler_socket.cc: Ditto. - * fhandler_virtual.cc: Ditto. - * miscfuncs.cc: Ditto. - * mmap.cc: Ditto. - * netdb.cc: Ditto. - * path.cc: Ditto. - * path.h: Ditto. - * pinfo.cc: Ditto. - * pinfo.h: Ditto. - * pthread.cc: Ditto. - * registry.cc: Ditto. - * shared.cc: Ditto. - * shared_info.h: Ditto. - * smallprint.c: Ditto. - * spawn.cc: Ditto. - * strace.cc: Ditto. - * syscalls.cc: Ditto. - * thread.h: Ditto. - * uinfo.cc: Ditto. - * winsup.h: Ditto. - * include/limits.h: Ditto. - * include/cygwin/config.h: Ditto. - * include/sys/param.h: Ditto. - -2003-11-12 Brian Ford <ford@vss.fsi.com> - - * dtable.cc (build_fh_pc): Use DEV_SERIAL_MAJOR to catch all serial - ports. Remove redundant FH_CYGDRIVE case since it is handled by - DEV_CYGDRIVE_MAJOR. - -2003-11-11 Christopher Faylor <cgf@redhat.com> - Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread::exit): Cleanup on thread exit. - (__reent_t::init_clib): Set thread local clib __cleanup var - appropriately. - -2003-11-10 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (low_priority_sleep): Make a "C" function. - * winsup.h (low_priority_sleep): Revert previous change to declaration. - -2003-11-10 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (low_priority_sleep): Fix declaration to avoid linker - warning. - -2003-11-10 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (__reent_t::init_clib): Set thread local clib - __sdidinit var appropriately. - -2003-11-08 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (ftruncate64): Log length as long long. - (logout): Erase ut_host. Don't write wtmp entry. Return 1 only - if matching utmp entry has been found, 0 otherwise. - -2003-11-08 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_GET_UID_FROM_SID and - CW_GET_GID_FROM_SID handling. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_GET_UID_FROM_SID and CW_GET_GID_FROM_SID. - -2003-11-07 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Reorganize to - handle freeing of memory on error condition. - -2003-11-07 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::freerange): Set inuse count. Avoid setting - ev from h as h would be NULL at this point. - (cygthread::operator new): Issue debugging info when overflowing the - thread pool. - (cygthread::cygthread): Set ev from h here after h has been initialized. - -2003-11-06 Corinna Vinschen <corinna@vinschen.de> - - * bsdlib.cc (_vwarnx): New function. - (vwarn): Ditto. - (vwarnx): Ditto. - (warn): Ditto. - (warnx): Ditto. - (verr): Ditto. - (verrx): Ditto. - (err): Ditto. - (errx): Ditto. - * cygwin.din: Export above functions. - * include/err.h: New file. - * include/cygwin/version.h: Bump API minor number. - -2003-11-06 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (getshmlba): New function. - * external.cc (cygwin_internal): Add CW_GET_SHMLBA handling. - * mmap.cc (mmap64): Call getshmlba to evaluate granularity. - * winsup.h (getshmlba): Add declaration. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_SHMLBA. - -2003-11-06 Christopher Faylor <cgf@redhat.com> - - * winsup.h: Declare access_worker. - -2003-11-05 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Fix preprocessor guards for vm_offset_t and - vm_size_t. Add typedef for vm_object_t. - -2003-11-05 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Detect attempt - to open a directory which lacks read privileges. - -2003-11-04 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_GET_POSIX_SECURITY_ATTRIBUTE - handling. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_GET_POSIX_SECURITY_ATTRIBUTE. - - * exceptions.cc (init_global_security): Move from here... - * sec_helper.cc (init_global_security): ...to here. - -2003-11-04 Christopher Faylor <cgf@redhat.com> - - * net.cc (dup_ent): Use IsBadStringPtr for alignment checks. Don't use - a known bad pointer. - -2003-11-03 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (dup_ent): Move Win 95 misalignment recogition before - trying to evaluate string length. - -2003-10-31 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread::thread_init_wrapper): Initialize exception - handling. - -2003-10-31 Thomas Pfaff <tpfaff@gmx.net> - - Rename pthread::running to pthread::valid throughout. - - * thread.h: (pthread::suspend_all_except_self): New static method. - (pthread::resume_all): Ditto. - (pthread::suspend_except_self): New method. - (pthread::resume): Ditto. - * thread.cc (pthread::suspend_except_self): Implement. - (pthread::resume): Ditto. - -2003-10-29 Danny Smith <dannysmith@users.sourceforege.net> - - * include/stdint.h: Prevent signed->unsigned conversion for 32 and - 64 bit min value constants. - -2003-10-28 Igor Pechtchanski <pechtcha@cs.nyu.edu> - - * path.cc (dot_special_chars): New global variable. - (special_name): Make files ending in "." special. - (fnunmunge): Allow encoded ".". - (mount_item::fnmunge): Handle trailing ".". - -2003-10-28 Christopher Faylor <cgf@redhat.com> - - * include/stdint.h: Duplicate below effort for rest of *64_*. - -2003-10-28 Christopher Faylor <cgf@redhat.com> - - * include/stdint.h: Correctly define INT64_MAX. - -2003-10-27 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (fast_mutex::init): Initialize lock_counter. - -2003-10-27 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (OBSOLETE_FUNCTION): Add tmpfile. - (NEW_FUNCTIONS): Add _tmpfile64 -> tmpfile translation. - * cygwin.din: Export _tmpfile64 - * include/cygwin/version.h: Bump api minor number. - -2003-10-27 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add sem_close, sem_getvalue, sem_open and sem_timedwait. - * pthread.cc (+mangle_sem_name): New function. - (sem_open): Ditto. - (sem_close: Ditto. - (sem_timedwait): Ditto. - (sem_getvalue): Ditto. - * thread.cc (semaphore::semaphore): Rearrange member initialization. - Use appropriate security attribute for process shared semaphores. - (semaphore::semaphore): New constructor for named semaphores. - (semaphore::~semaphore): Care for semaphore name. - (semaphore::_post): Accommodate failing ReleaseSemaphore. Use value - returned by ReleaseSemaphore vor currentvalue. - (semaphore::_getvalue): New method. - (semaphore::_timedwait): Ditto. - (semaphore::_fixup_after_fork): Rearrange. Don't fail for process - shared semaphores. - (semaphore::open): New method. - (semaphore::timedwait): Ditto. - (semaphore::post): Fix return value. Set errno appropriately. - (semaphore::getvalue): New method. - * thread.h (class semaphore): Add prototypes for open, getvalue, - timedwait, _getvalue, _timedwait. Add prototypes for new constructor. - Add name member. - * include/semaphore.h: Add prototypes for sem_open, sem_close, - sem_timedwait and sem_getvalue. - include/cygwin/version.h: Bump API minor number. - -2003-10-27 Corinna Vinschen <corinna@vinschen.de> - - * miscfunc.cc (__check_invalid_read_ptr): New function. - * winsup.h: Declare. - -2003-10-26 Corinna Vinschen <corinna@vinschen.de> - - * security.h (cygpsid::debug_print): Avoid compiler warnings. - -2003-10-25 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Test runs of more than two - dots for being a run of only dots. Let it pass if not. - -2003-10-25 Brian Ford <ford@vss.fsi.com> - - * fhandler.cc (fhandler_base::ioctl): Handle FIONBIO. - -2003-10-24 Thomas Pfaff <tpfaff@gmx.net> - - Rename native_mutex to fast_mutex throughout. - Rename pthread_key::save_key_to_buffer to - pthread_key::_fixup_before_fork throughout. - Rename pthread_key::recreate_key_from_buffer to - pthread_key::_fixup_after_fork throughout. - - * thread.cc (native_mutex::init): Remove. - (native_mutex::lock): Ditto. - (native_mutex::unlock): Ditto. - (pthread::push_cleanup_handler): InterlockedExchangePointer - is not needed here. - (pthread_rwlock::pthread_rwlock): Initialize readers list mutex. - (pthread_rwlock::add_reader): Add reader via List_insert. - (pthread_rwlock::lookup_reader): Lock list while walking through. - (pthread_cond::init): Locking the init mutex is now void. - (pthread_rwlock::init): Ditto. - (pthread_mutex::init): Ditto. - * thread.h: Include security.h. - (fast_mutex): New class. Replacement for native_mutex. - (List_insert): New template function. - (List_remove): Ditto. - (List::List): Initialize synchronising mutex. - (List::fixup_after_fork): New method. - (List::insert): Add node via List_insert. - (List::remove): Remove node via List_remove. - (List::pop): Remove. - (List::for_each): Lock list while walking through. - (List::mx_init): New method. - (pthread_mutex::fixup_after_fork): Fixup mutex list after fork. - (pthread::fixup_after_fork): Ditto. - (pthread_conds::fixup_after_fork): Ditto. - (pthread_rwlock::fixup_after_fork): Ditto. - (semaphore::fixup_after_fork): Ditto. - (pthread_rwlock::readers_mx): New member. - -2003-10-24 Brian Ford <ford@vss.fsi.com> - - * fhandler.cc (fhandler_base::fcntl): Don't clobber O_APPEND when - both O_NONBLOCK/O_NDELAY are set for F_SETFL. - -2003-10-24 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (win32_device_name): Fix comment. - -2003-10-23 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Properly set return - value in FIONBIO case. - -2003-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Use new device code - to get major and minor device numbers. Fix size evaluation. - -2003-10-22 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_GET_ERRNO_FROM_WINERROR - handling. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_GET_ERRNO_FROM_WINERROR. - -2003-10-22 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add $(LIBSERVER) rule. - * cygserver.h: Moved from include/cygwin to here. - * cygserver_ipc.h: Moved from ../cygserver to here. - * cygserver_shm.h: Ditto. - * cygwin.din: Add shmat, shmctl, shmdt and shmget. - * fhandler_tty.cc (fhandler_tty_slave::open): Don't warn about handle - dup'ing if not build with USE_SERVER. - * shm.cc: Include cygerrno.h unconditionally. - (shmat): Set errno to ENOSYS and return -1 if not build with - USE_SERVER. - (shmctl): Ditto. - (shmdt): Ditto. - (shmget): Ditto. - * woutsup.h: Remove. - * include/cygwin/cygserver_process.h: Moved to ../cygserver directory. - * include/cygwin/cygserver_transport.h: Ditto. - * include/cygwin/cygserver_transport_pipes.h: Ditto. - * include/cygwin/cygserver_transport_sockets.h: Ditto. - * include/cygwin/version.h: Bump API minor number. - -2003-10-16 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (seteuid32): Always construct a default DACL including - the new sid, Admins and SYSTEM and copy it to the new thread token. - * security.cc (create_token): Use a NULL default DACL in NtCreateToken. - -2003-10-14 Micha Nelissen <M.Nelissen@student.tue.nl> - - * dcrt0.cc: Remove local variable alternate_charset_active. - * fhandler.h: Add variable alternate_charset_active, functions - str_to_con, con_to_str to dev_console structure. - * fhandler_console.cc (con_to_str): Move function into dev_console - class. - (str_to_con): Ditto. - (fhandler_console::read): Call con_to_str on dev_state. - (fhandler_console::write_normal): Call str_to_con on dev_state. - (fhandler_console::char_command): Change active_charset_active - assignment to be on dev_state. - * winsup.h: Remove global external variable alternate_charset_active. - -2003-10-13 Micha Nelissen <M.Nelissen@student.tue.nl> - - * fhandler_console.cc (char_command): Add escape sequence for codepage - ansi <-> oem switching for ncurses frame drawing capabilities. - * dcrt0.cc: Add local variable alternate_charset_active. - * winsup.h: Add global external variable alternate_charset_active. - -2003-10-14 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (ctrl_c_handler): Don't send SIGHUP on - CTRL_LOGOFF_EVENT to processes running in invisible Windows Stations. - * window.cc (has_visible_window_station): New function. - * winsup.h: Add declaration for has_visible_window_station. - -2003-10-10 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Don't create a new window - station if one already exists. - -2003-10-10 Christopher Faylor <cgf@redhat.com> - - * shared.cc (shared_info::initialize): Remove myself check since - hMainProc initialization will allow user initialization to work. - -2003-10-09 Yitzchak Scott-Thoennes <sthoenna@efn.org> - - * include/sys/mman.h (MAP_FAILED): Define as void *. - -2003-10-08 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (hMainProc): Initialize to useful value for use when dll is - dynamically loaded. - * shared.cc (shared_info::initialize): Don't initialize user stuff if - myself doesn't exist. - -2003-10-08 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink): Don't even try DELETE_ON_CLOSE technique on - systems not supporting it. - -2003-10-02 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dll_crt0_1): Call newlib __sinit routine to ensure that - stdio buffers are initialized to avoid thread initialization races. - -2003-10-01 Christopher Faylor <cgf@redhat.com> - - * path.cc (win32_device_name): Only fill out destination buffer when - it's really a device. - -2003-09-30 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Add YA method for generating devices.cc. - * child_info.h: YA update of another magic number. - * gendevices: New file. - * devices.in: New file. - * devices.cc: Regenerate. - * devices.shilka: Remove. - * devices.h: Correctly define device pointers. - (device): Remove now obsolete fields. - (device::native): Renamed from device::fmt. - * dtable.cc (build_fh_dev): Simplify in light of new unit parsing - scheme. - (build_fh_pc): Ditto. - * path.cc (win32_device_name): Ditto. - * fhandler.h (fhandler_base::get_native_name): Reflect renaming of fmt - to native. - * fhandler_tty.cc (fhandler_tty_mster::init): Initialize slave device - prior to reporting unit. - -2003-09-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fstat): Drop FH_FLOPPY case. - -2003-09-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_raw): Add method fstat. - * fhandler_raw.cc (fhandler_dev_raw::fstat): New method. - -2003-09-30 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (enum fh_devices): Remove DEV_RAWDRIVE_MAJOR and - FH_RAWDRIVE. - * devices.shilka (dev_rawdrive_storage): Remove. - (unit_devices): Remove pointer to dev_rawdrive_storage. - (uniq_devices): Remove rawdrive entry. - * dtable.cc (build_fh_pc): Remove DEV_RAWDRIVE_MAJOR case. - * path.cc (win32_device_name): ditto. - -2003-09-29 Corinna Vinschen <corinna@vinschen.de> - - * syslog.cc (vsyslog): Print debug message if ReportEventA fails. - -2003-09-28 Pierre Humblet <pierre.humblet@ieee.org> - - * sigproc.cc (proc_subproc): Restrict permissions on ppid_handle. - -2003-09-28 Christopher Faylor <cgf@redhat.com> - - * devices.shilka (device::parse): Restore check for tty in unit - handling, but without the previous typo. - * devices.cc: Regenerate. - * devices.h (DEV_CYGDRIVE_MAJOR): Change major number to one used by - linux for "user-mode virtual block device". - -2003-09-28 Corinna Vinschen <corinna@vinschen.de> - - * devices.h: Move a few device major numbers. Fix typo of FH_UDP. - * device.shilka: Remove /dev/hd device entries, rename all device_hd* - to device_sd*. - (device::parse): Disallow units outside lower and upper bounds. - * dtable.cc (build_fh_pc): Fix typo of FH_UDP. - * path.cc (win32_device_name): Fix win32 name creation to match new - device handling. - -2003-09-27 Christopher Faylor <cgf@redhat.com> - - * device.shilka (device::parse): Allow units on other than tty. - -2003-09-27 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Allow requesting server info for NT4 SP6. - -2003-09-27 Christopher Faylor <cgf@redhat.com> - - * path.cc (symlink_info::check): Use new introducer for mknod'ed files. - (parse_device): Ditto. - * syscalls.cc (mknod_worker): Ditto. - -2003-09-27 Christopher Faylor <cgf@redhat.com> - - * devices.shilka: Add /dev/sda disk devices. - * devices.cc: Regenerate. - -2003-09-27 Christopher Faylor <cgf@redhat.com> - - * cygwin-shilka: Remove '#line directives' or suffer debugging oddities. - Use -length option so that device prefixes are used. - * devices.cc: Regenerate. - * syscalls.cc (ttyname): Add debugging output. - -2003-09-26 Vaclav Haisman <V.Haisman@sh.cvut.cz> - - * wincap.h (wincaps::is_server): New flag. - (wincapc::version): Change type to OSVERSIONINFOEX. - (wincapc::is_server): New function. - * wincap.cc (wincap_unknown::is_server): New initializer. - (wincap_95): Ditto. - (wincap_95osr2): Ditto. - (wincap_98): Ditto. - (wincap_me): Ditto. - (wincap_nt3): Ditto. - (wincap_nt4): Ditto. - (wincap_nt4sp4): Ditto. - (wincap_2000): Ditto. - (wincap_xp): Ditto. - (wincapc::init): Adapt to OSVERSIONINFOEX. Add detection of NT server - systems. - * sched.cc: Include windows.h and registry.h. - (sched_rr_get_interval): Re-implement for NT systems. - -2003-09-26 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Properly set - ioctl_request event when window size changes. Store failing errno in - ioctl_retval (needed?). - -2003-09-26 Pavel Tsekov <ptsekov@gmx.net> - - * fhandler_console.c (fhandler_console::read): Record the state of the - SHIFT, CTRL and ALT keys at the time of the last keyboard input event. - (fhandler_console::ioctl): Handle requests to retrieve the keyboard - modifiers via the TIOCLINUX command. - * fhandler_tty.c (fhandler_tty_slave::read): Ditto. - * include/sys/termios.h (TIOCLINUX): New macro definition. - -2003-09-26 Pierre Humblet <pierre.humblet@ieee.org> - - * pinfo.cc (pinfo::init): Do not give FILE_MAP_WRITE access to Everybody. - * exceptions.cc (sig_handle_tty_stop): Do not create pinfo parent with - PID_MAP_WRITE. - * fhandler_process.cc (fhandler_process::fill_filebuf): Ditto for pinfo p. - * signal.cc (kill_worker): Ditto for pinfo dest. - -2003-09-26 Pierre Humblet <pierre.humblet@ieee.org> - - * pinfo.h (pinfo::set_acl): Declare. - * pinfo.cc (pinfo_fixup_after_fork): Duplicate with no rights. - (pinfo::set_acl): New. - * spawn.cc (spawn_guts): Call myself.set_acl. - -2003-09-26 Pierre Humblet <pierre.humblet@ieee.org> - - * uinfo.cc (cygheap_user::init): Make sure the current user appears - in the default DACL. Rearrange to decrease the indentation levels. - Initialize the effec_cygsid directly. - (internal_getlogin): Do not reinitialize myself->gid. Open the process - token with the required access. - * cygheap.h (class cygheap_user): Delete members pid and saved_psid. - Create members effec_cygsid and saved_cygsid. - (cygheap_user::set_sid): Define inline. - (cygheap_user::set_saved_sid): Ditto. - (cygheap_user::sid): Modify. - (cygheap_user::saved_sid): Modify. - * cygheap.cc (cygheap_user::set_sid): Delete. - (cygheap_user::set_saved_sid): Ditto. - * sec_helper.cc (sec_acl): Set the correct acl size. - * autoload.cc (FindFirstFreeAce): Add. - * security.h: Define ACL_DEFAULT_SIZE. - -2003-09-26 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (munmap): Use correct address and length parameters when - calling fhandler's munmap. - -2003-09-26 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Set errno to E2BIG if command line is - longer than CreateProcess allows (32K). - -2003-09-25 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (build_fh_name): Return pointer to a 'nodevice' rather than - a NULL pointer or suffer SEGVs with invalid paths. - -2003-09-25 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_parent): Detect failed pinfo constructor. - * spawn.cc (spawn_guts): Don't overwrite ENOMEM errno on failed pinfo - constructor. - -2003-09-25 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawnve): Remove vfork short circuit and let caller deal - with error return. - -2003-09-25 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Catch potential error from pinfo.remember. - Change debug messages to make sense. Pass correct value to pinfo - constructor. Ensure cleanup after errors. Always reimpersonate after - errors. - -2003-09-25 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Move system signal handling stuff after - CreateProcess error check. - -2003-09-25 Pierre Humblet <pierre.humblet@ieee.org> - - * shared_info.h: Update CURR_USER_MAGIC, CURR_SHARED_MAGIC and - SHARED_INFO_CB. - (mount_info::cb): Delete. - (mount_info::version): Delete. - (shared_info::delqueue): Delete. - * Makefile.in: Do magic for USER_MAGIC, class user_info, instead - of for mount_info. - -2003-09-24 Christopher Faylor <cgf@redhat.com> - - * include/tzfile.h: Add some missing entries. - -2003-09-24 Christopher Faylor <cgf@redhat.com> - - * include/paths.h: Add some missing entries. - -2003-09-24 Christopher Faylor <cgf@redhat.com> - - * shared_info.h (CURR_MOUNT_MAGIC): Fix. - - * sigproc.cc (sigpacket): New structure. - (sig_send): Fill out sigpacket structure to send to signal thread - rather than racily sending separate packets. - (wait_sig): Use sigpacket structure to receive info from signal sender. - -2003-09-24 Pierre Humblet <pierre.humblet@ieee.org> - - * shared_info.h (class user_info): New. - (cygwin_user_h): New. - (user_shared): New. - (enum shared_locations): Replace SH_MOUNT_TABLE by SH_USER_SHARED; - (mount_table): Change from variable to macro. - * shared.cc: Use sizeof(user_info) in "offsets". - (user_shared_initialize): Add "reinit" argument to indicate need - to reinitialize the mapping. Replace "mount_table" by "user_shared" - throughout. Call user_shared->mountinfo.init and - user_shared->delqueue.init. - (shared_info::initialize): Do not call delqueue.init. - (memory_init): Add argument to user_shared_initialize. - * child_info.h (child_info::mount_h): Delete. - (child_info::user_h): New. - * sigpproc.cc (init_child_info): Use user_h instead of mount_h. - * dcrt0.cc (_dll_crt0): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::close): Use - user_shared->delqueue instead of cygwin_shared->delqueue. - * fhandler_virtual.cc (fhandler_virtual::close): Ditto. - * syscalls.cc (close_all_files): Ditto. - (unlink): Ditto. - (seteuid32): Add argument to user_shared_initialize. - -2003-09-24 Christopher Faylor <cgf@redhat.com> - - * devices.cc: New file. - * devices.gperf: New file. - * devices.shilka: New file. - * cygwin-gperf: New file. - * cygwin-shilka: New file. - * fhandler_fifo.cc: New file. - * fhandler_nodevice.cc : New file. - -2003-09-24 Christopher Faylor <cgf@redhat.com> - - Reorganize headers so that path.h precedes fhandler.h throughout. - Remove device argument and unit arguments from fhandler constructors - throughout. Remove pc arguments to fhandler functions and use internal - pc element instead, throughout. Use dev element in pc throughout. Use - major/minor elements rather than units and device numbers previously in - fhandler class. Use correct methods for fhandler file names rather - than directly accessing file name variables, throughout. - * Makefile.in (DLL_OFILES): Add devices.o, fhandler_fifo.o - * dcrt0.cc (dll_crt0_1): Call device::init. - * devices.h: Renumber devices based on more Linux-like major/minor - numbers. Add more devices. Declare standard device storage. - (device): Declare struct. - * dir.cc (opendir): Use new 'build_fh_name' to construct a fhandler_* - type. - * dtable.cc (dtable::get_debugger_info): Ditto. - (cygwin_attach_handle_to_fd): Ditto. - (dtable::release): Remove special FH_SOCKET case in favor of generic - "need_fixup_before" test. - (dtable::init_std_file_from_handle): Use either build_fh_dev or - build_fh_name to build standard fhandler. - (dtable::build_fh_name): Renamed from dtable::build_fhandler_from_name. - Move out of dtable class. Don't accept a path_conv argument. Just - build it here and pass it to: - (build_fh_pc): Renamed from dtable::build_fhandler. Move out of dtable - class. Use intrinsic device type in path_conv to create new fhandler. - (build_fh_dev): Renamed from dtable::build_fhandler. Move out of - dtable class. Simplify arguments to just take new 'device' type and a - name. Just return pointer to fhandler rather than trying to insert - into dtable. - (dtable::dup_worker): Accommodate above build_fh name changes. - (dtable::find_fifo): New (currently broken) function. - (handle_to_fn): Use strechr for efficiency. - * dtable.h: Reflect above build_fh name changes and argument - differences. - (fhandler_base *&operator []): Return self rather than copy of self. - * fhandler.cc (fhandler_base::operator =): Use pc element to set - normalized path. - (fhandler_base::set_name): Ditto. - (fhandler_base::raw_read): Use method to access name. - (fhandler_base::write): Correctly use get_output_handle rather than - get_handle. - (handler_base::device_access_denied): New function. - (fhandler_base::open): Eliminate pc argument and use pc element of - fhandler_base throughout. - (fhandler_base::fstat): Detect if device is based in filesystem and use - fstat_fs to calculate stat, if so. - (fhandler_base::fhandler_base): Eliminate handling of file names and, - instead, just free appropriate component from pc. - (fhandler_base::opendir): Remove path_conv parameter. - * fhandler.h: Remove all device flags. - (fhandler_base::pc): New element. - (fhandler_base::set_name): Change argument to path_conv. - (fhandler_base::error): New function. - (fhandler_base::exists): New function. - (fhandler_base::pc_binmode): New function. - (fhandler_base::dev): New function. - (fhandler_base::open_fs): New function. - (fhandler_base::fstat_fs): New function. - (fhandler_base::fstat_by_name): New function. - (fhandler_base::fstat_by_handle): New function. - (fhandler_base::isfifo): New function. - (fhandler_base::is_slow): New function. - (fhandler_base::is_auto_device): New function. - (fhandler_base::is_fs_special): New function. - (fhandler_base::device_access_denied): New function. - (fhandler_base::operator DWORD&): New operator. - (fhandler_base::get_name): Return normalized path from pc. - (fhandler_base::get_win32_name): Return windows path from pc. - (fhandler_base::isdevice): Renamed from is_device. - (fhandler_base::get_native_name): Return device format. - (fhandler_fifo): New class. - (fhandler_nodevice): New class. - (select_stuff::device_specific): Remove array. - (select_stuff::device_specific_pipe): New class element. - (select_stuff::device_specific_socket): New class element. - (select_stuff::device_specific_serial): New class element. - (select_stuff::select_stuff): Initialize new elements. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Move to base - class from fhandler_disk_file. - (fhandler_base::fstat_by_name): Ditto. - (fhandler_base::fstat_by_name): Ditto. - (fhandler_disk_file::open): Move most functionality into - fhandler_base::open_fs. - (fhandler_base::open_fs): New function. - (fhandler_disk_file::close): Move most functionality into - fhandler_base::close_fs. - (fhandler_base::close_fs): New function. - * fhandler_mem.cc (fhandler_dev_mem::open): Use device name in - debugging output. - * fhandler_socket.cc (fhandler_socket::set_connect_secret): Copy - standard urandom device into appropriate place. - (fhandler_socket::accept): Reflect change in fdsock return value. - * fhandler_tty.cc: See "throughouts" above. - * net.cc: Accommodate fdsock change throughout. - (fdsock): Return success or failure, accept fd argument and device - argument. - * path.cc (symlink_info::major): New element. - (symlink_info::minor): New element. - (symlink_info::parse_device): Declare new function. - (fs_info::update): Accommodate changes in path_conv class. - (path_conv::fillin): Ditto. - (path_conv::return_and_clear_normalized_path): Eliminate. - (path_conv::set_normalized_path): New function. - (path_conv::path_conv): Set info in dev element. Use path_conv methods - Check for FH_FS rather than FH_BAD to indicate when to fill in - filesystem stuff. where appropriate rather than direct access. Use - set_normalized_path to set normalized path. - (windows_device_names): Eliminate. - (get_dev): Ditto. - (get_raw_device_number): Ditto. - (get_device_number): Ditto. - (win32_device_name): Call new device name parser to do most of the - heavy lifting. - (mount_info::conv_to_win32_path): Fill in dev field as appropriate. - (symlink_worker): Handle new device files. - (symlink_info::check): Ditto. - (symlink_info::parse_device): Define new function. - * path.h (executable_states): Move here from fhandler.h. - (fs_info): Rename variables to *_storage and create methods for - accessing same. - (path_conv): Add dev element, remove devn and unit and adjust inline - methods to accommodate. - (set_normalized_path): Declare new function. - * pinfo.cc (_pinfo::commune_recv): Add broken support for handling - fifos. - (_pinfo::commune_send): Ditto. - * pipe.cc (fhandler_pipe::close): check for existence of handle before - closing it. - (handler_pipe::create): Rename from make_pipe. Change arguments to - accept fhandler_pipe array. Accommodate fifos. - (pipe): Rework to deal with fhandler_pipe::create changes. - (_pipe): Ditto. - * select.cc: Use individual device_specific types throughout rather - than indexing with obsolete device number. - (set_bits): Use is_socket call rather than checking device number. - * shared_info.h (CURR_MOUNT_MAGIC): Update. - (conv_to_win32_path): Reflect addition of device argument. - * syscalls.cc (mknod_worker): New function. - (open): Use build_fh_name to build fhandler. - (chown_worker): Detect if this is an 'auto' device rather than an - on-filesystem device and handle appropriately. - (chmod_device): New function. - (chmod): Detect if this is an 'auto' device rather than an - on-filesystem device and handle appropriately. Use chmod_device to set - mode of in-filesystem devices. - (stat_worker): Eliminate path_conv argument. Call build_fh_name to - construct fhandler. Use fh->error() rather than pc->error to detect - errors in fhandler construction. - (access_worker): New function pulled from access. Accommodate - in-filesystem devices. - (access): Use access_worker. - (fpathconf): Detect if this is an 'auto' device rather than an - on-filesystem device and handle appropriately. - (mknod_worker): New function. - (mknod32): New function. - (chroot): Free normalized path -- assuming it was actually cmalloced. - * tty.cc (create_tty_master): Tweak for new device class. - (tty::common_init): Ditto. - * winsup.h (stat_worker): Remove. - (symlink_worker): Declare. - - * exceptions.cc (set_process_mask): Just call sig_dispatch_pending and - don't worry about pending_signals since sig_dispatch_pending should - always do the right thing now. - (sig_handle): Reorganize SIGCONT handling to more closely conform to - SUSv3. - * pinfo.h: Move __SIG enum to sigproc.h. - (PICOM_FIFO): New enum element. - (_pinfo): Remove 'thread2signal' stuff throughout class. - (_pinfo::commune_send): Make varargs. - (_pinfo::sigtodo): Eliminate. - (_pinfo::thread2signal): Ditto. - * signal.cc (kill_worker): Eliminate call to setthread2signal. - * sigproc.cc (local_sigtodo): Eliminate. - (getlocal_sigtodo): Ditto. - (sigelem): New class. - (pending_signals): New class. - (sigqueue): New variable, start of sigqueue linked list. - (sigcatch_nonmain): Eliminate. - (sigcatch_main): Eliminate. - (sigcatch_nosync): Eliminate. - (sigcomplete_nonmain): Eliminate. - (pending_signals): Eliminate. - (sig_clear): Call signal thread to clear pending signals, unless - already in signal thread. - (sigpending): Call signal thread to get pending signals. - (sig_dispatch_pending): Eliminate use of pending_signals and just check - sigqueue. - (sigproc_terminate): Eliminate all of the obsolete semaphore stuff. - Close signal pipe handle. - (sig_send): Eliminate all of the obsolete semaphore stuff and use pipe - to send signals. - (getevent): Eliminate. - (pending_signals::add): New function. - (pending_signals::del): New function. - (pending_signals::next): New function. - (wait_sig): Eliminate all of the obsolete semaphore stuff. Use pipe to - communicate and maintain a linked list of signals. - * sigproc.h: Move __SIG defines here. Add __SIGPENDING. - (sig_dispatch_pending): Remove "C" specifier. - (sig_handle): Accept a mask argument. - * thread.cc: Remove signal handling considerations throughout. - -2003-09-22 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (do_exit): Eliminate "C" linkage. Call events_terminate - early. - (exit_states): Move out of source file into header file. - * winsup.h: Move exit_states here. Remove "C" linkage from do_exit - declaration. - * debug.cc (lock_debug): Remove explicit (and incorrect) external for - exit_state. - * sigproc.cc (sig_dispatch_pending): Don't flush signals if exiting. - -2003-09-20 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (pthread_cleanup): New struct. - (do_cleanup): New function. - (spawn_guts): Initialize struct for pthread_cleanup handling to ensure - proper restoration of signals if/when thread is cancelled. Restore - settings using pthread_cancel_pop. - -2003-09-19 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 6. - -2003-09-19 Christopher Faylor <cgf@redhat.com> - - * thread.h (__reent_t::init_clib): Declare new function. - * thread.cc (__reent_t::init_clib): Define new function. - (pthread::thread_init_wrapper): Use __reent_t::init_clib to init local - clib storage and set std{in,out,err} appropriately. - -2003-09-19 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (system): Strip signal considerations from here so that - they are not inherited by a child process. - * spawn.cc (spawn_guts): Handle system() signal stuff here. - * winsup.h (_P_SYSTEM): Define. - -2003-09-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): - Handle buf == NULL as flushing the buffer. - (fhandler_tty_slave::read): Handle ptr == NULL as flushing the buffer. - (fhandler_tty_slave::tcflush): Implement input queue flushing by - calling read with NULL buffer. - (fhandler_pty_master::tcflush): Ditto, calling process_slave_output. - * termios.cc (tcflush): Check for legal `queue' value. Return - EINVAL otherwise. - -2003-09-16 Brian Ford <ford@vss.fsi.com> - - * syscalls.cc (gethostid): Add lpFreeBytesAvailable argument to - GetDiskFreeSpaceEx call since NT4 requires it. - -2003-09-16 Christopher Faylor <cgf@redhat.com> - - * fhandler_process.cc (fhandler_process::fill_filebuf): Open pinfo with - PID_MAP_RW. - * sigproc.cc (talktome): Ditto for winpids. - -2003-09-16 Christopher Faylor <cgf@redhat.com> - - * pinfo.h (winpids::pid_access): New element. - (winpids::winpids): Rejigger to set pinfo_access. - * pinfo.cc (winpids::add): Try to open shared memory region with - supplied pinfo_access first, then default to readonly. - * fhandler_termios.cc (tty_min::kill_pgrp): When getting list of pids - to work with, suggest opening with PID_MAP_RW. - * signal.cc (kill_pgrp): Ditto. - * sigproc.cc (sig_send): Perform a write check on todo prior to - attempting to increment it. Return EACCES if we can't write to it. - -2003-09-16 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::set_saved_sid): Rename from set_orig_sid. - * cygheap.h (class cygheap_user): Rename orig_psid, orig_uid and - orig_gid to saved_psid, saved_uid and saved_gid respectively. - Rename methods orig_sid and set_orig_sid to saved_sid and set_saved_sid - respectively. - * sec_helper.cc (sec_acl): Accommodate above changes. - * spawn.cc (spawn_guts): Ditto. - * uinfo.cc (uinfo_init): Ditto. - -2003-09-15 Christopher Faylor <cgf@redhat.com> - - * getopt.c (opterr): Reinstate initialization. - (optind): Ditto. - (optopt): Ditto. - * pinfo.cc: Include cygheap.h or suffer compile error. - * shared.h: Reset magic number. - -2003-09-15 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle_tty_stop): Fix boneheaded mistake by using - correct check for parent state rather than inverted check. - -2003-09-15 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h (__sec_user): Add "access2" argument. - (sec_acl): Add "original" and "access2" arguments. - (sec_user): Add "sid2" and "access2" argument. Remove dependence on - allow_ntsec. - (sec_user_nih): Ditto. - * sec_helper.cc (__sec_user): Add "has_security" test. - Call sec_acl with new arguments, letting it handle original_sid. - (sec_acl): Add "original" and "access2" arguments. Handle original_sid - depending on flag but avoiding duplicates. Use "access2" for sid2. - * pinfo.cc (pinfo::init): Use security attributes created by sec_user - when creating the mapping. - * security.cc (create_token): Adjust arguments in call to sec_acl. - Call sec_user instead of __sec_user. - * syscall.cc (seteuid32): Adjust arguments in call to sec_acl. Remove - now unnecessary test. Remove useless conversions to psid. - * dcrt0.cc (dll_crt0_1): Call cygsid::init before pinfo_init. - -2003-09-13 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Make malloc_wrapper -fomit-frame-pointer. - - * cygwin.din: Remove extraneous mallinfo definition. - - * dcrt0.cc (quoted): Use strechr for efficiency. - - * fhandler.cc (fhandler_base::write): Correctly use get_output_handle - rather than get_handle. - (fhandler_base::lseek): Use method for accessing name in debug output. - -2003-09-13 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (path_conv::ndisk_links): Fix potential - off-by-one problem when first file in a directory is a directory. - -2003-09-13 Pierre Humblet <pierre.humblet@ieee.org> - - * include/sys/cygwin.h: Rename PID_UNUSED to PID_MAP_RW. - * pinfo.cc (pinfo_init): Initialize myself->gid. - (pinfo::init): Create the "access" variable, set it appropriately and - use it to specify the requested access. - * exceptions.cc (sig_handle_tty_stop): Add PID_MAP_RW in pinfo parent. - * signal.cc (kill_worker): Ditto for pinfo dest. - * syscalls.cc (setpgid): Ditto for pinfo p. - -2003-09-13 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 5. - -2003-09-12 Christopher Faylor <cgf@redhat.com> - - * thread.cc (MTinterface::fixup_after_fork): Remove code which - potentially overwrote _impure pointer with contents of thread which - invoked fork since this eliminates important information like the - pointer to the atexit queue. - -2003-09-12 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (path_conv::ndisk_links): Fix problem where - search characters overwrote the path instead of being tacked on the - end. - -2003-09-12 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (_dll_crt0): Accommodate breaking apart of early_stuff_init. - * exceptions.cc (early_stuff_init): Delete. - (init_console_handler): New function - top half of early_stuff_init. - (init_global_security): New function - bottom half of early_stuff_init. - (sig_handle): Avoid special hExeced test for SIGINT. Just terminate - the captive process. - (signal_exit): Add debugging output. - * fhandler_tty.cc (fhandler_tty_slave::open): Don't allocate a console - if one already seems to exist. Properly initialize ctrl-c handling if - we do allocate a console. - * winsup.h (early_stuff_init): Delete declaration. - (init_console_handler): New declaration. - (init_global_security): New declaration. - -2003-09-11 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (path_conv::ndisk_links): Rename from - num_entries. Accept an argument and calculate any extra links needed - based on missing . and .. entries. - (fhandler_disk_file::fstat_helper): Always call pc->ndisks_links() to - calculate the number of links. - * path.h (path_conv::ndisk_links): Declare. - -2003-09-11 Christopher Faylor <cgf@redhat.com> - - * path.cc (normalize_posix_path): Put check for '//' prefix back to - denote a UNC path. - (slash_unc_prefix_p): Remove vestige of old //c method for accessing - drives. - -2003-09-11 Christopher Faylor <cgf@redhat.com> - - * dir.cc (rmdir): Add more samba workarounds. - -2003-09-11 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (user_shared_initialize): Revert length attribute for name - variable to be just UNLEN + 1. - -2003-09-10 Pierre Humblet <pierre.humblet@ieee.org> - - * shared_info.h (shared_info::initialize): Remove argument. - * cygheap.h (cygheap_user::init): New declaration. - * uinfo.cc (cygheap_user::init): New. - (internal_getlogin): Move functionality to cygheap_user::init. Open - the process token to update the group sid. - * shared.cc (user_shared_initialize): Get the user information from - cygheap->user. - (shared_info::initialize): Remove argument. Call cygheap->user.init - instead of cygheap->user.set_name. - (memory_init): Do not get the user name and do not pass it to - shared_info::initialize. - * registry.cc (get_registry_hive_path): Make csid a cygpsid. - (load_registry_hive): Ditto. - -2003-09-10 Christopher Faylor <cgf@redhat.com> - - * fhandler_disk_file.cc (num_entries): Take . and .. into account if - they do not exist since cygwin simulates them. - (fhandler_cygdrive::fstat): Ditto. - (fhandler_cygdrive::readdir): Don't do any specific tests on - __d_position when seeing if a drive exists. - -2003-09-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add getopt.o and iruserok.o. - * cygwin.din: Export __check_rhosts_file, __rcmd_errstr, optarg, - opterr, optind, optopt, optreset, getopt, getopt_long, iruserok - and ruserok. - * getopt.c: Moved from lib to here. Define opt* variables as - dllexport. - * iruserok.c: Moved from lib to here. Rearrange function order. - Prefer using 64/32 bit functions. - * syscalls.cc (shell_fp): Define as struct __sFILE64. - (getusershell): Use fopen64 instead of fopen. - * winsup.h: Add declarations for seteuid32, fopen64, - cygwin_gethostbyname and cygwin_inet_addr. - * include/getopt.h: Declare opt* variables dllimport. - * include/cygwin/version.h: Bump API minor number. - -2003-09-10 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle_tty_stop): Check parent PID_NOCLDSTOP - rather than erroneously checking *my own* sigtodo. - -2003-09-10 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Add some more -fomit-frame-pointer files. - - * path.cc (conv_path_list_buf_size): Free normalized_path or suffer - memory leak. - * syscalls.cc (chroot): Ditto. - -2003-09-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add bsdlib.o. - * autoload.cc (RegisterServiceProcess): Add. - * bsdlib.cc: New file. - (daemon): New function. - (login_tty): Ditto. - (openpty): Ditto. - (forkpty): Ditto. - * cygwin.din: Export daemon, forkpty, login_tty, logwtmp, updwtmp, - openpty and revoke. - * syscalls.cc (updwtmp): New function, writing to wtmp exclusively. - (logwtmp): Ditto. - (login): Call updwtmp instead of writing to wtmp by itself. - (logout): Ditto. - * tty.cc (revoke): New funtion. - * include/paths.h: Define _PATH_DEVNULL. - * include/pty.h: New header. - * include/cygwin/version.h: Bump API minor number. - * include/sys/utmp.h: Declare logwtmp with const arguments. - Declare updwtmp. - * lib/iruserok.c: New file. - (ruserok): New function. - (iruserok): Ditto. - (__ivaliduser): Ditto. - (__icheckhost): Ditto. - -2003-09-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fstat): Don't use PC_POSIX. - -2003-09-09 Pierre Humblet <pierre.humblet@ieee.org> - - * shared_info.h: Include security.h. - (open_shared): Add psa argument. - (user_shared_initialize): New declaration. - * security.h: Add _SECURITY_H guard. - (sec_user): Use sec_none in the no ntsec case. - * spawn.cc (spawn_guts): Remove call to load_registry_hive. - * syscalls (seteuid32): If warranted, call load_registry_hive, - user_shared_initialize and RegCloseKey(HKEY_CURRENT_USER). - * shared.cc (user_shared_initialize): New. - (open_shared): Add and use psa argument. - (memory_init): Move mount table initialization to - user_shared_initialize. Call it. - -2003-09-09 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Change address types from caddr_t to void * - according to SUSv3. - (mmap): Ditto. - (munmap): Ditto. - (msync): Ditto. - (mprotect): Ditto. Move to before the fhandler methods. - * include/sys/mman.h: Change prototypes accordingly. - -2003-09-08 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (dlL_crt0_1): Set __argc_safe after __argc is absolutely - know to be set. - * exceptions.cc (sig_handle_tty_stop): Don't reset sigCONT event since - it is reset automatically. - * fork.cc (fork): Remove obsolete usage of PID_SPLIT_HEAP. - * include/sys/cygwin.h: Ditto. - * sigproc.cc (sig_send): Use sigframe init method to set frame since it - checks for previous ownership of the frame. - * sigproc.h (sigframe::init): Accept an "is_exception" argument. - -2003-09-08 Christopher Faylor <cgf@redhat.com> - - * dir.cc (readdir): Reinstate setting of old ino field for legacy - applications. - * dirent.h (dirent): Rename unused field to __ino32. - -2003-09-08 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (getpwnam_r): Initialize pw_comment field. - -2003-09-08 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (getpwuid_r32): Initialize pw_comment field. - -2003-09-08 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig_inited): Remove assertion since it is racy. - -2003-09-08 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export endusershell, getusershell and setusershell. - * syscalls.cc (getusershell): New function. - (setusershell): Ditto. - (endusershell): Ditto. - * include/cygwin/version.h: Bump API minor number. - -2003-09-08 Nicholas Wourms <nwourms@netscape.net> - - * cygwin.din: Export argz_add argz_add_sep argz_append argz_count - argz_create argz_create_sep argz_delete argz_extract argz_insert - argz_next argz_replace argz_stringify envz_add envz_entry envz_get - envz_merge envz_remove envz_strip - * include/cygwin/version.h: Bump api minor number. - -2003-09-07 Christopher Faylor <cgf@redhat.com> - - Throughout, remove __d_u.__d_data fields from DIR structure. - * include/sys/dirent.h (dirent): Remvoe old_d_ino. - (DIR): Make __d_dirhash a 64 bit value. Remove __d_data and __d_u. - Add __flags. - * dir.cc (opendir_states): New enum. - (opendir): Clear new DIR __flags field. - (readdir): Fill in '.' and '..' entries if we hit EOF and we haven't - seen them already. Nuke setting of old_d_ino. - (rewinddir): Reset DIR __flags field. - (seekdir64): Ditto. - * fhandler_disk_file.cc (fhandler_cygdrive::fhandler_cygdrive): Remove - special handling of "." and ".." since they are now handled - automatically. - -2003-09-07 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/in.h: Don't define ipv6 stuff unless we call for it - specifically since it isn't really implemented yet. - -2003-09-07 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (_csbrk): More left coercion cleanup. - * fhandler_tty.cc (fhandler_tty_slave::read): Ditto. - (fhandler_tty_slave::write): Ditto. - * fhandler_windows.cc (fhandler_windows::read): Ditto. - * heap.cc (sbrk): Ditto. - -2003-09-07 Pierre Humblet <pierre.humblet@ieee.org> - - * signal.cc (nanosleep): Improve test for valid values. Round delay up - to resolution. Fix test for negative remainder. Use timeGetTime - through gtod. - (sleep): Round up return value. - -2003-09-07 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@redhat.com> - - * hires.h (HIRES_DELAY_MAX): Define. - (hires_ms::minperiod): Declare static. - (hires_ms::resolution): New. - (hires_ms::dmsecs): New. - (hires_ms::prime): Return UINT. - (gtod): Declare. - * times.cc (hires_ms::prime): Always calculate minperiod and set it to - 1 in case of failure. Return minperiod. - (hires_ms::resolution): Define. - (hires_ms::~hires_ms): Delete. - (hires_ms::usecs): Check minperiod to prime. - (gtod) Define as global. - -2003-09-06 Christopher Faylor <cgf@redhat.com> - - Remove left coercion throughout. - -2003-09-04 Pierre Humblet <pierre.humblet@ieee.org> - - * hires.h (hires_ms::~hires_ms): Delete declaration. - * times.cc (hires_ms::~hires_ms): Delete definition.. - -2003-09-04 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (__argc_safe): New variable. - (dll_crt0_1): Store argc in __argc_safe, which will theoretically - remain untouched by the user. - * fhandler_console.cc (fhandler_console::read): Silence some compiler - warnings. - * fhandler_raw.cc (fhandler_dev_raw::raw_read): Ditto. - * pinfo.cc (_pinfo::commune_recv): Carefully bound argv scan and check - for potentially bad pointers since user could have set argv cell to - anythinw. - * cygheap.h (CYGHEAPSIZE): Bump up size. - -2003-09-04 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sysconf): Return more accurate value for _SC_AVPHYS_PAGES. - -2003-09-04 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Restructure. Add, remove and rewrite comments throughout - for better readability. Change function names for better - understanding. - (MAP_SET): Accommodate name change from map_map_ to page_map_. - (MAP_CLR): Ditto. - (MAP_ISSET): Ditto. - (mmap_record::page_map_): Rename from page_map_. - (mmap_record::get_map): Remove. - (mmap_record::alloc_page_map): Rename from alloc_map. Return bool - indicating success of cygheap memory allocation. - (mmap_record::free_page_map): Rename from free_map. - (mmap_record::fixup_page_map): Rename from fixup_map. - (mmap_record::find_unused_pages): Rename from find_empty. - (mmap_record::map_pages): Rename from map_map. - (mmap_record::unmap_pages): Rename from unmap_map. - (class list): Make all class members private. - (list::list): Remove. - (list::~list): Remove. - (list::get_fd): New attribute reader. - (list::get_hash): Ditto. - (list::get_record): Ditto. - (list::add_record): Manage all allocation for mmap_records. Check - for failed memory allocation and return NULL if so. - (list::set): New function. - (list::del_record): Rename from erase. Return true if last mmap_record - has been deleted, false otherwise. Check for legal incoming index - value. - (list::erase): Remove erase/0. - (list::search_record): Rename from match. - (map::map): Remove. - (map::~map): Remove. - (map::add_list): Manage all allocation for lists. Check for failed - memory allocation and return NULL if so. - (map::get_list): New method. - (map::del_list): Rename from erase. Check for legal incoming index - value. - (mmap64): Check for failed mmap_record memory allocation. Return - with MAP_FAILED and errno set to ENOMEM if so. - (munmap): Rearrange loop using new list and mmap_record accessor - functions. Rename loop index variables for better understanding. - Check if list can be deleted after last mmap_record in it has been - deleted. - (msync): Rearrange loop using new list and mmap_record accessor - functions. Rename loop index variables for better understanding. - (fixup_mmaps_after_fork): Ditto. - -2003-09-03 Christopher Faylor <cgf@redhat.com> - - * cxx.cc (new): Fix formatting. Just return result of ccalloc rather - than calling memset explicitly. - -2003-09-03 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (set_process_mask): Set pending signals only when - signals become unmasked. - * sigproc.cc (pending_signals): Flip back to a global. - (wait_sig): Don't set pending signals when there is an armed semaphore - or signal is blocked. - - * shared.cc (shared_info::initialize): Add a username parameter for - user-mode mounts. Reorganize to try to avoid startup race. - (memory_init): Move some stuff into shared_info::initialize. - * shared_info.h (shared_info::initialize): Change declaration. - (CURR_SHARED_MAGIC): Update. - -2003-09-01 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 4. - -2003-09-01 Christopher Faylor <cgf@redhat.com> - - * net.cc (dup_ent): Restore check for NULL input. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h: Don't define cygwin-specific things if - !__CYGWIN__. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_init): Allocate space for sigaction array in - cygheap. - * cygheap.h (cygheap_types): Add HEAP_SIGS. - * exceptions.cc (signal_fixup_after_exec): Remove from this file. - * pinfo.h (pinfo::getsig): Just return global_sigs array. - (pinfo::sigs): Delete. - * sigproc.cc (signal_fixup_after_exec): Move it here. - (global_sigs): New global array, moved from pinfo structure. - (sigalloc): New function. Allocate global sigaction array here. - (proc_subproc): Remove copysigs call. It's automatic now. - * include/sys/cygwin.h (PID_NOCLDSTOP): New value. - * signal.cc (sigaction): Set myself->PID_NODCLDSTOP when appropriate. - * sigproc.h (sigalloc): Declare. - - * fnmatch.c (fnmatch): Use C90 parameters. - (rangematch): Ditto. - - * fhandler.cc (fhandler_base::raw_read): Use right coercion to avoid a - compiler warning. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * net.cc (dup_ent): Make debugging output consistent. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - Use dup_ent rather than specific dup_*_ptr functions throughout. - * (gen_ent): Delete. - (dup_ent): Subsume gen_ent functionality. - (dup_host_ptr): Delete. - (dup_proto_ptr): Ditto. - (dup_servent_ptr): Ditto. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * net.cc (gen_ent): Invert sense of null check so that debug output - makes sense. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * net.cc (free_char_list): Delete. - (dup_addr_list): Delete. - (dup_char_list): Delete. - (free_hostent_ptr): Delete. - (free_protoent_ptr): Delete. - (free_servent_ptr): Delete. - (DWORD_round): New function. - (strlen_round): New function. Returns strlen rounded up to word size. - (dup_ent): New, generic function to duplicate a {host,proto,serv}ent - structure. - (gen_ent): New macro. Generates a generic dup_{host,proto,serv}ent_ptr - function. - (cygwin_getservbyname): Remove call to free_servent_ptr, pass - servent_buf to dup_servent_ptr. - (cygwin_getservbyport): Ditto. - (cygwin_gethostbyname): Ditto for hostent. - (cygwin_gethostbyaddr): Ditto. - (cygwin_getprotobyname): Ditto for protoent. - (cygwin_getprotobynumber): Ditto. - -2003-08-31 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (MALLOC_OFILES): Always fill in with correct malloc - object. - * configure.in: Fill in MALLOC_OFILES with either debugging or regular - malloc. - * configure: Regenerate. - * dlmalloc.c: Make various fruitless changes to attempt to get to work. - * dlmalloc.h: Ditto. - * malloc.cc (free): Check malloc pool when debugging. - - * path.cc (win32_device_name): Eliminate compiler warning. - - * sigproc.cc (sig_dispatch_pending): Remove use of was_pending. Let - thisframe.call_signal_handler decide if handler should be called rather - than using bogus was_pending check. - - * exceptions.cc (interrupt_setup): Remove accidentally checked in - debugging code. - -2003-08-30 Christopher Faylor <cgf@redhat.com> - - * heap.cc (sbrk): Save rounded address in user_heap_max. - -2003-08-30 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sig_dispatch_pending): Remove explicit call to - thisframe.call_signal_handler. - -2003-08-30 Christopher Faylor <cgf@redhat.com> - - Remove some cygserver files. - -2003-08-28 Christopher Faylor <cgf@redhat.com> - - * sigproc.h: Make some functions regparm. - * sigproc.cc (checkstate): Make regparm. - (getevent): Change parameters in declaration, rename from getsem, make regparm. - (sig_send): Recognize that nosync is now an event. Remove some old - cruft from previous interrupt anywhere signal handler. - (getevent): Change parameters in definition, rename from getsem. - Allocate event rather than semaphore. - (wait_sig): Treat sigcatch_nosync as an event. - -2003-08-28 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sigreturn): Fix problem where old return address was - not properly restored for a nested signal. - -2003-08-27 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (SwitchToThread): Declare as autoload function. - * cygthread.h (cygthread::main_thread_id): Make public. - * exceptions.cc (setup_handler): Remove unneeded priority stuff. - Rename label to reflect what it does. Add debugging for idiotic - Windows NT problem. Change debugging output to include signal number. - * miscfuncs.cc (low_priority_sleep): If available, use SwitchToThread - function to give time slice to other threads. - * wincap.cc: Properly define have_switch_to_thread throughout. - * wincap.h (wincap::switch_to_thread): New element. - -2003-08-27 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (mount): Don't check win32_path when doing cygdrive - mount. - -2003-08-27 Christopher Faylor <cgf@redhat.com> - - * specdir: Correctly remove temporary directory prior to use. - -2003-08-27 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Count number of iterations through - 'more_signals' loop and issue a warning if DEBUGGING and excessive. - (WFSO): When debugging and infinite timeout, loop. - -2003-08-26 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/stat.h: Allow definition of internal stat structures - also when compiling newlib. - -2003-08-25 Christopher Faylor <cgf@redhat.com> - - Throughout, change USE_CYGSERVER to USE_SERVER. - * Makefile.in (LIBSERVER): Define and use. - * configure.in: Set LIBSERVER as appropriate. - * configure: Regenerate. - * acconfig.h: Regenerate. - * environ.cc: Rename allow_daemon to allow_server. Only recognize when - USE_SERVER is defined. - -2003-08-23 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (_remove_r): Define. - -2003-08-22 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (enum cygheap_types): Add HEAP_MMAP. - (CYGHEAPSIZE): Add another 64K. - * mmap.cc: Use cmalloc, ccalloc and crealloc with HEAP_MMAP type - throughout. - -2003-08-22 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (user_heap_info::max): New field. - * heap.cc (heap_init): Save pointer to end of heap reserved memory. - (sbrk): Don't attempt to commit memory beyond end of heap reserved - memory. Attempt to honor comment and reserve commitbytes if heapchunk - fails. - -2003-08-20 Pierre Humblet <pierre.humblet@ieee.org> - - * exceptions.cc (sigreturn): Don't clobber ebp in recursive signal - calls. - -2003-08-22 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle): Change so that default signals indicate - success. - -2003-08-21 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Remove redundant test in do/while. - -2003-08-21 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Avoid infinite loop. - -2003-08-20 Christopher Faylor <cgf@redhat.com> - - * speclib: Reenable removal of temp files. - -2003-08-20 Christopher Faylor <cgf@redhat.com> - - * miscfuncs.cc (low_priority_sleep): Sleep at same priority as main - thread. - * sigproc.cc (wait_sig): Keep looping if there are more signals to - consider and we are flushing signals. - (sig_send): Put nonsync signals in the correct bucket. - -2003-08-20 Christopher Faylor <cgf@redhat.com> - - * speclib: Fix created lib to avoid "File truncated" problems. - -2003-08-20 Pierre Humblet <pierre.humblet@ieee.org> - - * exceptions.cc (interrupt_setup): Set sigsave.sig last to avoid a - race. - -2003-08-20 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Ensure that myself->getsigtodo array is - flushed on a __SIGFLUSH. - -2003-08-20 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (_sigreturn): Handle nested signals without growing the - stack. - -2003-08-19 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (pending_signals): Remove unneeded declaration. - * sigproc.cc (pending_signals): Make static. - (wait_sig): Use defined values rather than integers for rc. Never scan - both todo arrays as this could cause hangs if signals arrive from two - different sources. Rename saw_pending_signals to saw_failed_interrupt. - Exit loop when signal found. Enter low-priority sleep, if necessary, - after finished signalling completion. Set pending_signals when blocked - (from Pierre Humblet). - -2003-08-19 Christopher Faylor <cgf@redhat.com> - - * signal.cc (sigpending): Move. - * sigproc.cc (sigpending): To here. - (getlocal_sigtodo): Return process-local signal array. - (sigpending): Accommodate new process-local signal array. - (sig_send): Ditto. - (sig_set_pending): Ditto. - (wait_sig): Ditto. - -2003-08-19 Christopher Faylor <cgf@redhat.com> - - Throughout, eliminate argument to sig_dispatch_pending. - * exceptions.cc (setup_handler): Move non-interruptible condition - handling (back) to wait_sig. - (set_process_mask): Don't worry about calling sig_dispatch_pending from - sigthread since it is detected in the function anyway. - (sig_handle): Eliminate thisproc arg. Don't call sig_dispatch_pending - on SIGCONT since that should happen automatically. - * sigproc.cc (sig_dispatch_pending): Eliminate justwake argument. Just - return when called from sigthread. - (wait_sig): Change some variables to bool. Change inner while to an - if. Move uninterruptible signal handling here. - (sigproc_terminate): Don't call sig_dispatch_pending. Just increment - semaphore on exit. - - * speclib: Use slightly different (but still flawed) method for - determining symbols to extract from libraries. - -2003-08-18 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sigdelayed): Fix race where signal handler could get - the wrong mask (as suggested by Pierre Humblet). - -2003-08-18 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount): Add null/empty check for input parameters. - (umount): Add null/empty check for input parameters. - -2003-08-17 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (read_group): Revert previous change. - * uinfo.cc (pwdgrp::load): Always reset curr_lines. - -2003-08-17 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_INVALID_BLOCK_LENGTH to EIO. - * fhandler_raw.cc (fhandler_dev_raw::raw_read): Set more accurate - errnos instead of EACCES. - (fhandler_dev_raw::raw_write): Ditto. - -2003-08-17 Christopher Faylor <cgf@redhat.com> - - * path.cc (special_name): Accommodate all special names with - extensions. - -2003-08-15 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Avoid crash if file size is less than requested - map length. - -2003-08-13 Igor Pechtchanski <pechtcha@cs.nyu.edu> - - * path.cc (special_name): Add checks for some specials followed by - a "." and a FIXME comment. - -2003-08-13 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Accommodate change from cygwin_lstat to lstat. - * syscalls.cc: Add defines to avoid declaration issues when - renaming cygwin_lstat back to lstat. - (lstat): Reverted name change from cygwin_lstat. - -2003-08-12 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/param.h (NBBY): Define if not defined. - -2003-08-12 Nicholas Wourms <nwourms@netscape.net> - - * include/sys/param.h (setbit): Add new bitmap related macro. - (clrbit): Likewise. - (isset): Likewise. - (isclr): Likewise. - (howmany): Add new counting/rounding macro. - (rounddown): Likewise. - (roundup): Likewise. - (roundup2): Likewise. - (powerof2): Likewise - (MIN): Add macro for calculating min. - (MAX): Add macro for calculating max. - -2003-08-09 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 3. - -2003-08-08 Gerrit P. Haase <gp@familiehaase.de> - - * include/stdint.h: Correctly define INT32_MIN. - -2003-08-08 David Rothenberger <daveroth@acm.org> - - * grp.cc (read_group): Set __group32.gr_mem pointer back to &null_ptr - after free() is called. - -2003-08-05 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Rework to accommodate new speclib arguments. - * speclib: Rework to extract everything from libcygwin.a rather than - building things from existing object files. - -2003-08-05 Pavel Tsekov <ptsekov@gmx.net> - - * path.cc (cygdrive_getmntent): Do not skip over drives of type - DRIVE_REMOVABLE. - -2003-08-05 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::lseek): Be more paranoid when - constructing offsets from 64 bit value. - * syscalls.cc (logout): Avoid temp buffer memcpy since new scheme does - not require it. - (utmp_data): Rework as a macro which returns a pointer into a buffer. - (getutent): Use new buffer allocation mechanism to grab a utmp buffer. - (getutid): Ditto. - (pututline): Ditto. - -2003-08-05 Pavel Tsekov <ptsekov@gmx.net> - - * fhandler_disk_file.cc (fhandler_cygdrive::readdir): Do not change - 'errno' if end of directory condition is encountered as per SUSv2. - * fhandler_proc.cc (fhandler_proc::readdir): Ditto. - * fhandler_process (fhandler_process::readdir): Ditto. - * fhandler_registry (fhandler_registry::readdir): Ditto. - -2003-07-30 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (_dll_crt0): Move strace.microseconds initialization to - after pthread initialization. - (dll_crt0_1): i.e., here. - -2003-07-28 Christopher Faylor <cgf@redhat.com> - - * fhandler_base.cc (fhandler_base::readv): Rework to properly return - number of bytes from read. - -2003-07-28 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 2. - -2003-07-26 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (ctrl_c_handler): Send SIGHUP when events occur only if - there is a tty associated with the process. Send SIGHUP on - CTRL_LOGOFF_EVENT. - - * fhandler_tty.cc (fhandler_tty_slave::open): Adjust console open - handle counter regardless of whether this is a pty or tty. - (fhandler_tty_slave::open): Ditto. - (fhandler_tty_slave::dup): Ditto. - (fhandler_tty_common::set_close_on_exec): Ditto. - (fhandler_tty_master::init_console): Decrement console open handle - counter after init since it will now be handled by all tty open. - * syscalls.cc (setsid): Rework debugging output slightly. - -2003-07-25 Christopher Faylor <cgf@redhat.com> - - * configure.in: Use 'install-sh -c'. - * configure: Regenerate. - -2003-07-25 Christopher Faylor <cgf@redhat.com> - - * configure.in: Always use install-sh. - * configure: Regenerate. - -2003-07-25 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/socket.h: Conditionalize [AP]F_INET6 define. - -2003-07-25 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (OBSOLETE_FUNCTION): Add fdopen. - -2003-07-25 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export _fdopen64 - * Makefile.in (NEW_FUNCTIONS): Add _fdopen64 -> fdopen translation. - * include/cygwin/version.h: Bump api minor number. - - * ntdll.h: Remove (now) duplicate FILE_SYNCHRONOUS_IO_NONALERT - definition. - -2003-07-24 Christopher Faylor <cgf@redhat.com> - - * environ.cc (check_case_init): Use strncasematch. - - * cygwin.din: Export __mempcpy. - * cygwin/version.h: Bump api minor number. - -2003-07-21 Pavel Tsekov <ptsekov@gmx.net> - - * mmap.cc: Use proper format specifiers for _off64_t and size_t in - format strings passed to syscall_printf () and debug_printf () - throughout. - -2003-07-18 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (verify_token): Fix white space and style. - Use type bool instead of BOOL and char. Use alloca - instead of malloc and free for my_grps. - -2003-07-17 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sysconf): Fix OPEN_MAX patch. Return page size on - _SC_PAGESIZE again. - -2003-07-14 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cygheap_user): Use INVALID_HANDLE_VALUE as invalid - value for tokens. - * syscalls.cc (seteuid32): Ditto. Set new_token to process token if - process token is suitable. - * uinfo.cc (uinfo_init): Initialize tokens in cygheap user info - to INVALID_HANDLE_VALUE. - -2003-07-14 Pierre Humblet <pierre.humblet@ieee.org> - - * cygheap.h (enum impersonation): Delete. - (cygheap_user::impersonation_state): Delete. - (cygheap_user::current_token): New. - (cygheap_user::issetuid): Modify to use current_token. - (cygheap_user::token): Ditto. - (cygheap_user::deimpersonate): Ditto. - (cygheap_user::reimpersonate): Ditto. - (cygheap_user::has_impersonation_tokens): Ditto. - (cygheap_user::close_impersonation_tokens): Ditto. - * security.cc (cygwin_set_impersonation_token): Always set the token. - (verify_token): Change type of gsid to cygpsid. - (get_file_attribute): Use the effective ids. - * syscalls.cc (seteuid32): Modify to use cygheap_user::current_token. - * uinfo.cc (uinfo_init) Do not set cygheap->user.impersonation_state. - -2003-07-12 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Fix bounds test so that poll of - communicating pid actually stops eventually. - -2003-07-10 Christopher Faylor <cgf@redhat.com> - - * path.cc (get_device_number): Remove special com? consideration. - (special_chars): Make static. - (special_introducers): New. - (special_char): Allow specified valid_chars args. - (fnunmunge): Handle aux-like filenames correctly. - (special_name): Add con, conin$, conout$. - (mount_item::fnmunge): Use __small_sprintf return value to calculate - increments. - -2003-07-09 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 1. - -2003-07-09 Christopher Faylor <cgf@redhat.com> - - * fhandler_proc.cc (format_proc_stat): Use correctly sized constants - for filling in zeros on 98. - -2003-07-09 Christopher Faylor <cgf@redhat.com> - - * fhandler_proc.cc (fhandler_proc::fill_filebuf): Allocate more space - for stat buffer. - (format_proc_stat): Reorganize to accumulate and report on all cpus. - -2003-07-09 Christopher Faylor <cgf@redhat.com> - - * sysconf.cc (sysconf): Return processors online rather than bitmask - for _SC_NPROCESSORS_ONLN. - -2003-07-08 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (creturn): Set appropriate errno when out of memory. - (ccalloc): Only issue system_printf when debugging. - * dtable.cc (dtable::extend): Only allocate 100 * the incremental growth - size max. Set errno appropriately. - (dtable::build_fhandler): Check for error from set_name. - * fhandler.cc (fhandler_base::set_name): Set errno and return error on OOM. - * fhandler.h (fhandler_base::set_name): Change to bool. - * fhandler_process.cc (format_process_stat): Fix formatting. - * resource.cc (getrlimit): Return greater of OPEN_MAX or fd table size. - * sysconf.cc (sysconf): Ditto. - -2003-07-07 Christopher Faylor <cgf@redhat.com> - - * rmsym: Don't use ranlib. - -2003-07-07 Christopher Faylor <cgf@redhat.com> - - * newsym: Reenable removal of tmp directory. Just use ar to generate - archive index. - * Makefile.in: Don't send ranlib to newsym or rmsym. - -2003-07-07 Christopher Faylor <cgf@redhat.com> - - * newsym: Create objects that are closer to those created by dlltool so - as not to confuse --export-all-symbols. - * rmsym: Be a little more accepting of object filenames now that - dlltool can create different format files. - -2003-07-06 Christopher Faylor <cgf@redhat.com> - - * newsym: Oops. Revert below change. - -2003-07-06 Christopher Faylor <cgf@redhat.com> - - * newsym: Use correct prefix for generating imports. - * pinfo.cc (_pinfo::commune_send): Don't wait forever for a response - from another process. - -2003-07-06 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (gethostid): Set thread affinity so that results are - predictable. - -2003-07-05 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (list::match): Add parameters to return valid address and - length back to munmap(). Evaluate intersection between given - area and mapped area and return it, if any. - (mmap64): On regular files, don't allow mappings beginning beyond - EOF. Return with errno set to ENXIO instead. - (munmap): Rewrite SUSv3 conformant. Check if given memory area is - valid. Unmap all maps inside given memory area. Don't return error - if no mapping has been unmapped. - -2003-07-05 N Stephens <nigel@mips.com> - - * fhandler.h (fhandler_socket::get_connect_state): New method to - return socket connection state. - * fhandler_socket.cc (dup): Copy socket connect state to new file - handle. - * net.cc (cygwin_rcmd): Mark file handles of sockets returned by - rcmd() as CONNECTED state. - (cygwin_rexec): Similarly for rexec(). - (socketpair): Mark both ends of a new socket pair as CONNECTED. - -2003-07-04 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fhandler_disk_file::mmap): Fix address test. - -2003-07-03 Christopher Faylor <cgf@redhat.com> - - * path.cc (fillout_mntent): Change "posix" to "managed". - -2003-07-02 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (FH_ENC): New enum. - (fhandler_base::get_encoded): New function. - (fhandler_base::set_encoded): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set encoded flag - in fhandler, as appropriate. - (fhandler_disk_file::readdir): Unmunge filename as appropriate based on - new encoding flag. - * path.cc (normalize_posix_path): Don't punt on files with colons. - (special_char): New function. - (mount_item::fnmunge): Ditto. - (fnunmunge): Ditto. - (special_name): Ditto. - (mount_item::build_win32): Avoid drive considerations when file is - encoded. - (mount_info::conv_to_win32_path): Handle encoded filenames. - (mount_info::conv_to_posix_path): Ditto. - (fillout_mntent): Add posix string when directory is encoded. - * path.h (fnunmunge): Declare. - (path_conv::is_encoded): Declare. - -2003-07-03 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Conditionalize a little - more of the cygserver stuff so that ttys actually work. - -2003-07-03 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Allow MAP_FIXED with pagesize granularity (4K). - If a non-zero addr is given, align it to the next lower 64K boundary. - (fhandler_disk_file::mmap): If a non-zero address is given, try - mapping using the given address first. If it fails and flags is not - MAP_FIXED, try again with NULL address. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * thread.cc: Remove _MT_SAFE conditional. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * configure.in: Fix --enable-server option. - * configure: Regenerate. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Remove cygserver stuff. - * acconfig.h: Add USE_CYGSERVER define. - * config.h.in: Regenerate. - * configure.in: Add --enable-server setting. - * configure: Regenerate. - * fhandler_tty.cc (fhandler_tty_slave::open): Conditionalize - compilation of cygserver stuff. - * fork.cc (fork_child): Ditto. - * shm.cc: Ditto. - * tty.cc (tty::common_init): Ditto. - - * dcrt0.cc: Use bool rather than BOOL for CYGWIN environment variable - definitions. - * environ.cc: Ditto. - * ntea.cc: Ditto. - * security.cc: Ditto. - * security.h: Ditto. - * syscalls.cc (check_posix_perm): Remove externs that were already - declared in a header. - * winsup.h: Ditto. Declare _MT_SAFE here. Delete it someday since - cygwin should always be _MT_SAFE. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * thread.cc: Remove _MT_SAFE conditional. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * configure.in: Fix --enable-server option. - * configure: Regenerate. - -2003-07-01 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Remove cygserver stuff. - * acconfig.h: Add USE_CYGSERVER define. - * config.h.in: Regenerate. - * configure.in: Add --enable-server setting. - * configure: Regenerate. - * fhandler_tty.cc (fhandler_tty_slave::open): Conditionalize - compilation of cygserver stuff. - * fork.cc (fork_child): Ditto. - * shm.cc: Ditto. - * tty.cc (tty::common_init): Ditto. - - * dcrt0.cc: Use bool rather than BOOL for CYGWIN environment variable - definitions. - * environ.cc: Ditto. - * ntea.cc: Ditto. - * security.cc: Ditto. - * security.h: Ditto. - * syscalls.cc (check_posix_perm): Remove externs that were already - declared in a header. - * winsup.h: Ditto. Declare _MT_SAFE here. Delete it someday since - cygwin should always be _MT_SAFE. - -2003-06-30 Pierre Humblet <pierre.humblet@ieee.org> - - * cygheap.h (enum impersonation): New enum. - (cygheap_user::token): Delete. - (cygheap_user::impersonated): Delete. - (cygheap_user::external_token): New member. - (cygheap_user::internal_token): New member. - (cygheap_user::impersonation_state): New member. - (cygheap_user::issetuid): Modify. - (cygheap_user::token): New method. - (cygheap_user::deimpersonate): New method. - (cygheap_user::reimpersonate): New method. - (cygheap_user::has_impersonation_tokens): New method. - (cygheap_user::close_impersonation_tokens): New method. - * dtable.cc (dtable::vfork_child_dup): Use new cygheap_user methods. - * fhandler_socket.cc (fhandler_socket::dup): Ditto. - * fork.cc (fork_child): Ditto. - (fork_parent): Ditto. - * grp.cc (internal_getgroups): Ditto. - * security.cc (verify_token): Ditto. - (check_file_access): Ditto. - (cygwin_set_impersonation_token): Detect conflicts. Set - user.external_token. - * spawn.cc (spawn_guts): Use new cygheap_user methods. - * syscalls.cc (seteuid32): Rearrange to use the two tokens - in cygheap_user. - (setegid32): Use new cygheap_user methods. - * uinfo.cc: (internal_getlogin): Ditto. - -2003-06-25 Doru Carastan <doru.carastan@mvista.com> - - * Makefile.in: Use INSTALL_PROGRAM to install the cygwin DLL. - -2003-06-24 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (MTinterface::fixup_after_fork): Fix thread list after - fork. - (pthread::threads): Instantiate. - (pthread::pthread): Initialize running and suspendend. - Initialize next with NULL. - Add thread to thread list if it is not the null_pthread. - (pthread::~pthread): Remove thread from thread list if it is - not the null_pthread. - (pthread::postcreate): Set running flag. - (pthread::exit): Reset running flag. - (pthread::cancel): Try to cancel thread only if still running. - (pthread::_fixup_after_fork): Implement. - (pthread::detach): Check if thread is still running before detach. - * thread.h (pthread::running): New member. - (pthread::next): Ditto. - (pthread::fixup_after_fork): New static method. - (pthread::threads): New static method. - (pthread::_fixup_after_fork): New method. - -2003-06-20 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Don't attempt to communicate with a - pure windows process. - -2003-06-18 Pierre Humblet <pierre.humblet@ieee.org> - - * autoload.cc (GetNetworkParams): Add. - * net.cc (getdomainname): Call GetNetworkParams and read the - DhcpDomain registry value if warranted. - -2003-06-17 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount): Do more strict checking on posix path arguments. - -2003-06-15 Christopher Faylor <cgf@redhat.com> - - Throughout, remove "include <errno.h>" from files which already include - cygerrno.h. - -2003-06-15 Thomas Pfaff <tpfaff@gmx.net> - - * include/cygwin/config.h (__DYNAMIC_REENT__): Define. - * include/cygwin/version.h: Bump API minor version. - * cygwin.din: Export __getreent - * cygerrno.h: Include errno.h. Fix places where _impure_ptr is used - directly to store the errno value. - * debug.cc (__set_errno): Ditto. - * errno.cc: Remove _RRENT_ONLY define to get errno.cc compiled. - * signal.cc: Rename _reent_clib to _REENT throughout. - * thread.h (reent_clib): Remove prototype. - * thread.cc (reent_clib): Rename reent_clib to __getreent. Return - _impure_ptr until MTinterface is initialized. - (reent_winsup): Fix a possible SEGV when _r == NULL. Return NULL - instead. - * MTinterface::fixup_after_fork: Switch reent back to _impure_ptr to - keep signal handling running when fork is called from a thread other - than the mainthread. - -2003-06-12 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread_attr_init): Revert change from 2003-06-11 - to return 0 if attribute is already initialized back to EBUSY. - (pthread_condattr_init): Ditto. - (pthread_rwlockattr_init): Ditto. - (pthread_mutexattr_init): Ditto. - -2003-06-12 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (ctrl_c_handler): Don't send a signal on - CTRL_SHUTDOWN_EVENT. Add a comment to rationalize the patch. - -2003-06-11 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread_attr_init): Return 0 if attribute is already - initialized. - Fix return code if out of memory. - (pthread_condattr_init): Ditto. - (pthread_rwlockattr_init): Ditto. - (pthread_mutexattr_init): Return 0 if attribute is already - initialized. - -2003-06-09 Pierre Humblet <pierre.humblet@ieee.org> - - * spawn.cc (spawn_guts): Call CreateProcess while impersonated, - when the real {u,g}ids and the groups are original. - Move RevertToSelf and ImpersonateLoggedOnUser to the main line. - * uinfo.cc (uinfo_init): Reorganize. If CreateProcess was called - while impersonated, preserve the uids and gids and call - ImpersonateLoggedOnUser. Preserve the uids and gids on Win9X. - - * exceptions.cc (error_start_init): Quote the pgm in the command. - -2003-06-07 Christopher Faylor <cgf@redhat.com> - - * poll.cc: Define FD_SETSIZE to ridiculously large number so that there - will be no artificially small limits. - -2003-06-07 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::close): Free the console when - last tty closes. - -2003-06-07 Thomas Pfaff <tpfaff@gmx.net> - - * fhandler_socket.cc (fhandler_socket::connect): Change error - handling for nonblocking connects to return EALREADY when - connect is called more than once for the same socket. - -2003-06-06 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add vsyslog. - * fhandler.cc (fhandler_base::write): Only make file sparse if the - seeked area is >= 128K. - * syslog.cc (vsyslog): New function, overtaking functionality from - syslog. - (syslog): Just call vsyslog. - * include/cygwin/version.h: Bump API minor. - * include/sys/syslog.h: Add vsyslog declaration. - -2003-06-05 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::terminate_thread): Change system_printf to - debug_printf. - -2003-06-04 Christopher Faylor <cgf@redhat.com> - - * shared.cc (shared_info::heap_chunk_size): Be really defensive about - making sure that heap_chunk is set. - -2003-06-04 Christopher Faylor <cgf@redhat.com> - - * path.cc (conv_path_list): Use correct value when calculating length - to avoid a potential SEGV. - -2003-06-03 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Mark the pc - as non-executable if the file cannot be opened for read. Retry query - open only if errno is EACCES. Never change the mode, even if it is 000 - when query open() fails. - -2003-06-03 Christopher Faylor <cgf@redhat.com> - - * configure.in: Allow any i?86 variant. - * configure: Regenerate. - -2003-06-03 Corinna Vinschen <corinna@vinschen.de> - Thomas Pfaff <tpfaff@gmx.net> - - * fhandler_socket.cc (connect_thread): Remove. - (accept_thread): Remove. - (fhandler_socket::connect): Remove all special blocking handling. - (fhandler_socket::accept): Ditto. - * net.cc (cygwin_connect): Make blocking sockets temporarily - non-blocking and call cygwin_select on them to be interruptible. - (cygwin_accept): Ditto. - -2003-06-02 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (spawn_guts): Don't hang around if the parent doesn't exist. - -2003-06-02 Christopher Faylor <cgf@redhat.com> - - * cygthread.h (cygthread::terminate_thread): Mark private. - * cygthread.cc (cygthread::terminate_thread): Deallocate free_range - thread stuff. - -2003-06-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept): Rename `signalled' - to `interrupted' as used in fhandler_socket::connect. - -2003-06-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::connect): Simplify previous - patch. - (fhandler_socket::accept): Ditto. - -2003-06-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Include cygthread.h. - (class sock_event): Remove. - (thread_connect): New function. - (thread_accept): Ditto. - (fhandler_socket::connect): Use cygthread instead of socket event - handling for blocking sockets. - (fhandler_socket::accept): Ditto. - -2003-06-02 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::write): Correct minor printf formatting - style glitch. - -2003-06-01 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Assume - an existing directory is a root if FindFirstFile fails. - -2003-05-30 Christopher Faylor <cgf@redhat.com> - - * path.cc (mount_info::conv_to_win32_path): gcc warning about chroot_ok - was actually valid. Fix it. - -2003-05-30 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cheap): Temporarily remove inline that newer gcc's - have problems with. - - * path.cc (path_conv::check): Rework has_acls logic slightly. Uncouple - exec tests away from filesystem tests. - -2003-05-30 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/param.h: Add DEV_BSIZE. - -2003-05-29 Pierre Humblet <pierre.humblet@ieee.org> - Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): Rearrange. Fix - conditional. - -2003-05-28 Christopher Faylor <cgf@redhat.com> - - * mkvers.sh: Avoid "-dontuse" tags. - - * path.cc (path_conv::check): Set exec state based on known situations. - - * path.cc (mount_item::fnmunge): New function. - (mount_item::build_win32): New function. - (mount_info::conv_to_win32_path): Use build_win32 to build windows - path. - * path.h (mount_item::fnmunge): Declare new function. - (mount_item::build_win32): Ditto. - * sys/mount.h (MOUNT_ENC): Define. - -2003-05-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): If running impersonated, - revert to original account before calling fixup_before_fork_exec - and impersonate again afterwards. Change comment accordingly. - Clean up error handling and debug output. - -2003-05-27 Thomas Pfaff <tpfaff@gmx.net> - - * fhandler_socket.cc (sock_event::~sock_event): New method. - (sock_event::load): Change to void. Check if winsock2 is available. - (socke_event::wait): Return 0 if interruptible mode is not available. - (fhandler_socket::connect): Remove checks for winsock2 availability. - (fhandler_socket::accept): Ditto. - -2003-05-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): First try duplicating - using WSADuplicateSocket/WSASocket, if that fails, try DuplicateHandle. - -2003-05-27 Bill C. Riemers <cygwin@docbill.net> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Filter - permissions through umask on FAT or if ntsec is off. - -2003-05-26 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (statfs): Call GetDiskFreeSpaceEx before GetDiskFreeSpace. - -2003-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (is_at_eof): Fix conditional. Use INVALID_FILE_SIZE - instead of numeric constant. - -2003-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::connect): Guard calls to - sock_event methods by a check for WinSock2 availability. - (fhandler_socket::accept): Ditto. - -2003-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h: Rename FH_W95LSBUG flag to FH_LSEEKED. - (fhandler_base::set_did_lseek): Rename from set_check_win95_lseek_bug. - (fhandler_base::get_did_lseek): Rename from get_check_win95_lseek_bug. - (fhandler_base::set_fs_flags): New method. - (fhandler_base::get_fs_flags): Ditto. - * fhandler.cc (fhandler_base::write): Make 64 bit clean. Convert file - to a "sparse" file when writing after a long lseek (>64K) beyond EOF. - (fhandler_base::lseek): Call set_did_lseek() instead of - set_check_win95_lseek_bug(). - (fhandler_base::fhandler_base): Initialize fs_flags to 0. - * fhandler_disk_file.cc (fhandler_disk_file::open): Don't create files - as "sparse" unconditionally. Set fs_flags member. - -2003-05-25 Pierre Humblet <pierre.humblet@ieee.org> - - * autoload.cc (GetDiskFreeSpaceEx): Add. - * syscalls.cc (statfs): Call full_path.root_dir() instead of - rootdir(full_path). Use GetDiskFreeSpaceEx when available and - report space available in addition to free space. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): - Do not call FindFirstFile for disk root directories. - -2003-05-24 Joe Buehler <jhpb@draco.hekimian.com> - - * fhandler_process.cc (format_process_stat): Use PagefileUsage - instead of VirtualSize. - (get_mem_values): Ditto. - -2003-05-21 Corinna Vinschen <corinna@vinschen.de> - - * shared_info.h: Match shared_name declaration with below change. - * shared.cc (shared_name): Use incoming char * parameter instead of - local static buffer. - (open_shared): Accommodate new calling convention for shared_name. - * exceptions.cc (events_init): Ditto. - * sigproc.cc (getsem): Ditto. - * syscalls.cc (login): Ditto. - (logout): Ditto. - (pututline): Ditto. - -2003-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (secret_event_name): Return void. Use incoming - char * parameter instead of local static buffer. - (fhandler_socket::create_secret_event): Accommodate new calling - convention for secret_event_name. - (fhandler_socket::close_secret_event): Ditto. - -2003-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (SECRET_EVENT_NAME): Remove. - (ENTROPY_SOURCE_NAME): Ditto. - (secret_event_name): New static function. Create shared event name - with "Global\" prefix on systems supporting terminal services. - (fhandler_socket::set_connect_secret): Fix conditional. - (fhandler_socket::create_secret_event): Create secret event using - secret_event_name(). - (fhandler_socket::close_secret_event): Ditto. - * shared.cc (shared_name): Create shared object name with "Global\" - prefix on systems supporting terminal services. - * wincap.cc: Set has_terminal_services capability throughout. - (wincap_2003): New global object representing Windows 2003 Server - capabilities. - (wincapc::init): Accommodate Windows 2003 Server. - * wincap.h (struct wincaps): Add has_terminal_services capability. - -2003-05-20 Charles Wilson <cygwin@cwilson.fastmail.fm> - - * winsup/cygwin/include/cygwin/version.h: Bump API minor version. - * winsup/cygwin/include/cygwin/types.h: Define key_t as long long. - * winsup/cygwin/cygwin.din: Add ftok, _ftok. - * winsup/cygwin/ipc.cc (ftok): Rework implementation. - -2003-05-18 Joe Buehler <jhpb@hekimian.com> - - * spawn.cc (spawn_guts): Show more of command line in strace output. - -2003-05-15 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::init_mainthread): Remove function parameter. - (MTinterface::Init): Ditto. - * thread.cc (MTinterface::Init): Remove function parameter. - Always initialize reent_key. - (pthread::init_mainthread): Remove function parameter. - (MTinterface::fixup_after_fork): Fix pthread::init_mainthread call. - * dcrt0.cc (dll_crt_0_1) Fix calls to MTinterface::Init and - pthread::init_mainthread. - Call pthread::init_mainthread only when not forked. - -2003-05-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_meminfo): Make swap memory output - Linux style values. - -2003-05-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h: Define __USE_INTERNAL_STAT64 appropriately. - -2003-05-12 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (CYGWIN_START): Define as crt0.o. Add to TARGET_LIBS. - * fhandler.h (fhandler_virtual::fstat): Remove useless declaration. - * fhandler_virtual.cc: Remove _COMPILING_NEWLIB define. - * ipc.cc (ftok): Use stat64. - * syscalls.cc (_fstat64): Remove alias. - (_fstat): Ditto. - (_stat): Ditto. - (_fstat64_r): New function. - (_fstat_r): Ditto. - (_stat64_r): Ditto. - (stat_r): Ditto. - * crt0.o: New file, moved from newlib. - * include/sys/param.h: Ditto. - * include/sys/utime.h: Ditto. - * include/sys/utmp.h: Ditto. - * include/sys/dirent.h: Ditto. Expose different struct dirent, - dependening of the environment. - -2003-05-11 Corinna Vinschen <corinna@vinschen.de> - - Replace ino_t by __ino64_t throughout. - -2003-05-11 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Add key_t typedef. - -2003-05-10 Christopher Faylor <cgf@redhat.com> - - * dir.cc (readdir): Fill out new old_d_ino field. - * fhandler.h (fhandler_base::namehash): Define as ino_t. - (fhandler_base::get_namehash): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Accommodate - new 64 bit st_ino. - * fhandler_socket.cc (fhandler_socket::fstat): Ditto. - * path.cc (hash_path_name): Return ino_t. - * syscalls.cc (stat64_to_stat32): Convert 64 bit inode to 32 bit. - * winsup.h (hash_path_name): Declare as returning ino_t. - * include/cygwin/stat.h (__stat32): Use 32 bit st_ino. - (__stat64): Use 64 bit st_ino. - * include/cygwin/types.h (__ino64_t): Define. - (__ino32_t): Ditto. - (ino_t): Define appropriately. - -2003-05-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (NEW_FUNCTIONS): All 32/64 from 0.79 API get - leading underscore. - * cygwin.din: Ditto. - * include/cygwin/version.h: Bump API minor number. - -2003-05-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h: New file. - -2003-05-09 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::detach): Prioritize waiting for I/O - completion over waiting for signal delivery. - -2003-05-06 Thomas Pfaff <tpfaff@gmx.net> - - * signal.cc (nanosleep): Do not wait twice for signal arrival. - -2003-05-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Fix erroneous definition of ino_t from - 2003-04-28. - -2003-05-03 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chown_worker): Allow chown'ing of socket files. - -2003-04-30 Thomas Pfaff <tpfaff@gmx.net> - - * Makefile.in: Revert patch from 2003-04-17. - -2003-04-28 Brian Ford <ford@vss.fsi.com> - - * profil.h (PROFADDR): Prevent overflow when text segments are larger - than 256k. - * profil.c (profthr_func): Raise thread priority for more accurate - sampling. - -2003-04-26 Christopher Faylor <cgf@redhat.com> - - * path.cc (hash_path_name): Use ino_t as type. - -2003-04-26 Christopher Faylor <cgf@redhat.com> - - * errno.cc (_sys_nerr): Fix compile error erroneously checked in on - 2003-04-23. - -2003-04-25 Corinna Vinschen <corinna@vinschen.de> - - * include/netinet/ip.h: Include netinet/in_systm.h and netinet/in.h - to allow standalone usage (autoconf). - -2003-04-23 Christopher Faylor <cgf@redhat.com> - - * fork.cc: Change SLOW_PID_REUSE to NO_SLOW_PID_REUSE and invert ifdef - sense throughout. - -2003-04-22 Christopher Faylor <cgf@redhat.com> - - * select.cc (fhandler_pipe::ready_for_read): Assure that get_guard is - called for successful non-blocking pipe reads. - -2003-04-22 Corinna Vinschen <corinna@vinschen.de> - - * include/inttypes.h: New file. - * include/stdint.h: New file. - * include/cygwin/in.h: Include stdint.h instead of sys/types.h. - * include/cygwin/types.h: Include stdint.h. Remove typedefs for - intN_t and uintN_t since these are defined in stdint.h now. - -2003-04-21 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL major number to 1005. Change DLL - minor number to 0. Bump API minor number. - -2003-04-20 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateWindowStationA): Add. - (SetProcessWindowStation): Add. - -2003-04-19 Christopher Faylor <cgf@redhat.com> - - * wincap.h (wincaps:pty_needs_alloc_console): New element. - (wincapc:pty_needs_alloc_console): New function. - * wincap.cc: Add pty_needs_alloc_console throughout. - * fhandler_tty.cc (fhandler_tty_slave::open): Open an "invisible" - console on first pty allocation. - -2003-04-18 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Allocate a console - whenever a pty is allocated. - -2003-04-18 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Use ${nostdlib} variable. - -2003-04-18 Diego Biurrun <diego@biurrun.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Change /proc/cpuinfo "vendor - id" string to "vendor_id" to conform with Linux systems. - -2003-04-17 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (setsid): Don't call FreeConsole if ctty is already < 0. - -2003-04-17 Thomas Pfaff <tpfaff@gmx.net> - - * Makefile.in: Add finline-functions optimization to CXXFLAGS. - * autoload.cc (LoadDLLprime): Rename std_dll_init to - _std_dll_init. - (std_dll_init): Remove name mangling prototype. Add attributes - used and noinline. - (wsock_init): Ditto. - Change wsock_init to _wsock_init in wsock32 and ws2_32 - LoadDLLprime. - * exceptions.cc (unused_sig_wrapper): Remove prototype. Add - attributes used and noinline. - * pwdgrp.h ((pwdgrp (passwd *&)): Remove inline code. - (pwdgrp (__group32 *&)): Ditto. - * grp.cc (pwdgrp (passwd *&)): Outline constructor. - (pwdgrp (__group32 *&)): Ditto. - -2003-04-17 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::equal): New static method. - * thread.cc: Rename pthread_equal to pthread::equal throughout. - (pthread_equal): Use pthread::equal to compare threads ids. - -2003-04-15 Christopher Faylor <cgf@redhat.com> - - * termios.cc (setspeed): New function. - (cfsetospeed): Use setspeed to set speed. - (cfsetispeed): Use setspeed to set speed. - -2003-04-15 Chris January <chris@atomice.net> - - * autoload.cc: Add load statement for UuidCreate, and - UuidCreateSequential. - * cpuid.h: New file. - * cygwin.din: Export gethostid. - * fhandler_proc.cc (cpuid): Move to cpuid.h. - (can_set_flag): Move to cpuid.h. - * syscalls.cc (gethostid): New function. - * version.h: Bump api minor version number to 83. - -2003-04-15 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread_rwlock::release): New method. - * thread.cc (pthread_rwlock::unlock): Use release to signal waiting - threads. - (pthread_rwlock::rdlock_cleanup): Signal waiting threads after a - cancelation. - (pthread_rwlock::wrlock_cleanup): Ditto. - -2003-04-13 Pierre Humblet <pierre.humblet@ieee.org> - - * mkvers.sh: Prefix day with 0 in date only when day < 10. - -2003-04-11 Pierre Humblet <pierre.humblet@ieee.org> - - * security.cc (get_info_from_sd): New function. - (get_nt_attribute): Only call read_sd and get_info_from_sd. - Return void. - (get_file_attribute): Move sd error handling to get_info_from_sd. - and symlink handling to fhandler_disk_file::fstat_helper. - (get_nt_object_attribute): Only call read_sd and get_info_from_sd. - Return void. - (get_object_attribute): Remove symlink handling and simply return -1 - when ntsec is off. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): For - symlinks set the attribute, call get_file_attribute to get the ids - and return. In the normal case call get_file_attribute with the - addresses of the buffer ids and do not recheck if the file is a socket. - -2003-04-10 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::stub): Initialize stack pointer earlier. - (cygthread::simplestub): Initialize stack pointer. - (cygthread::terminate_thread): Account for possibility that stack - pointer has not been set. Issue warnings for unusual conditions. - -2003-04-10 Corinna Vinschen <corinna@vinschen.de> - - * regex/regex.h: Define regoff_t as _off_t. - * regex/regex2.h: Ditto. - -2003-04-10 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcscoll, wcswidth and wcwidth. - * include/cygwin/version.h: Bump API minor number. - -2003-04-10 Christopher Faylor <cgf@redhat.com> - - * cygthread.h: Change 'avail' cygthread element to 'inuse' throughout. - * cygthread.cc: Ditto. - (cygthread::stub): Don't initialize already initialized events. - (cygthread::freerange): Don't create thread here. - (cygthread::cygthread): Create thread here. Die if thread not created. - (cygthread::operator new): Simplify. Just grab a thread structure from - the pool. Don't try to start the thread. - (cygthread::terminate_thread): Don't close event handles. Just reuse - them. Call MEM_RELEASE rather than MEM_DECOMMIT (from Joe uehler). - -2003-04-08 Bob Cassels <bcassels@abinitio.com> - - * fhandler_console.cc (fhandler_console::read) Handle certain key up - events, to allow pasting accented characters and typing them using the - "alt + numerics" sequences. - -2003-04-07 Christopher Faylor <cgf@redhat.com> - - * include/limits.h (IOV_MAX): Set to a number which is small enough to - use in an array. - -2003-04-04 Christopher Faylor <cgf@redhat.com> - - * cygthread.h (cygthread::avail): Make LONG for easier use with - Interlocked* functions. - * cygthread.cc (cygthread::init): Eliminate unneeded muto. - (cygthread::operator new): Don't lock. Instead change use of avail - variable into tri-state: available (1), not available (-1), - uninitialized (0). - (cygthread::terminate_thread): Set avail to uninitialized. - (cygthread::detach): Eliminate local 'avail'. Always set avail to 1 - unless signalled. - -2003-04-04 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::operator new): Be more defensive when messing with - threads that are marked "unavailable". - -2003-04-03 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (CONVERT_LIMIT): Use a size for the 21st century. - -2003-04-03 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (check_ntsec): Return general ntsec state on NULL - filename. Check wincap.is_security() additionally. - -2003-04-02 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (EXTRA_OFILES): Remove debugging object. - -2003-04-02 Jason Tishler <jason@tishler.net> - Christopher Faylor <cgf@redhat.com> - - * external.cc (check_ntsec): New function. - (cygwin_internal): Add CW_CHECK_NTSEC handling to call check_ntsec() - from applications. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CHECK_NTSEC. - -2003-04-02 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::new): Add more defensive debugging. - -2003-04-01 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::fstat): Set the uid and gid fields - from the current effective ids. - * fhandler_socket.cc (fhandler_socket::fstat): Keep the uid and gid set - by fhandler_base::fstat. - * security.cc (get_nt_attribute): Do not test wincap.has_security (). - (get_nt_object_attribute): Ditto. - (get_file_attribute): Add test for wincap.has_security (). - (get_object_attribute): Ditto. - -2003-04-01 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc: Change __off32_t to _off_t and __off64_t to _off64_t - throughout. - * fhandler.cc: Ditto. - * fhandler.h: Ditto. - * fhandler_clipboard.cc: Ditto. - * fhandler_disk_file.cc: Ditto. - * fhandler_dsp.cc: Ditto. - * fhandler_floppy.cc: Ditto. - * fhandler_mem.cc: Ditto. - * fhandler_proc.cc: Ditto. - * fhandler_process.cc: Ditto. - * fhandler_random.cc: Ditto. - * fhandler_registry.cc: Ditto. - * fhandler_tape.cc: Ditto. - * fhandler_termios.cc: Ditto. - * fhandler_virtual.cc: Ditto. - * fhandler_zero.cc: Ditto. - * mmap.cc: Ditto. - * pipe.cc: Ditto. - * syscalls.cc: Ditto. - * winsup.h: Ditto. - * include/cygwin/stat.h: Ditto. - * include/cygwin/types.h: Ditto. Remove definition of __off32_t - and __off64_t. - -2003-03-31 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Make sure winapi lock is released when - exiting loop. - -2003-03-30 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/fs.h: Remove unneeded include. - * include/cygwin/in.h: Include sys/types.h rather than cygwin/types.h. - -2003-03-29 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (login): Fix comment. - (logout): Ditto. - -2003-03-29 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc: Slightly cleanup all utmp functions. - (login): Use mutex to secure against concurrent access to wtmp file. - (logout): Rewrite using POSIX calls. - (utmp_fd): Initialized to -1 now. Any value < 0 is treated as closed - in subsequent functions. - (utmp_readonly): New variable, indicating utmp file open for reading - only. - (internal_setutent): New function implementing setutent(). - (setutent): Call internal_setutent now. - (endutent): Reset utmp_readonly. - (getutent): Return immediately if utmp file can't be opened. - (getutid): Ditto. - (getutline): Ditto. - (pututline): Ditto. Use mutex to secure against concurrent access to - utmp file. - -2003-03-28 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Remove EXE_LDFLAGS. Fix fhandler_CFLAGS typo. Recognize .s suffix. - * configure.in: Remove EXE_LDFLAGS. - * configure: Regenerate. - -2003-03-28 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h: Declare cygwin_internal as unsigned long. - * external.cc (cygwin_internal): Define as unsigned long. - -2003-03-27 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h: Move cygwin_internal outside of WINVER - conditional. - -2003-03-27 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc: Change 1==foo equations to foo==1 throughout. - -2003-03-27 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h: Change class names, methods, members and local vars - according to the GNU coding style. - * thread.cc: Ditto. - * dcrt0.cc (dll_crt0_1): Rename pthread::initMainThread call to - pthread::init_mainthread. - * pthread.cc (pthead_getsequence_np): Rename pthread::isGoodObject - call to pthread::is_good_object. - -2003-03-27 Joe Buehler <jhpb@draco.hekimian.com> - - * autoload.cc: Add RegGetKeySecurity(). - * security.cc (get_nt_object_attribute): Use RegGetKeySecurity() for - performance. - -2003-03-25 Christopher Faylor <cgf@redhat.com> - Joe Buehler <jhpb@draco.hekimian.com> - - * fork.cc (fork_parent): Don't copy signals from parent to child here. - * sigproc.cc (proc_subproc): Copy signals from parent to child pinfo - here. - -2003-03-23 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (class List): Move inline code inside class declaration. - (List::forEach): Change callback parameter to template class member - function pointer. - (pthread_keys::fixup_before_fork): Change to inline. Use List::forEach - to fixup keys. - (pthread_keys::fixup_after_fork): Ditto. - (pthread_keys::runAllDestructors): Ditto. - (pthread_key::saveAKey): Remove. - (pthread_key::restoreAKey): Ditto. - (pthread_key::destroyAKey): Ditto. - (pthread_key::run_destructor): Rename to runDestructor. - (pthread_mutex::fixup_after_fork): Change to inline. Use List::forEach - to fixup mutexes after a fork. - (pthread_mutex::FixupAfterFork): New method. - (pthread_mutex::mutexes): New member. - (pthread_cond::fixup_after_fork): Change to inline. Use List::forEach - to fixup conds after a fork. - (pthread_cond::FixupAfterFork): New method. - (pthread_cond::conds): New member. - (pthread_rwlock::fixup_after_fork): Change to inline. Use - List::forEach to fixup rwlocks after a fork. - (pthread_rwlock::FixupAfterFork): New method. - (pthread_rwlock::rwlocks): New member. - (semaphore::fixup_after_fork): Change to inline. Use List::forEach to - fixup mutexes after a fork. - (semaphore::FixupAfterFork): New method. - (semaphore::semaphores): New member. - (MTinterface::mutexs): Remove. - (MTinterface::conds): Ditto. - (MTinterface::rwlocks): Ditto. - (MTinterface::semaphores): Ditto. - (pthread_equal): Add extern "C". - (pthread_mutex_lock): Ditto. - - * thread.cc (MTinterface::fixup_after_fork): Change fixup_after_fork - calls for pthread objects. - (semaphore::conds): Instantiate. - (pthread_cond::pthread_cond): Use List::Insert rather than custom list - code. - (pthread_cond::~pthread_cond): Use List::Remove rather than custom list - code. - (pthread_cond::fixup_after_fork): Rename to FixupAfterFork. - (pthread_rwlock::rwlocks): Instantiate. - (pthread_rwlock::pthread_crwlock): Use List::Insert rather than custom - list code. - (pthread_rwlock::~pthread_rwlock): Use List::Remove rather than custom - list code. - (pthread_rwlock::fixup_after_fork): Rename to FixupAfterFork. - (pthread_key::saveAKey): Remove. - (pthread_key::fixup_before_fork): Ditto. - (pthread_key::restoreAKey): Ditto. - (pthread_key::fixup_after_fork): Ditto. - (pthread_key::destroyAKey): Ditto. - (pthread_key::runAllDestructors): Ditto. - (pthread_key::run_destructor): Rename to runDestructor. - (pthread_mutex::mutexes): Instantiate. - (pthread_mutex::pthread_mutex): Use List::Insert rather than custom - list code. - (pthread_mutex::~pthread_mutex): Use List::Remove rather than custom - list code. - (pthread_mutex::fixup_after_fork): Rename to FixupAfterFork. - (semaphore::conds): Instantiate. - (semaphore::semaphore): Use List::Insert rather than custom list code. - (semaphores::~semaphore): Use List::Remove rather than custom list - code. - (semaphore::fixup_after_fork): Rename to FixupAfterFork. - -2003-03-22 Christopher Faylor <cgf@redhat.com> - - * pipe.cc (fhandler_pipe::dup): Don't dup input_handle if it doesn't - exist. - -2003-03-22 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (unlink): Be more defensive when SetFileAttributes is - called. Fix typo in debugging output. - -2003-03-21 Christopher Faylor <cgf@redhat.com> - - * fork.cc: Conditionalize use of slow_pid_reuse throughout. It's not - necessary for newer versions of bash. - -2003-03-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::sendto): Restrict EPIPE and - SIGPIPE handling to connection oriented sockets. Add comment. - -2003-03-19 Christopher Faylor <cgf@redhat.com> - - * sigproc.h (signal_fixup_after_exec): Eliminate argument in declaration. - * exceptions.cc (signal_fixup_after_exec): Eliminate argument in - definition. Don't reset signal handlers after spawm. Just treat like - fork/exec. - * dcrt0.cc (dll_crt0_1): Don't pass PROC_SPAWN argument to - signal_fixup_after_exec. - * syscalls.cc (unlink): Don't change attributes of file if not readonly/system. - Ditto for resetting of arguments. - -2003-03-19 Corinna Vinschen <corinna@vinschen.de> - - * glob.c: Eliminate __INSIDE_CYGWIN__ preprocessor conditionals - throughout. - -2003-03-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Fix - wrong usage of S_IFDIR. - * security.cc (get_attribute_from_acl): Ditto. - (get_file_attribute): Fix wrong usage of S_IFLNK. - (get_object_attribute): Ditto. - (alloc_sd): Fix wrong usage of S_IFDIR. - * syscalls.cc (chmod): Allow chmod'ing of socket files. - -2003-03-19 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_USING_BIG_TYPES): - Define. - * glob.c (g_lstat): Use CYGWIN_VERSION_CHECK_FOR_USING_BIG_TYPES - instead of numerical constants. - (g_stat): Ditto. - -2003-03-18 Thomas Pfaff <tpfaff@gmx.net> - - * pthread.cc (pthread_attr_init): Remove - (pthread_attr_destroy): Ditto. - (pthread_attr_setdetachstate): Ditto. - (pthread_attr_getdetachstate): Ditto. - (pthread_attr_setstacksize): Ditto. - (pthread_attr_getstacksize): Ditto. - (pthread_attr_setinheritsched): Ditto. - (pthread_attr_getinheritsched): Ditto. - (pthread_attr_setschedparam): Ditto. - (pthread_attr_getschedparam): Ditto. - (pthread_attr_setschedpolicy): Ditto. - (pthread_attr_getschedpolicy): Ditto. - (pthread_attr_setscope): Ditto. - (pthread_attr_getscope): Ditto. - (pthread_attr_setstackaddr): Ditto. - (pthread_attr_getstackaddr): Ditto. - (pthread_key_create): Ditto. - (pthread_key_delete): Ditto. - (pthread_setspecific): Ditto. - (pthread_getspecific): Ditto. - (pthread_kill): Ditto. - (pthread_sigmask): Ditto. - (pthread_equal): Ditto. - (pthread_mutex_lock): Ditto. - (pthread_mutex_trylock): Ditto. - (pthread_mutex_unlock): Ditto. - (pthread_mutex_destroy): Ditto. - (pthread_mutex_setprioceiling): Ditto. - (pthread_mutex_getprioceiling): Ditto. - (pthread_mutexattr_destroy): Ditto. - (pthread_mutexattr_getprioceiling): Ditto. - (pthread_mutexattr_getprotocol): Ditto. - (pthread_mutexattr_getpshared): Ditto. - (pthread_mutexattr_gettype): Ditto. - (pthread_mutexattr_init): Ditto. - (pthread_mutexattr_setprioceiling): Ditto. - (pthread_mutexattr_setprotocol): Ditto. - (pthread_mutexattr_setpshared): Ditto. - (pthread_mutexattr_settype): Ditto. - (pthread_cond_destroy): Ditto. - (pthread_cond_signal): Ditto. - (pthread_cond_broadcast): Ditto. - (pthread_condattr_init): Ditto. - (pthread_condattr_destroy): Ditto. - (pthread_condattr_getpshared): Ditto. - (pthread_condattr_setpshared): Ditto. - (pthread_rwlock_destroy): Ditto. - (pthread_rwlock_rdlock): Ditto. - (pthread_rwlock_tryrdlock): Ditto. - (pthread_rwlock_wrlock): Ditto. - (pthread_rwlock_trywrlock): Ditto. - (pthread_rwlock_unlock): Ditto. - (pthread_rwlockattr_init): Ditto. - (pthread_rwlockattr_getpshared): Ditto. - (pthread_rwlockattr_setpshared): Ditto. - (pthread_rwlockattr_destroy): Ditto. - (pthread_getconcurrency): Ditto. - (pthread_setconcurrency): Ditto. - (pthread_getschedparam): Ditto. - (pthread_setschedparam): Ditto. - - * thread.h (__pthread_attr_init): Remove prototype. - (__pthread_attr_destroy): Ditto. - (__pthread_attr_setdetachstate): Ditto. - (__pthread_attr_getdetachstate): Ditto. - (__pthread_attr_setstacksize): Ditto. - (__pthread_attr_getstacksize): Ditto. - (__pthread_attr_setinheritsched): Ditto. - (__pthread_attr_getinheritsched): Ditto. - (__pthread_attr_setschedparam): Ditto. - (__pthread_attr_getschedparam): Ditto. - (__pthread_attr_setschedpolicy): Ditto. - (__pthread_attr_getschedpolicy): Ditto. - (__pthread_attr_setscope): Ditto. - (__pthread_attr_getscope): Ditto. - (__pthread_attr_setstackaddr): Ditto. - (__pthread_attr_getstackaddr): Ditto. - (__pthread_key_create): Ditto. - (__pthread_key_delete): Ditto. - (__pthread_setspecific): Ditto. - (__pthread_getspecific): Ditto. - (__pthread_kill): Ditto. - (__pthread_sigmask): Ditto. - (__pthread_equal): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutexattr_destroy): Ditto. - (__pthread_mutexattr_getprioceiling): Ditto. - (__pthread_mutexattr_getprotocol): Ditto. - (__pthread_mutexattr_getpshared): Ditto. - (__pthread_mutexattr_gettype): Ditto. - (__pthread_mutexattr_init): Ditto. - (__pthread_mutexattr_setprioceiling): Ditto. - (__pthread_mutexattr_setprotocol): Ditto. - (__pthread_mutexattr_setpshared): Ditto. - (__pthread_mutexattr_settype): Ditto. - (__pthread_cond_destroy): Ditto. - (__pthread_cond_signal): Ditto. - (__pthread_cond_broadcast): Ditto. - (__pthread_condattr_init): Ditto. - (__pthread_condattr_destroy): Ditto. - (__pthread_condattr_getpshared): Ditto. - (__pthread_condattr_setpshared): Ditto. - (__pthread_rwlock_destroy): Ditto. - (__pthread_rwlock_rdlock): Ditto. - (__pthread_rwlock_tryrdlock): Ditto. - (__pthread_rwlock_wrlock): Ditto. - (__pthread_rwlock_trywrlock): Ditto. - (__pthread_rwlock_unlock): Ditto. - (__pthread_rwlockattr_init): Ditto. - (__pthread_rwlockattr_getpshared): Ditto. - (__pthread_rwlockattr_setpshared): Ditto. - (__pthread_rwlockattr_destroy): Ditto. - (__pthread_getconcurrency): Ditto. - (__pthread_setconcurrency): Ditto. - (__pthread_getschedparam): Ditto. - (__pthread_setschedparam): Ditto. - - * thread.cc: Rename __pthread_equal to pthread_equal throughout. - Change pthread_self parameter appropriate. - (__pthread_attr_init): Remove __ prefix. Change to extern "C". - (__pthread_attr_destroy): Ditto. - (__pthread_attr_setdetachstate): Ditto. - (__pthread_attr_getdetachstate): Ditto. - (__pthread_attr_setstacksize): Ditto. - (__pthread_attr_getstacksize): Ditto. - (__pthread_attr_setinheritsched): Ditto. - (__pthread_attr_getinheritsched): Ditto. - (__pthread_attr_setschedparam): Ditto. - (__pthread_attr_getschedparam): Ditto. - (__pthread_attr_setschedpolicy): Ditto. - (__pthread_attr_getschedpolicy): Ditto. - (__pthread_attr_setscope): Ditto. - (__pthread_attr_getscope): Ditto. - (__pthread_attr_setstackaddr): Ditto. - (__pthread_attr_getstackaddr): Ditto. - (__pthread_key_create): Ditto. - (__pthread_key_delete): Ditto. - (__pthread_setspecific): Ditto. - (__pthread_getspecific): Ditto. - (__pthread_kill): Ditto. - (__pthread_sigmask): Ditto. - (__pthread_equal): Ditto. - (__pthread_mutex_lock): Ditto. - (__pthread_mutex_trylock): Ditto. - (__pthread_mutex_unlock): Ditto. - (__pthread_mutex_destroy): Ditto. - (__pthread_mutex_setprioceiling): Ditto. - (__pthread_mutex_getprioceiling): Ditto. - (__pthread_mutexattr_destroy): Ditto. - (__pthread_mutexattr_getprioceiling): Ditto. - (__pthread_mutexattr_getprotocol): Ditto. - (__pthread_mutexattr_getpshared): Ditto. - (__pthread_mutexattr_gettype): Ditto. - (__pthread_mutexattr_init): Ditto. - (__pthread_mutexattr_setprioceiling): Ditto. - (__pthread_mutexattr_setprotocol): Ditto. - (__pthread_mutexattr_setpshared): Ditto. - (__pthread_mutexattr_settype): Ditto. - (__pthread_cond_destroy): Ditto. - (__pthread_cond_signal): Ditto. - (__pthread_cond_broadcast): Ditto. - (__pthread_condattr_init): Ditto. - (__pthread_condattr_destroy): Ditto. - (__pthread_condattr_getpshared): Ditto. - (__pthread_condattr_setpshared): Ditto. - (__pthread_rwlock_destroy): Ditto. - (__pthread_rwlock_rdlock): Ditto. - (__pthread_rwlock_tryrdlock): Ditto. - (__pthread_rwlock_wrlock): Ditto. - (__pthread_rwlock_trywrlock): Ditto. - (__pthread_rwlock_unlock): Ditto. - (__pthread_rwlockattr_init): Ditto. - (__pthread_rwlockattr_getpshared): Ditto. - (__pthread_rwlockattr_setpshared): Ditto. - (__pthread_rwlockattr_destroy): Ditto. - (__pthread_getconcurrency): Ditto. - (__pthread_setconcurrency): Ditto. - (__pthread_getschedparam): Ditto. - (__pthread_setschedparam): Ditto. - -2003-03-18 Thomas Pfaff <tpfaff@gmx.net> - - * cygwin.din: Add pthread_rwlock_destroy, pthread_rwlock_init, - pthread_rwlock_rdlock, pthread_rwlock_tryrdlock, - pthread_rwlock_wrlock, pthread_rwlock_trywrlock, - pthread_rwlock_unlock, pthread_rwlockattr_init, - pthread_rwlockattr_getpshared, pthread_rwlockattr_setpshared, - and pthread_rwlockattr_destroy. - * include/cygwin/version.h: Bump API minor number. - * include/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Define a - reasonable value. - Add prototypes for pthread_rwlock_destroy, pthread_rwlock_init, - pthread_rwlock_rdlock, pthread_rwlock_tryrdlock, - pthread_rwlock_wrlock, pthread_rwlock_trywrlock, - pthread_rwlock_unlock, pthread_rwlockattr_init, - pthread_rwlockattr_getpshared, pthread_rwlockattr_setpshared, - and pthread_rwlockattr_destroy. - * thread.h (PTHREAD_ONCE_MAGIC): Remove superflous semicolon. - (PTHREAD_RWLOCK_MAGIC): New define. - (PTHREAD_RWLOCKATTR_MAGIC): Ditto. - (pthread_rwlockattr): New class. - (pthread_rwlock): Ditto. - (MTinterface::rwlocks): New member. - (MTinterface::MTinterface): Initialize rwlocks. - Add prototypes for __pthread_rwlock_destroy, - __pthread_rwlock_wrlock, __pthread_rwlock_trywrlock, - __pthread_rwlock_unlock, __pthread_rwlockattr_init, - __pthread_rwlockattr_getpshared, __pthread_rwlockattr_setpshared, - and __pthread_rwlockattr_destroy. - * thread.cc (MTinterface::Init): Initialize rwlock internal mutex. - (MTinterface::fixup_after_fork): Fixup rwlocks after fork. - (pthread_rwlockattr::isGoodObject): Implement. - (pthread_rwlockattr::pthread_rwlockattr): Ditto. - (pthread_rwlockattr::~pthread_rwlockattr): Ditto. - (pthread_rwlock::initMutex): Ditto. - (pthread_rwlock::pthread_rwlock): Ditto. - (pthread_rwlock::~pthread_rwlock): Ditto. - (pthread_rwlock::RdLock): Ditto. - (pthread_rwlock::TryRdLock): Ditto. - (pthread_rwlock::WrLock): Ditto. - (pthread_rwlock::TryWrLock): Ditto. - (pthread_rwlock::UnLock): Ditto. - (pthread_rwlock::addReader): Ditto. - (pthread_rwlock::removeReader): Ditto. - (pthread_rwlock::lookupReader): Ditto. - (pthread_rwlock::RdLockCleanup): Ditto. - (pthread_rwlock::WrLockCleanup): Ditto. - (pthread_rwlock::fixup_after_fork): Ditto. - (pthread_rwlock::isGoodObject): Ditto. - (pthread_rwlock::isGoodInitializer): Ditto. - (pthread_rwlock::isGoodInitializerOrObject): Ditto. - (pthread_rwlock::isGoodInitializerOrBadObject): Ditto. - (__pthread_rwlock_destroy): Ditto. - (pthread_rwlock::init): Ditto. - (__pthread_rwlock_rdlock): Ditto. - (__pthread_rwlock_tryrdlock): Ditto. - (__pthread_rwlock_wrlock): Ditto. - (__pthread_rwlock_trywrlock): Ditto. - -2003-03-18 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread_cond::ExitingWait): Remove. - (pthread_cond::mutex): Ditto. - (pthread_cond::cond_access): Ditto. - (pthread_cond::win32_obj_id): Ditto. - (pthread_cond::TimedWait): Ditto. - (pthread_cond::BroadCast): Ditto. - (pthread_cond::Signal): Ditto. - (pthread_cond::waiting): Change type to unsigned long. - (pthread_cond::pending): New member. - (pthread_cond::semWait): Ditto. - (pthread_cond::mtxIn): Ditto. - (pthread_cond::mtxOut): Ditto. - (pthread_cond::mtxCond): Ditto. - (pthread_cond::UnBlock): New method. - (pthread_cond::Wait): Ditto. - * thread.cc: Update list of cancellation points. - (pthread_cond::pthread_cond): Rewrite. - (pthread_cond::~pthread_cond): Ditto. - (pthread_cond::TimedWait): Remove. - (pthread_cond::BroadCast): Ditto. - (pthread_cond::Signal): Ditto. - (pthread_cond::UnBlock): Implement. - (pthread_cond::Wait): Ditto. - (pthread_cond::fixup_after_fork): Rewrite. - (pthread_mutex::fixup_after_fork): Remove DETECT_BAD_APP - conditional. - (__pthread_cond_broadcast): Just return 0 if the condition is - not initialized. Call pthread_cond::UnBlock to release blocked - threads. - (__pthread_cond_signal): Ditto. - (__pthread_cond__dowait): Rewrite. - (pthread_cond_timedwait): Add pthread_testcancel call. Fix - waitlength calculation. - (pthread_cond_wait): Add pthread_testcancel call. - -2003-03-18 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h (PTHREAD_MUTEX_NORMAL): New define. - * thread.cc: Remove errno.h include. - (pthread::precreate): Change internal mutex type to normal. - (pthread_mutex::canBeUnlocked): Implement. - (pthread_mutex::pthread_mutex): Initialize lock_counter with 0. - (pthread_mutex::Lock): Rename to _Lock. Add self parameter. - Change lock_counter logic. Update SetOwner call. - (pthread_mutex::TryLock): Rename to _TryLock. Add self parameter. - Change lock_counter logic. Update SetOwner call. - (pthread_mutex::UnLock): Rename to _UnLock. Add self parameter. - Change lock_counter logic. - (pthread_mutex::Destroy): Rename to _Destroy. Update TryLock call. - (pthread_mutex::SetOwner): Move to thread.h as inline. - (pthread_mutex::LockRecursive): Ditto. - (pthread_mutex::fixup_after_fork): Change lock_counter logic. - (__pthread_mutexattr_settype): Add PTHREAD_MUTEX_NORMAL to valid - types check. - * thread.h: Include errno.h and limits.h. - (MUTEX_LOCK_COUNTER_INITIAL): Remove. - (MUTEX_OWNER_ANONYMOUS): New define. - (pthread_mutex::canBeUnlocked): New static method. - (pthread_mutex::lock_counter): Change type to unsigned long. - (pthread_mutex::GetPthreadSelf): New method. - (pthread_mutex::Lock): Call _Lock with pthread_self pointer. - (pthread_mutex::TryLock): Call _TryLock with pthread_self pointer. - (pthread_mutex::UnLock): Call _UnLock with pthread_self pointer. - (pthread_mutex::Destroy): Call _Destroy with pthread_self pointer. - (pthread_mutex::SetOwner): Moved from thread.cc as inline. - (pthread_mutex::LockRecursive): Ditto. - (pthread_mutex::_Lock): New method. - (pthread_mutex::_TryLock): New method. - (pthread_mutex::_UnLock): New method. - (pthread_mutex::_Destroy): New method. - -2003-03-18 Christopher January <chris@atomice.net> - - * fhandler_proc.cc (format_proc_cpuinfo): Use IsProcessorFeaturePresent - only on Windows NT. Read CPU Mhz value only on NT. Revert previous - change so cpuid instruction is called even on non-NT systems. - -2003-03-17 Corinna Vinschen <corinna@vinschen.de> - - * glob.c (g_lstat): Change API minor test to match API minor number - change in previous patch. - (g_stat): Ditto. - -2003-03-17 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Reorganize last two api versions so that - btowc and trunc exports show up before previous bump since there has - been no exported version of the DLL with the 64 bit changes yet but - 1.3.22 will have the btowc and trunc. - -2003-03-17 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export btowc, trunc. - * include/cygwin/version.h: Reflect new exports. - * syscalls.cc (_stat): Rename to stat to avoid newlib wrapper. - * syscalls.cc (_fstat): Ditto. - -2003-03-16 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::close): Correct check for - current tty. Add debugging output when console is freed. - (set_console_state_for_spawn): Add debugging output. - * fhandler_tty.cc (fhandler_tty_slave::open): Don't decrement console - open flag when vforking. - * sigproc.cc (sigproc_terminate): Fix debugging output. - * spawn.cc (handle): Eliminate second argument. - (spawn_guts): Reflect elimination of argument change to handle. - * syscalls.cc (setsid): Add debugging output when console is freed. - -2003-03-14 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (rename): Revert assumption that DELETE_ON_CLOSE works on - Win9x. - -2003-03-13 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 23. - -2003-03-13 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (IsProcessorFeaturePresent): Add. - * fhandler_proc.cc (format_proc_cpuinfo): Add case for 9x systems. - -2003-03-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Fix vendor id in cpuid case. - -2003-03-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_rcmd): Use correct file descriptor in call to fdsock. - (cygwin_rexec): Ditto. - -2003-03-13 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty_slave::close): Fix typo in debug - output. - - * syscalls.cc (rename): Assume that DELETE_ON_CLOSE works on Win9x. - -2003-03-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): Don't call - fhandler_base::dup() but call DuplicateHandle directly instead to have - control over socket inheritence. - -2003-03-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): On NT systems avoid - using WinSock2 socket duplication methods. Add comment. - -2003-03-11 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): - Set io_handle to INVALID_SOCKET in case of failure. - (fhandler_socket::dup): Return 0 if the io_handle is valid. - -2003-03-10 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Don't handle DELETE flag specially. - * security.cc (alloc_sd): Ditto. - -2003-03-09 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc: Change Copyright hint to include 2003. - -2003-03-09 Corinna Vinschen <corinna@vinschen.de> - - Switch to 32/64 datatypes: - * Makefile.in (OBSOLETE_FUNCTIONS): Add open acl aclcheck aclfrommode - aclfrompbits aclfromtext aclsort acltomode acltopbits acltotext chown - facl fchown fgetpos fopen freopen fseeko fsetpos fstat ftello - ftruncate getegid geteuid getgid getgrent getgrgid getgrnam getgroups - getpwuid getpwuid_r getuid initgroups lchown lseek lstat mknod mmap - seekdir setegid seteuid setgid setgroups setregid setreuid setuid stat - telldir truncate. - (NEW_FUNCTIONS): Add _open64 acl32 aclcheck32 aclfrommode32 - aclfrompbits32 aclfromtext32 aclsort32 acltomode32 acltopbits32 - acltotext32 chown32 facl32 fchown32 fgetpos64 fopen64 freopen64 - fseeko64 fsetpos64 fstat64 ftello64 ftruncate64 getegid32 geteuid32 - getgid32 getgrent32 getgrgid32 getgrnam32 getgroups32 getpwuid32 - getpwuid_r32 getuid32 initgroups32 lchown32 lseek64 lstat64 mknod32 - mmap64 seekdir64 setegid32 seteuid32 setgid32 setgroups32 setregid32 - setreuid32 setuid32 stat64 telldir64 truncate64 to substitute the - above. - * cygserver_shm.h (class client_request_shm): Change uid_t and gid_t - members to __uid32_t and __gid32_t. - * cygwin.din: Add symbols acl32 aclcheck32 aclfrommode32 - aclfrompbits32 aclfromtext32 aclsort32 acltomode32 acltopbits32 - acltotext32 facl32 fgetpos64 fopen64 freopen64 fseeko64 fsetpos64 - _fstat64 ftello64 _lseek64 mknod32 _open64. - * glob.c: Include perprocess.h. - (globtilde): Call getpwuid32 and getuid32 instead of getpwuid and - getuid. - (g_lstat): Check for applications API version to call the appropriate - typed gl_lstat function. - (g_stat): Ditto for gl_stat. - * shm.cc (client_request_shm::client_request_shm): Call geteuid32 - and getegid32 instead of geteuid and getegid throughout. - * syscalls.cc (_open64): New alias for open. - (_lseek64): New alias for lseek64. - (_fstat64): New alias for fseek64. - (mknod32): New function. - (mknod): Calls mknod32 now. - * winsup.h: Make function declarations for getuid32, geteuid32, - and getpwuid32 accessible for plain C sources. Add declarations - for getegid32 and getpwnam. - * include/cygwin/version.h: Bum API minor number to 78. - * include/sys/cygwin.h: Guard C++ specific members of struct - per_process against inclusion in plain C sources. - * include/sys/mman.h (mman): Add guard to avoid type clash when - compiling Cygwin. - -2003-03-09 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 22. - -2003-03-09 Christopher Faylor <cgf@redhat.com> - - Do some minor reformatting of 'extern "C"' use throughout. - -2003-03-06 Christopher January <chris@atomice.net> - - * autoload.cc (GetSystemTimes): Define new autoload function. - * fhandler_proc.cc (proc_listing): Add cpuinfo and partitions entries. - (fhandler_proc::fill_filebuf): Add PROC_CPUINFO and PROC_PARTITIONS - cases. - (format_proc_uptime): Use GetSystemTimes if available. - (read_value): New macro. - (print): New macro. - (cpuid): New function. - (can_set_flag): New function. - (format_proc_cpuinfo): New function. - (format_proc_partitions): New function. - -2003-03-09 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (unlink): Attempt to be more clever about setting - attributes of file. Only open file in query mode to avoid having to - mess with security stuff for reading. - -2003-03-09 Corinna Vinschen <corinna@vinschen.de> - - * rmsym: Fix regular expression. - -2003-03-09 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Change from using new-* to cygwin0 for temporary - targets. - -2003-03-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h: Set SOMAXCONN to Winsock2 value. - -2003-03-08 Christopher Faylor <cgf@redhat.com> - - * syscalls.cc (unlink): Always attempt to use FILE_FLAG_CLOSE_ON_DELETE - to delete files since this allows us to preserve the protection of hard - linked files. - (link): Generate full path for potentially recalculated .lnk target. - -2003-03-08 Christopher Faylor <cgf@redhat.com> - - Revert below changes regarding _pinfo::cmdline. - -2003-03-08 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Change n to __off64_t to match change - of _pinfo::cmdline. - * fhandler.h (class fhandler_virtual): Change filesize member to - __off64_t. - * fhandler_proc.cc (format_proc_meminfo): Change to return __off64_t. - (format_proc_stat): Ditto. - (format_proc_uptime): Ditto. - * fhandler_process.cc (format_process_stat): Ditto. - (format_process_status): Ditto. - (format_process_statm): Ditto. - * pinfo.cc (_pinfo::cmdline): Expect __off64_t parameter. - * pinfo.h (class _pinfo): Change declaration of cmdline accordingly. - -2003-03-07 Christopher Faylor <cgf@redhat.com> - - * path.h (PATH_LNK): New enum val. - (path_conv::is_lnk_symlink): New function. True if path represents - .lnk style symlink. - * path.cc (check_shortcut): Set PATH_LNK in pflags when appropriate. - (symlink_info::check): Ditto. Remove PATH_LNK from pflags initially. - * syscalls.cc (unlink): Always remove readonly attribute from a symlink - regardless of type. - (link): (from Corinna Vinschen) Allow links to symlinks. Reset - attributes on a symlink after successful link creation. - (chmod): Use is_lnk_symlink where appropriate. - (rename): Ditto. - -2003-03-07 Pierre Humblet <pierre.humblet@ieee.org> - - * tty.cc (create_tty_master): Call GetComputerName instead of - cygwin_gethostname. Set ut_id. - * syscalls.cc (login): Call endutent. - (setutent): Do not seek after a fresh open. - -2003-03-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid32): Fix formatting. - -2003-03-04 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (MTinterface::fixup_after_fork): Initialize mainthread - prior to pthread objects. - -2003-03-04 Jason Tishler <jason@tishler.net> - - * fhandler_socket.cc (fhandler_socket::dup): Initialize type. - -2003-03-03 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_tty_slave::close): Declare new function. - (fhandler_tty_slave::dup): Declare new function. - (fhandler_tty_slave::fixup_after_function): Declare new function. - * fhandler_tty.cc (fhandler_tty_slave_open): Only increment - fhandler_console::open_fhs when associated with a pty. - (fhandler_tty_slave::close): Define new function. Decrement - fhandler_console::open_fhs when associated with a pty. - (fhandler_tty_slave::dup): Define new function. Increment - fhandler_console::open_fhs when associated with a pty. - (fhandler_tty_slave::fixup_after_fork): Define new function. Increment - fhandler_console::open_fhs when associated with a pty. - -2003-03-03 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_pty_slave::open): Grudgingly increment - fhandler_console::open_fhs here. - (fhandler_pty_slave::close): Ditto for close. - -2003-03-02 Christopher Faylor <cgf@redhat.com> - - * lib/getopt.c: Refresh from NetBSD sources. - -2003-03-02 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::close): Don't decrement - in use counter if in vfork fixup stage. - -2003-03-02 Christopher Faylor <cgf@redhat.com> - - * lib/getopt.c: Nuke use of unneeded BSDisms. - -2003-03-02 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::load_after_fork): Don't revert to LoadLibrary - if LoadLibraryEx fails. - * dtable.cc (dtable::dec_console_fds): Eliminate. - (dtable::release): Don't treat console specially. - (dtable::build_fhandler): Ditto. - * dtable.h (console_fds): Eliminate. - (dtable::dec_console_fds): Eliminate. - (dtable::inc_console_fds): Eliminate. - * fhandler.h (fhandler_console::open_fhs): New static element. - * fhandler_console.cc (fhandler_console::open): Increment open_fs. - (fhandler_console::close): Call FreeConsole if no more open consoles - and ctty is not associated with the console. - * syscalls.cc (setsid): Simplify check for when to call FreeConsole. - (check_pty_fds): Eliminate definition. - * winsup.h (check_pty_fds): Eliminate declaration. - -2003-03-02 Christopher Faylor <cgf@redhat.com> - - * dll_init.cc (dll_list::load_after_fork): Fix typo where result of - LoadLibrary was ignored. - -2003-03-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Open and write socket - file using Win32 calls. - -2003-03-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Open and read socket file using - Win32 calls. - -2003-02-28 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Wrap atexit and exit with cygwin, thread-safe functions. - * dcrt0.cc (cygwin_atexit): New function. - (cygwin_exit): Ditto. - -2003-02-28 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (fstat64): Pass get_name () to pc. - (access): Pass fn to stat_worker. - -2003-03-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (class sock_event): New class managing Winsock - events for interruptible socket calls. - (fhandler_socket::connect): Move support for interruptible call to - class sock_event. Use class object instead. - (fhandler_socket::accept): Ditto. Remove useless casts. - -2003-03-27 Thomas Pfaff <tpfaff@gmx.net> - - * fhandler_socket.cc (fhandler_socket::connect): Add support for - an interruptable connect. - -2003-02-27 Pierre Humblet <pierre.humblet@ieee.org> - - * uinfo.cc (internal_getlogin): Only update user.groups.pgsid - if the call to set the primary group succeeds. - -2003-02-27 Christopher Faylor <cgf@redhat.com> - - * cygthread::detach: Improve error message. - -2003-02-26 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_helper.cc (get_sids_info): debug_print owner_sid and group_sid. - -2003-02-25 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Fix returned address by taking the granularity - into account. - -2003-02-23 Pierre Humblet <pierre.humblet@ieee.org> - - * syslog.cc (syslog): Do not unlock the file before closing it - and remove debug_printf about stream errors. - -2003-02-22 Christopher Faylor <cgf@redhat.com> - - * cygmalloc.h: Remove MORECORE_CANNOT_TRIM. It's not true. - # cygwin.din: Export mallinfo. - # malloc_wrapper.cc (mallinfo): New function. - -2003-02-22 Pierre Humblet <pierre.humblet@ieee.org> - - * syslog.cc (syslog): Do not print the Windows pid. Print the Cygwin - pid as an unsigned decimal. On Win95 print a timestamp and attempt to - lock the file up to four times in 3 ms. - -2003-02-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Fix compiler - warning. - (fhandler_socket::fstat): Simplify. Set st_uid/st_gid to effective - uid/gid of current process in case of open sockets. - -2003-02-21 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::build_fhandler_from_name): Set some fhandler - data on sockets to evaluate AF_LOCAL sockets correctly. - (dtable::build_fhandler): Set unit number on sockets. - * fhandler.h (fhandler_socket): Add unit number. - (fhandler_socket::get_unit): New method. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Set unit - number. - (fhandler_socket::fstat): Reorganize to return more Linux-like - values. - * net.cc: include ctype.h. - (fdsock): Set unit number when building fhandler. - * path.cc (path_conv::check): Set device type to FH_SOCKET if file - is a AF_UNIX socket. - (get_devn): Evaluate unit for virtual socket devices. - (win32_device_name): Set windows path for sockets to unix_path with - just backslashes to keep the different names. - * syscalls.cc (fstat64): Don't override st_ino, st_dev and st_rdev - for sockets. - (stat_worker): Ditto. - -2003-02-21 Pierre Humblet <pierre.humblet@ieee.org> - - * autoload.cc (AccessCheck): Add. - (DuplicateToken): Add. - * security.h (check_file_access): Declare. - * syscalls.cc (access): Convert path to Windows, check existence - and readonly attribute. Call check_file_access instead of acl_access. - * security.cc (check_file_access): Create. - * sec_acl (acl_access): Delete. - -2003-02-19 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::open): Move some filesystem specific - stuff. - (fhandler_disk_file::open): Accept some filesystem specific stuff. - * sigproc.cc (wait_for_sigthread): Become slightly more thread safe. - (sig_send): Don't assume that signal thread is ready. - -2003-02-20 Corinna Vinschen <corinna@vinschen.de> - - * wincap.h (wincap): Remove unnecessary definition of - supports_sparse_files. - * wincap.cc: Ditto. - -2003-02-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Check descriptor - created by cygheap_fdnew constructor. - * fhandler_virtual.cc (fhandler_virtual::opendir): Ditto. - * fhandler_socket.cc (fhandler_socket::accept): Ditto and move - creation of file descriptor behind blocking OS call. - * net.cc (cygwin_socket): Ditto. - (cygwin_rcmd): Ditto. - (cygwin_rresvport): Ditto. - (cygwin_rexec): Ditto. - (socketpair): Ditto. - -2003-02-20 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetCompressedFileSize): Add. - * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Compute - st_blocks value from GetCompressedFileSize() if available. - -2003-02-18 Vaclav Haisman <V.Haisman@sh.cvut.cz> - - * wincap.h (wincaps::supports_sparse_files): New flag. - (wincapc::supports_sparse_files): New method. - * wincap.cc (wincap_unknown): Define value for the new flag. - (wincap_95): Ditto. - (wincap_95osr2): Ditto. - (wincap_98): Ditto. - (wincap_98se): Ditto. - (wincap_me): Ditto. - (wincap_nt3): Ditto. - (wincap_nt4): Ditto. - (wincap_nt4sp4): Ditto. - (wincap_2000): Ditto. - (wincap_xp): Ditto. - * path.h (path_conv::fs_flags): New method. - * fhandler_disk_file.cc: Include winioctl.h for DeviceIoControl. - (fhandler_disk_file::open): Set newly created and truncated files as - sparse on platforms that support it. - -2003-02-17 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (internal_getgroups): Handle properly tokens with - no groups. Fix bug introduced on 2003-02-04. - -2003-02-16 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export all appropriate newlib libm functions. Sort. - * include/cygwin/version.h: Bump API minor number. - -2003-02-15 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export all appropriate newlib libc functions. - * include/cygwin/version.h: Bump API minor number. - -2003-02-14 Jason Tishler <jason@tishler.net> - - * mmap.cc (mprotect): Add missing break. - -2003-02-13 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (try_to_debug): Don't reset priority when returning - from non-waitloop call. - -2003-02-13 Vaclav Haisman <V.Haisman@sh.cvut.cz> - Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::write_normal): Use MessageBeep - for bell sound. - * autoload.cc (MessageBeep): Add. - -2003-02-13 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/types.h: Use correct ifdef guard for u_ definitions. - -2003-02-13 Christopher Faylor <cgf@redhat.com> - - * environ.cc (environ_init): Use strechr. - -2003-02-13 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/in.h (sockaddr_in): Fix typo. - -2003-02-12 Christopher Faylor <cgf@redhat.com> - - * path.h (path_conv): Reorganize slightly. - -2003-02-12 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (process_input): Add sanity check to ensure that - console typeahead is cleared on signal. - -2003-02-12 Christopher Faylor <cgf@redhat.com> - - * spawn.cc (linebuf::~linebuf): Resurrect commented out (for - debugging?) code. - -2003-02-10 Ralf Habacker <ralf.habacker@freenet.de> - - * include/cygwin/in.h (in_attr_t): Define new type. - * include/arpa/inet.h (inet_addr): Change return type to in_addr_t. - (inet_lnaof): Ditto. - (inet_netof): Ditto. - (inet_network): Ditto. - -2003-02-10 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/types.h: Move many *_t typedefs here. Protect them - with ifdefs. - * fhandler_disk_file.cc (fhandler_disk_file::fstat): Change ntsec_atts to mode_t. - * security.cc (get_attribute_from_acl): Accept mode_t attribute. - (get_nt_attribute): Ditto. - (get_file_attribute): Ditto. - (get_nt_object_attribute): Ditto. - (get_object_attribute): Ditto. - * security.h: Reflect above changes. - * syscalls.cc (chown_worker): Change attrib to mode_t. - -2003-02-08 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 21. - -2003-02-07 Christopher Faylor <cgf@redhat.com> - - * malloc.cc (DEFAULT_MMAP_THRESHOLD): Bump down to 16MB thanks to below - changes. - -2003-02-07 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::alloc_map): De-inline. Add offset and length - parameter. Only protect pages actually unused currently. Do job - of map_map() when initializing a map. - (mmap_record::map_map): Reduce functionality for the reuse case - of private anonymous mapping. - (mmap_record::fixup_map): Format change. - (list::add_record): Add offset and length parameter to call - mmap_record::alloc_map() correctly. - (mmap64): Rename `l' variable to `map_list'. Accommodate above changes. - (munmap): Rename `l' variable to `map_list'. - (msync): Ditto. - (fhandler_disk_file::mmap): Streamline code. - (mprotect): Ditto. - (fixup_mmaps_after_fork): Rename `l' variable to `map_list'. - -2003-02-07 Vaclav Haisman <V.Haisman@sh.cvut.cz> - Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (try_to_debug): Set priority of current thread rather - than the main thread. Make busy waiting loop less busy. Restore - priority when function returns. - -2003-02-07 Christopher Faylor <cgf@redhat.com> - - * malloc.cc (DEFAULT_MMAP_THRESHOLD): Set high to avoid mmaps. - -2003-02-07 Christopher Faylor <cgf@redhat.com> - - * pipe.cc (fhandler_pipe::close): Avoid extraneous this->. - -2003-02-06 Christopher Faylor <cgf@redhat.com> - - * heap.cc (heap_init): Remove debugging code. - -2003-02-06 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h: Introduce names UNKNOWN_UID and UNKNOWN_GID and delete - declaration of is_grp_member. - * uinfo.cc (internal_getlogin): Use UNKNOWN_GID. - * passwd.cc (pwdgrp::read_passwd): Use UNKNOWN_UID. - * grp.cc (pwdgrp::read_group): Change group name to provide better - feedback. - (getgrgid): Use gid16togid32. - * sec_helper.cc (is_grp_member): Delete. - -2003-02-05 Christopher Faylor <cgf@redhat.com> - - * path.cc: Change 'to_posix_p' to 'to_posix' throughout. - (conv_path_list_buf_size): Accommodate relative paths. - -2003-02-05 Christopher Faylor <cgf@redhat.com> - - * path.cc (etc::dir_changed): Fix debug printf. - -2003-02-05 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Move all permission settings to beginning of - loop. Set default rights to same values as in alloc_sd(). Set DELETE - for owner and default owner only if S_IWOTH is given. - -2003-02-05 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_acl.cc: Change all __aclent16_t to __aclent32_t except in - wrapper function definitions. Replace call to the aclXYZ functions by - calls aclXYZ32. - (searchace): Change type of third argument to __uid32_t and use - ILLEGAL_UID instead of -1; - (setacl): Remove some initializations. Only give STANDARD_RIGHTS_WRITE - for S_IWOTH. Replace -1 by ILLEGAL_UID. - (getacl): Change type of owner_sid, group_sid and ace_sid to cygpsid. - In last else clause, suppress second call to ace_sid.get_id and use - TRUE in first call. Replace EqualSid by ==. - (acl_access): Call internal_getgroups in USER and GROUP cases. - (acecmp: Define static. - (acl32): Create from 16 bit type. - (facl32): Ditto. - (lacl32): Ditto. - (aclcheck32): Ditto. - (aclsort32): Ditto. - (acltomode32): Ditto. - (aclfrommode32): Ditto. - (acltopbits32): Ditto. - (aclfrompbits32): Ditto. - (acltotext32): Ditto. - (aclfromtext32): Ditto, and use strechr. - (acl16to32): Create. - (acl): Make it a wrapper function. - (facl): Ditto. - (lacl): Ditto. - (aclcheck): Ditto. - (aclsort): Ditto. - (acltomode): Ditto. - (aclfrommode): Ditto. - (acltopbits): Ditto. - (aclfrompbits): Ditto. - (acltotext): Ditto. - (aclfromtext): Ditto. - * security.cc (write_sd): Call set_process_privilege and check - ownership. - (alloc_sd): Remove call to set_process_privilege and the owner check. - -2003-02-05 Christopher Faylor <cgf@redhat.com> - - * include/sys/cygwin.h: Use C-style comments. - -2003-02-05 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_helper.cc (get_sids_info): New function. - * security.cc (extract_nt_dom_user): Simplify with strechr. - (get_user_groups): Initialize glen to MAX_SID_LEN. - (get_user_local_groups): Ditto. - (get_attribute_from_acl): Define ace_sid as cygpsid. - (get_nt_attribute): Define owner_sid and group_sid as cygpsid. - Call get_sids_info instead of cygsid.get_{u,g}id and is_grp_member. - (get_nt_object_attribute): Ditto. - (alloc_sd): Define ace_sid as cygpsid. - -2003-02-04 Thomas Pfaff <tpfaff@gmx.net> - - * syscalls.cc (struct system_cleanup_args): New struct. - (system_cleanup): New function. - (system): Use pthread_cleanup_push and _pop to save and restore - signal handlers and sigprocmask. - -2003-02-04 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink): Create security attributes so that only the - user can modify the symlink. - * security.cc (set_security_attribute): Remove symlink special - handling. - -2003-02-04 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (internal_getgroups): Do not return without closing - the process handle. - -2003-02-04 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h (class cygpsid): New class. - (class cygsid): Use cygpsid as base. Remove members psid, get_id, - get_uid, get_gid, string, debug_printf and the == and != operators. - (cygsidlist::clear_supp): Only do work if setgroups has been called. - * sec_helper.cc: Define sid_auth NO_COPY. - (cygpsid::operator==): New operator. - (cygpsid::get_id): New function. - (cygpsid::string): New function. - (cygsid::string): Delete. - (cygsid::get_id): Delete. - * pwdgrp.h: Change arguments of internal_getpwsid, - internal_getgrsid and internal_getgroups to cygpsid. - * passwd.cc (internal_getpwsid): Change argument from cygsid to cygpsid. - * grp.cc (internal_getgrsid): Ditto. - (internal_getgroups): Ditto. - -2003-02-03 Christopher Faylor <cgf@redhat.com> - - Eliminate most unneeded this-> pointers throughout. - -2003-02-03 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h: Add third argument to set_process_privilege. - * autoload.cc: Add OpenThreadToken. - * sec_helper.cc (set_process_privilege): Add and use use_thread - argument. - * security.cc (alloc_sd): Modify call to set_process_privilege. - Remember the result in each process. If failed and file owner is not - the user, fail. - -2003-02-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Return buffer - length and don't set errno in case of WSAEMSGSIZE error. - (fhandler_socket::recvmsg): Ditto. - -2003-02-01 Christopher Faylor <cgf@redhat.com> - - * grp.cc (getgrent32): Only refresh group entries when at beginning. - (internal_getgrsid): Only refresh if uninitialized. - (internal_getgrent): Ditto. - * passwd.cc (getpwent): Only refresh passwd entries when at beginning. - (pwdgrp::read_passwd): linebuf *cannot* be NO_COPY. - (internal_getpwsid): Only refresh if uninitialized. - (getpass): No need to refresh passwd data here. - * pwdgrp.h (refresh): Eliminate default. - -2003-01-31 Christopher Faylor <cgf@redhat.com> - - * dlfcn.cc (dlerror): Only report load errors once per error. - -2003-01-31 Christopher Faylor <cgf@redhat.com> - - * fhandler_serial.cc (fhandler_serial::open): Avoid extraneous setting - of res. - - * termios.cc (tcsetattr): Correctly record errno after tcsetattr call. - -2003-01-31 Troy Curtiss <troyc@usa.net> - - * fhandler_serial.cc (fhandler_serial::tcsetattr): Add error-checking - so that if any Win32 SetComm*() calls fail, errno gets set to EINVAL - and tcsetattr() returns -1. Catch invalid bitrates, mostly. If baud - rate setting is B0, just drop DTR and leave Win32 DCB bitrate as-is - since 0 is not a valid Win32 setting. - (fhandler_serial::tcgetattr): If DTR is low, populate the bitrate as - B0, otherwise get it from the DCB. - -2003-01-31 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (pwdgrp::read_passwd): linebuf *must* be static (from - Pierre Humblet). - * pwdgrp.h (pwdgrp::refresh): Avoid calling read function if we already - have lock since that means we are in the process of reading the file. - -2003-01-31 Jason Tishler <jason@tishler.net> - - * shared.cc (shared_info::heap_chunk_size): Use correct variable when - reading HKLM. - -2003-01-30 Christopher Faylor <cgf@redhat.com> - - * fhandler_registry.cc (fhandler_registry::exists): Fix off-by-one - error when inspecting path. - -2003-01-29 Christopher Faylor <cgf@redhat.com> - - * lib/getopt.c: Allow environment variable control of POSIXLY_INCORRECT - behavior. - -2003-01-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept): On successful execution - set connection state of returned socket to CONNECTED. - -2003-01-27 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (pwdgrp::parse_passwd): Be more unforgiving about - non-numeric fields. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (pwdgrp::next_num): Remove check for NULL since it is no - longer a valid return from next_str. - (pwdgrp::add_line): Duh. Revert to use strchr. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * string.h (strechr): New function. - * uinfo.cc (pwdgrp::next_str): Search only for input char in string. - Return EOS on failure. Don't check for NULL since it shouldn't be - possible. - (pwdgrp::add_line): Revert to replacing '\n' in input line with '\0'. - (pwdgrp::next_num): Pass explicit separator character to next_str. - * grp.cc (pwdgrp::parse_group): Ditto. - * passwd.cc (pwdgrp::parse_passwd): Ditto. Revamp test for garbage - input. - * pwdgrp.h (pwdgrp::next_str): Don't use default parameter. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (pwdgrp::load): Regularize strace output. Add warning for - CreateFile failure. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (pwdgrp::parse_passwd): Eliminate use of memset. The - structure should always be completely filled out. - * grp.cc (pwdgrp::parse_group): Ditto. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * grp.cc (pwdgrp::parse_group): Fix off-by-one problem in allocating - gr_mem. - -2003-01-26 Christopher Faylor <cgf@redhat.com> - - * include/sys/strace.h (paranoid_printf): Define as not being part of - "all" output. - -2003-01-25 Christopher Faylor <cgf@redhat.com> - - * pwdgrp.h (pwdgrp::next_num): Rename from next_int. Returns - true/false if parse operation succeeded. - (pwdgrp::reparse): Remove. - (pwdgrp::raw_ptr): New function. Returns pointer in line. - (pwdgrp::next_num): New functions for parsing other than unsigned long. - * grp.cc (pwdgrp::parse_group): Reinstate previous parsing behavior. - Don't fill in fields with NULL and assign empty gr_mem to known pointer - rather than doing a pointless calloc. Streamline gr_mem parsing. - Don't increment curr_lines here. - * passwd.cc (pwdgrp::parse_passwd): Use new behavior of next_num. - Don't increment curr_lines here. - * uinfo.cc (pwdgrp::next_str): Keep returning EOL if out of data. - (pwdgrp::reparse): Remove. - (pwdgrp::next_num): Rename from next_int. Return bool indicating - success of parse, argument returns value parsed. - (pwdgrp::add_line): Increment curr_lines here on successful parse. - (pwdgrp::load): (from Pierre Humblet) Don't return status. Just report - it here. - -2003-01-25 Christopher Faylor <cgf@redhat.com> - - * pwdgrp.cc (pwdgrp::reparse): Declare. - * uinfo.cc (pwdgrp::reparse): Define. - * grp.cc (pwdgrp::parse_group): Use reparse. - -2003-01-25 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (seteuid32): On Win95 get the pw entry. If it exists - update the euid and call cygheap->user.set_name. Remove special - handling of ILLEGAL_UID. - (setgid32): Add a debug_printf. On Win95, always set the egid. - Remove special handling of ILLEGAL_GID. Do not compare gid and gr_gid. - * child_info.h (class cygheap_exec_info): Remove uid. - * spawn.cc (spawn_guts): Do not set ciresrv.moreinfo->uid. - * dcrto.cc (dll_crt0_1): Always call uinfo_init. - * uinfo.cc (uinfo_init): Reorganize and close handle if needed. - (cygheap_user::ontherange): Do not call internal_getpwnam if pw is NULL. - -2003-01-24 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::send_winch_maybe): Reset - scroll region if size changes. - -2003-01-24 Pierre Humblet <pierre.humblet@ieee.org> - Jason Tishler <jason@tishler.net> - - * cygwin.din: Export setreuid32, setreuid, setregid32, setregid. - * syscalls.cc (setreuid32): New function. - (setreuid): Ditto. - (setregid32): Ditto. - (setregid): Ditto. - * include/cygwin/version.h: Bump API minor number. - -2003-01-23 Christopher Faylor <cgf@redhat.com> - - * pwdrp.h (pwdgrp::refresh): Lock entire test prior to reading. - -2003-01-23 Christopher Faylor <cgf@redhat.com> - - * grp.cc (pwdgrp::parse_group): Eliminate arg and use class member - instead. Use next_str and next_int to parse arguments. - * passwd.cc (pwdgrp::parse_passwd): Ditto. - (grab_string): Eliminate. - (grab_int): Ditto. - * pwdgrp.h (pwdgrp::parse): Eliminate input arg. - (pwdgrp::parse_passwd): Reflect above change. - (pwdgrp::parse_group): Reflect above change. - (pwdgrp::next_str): New function. - (pwdgrp::next_int): Ditto. - (pwdgrp::gets): Eliminate. - * uinfo.cc (pwdgrp::next_str): New function. - (pwdgrp::next_int): Ditto. - (pwdgrp::add_line): Subsume gets. - (pwdgrp::gets): Eliminate. - (pwdgrp::load): Just call add_line to parse input buffer. - -2003-01-22 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h (PTHREAD_MUTEX_RECURSIVE): Revert changes from - 2003-01-09 mutex patch. - (PTHREAD_MUTEX_ERRORCHECK): Ditto. - -2003-01-22 Corinna Vinschen <corinna@vinschen.de> - - * cygrun.c: Move from here to ../testsuite. - * Makefile.in: Remove cygrun.exe dependencies. - -2003-01-21 Jason Tishler <jason@tishler.net> - - * cygwin.din: Export nanosleep(). - * signal.cc (nanosleep): New function. - (sleep): Move old functionality to nanosleep(). Call nanosleep(). - (usleep): Remove old functionality. Call nanosleep(). - * include/cygwin/version.h: Bump API minor number. - -2003-01-21 Christopher Faylor <cgf@redhat.com> - - * grp.cc: Call gr.refresh() rather than doing isunitialized tests - throughout. - (gr): Use constructor (sigh). - (pwdgrp::parse_group): Rename from parse_grp. - (pwdgrp::read_group): Rename from read_etc_group. Just call gr.load - with a single argument. - * passwd.cc: Call pr.refresh() rather than doing isunitialized tests - throughout. - (pr): Use constructor (sigh). - (pwdgrp::parse_passwd): Rename from "parse_pwd". - (pwdgrp::read_passwd): Rename from read_etc_passwd. Just call pr.load - with a single argument. - * pwdgrp.h (pwdgrp_state): Eliminate. - (pwdgrp): Reflect above renamings. - (pwdgrp::etc_ix): Rename from pwd_ix. - (pwdgrp::read): New element. - (pwdgrp::lock): New element. - (pwdgrp::refresh): New function. - (pwdgrp::load): Eliminate variations which take buffer arguments. - (pwdgrp::pwdgrp): New constructors. Initialize mutex here. - * uinfo.cc (pwdgrp::load): Accommodate pwd_ix -> etc_ix renaming. - (pwdgrp::load): Set initialized state to true rather than setting state - to loaded. - -2003-01-21 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number. - -2003-01-21 Pierre Humblet <pierre.humblet@ieee.org> - - * path.h (etc::change_possible): Revert the type to bool. - (etc::set_last_modified): Remove obsolete function. - * path.cc (etc::change_possible): Revert type to bool. - (etc::test_file_change): Do not test for negative values of - change_possible and do not set it to -res. - (etc::dir_changed): When the handle is NULL, call memset instead of - test_file_changed. When the handle is invalid, return true. Detect - filename change in /etc. - (etc::file_changed): Remove unneeded check for !fn[n]. - * uinfo.cc (pwdgrp::load): Eliminate spurious setting of fh to NULL. - * pwdgrp.h (pwdgrp::operator =): Eliminate. - -2003-01-19 Christopher Faylor <cgf@redhat.com> - - * pwdgrp.h (etc): Move to path.h. - (pwdgrp::max_lines): New field. - (pwdgrp::curr_lines): New field. - (pwdgrp::pwdgrp_buf): Ditto. - (pwdgrp_buf_elem_size): Ditto. - (pwdgrp_parse): Ditto. - (pwdgrp::gets): Just declare here. - (pwdgrp::load): Ditto. Just take one argument. - (pwdgrp::load): Define overloaded function accepting passwd buf. - (pwdgrp::load): Define overloaded function accepting group buf. - * grp.cc: Use pwdgrp elements rather than standalone static variables - throughout. - (curr_lines): Eliminate. - (max_lines): Ditto. - (add_grp_line): Ditto. - (parse_grp): Define as returning boolean. Accept void * arg and line - count. Coerce first argument into __group32 buf reference. Increment - curr_line as appropriate. - (read_etc_group): Pass pwdgrp buffer to gr.load. - * passwd.cc: Use pwdgrp elements rather than standalone static variables - throughout. - (curr_lines): Eliminate. - (max_lines): Ditto. - (add_grp_line): Ditto. - (parse_passwd): Define as returning boolean. Accept void * arg and line - count. Coerce first argument into passwd buf reference. Increment - curr_line as appropriate. - (read_etc_group): Pass pwdgrp buffer to pr.load. - * path.cc (etc::fn): Extend buffer size to allow index by 1 rather than - zero. - (etc::last_modified): Ditto. - (etc::change_possible): Ditto. Renamed from sawchange. Change to - signed char since elements are now tri-state. - (etc::init): Assume "handle" is 1 based rather than 0. - (etc::test_file_change): New function. Sets change_possible based on - file date comparison. - (etc::dir_changed): Check file states immediately after changed_h is - initialized to avoid a race. - (etc::file_changed): Use test_file_change to detect if file needs to be - updated. - * path.h (etc): Move class here from pwdgrp.h. - * uinfo.cc: Move etc:: functions to path.cc. Move pwdgrp functions - here. - (pwdgrp::gets): Eliminate buf checks. Just check eptr and set lptr. - (pwdgrp::add_line): New function. - (pwdgrp::load): Call generic add_line function which will call correct - parser. - -2003-01-17 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc: Change most 'int's to 'unsigned's. - (_cmalloc): Only check for size of malloced region when calculating - bucket. Add overhead when performing the sbrk. Previous change broke - _crealloc. - -2003-01-17 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (initialize_env): Use colon for CYGWIN_DEBUG separator. - * grp.cc: Change most statics to NO_COPY throughout. - * passwd.cc: Ditto. - -2003-01-17 Christopher Faylor <cgf@redhat.com> - - * pwdgrp.h: Change some BOOLs to bools. - (pwdgrp::pwdgrp): Remove unneeded constructor. - * passwd.cc: Change BOOL to bool throughout. - -2003-01-17 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add strerror_r. - * include/cygwin/version.h: Bump API minor number. - -2003-01-17 Christopher Faylor <cgf@redhat.com> - - * uinfo.cc (etc::dir_changed): Don't print a warning if can't open - /etc, unless debugging. - -2003-01-17 Pierre Humblet <pierre.humblet@ieee.org> - - * grp.cc (read_etc_group): On NT, add a line for gid = -1. Change name - "unknown" to "mkgroup". - (internal_getgrgid): Do not return default in nontsec case. - (internal_getgroups): Add argument srchsid and look for it in groups if - not NULL. - * passwd.cc (read_etc_passwd): On NT, add a line for uid = -1. Use - same default uid for Win95 and NT. Call cygheap_user::ontherange to - initialize HOME. - -2003-01-16 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cygheap::etc_changed): Move to uinfo.cc. - * cygheap.h (init_cygheap::etc_changed_h): Remove. - (init_cygheap::etc_changed): Ditto. - * grp.cc (group_state): Remove. Use gr instead throughout. - (gr): Define as class pwdgrp. - (read_etc_group): Remove gr definition. Remove calls to - set_last_modified and close. Pass add_grp to gr.load to load file. - * passwd.cc (passwd_state): Remove. Use pr instead, throughout. - (pr): Define as class pwdgrp. - (read_etc_passwd): Remove pr definition. Remove calls to - set_last_modified and close. Pass add_pwd_line to pr.load to load - file. - * pwdgrp.h (etc): New helper class for pwdgrp. - (pwdgrp): Combine pwdgrp_check and pwdgrp_read into one class. Remove - file_w32 and last_modified fields. - (pwdgrp::set_last_modified): Remove. - (pwdgrp::isinitializing): Remove FindFirstFile stuff. Move to - etc::file_changed. - (pwdgrp::load): Rename from 'open'. Call etc::init to initialize etc - scanning. Close file handle after reading buffer into memory. Parse - buffer by calling second argument. - (pwdgrp::gets): Reorganize slightly to rely on eptr starting at - beginning of buffer. - (pwdgrp::close): Remove. - * uinfo.cc (etc::dir_changed): New function. - (etc::init): Ditto. - (etc::file_changed): Ditto. - (etc::set_last_modified): Ditto. - -2003-01-16 Jason Tishler <jason@tishler.net> - - * mmap.cc (fixup_mmaps_after_fork): Add ERROR_NOACCESS to the list of - ReadProcessMemory() error codes that trigger a retry with temporary - PAGE_READONLY access. Note that this can occur on NT 4.0. - -2003-01-15 Christopher Faylor <cgf@redhat.com> - - * path.cc (normalize_posix_path): Convert win32 path separators to - slashes when full path is specified. - -2003-01-15 Pierre Humblet <pierre.humblet@ieee.org> - - * cmalloc.cc (_cmalloc): Fix memory leak. - -2003-01-15 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Fix copyright date. - * fhandler_dsp.cc: Ditto. - * mmap.cc: Ditto. - * net.cc: Ditto. - * ntdll.h: Ditto. - * signal.cc: Ditto. - * syscalls.cc: Ditto. - * uname.cc: Ditto. - * wait.cc: Ditto. - -2003-01-14 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fixup_mmaps_after_fork): Copy protection to child process. - Change ambiguous debug output. - -2003-01-14 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::access): Change argument type to caddr_t - for strictness. - (mprotect): Protect against calling VirtualProtect() for shared - pages on 9x/Me. - (fixup_mmaps_after_fork): If ReadProcessMemory() fails, try to - change protection of parent page to PAGE_READONLY, then try again. - Revert protection afterwards. - -2003-01-14 Thomas Pfaff <tpfaff@gmx.net> - - * syscalls.cc (system): Add pthread_testcancel call. - * thread.cc: Update list of cancellation points. - -2003-01-14 Thomas Pfaff <tpfaff@gmx.net> - - * wait.cc: Include thread.h - (wait4): Add pthread_testcancel call. - Wait for child process and cancellation event. - * thread.cc: Update list of cancellation points. - -2003-01-14 Thomas Pfaff <tpfaff@gmx.net> - - * signal.cc (sleep): Add pthread_testcancel call. - Wait for signal and cancellation event. - (usleep): Ditto. - -2003-01-14 Thomas Pfaff <tpfaff@gmx.net> - - * exceptions.cc (handle_sigsuspend): Add pthread_testcancel call. - Wait for signal and cancellation event. - * thread.cc: Update list of cancellation points. - -2003-01-14 David Huang <davehzhr@hotmail.com> - - * fhandler_dsp.cc (fhandler_dsp::ioctl): Add limited support for - SNDCTL_DSP_GETFMTS. - -2003-01-12 Christopher Faylor <cgf@redhat.com> - - * ntdll.h: Fix typo. - -2003-01-12 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Use cygwin_gethostname() to retrieve hostname. - -2003-01-12 Pierre Humblet <pierre.humblet@ieee.org> - - * sec_acl.cc (search_ace): Use id == -1, instead of < 0, as wildcard. - (setacl): Start the search for a matching default at the next entry. - Invalidate the type of merged entries instead of clearing it. - Use well_known_creator for default owner and owning group and do - not try to merge non-default and default entries in these cases. - (getacl): Recognize well_known_creator for default owner and group. - (acl_worker): Improve errno settings and streamline the nontsec case. - * security.cc (write_sd): Remove the call to set_process_privilege. - (alloc_sd): If the owner changes, call set_process_privilege and return - immediately on failure. Change inheritance rules: on new directories add - inherit only allow ACEs for creator_owner, creator_group and everyone. - Preserve all inheritances through chmod and chown calls. Introduce - isownergroup to implement the uid == gid case, to keep the inheritance - code simple. Do not initialize owner_sid and group_sid and stop using - the variable psd. - -2003-01-10 Christopher Faylor <cgf@redhat.com> - - * net.cc: Use gethostname define from winsock2.h. - -2003-01-10 Christopher Faylor <cgf@redhat.com> - - * path.cc: Unrevert below reversion except for - mount_info::conv_to_posix_path part. - -2003-01-10 Corinna Vinschen <corinna@vinschen.de> - - * path.cc: Revert patch from 2003-01-09 to normalize a windows path - rather than converting to posix. - -2003-01-10 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (gethostname): Make call optional, return 1 if function - can't get loaded. - * net.cc (cygwin_gethostname): Call GetComputerName if return value - of gethostname is non-zero. - -2003-01-10 Charles Wilson <cwilson@ece.gatech.edu> - - * cygwin.din: Add asprintf and vasprintf, as well as the reentrant - versions and underscore variants. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR. - -2003-01-10 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_gethostname): Fix call to wsock function gethostname. - -2003-01-09 Christopher Faylor <cgf@redhat.com> - - * cygthread.cc (cygthread::cygthread): Be more noisy about odd - condition. - * miscfuncs.cc (low_priority_sleep): Sleep in regular priority if - that's what we're currently running at. - -2003-01-09 Thomas Pfaff <tpfaff@gmx.net> - - * include/semaphore.h: Modify typedef for sem_t. - * include/cygwin/types.h: Modify typedefs for pthread_t, - pthread_mutex_t, pthread_key_t, pthread_attr_t, - pthread_mutexattr_t, pthread_condattr_t, pthread_cond_t, - pthread_rwlock_t and pthread_rwlockattr_t. - -2003-01-09 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (WAIT_CANCELED): New define. - (pthread::cancelable_wait): New static method. - * thread.cc (pthread::cancelable_wait): Implement. - (semaphore::Wait): Wait on semaphore and thread cancellation. - (pthread::join): Wait on joined thread and thread cancellation. - (semaphore::wait): Add testcancel to check for thread - cancellation even if the semaphore is available. - -2003-01-09 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h: Add define for errorchecking mutexes. - Change default mutex type. - * thread.cc (pthread_cond::TimedWait): Update mutex unlock - calls. - (pthread_mutex::pthread_mutex): New implement. - (pthread_mutex::~pthread_mutex): Ditto. - (pthread_mutex::Lock): Ditto. - (pthread_mutex::TryLock): Ditto. - (pthread_mutex::UnLock): Ditto. - (pthread_mutex::Destroy): Implement new method. - (pthread_mutex::SetOwner): Ditto. - (pthread_mutex::LockRecursive): Ditto. - (pthread_mutex::fixup_after_fork): Restore locking state after - fork. - (__pthread_mutex_lock): Return pthread_mutex::Lock errorcode. - (__pthread_mutex_trylock): Return pthread_mutex::TryLock - errorcode. - (__pthread_mutex_unlock): Return pthread_mutex::UnLock - errorcode. - (__pthread_mutex_destroy): Call pthread_mutex::Destroy to - destroy mutex. - (__pthread_mutexattr_settype): Allow errorchecking and recursive - types. - * thread.h (MUTEX_LOCK_COUNTER_INITIAL): New define. - (pthread_mutex::criticalsection): Remove. - (pthread_mutex::lock_counter): New member. - (pthread_mutex::recursion_counter): Ditto. - (pthread_mutex::owner): Ditto. - (pthread_mutex::type): Ditto. - (pthread_mutex::Destroy): New method. - (pthread_mutex::SetOwner): Ditto. - (pthread_mutex::LockRecursive): Ditto. - -2003-01-09 Thomas Pfaff <tpfaff@gmx.net> - - * pthread.cc (pthread_cond_init): Use new pthread_cond::init. - * thread.cc: Some white spaces cleanups. - Change __pthread_cond_init to pthread_cond::init throughout. - (nativeMutex): Move class methods outside pthread_mutex. - (MTinterface::Init): Initialize pthread_cond init lock. - (pthread_cond::condInitializationLock): Instantiate. - (pthread_cond::initMutex): New Method. - (pthread_cond::isGoodInitializerOrBadObject): Ditto. - * thread.h: Some white spaces cleanups. - (nativeMutex): Move class declaration outside pthread_mutex. - (pthread_cond::condInitializationLock): New static member. - (pthread_cond::initMutex): New Method. - (pthread_cond::isGoodInitializerOrBadObject): Ditto. - (__pthread_cond_init): Remove prototype. - -2003-01-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (num_entries): Return 2 as link count if - directory unreadable. - -2003-01-09 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_nt_attribute): Always return -1 when read_sd() - fails. - (get_file_attribute): Set permissions to 0 and owner/group to -1 - if security descriptor is unreadable. - -2003-01-09 Christopher Faylor <cgf@redhat.com> - - Use isdirsep rather than SLASH_P throughout. - * path.cc (iscygdrive): Disallow /cygdrive\x. - (normalize_posix_path): "Normalize" a windows path, if detected, rather - than converting to posix. - -2003-01-06 Troy Curtiss <troyc@usa.net> - - * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support and - capability checking for B230400 bitrate. - (fhandler_serial::tcgetattr): Add support for B230400 bitrate. - * include/sys/termios.h: Add B230400 definition for Posix support of - 230.4Kbps. - -2003-01-05 Christopher Faylor <cgf@redhat.com> - - * pinfo.cc (_pinfo::commune_send): Use myself->lock rather than just - lock when leaving. - -2003-01-03 Christopher Faylor <cgf@redhat.com> - - * dtable.h (dtable::in_vfork_cleanup): New function. True if vfork - cleanup needed. - * dtable.cc (dtable::vfork_parent_restore): Remove assertion. - * pipe.cc (fhandler_pipe::close): Don't close read_state during - fork_fixup since it wasn't inherited. - -2003-01-01 Christopher Faylor <cgf@redhat.com> - - * passwd.cc (getpwuid_r32): Revert previous change. - -2003-01-01 Christopher Faylor <cgf@redhat.com> - - * sysconf.cc (sysconf): Return arbitrary values for - _SC_GETGR_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_GETPW_R_SIZE_MAX. - - * passwd.cc (getpwuid_r32): Add uid/gid fields to size check - calculation. - diff --git a/winsup/cygwin/ChangeLog-2004 b/winsup/cygwin/ChangeLog-2004 deleted file mode 100644 index ebb696237..000000000 --- a/winsup/cygwin/ChangeLog-2004 +++ /dev/null @@ -1,3848 +0,0 @@ -2004-12-30 Christopher Faylor <cgf@timesys.com> - - * devices.cc (device::isfs): Return true for the logical case of - devn == FH_FS. - -2004-12-28 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (_pinfo::dup_proc_pipe): DUPLICATE_CLOSE_SOURCE closes the - handle regardless, so revert previous change. - -2004-12-27 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::stub): Add better debug output. - (cygthread::cygthread): Ditto. - (cygthread::terminate_thread): Ditto. Move inuse test earlier or - suffer infinite loop. - * pinfo.cc (_pinfo::dup_proc_pipe): Close handle if DuplicateHandle - fails and process no longer exists. - * spawn.cc (spawn_guts): Create process in suspended state if OS - demands it. - * wincap.cc: Add "start_proc_suspended" throughout. - * wincap.h (wincaps): Ditto. - (wincapc): Ditto. - -2004-12-27 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (_pinfo::exit): Beef up debugging output. - * sigproc.cc (proc_subproc): Detached children apparently need a ppid - of 1. - -2004-12-26 Christopher Faylor <cgf@timesys.com> - - * init.cc (dll_entry): Previous code reversion was ill-advised. Revert - it. - * sigproc.cc (child_info::sync): Ditto. - * pinfo.cc (_pinfo::exit): Don't set myself.procinfo to NULL since it - is no longer required. - -2004-12-26 Christopher Faylor <cgf@timesys.com> - - * init.cc (dll_entry): Remove exit code setting. - * pinfo.cc (pinfo::init): Initialize exitcode to unset state rather - than SIGTERM. - (proc_waiter): Detect if exit code is unset and use status from - GetExitCodeProcess. - * sigproc.cc (child_info::sync): Remove exit code detection here since - proc_waiter now (again) detects it. - -2004-12-25 Christopher Faylor <cgf@timesys.com> - - * fhandler.cc (fhandler_base::fchmod): Do the right thing when changing - an "on disk" device or fifo. - (fhandler_base::fchown): Ditto for changing ownership. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate - device files on ntfs partitions. - * path.cc (path_conv::check): Use isfs function to figure out if a path - exists on a filesystem to make sure that device files are caught. - -2004-12-24 Christopher Faylor <cgf@timesys.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - (child_info::parent_wr_proc_pipe): Eliminate. - * pinfo.h (_pinfo::alert_parent): Move here from pinfo class. - (_pinfo::dup_proc_pipe): New method. - (_pinfo::sync_proc_pipe): Ditto. - * exceptions.cc (sig_handle_tty_stop): Reflect move of alert_parent. - * init.cc (dll_entry): Exit with status one if main process called - ExitProcess. - * pinfo.cc (set_myself): Remove handling of parent_wr_proc_pipe. - (_pinfo::exit): Reflect move of alert_parent. Set procinfo to NULL to - flag that we are exiting normally. Always use exitcode when exiting - (although this could be a little racy). - (pinfo::init): Set default exit to SIGTERM. This will be the exit code - reported if process is terminated. - (_pinfo::dup_proc_pipe): New function. - (pinfo::wait): Duplicate wr_proc_pipe to the right place. Use - dup_proc_pipe to move the pipe to the child. - (_pinfo::sync_proc_pipe): New function. - (_pinfo::alert_parent): Move to _pinfo. Make sure that wr_proc_pipe is - ours before using it. - * sigproc.cc (child_info::child_info): Remove handling of - parent_wr_proc_pipe. - * spawn.cc (spawn_guts): Pass our wr_proc_pipe to the child when - execing. Ensure that exit code of cygwin process started from windows - is correctly set. - -2004-12-23 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@timesys.com> - - * path.h (path_conv::set_normalized_path): Add second argument and fill - it in throughout. - * path.cc (path_conv::check): Declare, set and use "strip_tail". - (path_conv::set_normalized_path): Add and use second argument, - replacing all tail stripping tests. - -2004-12-23 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::cygthread): Guard debugging variable with - "ifdef DEBUGGING". - (cygthread::release): Ditto. - -2004-12-23 Christopher Faylor <cgf@timesys.com> - Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Don't strip the trailing slash from a - path consisting only of two slashes. - -2004-12-23 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::stub): Detect if thread function wants to - release itself here, to avoid a race. - (cygthread::release): Clear more stuff. Add a diagnostic for an - internal error. - * cygthread.h (auto_release): New function. - * pinfo.h (pinfo::remember): Add an argument to denote whether child is - detached. - * fork.cc (fork_parent): Reflect change in arguments to - pinfo::remember. - * pinfo.cc (_pinfo::exit): Signal exit more forcibly. - (proc_waiter): Use cygthread::auto_release to signify that - cygthread::stub should release the thread. This should avoid a race. - (pinfo::alert_parent): Don't signify an error when wr_proc_pipe == NULL. - * sigproc.cc (proc_subproc): Add support for PROC_DETACHED_CHILD. - * sigproc.h: Ditto. - * spawn.cc (spawn_guts): Specify whether child is detached or not when - calling pinfo::remember. - -2004-12-22 Christopher Faylor <cgf@timesys.com> - - * cygheap.cc (cygheap_setup_for_child): Add api_fatal to catch failing - MapViewOfFileEx. - * cygthread.cc (cygthread::stub): Previous change to make diagnostic - output more informative was really a bust. Try again. Capture previous - name in a new field in cygthread for diagnostic purposes. - (cygthread::cygthread): Ditto. - (cygthread::release): Add an argument to control whether h should be cleared - or not. - (cygthread::terminate_thread): Use 'inuse' for tests rather than 'h'. - (cygthread): Add some diagnostic fields. - (cygthread::release): Add an argument. - * pinfo.cc (proc_waiter): Accommodate change to cygthread::release. - -2004-12-22 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::stub): Make diagnostic output more informative. - -2004-12-22 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (proc_waiter): Zero wait_thread in child to avoid races with - process termination. - * cygthread.cc (cygthread::terminate): Clumsily detect when h has gone away - and attempt no further action. - -2004-12-22 Christopher Faylor <cgf@timesys.com> - - * cygthread.h (cygthread::release): Just declare here. - * cygthread.cc (cygthread::release): Define here. Use - InterlockedExchange to set inuse or suffer potential races. - (cygthread::terminate): Use release(). - -2004-12-22 Chris January <chris@atomice.net> - - * fhandler_process.cpp (format_process_status): Use tabs in formatting - instead of spaces. - -2004-12-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (set_normalized_path): Allow empty pathnames. - -2004-12-21 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Force parent to forget about P_DETACH'ed - process. - -2004-12-20 Christopher Faylor <cgf@timesys.com> - - * path.cc (normalize_win32_path): Remove unneeded check for dots. - -2004-12-20 Christopher Faylor <cgf@timesys.com> - - * path.cc (normalize_posix_path): Remove unneeded check for dots. - (path_conv::set_normalized_path): Strip trailing dots, similarly to - what had previously been done for the win32 path. - -2004-12-18 Christopher Faylor <cgf@timesys.com> - - * path.cc (normalize_win32_path): Make third arg pass-by reference. - Reorganize slightly to eliminate extra variables. - (normalize_posix_path): Ditto. - (path_conv::check): Reflect change in arguments. - (mount_info::conv_to_posix_path): Ditto. - (mount_info::add_item): Ditto. - -2004-12-18 Christopher Faylor <cgf@timesys.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Use updated value. - -2004-12-18 Christopher Faylor <cgf@timesys.com> - Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (path_conv::check): Check the output Win32 path for trailing - spaces and dots, not the input path. Disallow all use of foo./bar - since consistently getting this right is time consuming. Remove - strange test for "unc\" since no one seems to know what it's for. - -2004-12-18 Chris January <chris@atomice.net> - - * fhandler_proc.cc (proc_listing): Add entry for "self". - (proc_fhandlers): Add entry for "self". - * fhandler_process.cc (fhandler_process::fstate): Handle "self". - (fhandler_process::open): Handle "self". - -2004-12-17 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (proc_subproc): Fix long-standing problem. Only wait for - "all processes" if pid == -1 -- not just if pid is negative. - (proc_can_be_signalled): Fix another long-standing problem. Set - correct errno when detecting an exited process. - -2004-12-16 Thomas Wolff <towo@computer.org> - - * fhandler_console.cc (get_win32_attr): Avoid inappropriate intensity - interchanging that used to render reverse output unreadable when - non-reversed text is bright. - -2004-12-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add utmpx symbols. - * syscalls.cc: Include utmpx.h. Implement utmpx functions as stubs - to utmp functions. - (copy_ut_to_utx): New static function. - (pututline): Change from void to struct utmp * as on Linux. - (setutxent): New function. - (endutxent): New function. - (getutxent): New function. - (getutxid): New function. - (getutxline): New function. - (pututxline): New function. - * include/utmpx.h: New file. - * include/cygwin/utmp.h: New file. - * include/cygwin/version.h: Bump API minor number. - * include/sys/utmp.h: Include cygwin/utmp.h. Move stuff common with - utmpx functionality there. - (pututline): Declare struct utmp *. - -2004-12-14 Corinna Vinschen <corinna@vinschen.de> - - * tty.cc (tty_list::terminate): Guard releasing the tty with tty_mutex. - (tty::init): Set master_pid to 0. - -2004-12-14 Thomas Wolff <towo@computer.org> - - * fhandler_console.cc (read): Consider offset within scrolling - region of the console window. - -2004-12-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cwdstuff::get_drive): Release cwd_lock. - -2004-12-12 Bas van Gompel <cygwin-patch@bavag.tmfweb.nl> - - * fhandler.cc (fhandler_base::puts_readahead): Fix end-condition. - -2004-12-10 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_INVALID_ADDRESS to EINVAL instead of - EOVERFLOW. - -2004-12-10 Christopher Faylor <cgf@timesys.com> - - * include/sys/strace.h: Don't output paranoid_printf by default. - -2004-12-09 Christopher Faylor <cgf@timesys.com> - - * lib/libcmain.c (main): Properly deal with quoted first argument. - -2004-12-06 Christopher Faylor <cgf@timesys.com> - - * pinfo.h (proc_pipe::*): Delete class. - * pinfo.cc (proc_pipe::*): Ditto. - -2004-12-05 Christopher Faylor <cgf@timesys.com> - - * fork.cc (fork_parent): Reinstate "childhProc" protection. Don't - close hProcess handle here since it is used to ensure that a new - process isn't created with the old pid after the old pid exits. - * spawn.cc (spawn_guts): Ditto. - * pinfo.cc (proc_waiter): Don't send any signals if we've execed since - this process doesn't officially exist. - * pinfo.h (pinfo::pid_handle): Eliminate. Just use hProc. - * sigproc.cc (sig_send): Don't send any signals if our sendsig doesn't - exist. That's a sign that we are execing. - (remove_proc): Eliminate pid_handle close. - -2004-12-05 Christopher Faylor <cgf@timesys.com> - - * cygthread.h (cygthread::terminate_thread): Make public. - * pinfo.h (pinfo::wait_thread): New element. - * pinfo.cc (pinfo::wait): Store "handle" to started thread in pinfo. - * sigproc.cc (proc_terminate): Kill any threads waiting for a process - pipe. - -2004-12-05 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (mychild): Reimplement as list scan. - (proc_subproc): Don't mess with pinfo if it's myself. - -2004-12-05 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_types): Label enum for _PROC constants. - (child_info::child_info): New constructor. - (child_info::~child_info): New destructor. - (child_info::sync): Declare new function. - (child_info_fork::child_info_fork): New constructor. - (child_info_spawn::child_info_spawn): Remove old constructor. - (child_info_spawn::child_info_spawn): New constructor. - * dcrt0.cc (dll_crt0_0): Use correct sizeof when doing sanity check on - passed in child_info. Signal readiness to parent when not forking (and - not spawning). - * fork.cc (sync_with_child): Delete. - (resume_child): Remove extra argument. - (sync_with_parent): Use child_info method to sync with parent. - (fork_child): Don't close fork_info->subproc_ready since that is now - handled by the destructor. - (fork_parent): Remove subproc_ready stuff. Use child_info sync method - for waiting.. Set start time here for child. Rename "forked" to - "child". - (fork): Check ch.subproc_ready for validity here. - * pinfo.h (_pinfo::exec_sendsig): Temp storage for exec stub which may - be staying around to handle non-cygwin captive process. - (_pinfo::exec_dwProcessId): Ditto. - (_pinfo::_lock): Renamed from lock. - (_pinfo::lock): New method. - (_pinfo::unlock): Ditto. - (_pinfo::initialize_lock): Ditto. - * pinfo.cc (set_myself): Use initialize_lock method to initialize - myself lock. Set "exec" fields in _pinfo to zero to indicate that - we've started successfully. Set start time here when appropriate. - (_pinfo::commune_send): Use pinfo lock/unlock methods. - (proc_waiter): Remove special case for non-cywin processes. - Reinstitute handling for PID_NOCLDSTOP. - * sigproc.cc (proc_subproc): Set proper EAGAIN errno when process table - is filled. - (sig_send): Use exec_* fields from _pinfo for sending signals if the - the _pinfo sendsig never materializes. - (child_info::child_info): New constructor, renamed from init_child_info. - Zeroes child_info structure and sets appropriate fields in structure - based on chtype. - (child_info::~child_info): New destructor. Closes subproc_ready if it - exists. - (child_info_fork::child_info_fork): New constructor. - (child_info_spawn::child_info_spawn): New constructor. - (child_info::ready): New function. Signals parent when child is ready. - (child_info::sync): New function. Wait for child to signal us or - process to die. - (remove_proc): Remove closing of hProcess since this should now be - handled shortly after process creation. - * spawn.cc (spawn_guts): Use child_info_spawn constructor rather than - init_child_info. Save exec_sendsig and exec_dwProcessId in execing - _pinfo. Rely on child_info constructor to properly set - parent_wr_proc_pipe in ciresrv. Revert to previous determination on - whether to start a process in suspended mode. Remove reparenting - stuff. Just keep a stub around if starting a non-cygwin process. - -2004-12-05 Bas van Gompel <cygwin-patch@bavag.tmfweb.nl> - - * fhandler.cc (fhandler_base::read): Remove superfluous check in - __small_printf format for strace. - -2004-12-05 Bas van Gompel <cygwin-patch@bavag.tmfweb.nl> - - * fhandler.cc (fhandler_base::read): Don't debug_printf garbage when - copied_chars is zero. - -2004-12-03 Christopher Faylor <cgf@timesys.com> - - * environ.cc (environ_init): Alloc space for TERM if it is not set, - like all of the other environment variables. - -2004-12-02 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_fork::parent_wr_proc_pipe): New element. - * fork.cc (fork_parent): Set parent_wr_proc. - * pinfo.cc (set_myself): Close child_proc_info->parent_wr_proc if it - exists rather than trying to get value from parent _pinfo. - -2004-12-02 Christopher Faylor <cgf@timesys.com> - - * pinfo.h (enum parent_aleter): New enum. - (pinfo::alert_parent): Declare as returning a value. - (pinfo::parent_alive): New function. - * pinfo.cc (pinfo::alert_parent): Set wr_proc_pipe to invalid non-NULL - value when parent disappears. Return success of operation. - (proc_waiter): Use __ALERT_* enum for control since these are not really signals. - Implement __ALERT_ALIVE. - * sigproc.cc (my_parent_is_alive): Eliminate. - * sigproc.h (my_parent_is_alive): Ditto for declaration. - (__SIGREPARENT): Eliminate. - -2004-12-02 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (pinfo::wait): Use better name for cygthread. - -2004-12-03 Pierre Humblet <pierre.humblet@ieee.org> - - * registry.h (reg_key::reg_key): Change arguments. - * shared_info.h (class mount_info): Remove had_to_create_mount_areas. - * registry.cc (reg_key::reg_key): Change constructors to always handle - HKLM and to avoid relying on HKCU. - Do not set mount_table->had_to_create_mount_areas. - * path.cc (mount_info::conv_to_win32_path): Improve update of - sys_mount_table_counter. - (mount_info::read_mounts): Use new reg_key constructor. - (mount_info::add_reg_mount): Ditto. - (mount_info::del_reg_mount): Ditto. - (mount_info::read_cygdrive_info_from_registry): Ditto. - (mount_info::write_cygdrive_info_to_registry): Ditto. - Update cygwin_shared->sys_mount_table_counter after registry update. - (mount_info::get_cygdrive_info): Ditto. - * shared.cc (shared_info::heap_chunk_size): Use new reg_key constructor. - * environ.cc (regopt): Ditto. - -2004-12-01 Christopher Faylor <cgf@timesys.com> - - * include/features.h: Include sys/cdefs.h, like linux. - -2004-12-01 Christopher Faylor <cgf@timesys.com> - - * syscalls.cc (truncate64): Don't second-guess errno if open fails. - * devices.in: Don't allow /dev/com0. - -2004-11-25 Christopher Faylor <cgf@timesys.com> - - * environ.cc (putenv): Accommodate recent newlib change in argument to - putenv. - -2004-11-25 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_spawn::hexec_proc): Eliminate. - * dcrt0.cc (dll_crt0_0): Remove hexec_proc stuff. - * fork.cc (fork_child): Remove call to pinfo_fixup_after_fork. - * pinfo.cc (set_myself): Close and zero pid_handle if set. - (pinfo_fixup_after_fork): Delete. - (proc_waiter): Don't close vchild.hProcess here. Do that when we are - remove the vchild from procs. Save hProcess as pid_handle only on - first reparent operation. - (pinfo::wait): Don't set pid_handle here. - (pinfo::alert_parent): Always try to send signal. If unsuccessful then - close and zero wr_proc_pipe. - * pinfo.h (pinfo::pinfo): Make sure that appropriate parts of the class - are zeroed on construction. - (pinfo::alert_parent): Take char argument. - (pinfo_fixup_after_fork): Delete declaration. - (hexec_proc): Ditto. - * sigproc.cc (remove_proc): Close pid_handle and hProcess if - appropriate. - * spawn.cc (spawn_guts): Set cygheap->pid_handle on first exec. - -2004-11-25 Christopher Faylor <cgf@timesys.com> - - * cygheap.h (init_cygheap::pid_handle): New element. - * pinfo.cc (set_myself): Clear previously existing cygheap->pid_handle - when a new process has been started. - (pinfo::wait): Make sure that a handle to the newly forked/spawned - process is kept around so that the pid will not be reused. - * pinfo.h (_pinfo::pid_handle): Move. - (pinfo::pid_handle): to here. - * spawn.cc (spawn_guts): Create a pid_handle in cygheap prior to - spawning to ensure that the pid does not get reused during the lifetime - of the "cygwin pid". - -2004-11-25 Christopher Faylor <cgf@timesys.com> - - * pinfo.h (pinfo::alert_parent): New function. - * exceptions.cc (sig_handle_tty_stop): Use alert_parent to send - "signals" to parent. - * fork.cc (fork_parent): Don't close pi.hProcess. Let the waiter - thread do that. - * pinfo.cc (proc_waiter): Detect case where process exits without - setting the exit code and use value from GetExitCodeProcess. - Reluctantly implement __SIGREPARENT. - (pinfo::alert_parent): Define. - * sigproc.h (__SIGREPARENT): New enum. - * spawn.cc (spawn_guts): Send reparent signal to parent on exec. - Always create process in suspended state to avoid races. - -2004-11-25 Christopher Faylor <cgf@timesys.com> - - Remove cygthread.h in favor of cygtls.h throughout since cygtls now - includes cygthread.h. Eliminate ppid_handle usage throughout. - * child_info.h: Regenerate magic number - (child_info): Remove pppid_handle. - * cygthread.h (cygthread::release): New method. Frees thread without - waiting. - * cygthread.cc (cygthread::stub): Set _ctinfo in _mytls to point to - information for executing thread. Don't call SetEvent if thread is no - longer in use. - (cygthread::simplestub): Ditto. - * cygtls.h (_cygtls::_ctinfo): New element contains pointer to - information about executing cygthread, if any. - * dcrt0.cc: Remove last vestiges of per_thread stuff. - (dll_crt0_0): Ditto. Remove accommodation for ppid_handle. - (do_exit): Remove obsolete reparenting test. - (_exit): Exit with a more SUSv3-like exit value. - * dtable.cc (dtable::stdio_init): Check for myself->cygstarted rather - than myself->ppid_handle to see if we were started by a cygwin process. - * exceptions.cc (open_stackdumpfile): Ditto. - (handle_exceptions): Ditto. - (ctrl_c_handler): Ditto. - (sig_handle_tty_stop): Ditto. Let parent send signal to itself on - STOP. - (sigpacket::process): Comment out vfork test. - (signal_exit): Use more SUSv3-like exit value on signal. - * external.cc (fillout_pinfo): Don't set hProcess. - * fork.cc: Remove VFORK cruft. - (per_thread::set): Delete. - (fork_child): Remove perthread stuff. - (fork_parent): Remove obsolete subproc_init. Accommodate new method - for tracking subprocesses. - * pinfo.cc (set_myself): Accommodate new pinfo/_pinfo layout. Set some - things here that used to be set in wait_sig. - (_pinfo::exit): Set exitcode here. Close process pipe. - (_pinfo::commune_send): Accommodeate new pinfo/_pinfo layout. - (proc_waiter): New function. Waits, in a thread for subprocess to go - away. - (pinfo::wait): New function. Initialization for proc_waiter. - * pinfo.h (_pinfo::exitcode): New element. - (_pinfo::cygstarted): Ditto. - (_pinfo::wr_proc_pipe): Ditto. - (_pinfo::ppid_handle): Delete. - (_pinfo::hProcess): Delete. - (_pinfo::lock): Delete. - (pinfo::hProcess): New element. - (pinfo::lock): Ditto. - (pinfo::wait): Declare new function. - (pinfo::preserve): Define new function. - * sigproc.cc: Remove old stuff from wait_subproc thread based method. - (zombies): Remove. - (procs): New. - (my_parent_is_alive): Just check that the parent pid exists. - (mychild): Just use pinfo methods to determine if child is mine. - (proc_subproc): Revamp PROC_ADDCHILD to use pinfo::wait. Remove - PROC_CHILDTERMINATED logic. Use different method to remove processes - from list when SIGCHLD == SIG_IGN. - (proc_terminate): Gut. - (subproc_init): Delete. - (init_child_info): Remove setting of pppid_handle. - (checkstate): Revamp to only scan procs array. - (remove_proc): Rename from remove_zombie. Don't close hProcess or - pid_handle. Don't release memory if it's myself. - (stopped_or_terminated): Change logic to handle new consolidated - proc/zombie array. - (wait_subproc): Delete. - * sigproc.h: Remove obsolete EXIT_* defines. - (subproc_init): Remove declaration. - * spawn.cc (spawn_guts): Remove reparenting stuff. Use standard wait - logic to wait for child if started from a non-cygwin process. - * tlsoffsets.h: Regenerate. - * tty.cc (tty_init): Check for myself->cygstarted rather than - myself->ppid_handle to see if we were started by a cygwin process. - * include/sys/signal.h (external_pinfo::exitcode): Replace hProcess. - * include/sys/wait.h (WCOREDUMP): Define. - - * fhandler_tty.cc (fhandler_tty_slave::read): Add debugging output for - timeout case. - * signal.cc (abort): Flag that we are exiting with the ABORT signal. - -2004-11-22 Christopher Faylor <cgf@timesys.com> - - * select.cc (select_stuff::test_and_set): Remove extraneous tests of - "window_handle". - -2004-11-20 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler::write): Remove debug_printf. - * pipe.cc (fhandler_pipe::create): Edit syscall_printf format. - -2004-11-20 Pierre Humblet <pierre.humblet@ieee.org> - - * cygheap.h (cygheap_user::get_windows_id): New method. - * registry.h (get_registry_hive_path): Change argument type. - (load_registry_hive): Ditto. - * registry.cc (get_registry_hive_path): Change argument type and take - Win9x keys into account. - (load_registry_hive): Ditto. - * uinfo.cc (cygheap_user::env_userprofile): Use get_windows_id, even - for SYSTEM. - * shared.cc (user_shared_initialize): Use get_windows_id. - * syscalls.cc (seteuid32): Load the registry hive and reload the user - shared also on Win9x. - -2004-11-11 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump DLL minor number to 13. - -2004-10-28 Christopher Faylor <cgf@timesys.com> - - * fork.cc (NPIDS_HELD): Reduce to former number now that bash problem - has been identified. - -2004-10-28 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (mount_info::from_registry): Deimpersonate while - accessing HKLM. - (mount_info::read_cygdrive_info_from_registry): Ditto. - * cygheap.h: Define NO_IMPERSONATION. - (cygheap_user::issetuid): Replace INVALID_HANDLE_VALUE by - NO_IMPERSONATION. - (cygheap_user::has_impersonation_tokens): Ditto. - (cygheap_user::close_impersonation_tokens): Ditto. - * uinfo.cc (uinfo_init): Ditto. - * syscalls.cc (seteuid32): Ditto. - * security.cc (set_impersonation_token): Ditto. - -2004-10-26 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::fixup_after_fork): Wipe out exitsock local since - it should not be used by the child. - * select.cc (start_thread_socket): Turn off inheritance for exitsock. - Don't add exitsock to exception mask since it should never get an - exception. - (socket_cleanup): Change some debug messages for consistency. - * fhandler_socket.cc (fhandler_socket::dup): Change comment wording - slightly. - -2004-10-26 Pierre Humblet <pierre.humblet@ieee.org> - - * registry.cc (get_registry_hive_path): Simplify and add a - debug_printf in case of failure. - (load_registry_hive): Revert the 2004-04-19 change. - -2004-10-20 Christopher Faylor <cgf@timesys.com> - - * select.cc (start_thread_socket): Remove attempt to delay reading of - exitsock or suffer occasional mysterious 60 second hangs. - (socket_cleanup): Empty the exitsock here after the thread has - terminated. - -2004-10-19 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::fixup_after_exec): Fix error - message. - -2004-10-12 Christopher Faylor <cgf@timesys.com> - - * select.cc (start_thread_socket): Remove unused code. - -2004-10-11 Christopher Faylor <cgf@timesys.com> - - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Revert previous checkin. - -2004-10-10 Christopher Faylor <cgf@timesys.com> - - * cygtls.h (exitsock): New element. - (exitsock_sin): Ditto. - * cygtls.cc (_cygtls::init_thread): Initialize exitsock to invalid handle. - (_cygtls::call2): Close exitsock if it is valid. - * select.cc (struct socketinf): Remove sin element. - (start_thread_socket): Initialize one SOCK_DGRAM socket per thread - instead of (apparently) expensive opening and closing of socket with - each select call. - (socket_cleanup): Send a byte to the exitsock socket as a way to - potentially signal a waiting-for-socket thread to exit. - * tlsoffsets.h: Regenerate. - -2004-10-07 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cygheap_user): Add psystemroot member and - env_systemroot method. - * environ.cc (struct spenv): Add add_always member. - (spenvs): Accommodate new add_always member. Add - cygheap_user::env_systemroot method to SYSTEMROOT entry. - (build_env): Check add_always member when adding missing environment - variables from spenvs. - * uinfo.cc (cygheap_user::env_systemroot): New method. - -2004-10-07 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Drop duplicated line. - -2004-10-07 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (pthread_cleanup::oldmask): Default to invalid signal mask. - (do_cleanup): Test for invalid signal mask to decide whether to restore - the mask rather than assuming zero mask indicates that there is nothing - to do. - -2004-10-07 Mark Paulus <mark.paulus@mci.com> - - * fhandler_tty.cc (fhandler_tty_slave::read): Use previously - evaluated time_to_wait value. - -2004-10-05 Pierre Humblet <pierre.humblet@ieee.org> - - * external.cc (check_ntsec): Do not call wincap.has_security. - * path.cc (path_conv::check): Ditto. - * security.cc (get_object_attribute): Ditto. - (get_file_attribute): Ditto. - -2004-10-05 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl> - - * pinfo.cc (_pinfo::commune_send): Correct debugging output. - -2004-10-04 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/signal.h: Add siginterrupt definition. - -2004-10-02 Pierre Humblet <pierre.humblet@ieee.org> - - * path.h (enum path_types): Delete PATH_ISDISK. - (path_conv::isdisk): Delete method. - (path_conv::set_isdisk): Ditto. - * path.cc (path_conv::check): Do not call set_isdisk. - * uinfo.cc(pwdgrp::load): Do not call pc.isdisk. - -2004-09-28 Christopher Faylor <cgf@timesys.com> - - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Disallow attempts - to set the process group to a nonexistent process group. - -2004-09-27 Corinna Vinschen <corinna@vinschen.de> - - * lib/_cygwin_crt0_common.cc: Revert patch from 2004-09-16. Brakes - newly built DLLs. - -2004-09-24 Christopher Faylor <cgf@timesys.com> - Sergey Ivanov <seriv@parkheights.dyndns.org> - - * path.cc (mount_info::read_cygdrive_info_from_registry): Default - /cygdrive to binary mode. - -2004-09-22 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (normalize_win32_path): Only look for : in second position. - Avoid infinite loop with names starting in double dots. - (mount_info::conv_to_win32_path): Do not worry about a trailing dot. - (hash_path_name): Ditto. - -2004-09-20 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (sig_handle_tty_stop): Set flag earlier. - -2004-09-20 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (sig_handle_tty_stop): Set flag that we are in a cygwin - function to avoid a probably erroneous stack walk. - -2004-09-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink): Don't use "delete on close" on remote shares. - -2004-09-17 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (_impure_ptr): Add export again. There are libs out there. - -2004-09-16 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (_impure_ptr): Don't export. - (reent_data): Export. - * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop entirely. Don't - initialize _impure_ptr or u->impure_ptr_ptr. - -2004-09-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (_impure_ptr): Export. - (reent_data): Don't export. - * dcrt0.cc (reent_data): Drop. - (__cygwin_user_data): Initialize impure_ptr as GLOBAL_REENT. - (_dll_crt0): Initialize _impure_ptr as GLOBAL_REENT. - * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop. Declare extern as - dllimport instead. - -2004-09-14 Christopher Faylor <cgf@timesys.com> - - * cygtls.h: Add alignment kludge to fix disparity between compilers. - * tlsoffsets.h: Regenerate. - - * fork.cc (slow_pid_reuse): Use define to control number of pids held - to prevent pid reuse. - -2004-09-14 Sam Steingold <sds@gnu.org> - - * autoload.cc (EnumProcessModules): Add. - * dlfcn.cc (dlsym): Handle RTLD_DEFAULT using EnumProcessModules(). - * include/dlfcn.h (RTLD_DEFAULT): Define to NULL. - -2004-09-13 Christopher Faylor <cgf@timesys.com> - - * fork.cc (slow_pid_reuse): Temporarily double the number of pids held - to prevent pid reuse. - -2004-09-12 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (wait_sig): Ensure that waiting threads are awoken after - returning from a hold condition. - -2004-09-12 Christopher Faylor <cgf@timesys.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - -2004-09-11 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@timesys.com> - - * exceptions.cc: (ctrl_c_handler): Do nothing while a Cygwin subprocess - is starting. - -2004-09-10 Christopher Faylor <cgf@timesys.com> - - * child_info.h (init_child_info): Remove pid argument from declaration. - * cygheap.h (init_cygheap::pid): New element. - * dcrt0.cc (dll_crt0_0): Eliminate handling of now-noexistent cygpid - parameter in child_info struct. Set forkee to 'true' rather than - cygpid since the pid value was never used. - (dll_crt0_1): Ditto. - (_dll_crt0): Ditto. - * fork.cc (fork_child): Don't wait for sigthread. This is handled in - the fork call now. - (fork_parent): Remove obsolete pid argument from init_child_info call. - Don't do anything special with cygpid when DEBUGGING. - (fork): Delay all signals during fork. - (fork_init): Don't do anything special when DEBUGGING. - * pinfo.cc (set_myself): Remove pid parameter. Use new pid field in - cygheap. - (pinfo_init): Don't pass pid argument to set_myself. - * sigproc.cc (sig_send): Wait for dwProcessId to be non-zero as well as - sendsig. - (init_child_info): Eliminate handling of pid. - (wait_sig): Implement method to temporarily hold off sending signals. - * sigproc.h (__SIGHOLD): New enum. - (__SIGNOHOLD): Ditto. - * spawn.cc (spawn_guts): Remove obsolete pid argument from - init_child_info call. - -2004-09-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::dup): Use debug_printf. - -2004-09-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Create libutil.a from bsdlib.o exports. - * bsdlib.cc (logwtmp): Move from syscalls.cc to here. - (login): Ditto. - (logout): Ditto. - - * winsup.h (EXPORT_ALIAS): New macro. - * exec.cc: Define alias symbols using EXPORT_ALIAS macro. - * syscalls.cc: Ditto. - * times.cc: Ditto. - -2004-09-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::open): Fix typo. - -2004-09-09 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl> - - * pipe.cc (create_selectable_pipe): Work around bug in Windows 95 - where CreateNamedPipe returns NULL. - -2004-09-08 Pierre Humblet <pierre.humblet@ieee.org> - - * cygheap.h (cwdstuff::drive_length): New member. - (cwdstuff::get_drive): New method. - * path.cc (normalize_win32_path): Simplify by using cwdstuff::get_drive. - (mount_info::conv_to_win32_path): Use cwdstuff::get_drive as default for /. - (cwdstuff::set): Initialize drive_length. - -2004-09-07 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::init_thread): Set __sdidinit to negative value to - indicate that it is "special". - * thread.cc (pthread::exit): If __sdidinit is < 0, it was never really - initialized so reset it to 0 before calling _reclaim_reent. - -2004-09-05 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump DLL minor number to 12. - -2004-09-03 Corinna Vinschen <corinna@vinschen.de> - - * security.cc: Fix a few more strace_prints. - -2004-09-02 Christopher Faylor <cgf@timesys.com> - - Regularize most strace_prints throughout so that %E is always preceded - by a comma and elminate most uses of "foo = %s" to "foo %s". - -2004-09-02 Bob Byrnes <byrnes@curl.com> - Christopher Faylor <cgf@timesys.com> - - * autoload.cc (NtQueryInformationFile): Return nonzero on error. - * ntdll.h (FILE_PIPE_LOCAL_INFORMATION): Add. - (NtQueryInformationFile): Fix types for last two arguments. - * pipe.cc: Include stdlib.h, limits.h, and ntdll.h. - (create_selectable_pipe): New function to create a pipe that can be - used with NtQueryInformationFile for select. - (fhandler_pipe::create): Call create_selectable_pipe instead of - CreatePipe. - (pipe): Use DEFAULT_PIPEBUFSIZE as argument to create_pipe. - * select.cc: Include limits.h and ntdll.h. - (peek_pipe): Add select_printf output. Call NtQueryInformationFile to - implement select for write on pipes. - (fhandler_pipe::select_read): Reorder field assignments to be - consistent with fhandler_pipe::select_write. - (fhandler_pipe::select_write): Initialize startup, verify, cleanup, and - write_ready fields for select_record. - (fhandler_pipe::select_except): Tweak indentation to be consistent with - fhandler_pipe::select_write. - -2004-08-30 Pierre Humblet <pierre.humblet@ieee.org> - - * fork.cc (fork_parent): Return the cygpid directly derived from the - winpid. - -2004-08-30 Christopher Faylor <cgf@timesys.com> - - * fork.cc (fork_parent): Record child's pid when we're sure that it has - been filled out by the child. - * pinfo.cc (pinfo::init): Trivial change. - -2004-08-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Allow to report - success on systems with ntsec and ntea set. - -2004-08-28 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::write): In the lseek_bug case, set EOF - before zero filling. Combine similar error handling statements. - -2004-08-28 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (ftruncate64): On 9x, call write with a zero length - to zero fill when the file is extended. - -2004-08-24 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (link): Avoid compiler warning. - -2004-08-21 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (set_ntea): New function. - (set_ntsec): Ditto. - (set_smbntsec): Ditto. - (parse_thing): Change ntea, ntsec and smbntsec settings to call - appropriate functions. - -2004-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::raw_read): Use ?: instead of - if/else. - (fhandler_dev_tape::raw_write): Return -1 in case of error. - -2004-08-19 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (_sys_errlist): Change various text to their english Linux - counterparts. Unify layout. - (strerror): Remove switch statement. - -2004-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Set shared flags to 0 when - opening a tape device. - -2004-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::dup): Increment dtable's - need_fixup_before counter on successful dup. - * net.cc (cygwin_getpeername): Add file descriptor to debug output. - -2004-08-17 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.h (fhandler_dev_dsp:~fhandler_dev_dsp): Delete. - (fhandler_dev_dsp::open_count): Delete. - (fhandler_dev_dsp::close_audio_in): New method declaration. - (fhandler_dev_dsp::close_audio_in): Ditto. - * fhandler_dsp.cc: Add and edit debug_printf throughout. - (fhandler_dev_dsp::Audio::denyAccess): Delete. - (fhandler_dev_dsp::Audio::fork_fixup): Ditto. - (fhandler_dev_dsp::Audio::getOwner): Ditto. - (fhandler_dev_dsp::Audio::clearOwner): Ditto. - (fhandler_dev_dsp::Audio::owner_): Ditto. - (fhandler_dev_dsp::Audio::setformat): Ditto, rename to setconvert. - (fhandler_dev_dsp::Audio::lock): Ditto, move to queue. - (fhandler_dev_dsp::Audio::unlock): Ditto. - (fhandler_dev_dsp::Audio::lock_): Ditto. - (fhandler_dev_dsp::Audio::bufferIndex_): New member, from Audio_out - and Audio_in. - (fhandler_dev_dsp::Audio::pHdr_): Ditto. - (fhandler_dev_dsp::Audio::wavehdr_): Ditto. - (fhandler_dev_dsp::Audio::bigwavebuffer_): ditto. - (fhandler_dev_dsp::Audio::Qisr2app_): Ditto. - (fhandler_dev_dsp::Audio::setconvert): New method, from old setformat. - (fhandler_dev_dsp::Audio::queue::lock): New method. - (fhandler_dev_dsp::Audio::queue::unlock): Ditto. - (fhandler_dev_dsp::Audio::queue::dellock): Ditto. - (fhandler_dev_dsp::Audio::queue::isvalid): Ditto. - (fhandler_dev_dsp::Audio::queue::lock_): New member. - (fhandler_dev_dsp::Audio::queue::depth1_): Delete. - (fhandler_dev_dsp::Audio_out::fork_fixup): New method. - (fhandler_dev_dsp::Audio_out::isvalid): New method. - (fhandler_dev_dsp::Audio_out::start): Remove arguments. - (fhandler_dev_dsp::Audio_out::parsewav): Change arguments and set - internal state. - (fhandler_dev_dsp::Audio_out::emptyblocks): Delete. - (fhandler_dev_dsp::Audio_out::Qapp2app_): Ditto. - (fhandler_dev_dsp::Audio_out::Qisr2app_): Ditto, move to Audio. - (fhandler_dev_dsp::Audio_out::bufferIndex_): Ditto. - (fhandler_dev_dsp::Audio_out::pHdr_): Ditto. - (fhandler_dev_dsp::Audio_out::wavehdr_): Ditto. - (fhandler_dev_dsp::Audio_out::bigwavefuffer_): Ditto. - (fhandler_dev_dsp::Audio_out::freq_): New member. - (fhandler_dev_dsp::Audio_out::bits_): New member. - (fhandler_dev_dsp::Audio_out::channels_): New member. - (fhandler_dev_dsp::Audio_in::fork_fixup): New method. - (fhandler_dev_dsp::Audio_in::isvalid): New method. - (fhandler_dev_dsp::Audio_in::Qapp2app_): Delete. - (fhandler_dev_dsp::Audio_in::Qisr2app_): Ditto, move to Audio. - (fhandler_dev_dsp::Audio_in::bufferIndex_): Ditto. - (fhandler_dev_dsp::Audio_in::pHdr_): Ditto. - (fhandler_dev_dsp::Audio_in::wavehdr_): Ditto. - (fhandler_dev_dsp::Audio_in::bigwavefuffer_): Ditto. - (fhandler_dev_dsp::Audio::queue::queue): Simplify. - (fhandler_dev_dsp::Audio::queue::send): Use lock. - (fhandler_dev_dsp::Audio::queue::query): Do not use depth1_. - (fhandler_dev_dsp::Audio::queue::recv): Ditto. - (fhandler_dev_dsp::Audio::Audio): Adapt to new class members. - (fhandler_dev_dsp::Audio::~Audio): Ditto - (fhandler_dev_dsp::Audio_out::start): Reorganize. - (fhandler_dev_dsp::Audio_out::stop): Simplify. - (fhandler_dev_dsp::Audio_out::init): Reset the queue and clear flag. - (fhandler_dev_dsp::Audio_out::write): Reorganize to allocate audio_out. - (fhandler_dev_dsp::Audio_out::buf_info): Use appropriate block size. - (fhandler_dev_dsp::Audio_out::callback_sampledone): Do not use lock. - (fhandler_dev_dsp::Audio_out::waitforspace): Simplify. - (fhandler_dev_dsp::Audio_out::waitforallsent):Ditto. - (fhandler_dev_dsp::Audio_out::sendcurrent): Reorganize. - Clear flag before requeuing. - (fhandler_dev_dsp::Audio_out::parsewav): - (fhandler_dev_dsp::Audio_in::start): Reorganize. - (fhandler_dev_dsp::Audio_in::stop): Simplify. - (fhandler_dev_dsp::Audio_in::queueblock): Ditto. - Requeue header in case of error. - (fhandler_dev_dsp::Audio_in::init): Reset the queue and clear flag. - (fhandler_dev_dsp::Audio_in::waitfordata): Simplify. - Do not UnprepareHeader if the flag is zero. - (fhandler_dev_dsp::Audio_in::buf_info): Ditto. - (fhandler_dev_dsp::Audio_in::callback_blockfull): Do not use lock. - (fhandler_dev_dsp::open_count): Delete. - (fhandler_dev_dsp::open): Only check existence, do not allocate - anything. Set flags appropriately. Create archetype. - (fhandler_dev_dsp::write): Call archetype as needed. Create audio_out. - (fhandler_dev_dsp::read): Call archetype as needed. Create audio_in. - (fhandler_dev_dsp::close): Call archetype as needed. - Call close_audio_in and close_audio_out. - (fhandler_dev_dsp::close_audio_in): New function. - (fhandler_dev_dsp::close_audio_out): New function. - (fhandler_dev_dsp::dup): Use archetypes. - (fhandler_dev_dsp::ioctl): Call archetype as needed. Reorganize for - new structures. - (fhandler_dev_dsp::fixup_after_fork): Call archetype as needed. - (fhandler_dev_dsp::fixup_after_exec): Call archetype as needed. - Clear audio_in and audio_out. - -2004-08-14 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::open_9x): Set file attributes - for new files. - -2004-08-11 Christopher Faylor <cgf@timesys.com> - - * net.cc (cygwin_gethostbyname): Show failing host name on error. - -2004-08-10 Christopher Faylor <cgf@redhat.com> - - * select.cc (select_stuff::wait): Correctly check for w4 array bounds. - -2004-08-03 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Add ERROR_TOO_MANY_LINKS -> EMLINK mapping. - * syscalls.cc (link): Only copy files if FS doesn't support hard links. - -2004-07-26 Christopher January <chris@atomice.net> - - * fhandler_proc.cc (format_proc_cpuinfo): Remove Intel-specific flags - from /proc/cpuinfo on non-Intel processors. Added new AMD-specific - flags. Changed Intel flag names to match Linux. - -2004-07-24 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Use proper boolean arguments. - * pinfo.cc (pinfo::init): Don't consider MapViewOfFileEx error to be - fatal if exiting. - * pinfo.h (pinfo::init): Eliminate default argument and supply the - argument in the one case that needed it. - -2004-07-24 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <cgf@timesys.com> - - * autoload.cc (GetNativeSystemInfo): Add. - (IsWow64Process): Add. - * init.cc (respawn_wow64_process): New function. - (dll_entry): If process has been started from a 64 bit - process, call respawn_wow64_process. - * uname.cc (uname): On 64 bit systems, use GetNativeSystemInfo. - Show actual CPU type. - -2004-07-23 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::get_debugger_info): Make stderr r/w according - to SUSv3. - -2004-07-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::open): Use requested flag - values also when copying fhandler from archetype. - -2004-07-22 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (pinfo::init): Print handle in hex when MapViewOfFile fails. - -2004-07-20 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc: Whitespace fixes. - -2004-07-20 Christopher Faylor <cgf@timesys.com> - - * Makefile.in (clean): Remove cygwin.def since it is autogenerated. - -2004-07-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::init): Fix non-ISO - expression. - * fhandler_floppy.cc (fhandler_dev_floppy::open): Remove unused - variable. - * fhandler_proc.cc (format_proc_meminfo): Fix compiler warning. - -2004-07-16 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (pinfo::init): Guard against MapViewOfFileEx failure. - -2004-07-15 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::alloc_page_map): Mark pages as allocated even - on Windows 9x, FWIW. - -2004-07-15 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mprotect): When MAP_WRITE protection is requested, use - READWRITE or WRITECOPY protection, whatever has been used when the - page has been allocated initially. - -2004-07-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_raw): Remove is_writing flag. - Remove declaration of writebuf. - (class fhandler_dev_floppy): Remove declaration of close. - * fhandler_floppy.cc (fhandler_dev_floppy::close): Delete. - (fhandler_dev_floppy::lseek): Remove calls to writebuf. Set - eom_detected to false after successful seek. - * fhandler_raw.cc (fhandler_dev_raw::writebuf): Delete. - (fhandler_dev_raw::raw_read): Remove calls to writebuf. - (fhandler_dev_raw::raw_write): Always invalidate buffer. - -2004-07-15 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (class mmap_record): Fix return type of get_offset. - (mmap_record::fixup_page_map): Fix off by one error. - (list::search_record): Use long as type of "start" argument in both, - declaration and definition. Use long as type for local variable "i". - -2004-07-14 Dave Korn <dk@artimi.com> - - * fhandler_registry.cc (registry_listing): Correct typo. - (fhandler_registry::fill_filebuf): Set size of newly expanded buffer - prior to calling RegQueryValueEx. - -2004-07-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::raw_write): Remove buffered - write entirely. - -2004-07-07 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Check if script is executable. - -2004-06-30 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (hires_ms::usecs): Don't overreact. - -2004-06-30 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (hires_ms::usecs): Reinit timer when system time overflows. - -2004-06-27 Christopher Faylor <me@cgf.cx> - - * thread.cc (__cygwin_lock_lock): Don't bother locking when there is - only one known thread. - (__cygwin_lock_unlock): Ditto for unlocking. - -2004-06-23 Tomas Ukkonen <tomas.ukkonen@iki.fi> - - * fhandler_proc.cc (format_proc_cpuinfo): Test CPU vendor and print - AMD specific 3dnow capabilities. - -2004-06-23 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_socket.cc (fhandler_socket::release): Call - WSASetLastError last. - -2004-06-21 Christopher Faylor <cgf@alum.bu.edu> - - * autoload.cc (wsock_init): Keep lock while modifying return address. - -2004-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Remove 9x specific code. - -2004-06-17 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (fhandler_base::open_9x): Do not check for null name. - Move debug_printf to common code line. - (fhandler_base::open): Ditto. Initialize upath. Remove second argument - of pc.get_nt_native_path. - * path.h (path_conv::get_nt_native_path): Remove second argument. - * path.cc (path_conv::get_nt_native_path): Ditto. Call str2uni_cat. - * security.h (str2buf2uni_cat): Delete declaration. - (str2uni_cat): New declaration. - * security.cc (str2buf2uni): Get length from sys_mbstowcs call. - (str2buf2uni_cat): Delete function. - (str2uni_cat): New function. - * miscfuncs.cc (sys_mbstowcs): Add debug_printf. - -2004-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Substitute FILE_SUPERSEDE with - FILE_OVERWRITE_IF. - -2004-06-09 Christopher Faylor <cgf@alum.bu.edu> - - * include/cygwin/version.h: REALLY bump dll minor version to 11. - -2004-06-08 Egor Duda <deo@corpit.ru> - - * include/cygwin/ipc.h: Make IPC_INFO visible only for ipc system - utilities, to make it consistent with declaration of struct seminfo. - -2004-06-08 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (fchdir): Pass the Posix path to chdir. - -2004-06-07 Christopher Faylor <cgf@alum.bu.edu> - - * dtable.cc (dtable::find_fifo): Release lock after fifo found (still - racy). - * fhandler.h (fhandler_fifo::get_io_handle): New fifo-specific method. - * fhandler_fifo.cc (fhandler_fifo::close): Close output_handle only if - it is open. - (fhandler_fifo::open_not_mine): Reorganize slightly. Don't call _pinfo - methods when the fifo is owned by me or suffer dtable lock_cs deadlock. - (fhandler_fifo::open): Call open_not_mine first, otherwise open myself - (racy). - * pinfo.cc (_pinfo::commune_recv): Duplicate fifo handles here in - requesting processes arena to avoid one potential race (of many). - (_pinfo::commune_send): Move all PICOM_FIFO code under one case - statement. - - * thread.cc (pthread::init_mainthread) Use existing hMainProc handle - rather than calling GetCurrentProcess. - -2004-06-04 Christopher Faylor <cgf@alum.bu.edu> - - * winbase.h (ilockincr): Add more neverending changes from the - inexplicable world of gcc asm constraint magic. Should stop random - crashes. - (ilockdecr): Ditto. - -2004-06-03 Christopher Faylor <cgf@alum.bu.edu> - - * autoload.cc (IsDosDeviceName_U): Define. - * ntdll.h (IsDosDeviceName_U): Declare. - * fhandler.cc (fhandler_base::open): Check to see if win32_name is a - dos device and just call the 9x open if so. - -2004-06-03 Christopher Faylor <cgf@alum.bu.edu> - - * winbase.h (ilockincr): More changes from the inexplicable world of - gcc asm magic. - (ilockdecr): Ditto. - -2004-06-03 Christopher Faylor <me@cgf.cx> - - * winbase.h (ilockincr): YA correction to ensure correct operation with - no optimization. - (ilockdecr): Ditto. - -2004-06-03 Corinna Vinschen <corinna@vinschen.de> - - * cygserver.h (CYGWIN_SERVER_VERSION_API): Bump. - -2004-06-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/ipc.h (IPC_KEY_IS_SHMID): Redefine to a more sensible - value. - -2004-06-02 Christopher Faylor <cgf@alum.bu.edu> - - * cygheap.cc (cmalloc): Add debugging hook. - -2004-06-02 Christophe Jaillet <christophe.jaillet@wanadoo.fr> - - * spawn.cc (find_exec): Use has_slash to determine if path has a slash - rather than calculating this twice. - -2004-05-30 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (mount_info::add_item): Make sure native path has drive - or UNC form. Call normalize_xxx_path instead of [back]slashify. - Remove test for double slashes. Reorganize to always debug_print. - -2004-05-28 Pierre Humblet <Pierre.Humblet@ieee.org> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only try to open - the file if it uses an acl. - -2004-05-28 Pierre Humblet <Pierre.Humblet@ieee.org> - - * path.cc (chdir): Always use the normalized_path as posix_cwd, except - if it starts with a drive. - -2004-05-25 Christopher Faylor <cgf@alum.bu.edu> - - * winbase.h: Semi-revert previous patch as it caused strange behavior. - Use syntax similar to that recommended in mingw-dvlpr. - -2004-05-25 Christopher Faylor <cgf@alum.bu.edu> - - * include/cygwin/version.h: Bump DLL minor number to 11. - -2004-05-25 Christopher Faylor <cgf@alum.bu.edu> - - * winbase.h: Add proper attributions for memory operands throughout. - -2004-05-24 Christopher Faylor <cgf@alum.bu.edu> - - * include/cygwin/version.h: Bump api minor version number. - -2004-05-24 Christopher Faylor <cgf@alum.bu.edu> - - * cygwin.din: Export atoll. - -2004-05-20 Christopher Faylor <cgf@alum.bu.edu> - - * tty.cc (tty_list::allocate_tty): Leave tty_mutex armed on successful - return from !with_console - * fhandler_tty.cc (fhandler_pty_master::open): Release tty_mutex here - after all initialization is done. - -2004-05-17 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgrgid_r): Replace struct group by struct __group32 in - argument definition. - (getgrnam_r): Ditto. - -2004-05-17 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Add symbols flockfile, ftrylockfile, funlockfile, - getgrgid_r, getgrnam_r and getlogin_r. - * grp.cc (getgrgid_r): New function. - (getgrnam_r): Ditto. - * syscalls.cc (flockfile): Ditto. - (ftrylockfile): Ditto. - (funlockfile): Ditto. - * sysconf.cc (sysconf): Return LOGIN_NAME_MAX in case of - _SC_LOGIN_NAME_MAX. - * thread.cc (__cygwin_lock_trylock): Define int. Return value from - call to pthread_mutex_trylock. - * uinfo.cc (getlogin_r): New function. - * include/limits.h: Define LOGIN_NAME_MAX. - * include/cygwin/version.h: Bump API minor number. - * include/sys/lock.h: Add declarations for __cygwin_lock_xxx functions. - * include/sys/stdio.h: Add define for _ftrylockfile. - -2004-05-17 Christopher Faylor <cgf@alum.bu.edu> - - * tty.cc (tty_list::init): Move hmaster initialization earlier to - prevent compilation error. - -2004-05-17 Christopher Faylor <cgf@alum.bu.edu> - - Change the name "title_mutex" to "tty_mutex" throughout. - * tty.h (tty_list::allocate_tty): Turn argument into a boolean. - * tty.cc (tty_list::init): Protect entire allocation operation with - tty_mutex (formerly title_mutex) to protect against allocation races. - -2004-05-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Use original flags - value in each WSARecvFrom call. - (fhandler_socket::recvmsg): Ditto. Reformat slightly. - -2004-05-15 Christopher Faylor <cgf@alum.bu.edu> - - * cygthread.cc (cygthread::is): Eliminate. - * cygthread.h (cygthread::is): Eliminate declaratin. - * fhandler_console.cc (fhandler_console::read): Only wait for - signal_arrived in the main thread. - * fhandler_socket.cc: Include new "wininfo.h". - (fhandler_socket::ioctl): Use 'winmsg' rather than 'gethwnd()'. - * sync.cc (muto::grab): Define new function. - (muto::acquire): Use tls pointer rather than tid. - (muto::acquired): Ditto. - (muto::reset): Delete. - (muto::release): Ditto. Also implement "close on last release". - * sync.h (muto::tid): Delete. - (muto::tls): New field. - (muto::ismine): Delete. - (muto::owner): Delete. - (muto::unstable): Delete. - (muto::reset): Delete. - (muto::upforgrabs): New method. - (muto::grab): Ditto. - (new_muto_name): New define. - * wininfo.h: New file. - (wininfo): New class. - * window.cc: Rework throughout to use winfo class for controlling - invisible window operation. - (gethwnd): Delete definition. - * winsup.h (gethwnd): Delete declaration. - -2004-05-15 Christopher Faylor <cgf@alum.bu.edu> - - * cygheap.h: Remove some parameter names from declarations throughout. - (cygheap::set): Reflect changes in declaration for arguments and return - value from previous checkin. - -2004-05-15 Pierre Humblet <pierre.humblet@ieee.org> - - * cygheap.h (cwdstuff::set): Modify return value and arguments. - * path.cc (chdir): Specify PC_POSIX. Do not call SetCurrentDirectory. - Set posix_cwd in a way that does not break find.exe. Change call to - cwd.set. - (cwdstuff::get_initial): Do not call GetCurrentDirectory here. - (cwdstuff::set): Call SetCurrentDirectory and GetCurrentDirectory as - needed. - -2004-05-12 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Don't bail out with error if path is "//". - -2004-05-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct init_cygheap): Add mt_h member. - * fhandler_tape.cc (mt_h): Drop in favor of cygheap based handle. - (mtinfo_init): Use cygheap->mt_h handle. Protect it. - -2004-05-12 Pierre Humblet <pierre.humblet@ieee.org> - - * tty.h: Remove the %d or %x from all cygtty strings. - (tty::open_output_mutex): Only declare. - (tty::open_input_mutex): Ditto. - (tty::open_mutex): New definition. - * fhandler_tty.cc (fhandler_tty_slave::open): Declare buf with - size CYG_MAX_PATH and replace __small_printf calls by shared_name. - * tty.cc (tty::create_inuse): Ditto. - (tty::get_event): Ditto. - (tty::common_init): Ditto. - (tty::open_output_mutex): New method definition. - (tty::open_input_mutex): Ditto. - (tty::open_mutex): New method. - -2004-05-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Set file attributes to correct - value when creating files. - * path.h (class path_conv): Add write accessor for file_attributes. - -2004-05-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add "owner" status flag. - * fhandler_socket.cc (wait): Take flag parameter to take FD_OOB into - account. Don't wait infinitely. - (fhandler_socket::recvfrom): Also wait for FD_OOB if socket owner. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - (fhandler_socket::fcntl): Set owner status flag if F_SETOWN with own - pid is called. - -2004-05-09 Pierre Humblet <pierre.humblet@ieee.org> - - * environ.cc (build_env): Only try to construct required-but-missing - variables while issetuid. - -2004-05-08 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@timesys.com> - - * syscalls.cc: Include environ.h. - (chroot): Set errno in case of path error. Call getwinenv. - * environ.cc: Remove the NO_COPY attribute of conv_envvars. - -2004-05-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): Move - initialization of "mem_size" from here... - (fhandler_dev_mem::open): ...to here. Fix typo in FH_PORT case. - -2004-05-07 Gerd Spalink <Gerd.Spalink@t-online.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Move delete of - bigwavebuffer_ so that it is always cleaned, also in child processes. - (fhandler_dev_dsp::Audio_in::stop): Ditto. - (fhandler_dev_dsp::close): Stop audio play immediately in case of - abnormal exit. - -2004-05-07 Corinna Vinschen <corinna@vinschen.de> - - Revert code reversion from 2004-04-03. So, revert to async I/O again. - * fhandler.h (status): Add "closed" flag. - (prepare): New method declaration. - (wait): Ditto. - (release): Ditto. - * fhandler_socket.cc: Don't include wsock_event.h. - (fhandler_socket::prepare): New method, moved from wsock_event. - (fhandler_socket::wait): Ditto. - (fhandler_socket::release): New method. - (fhandler_socket::recvfrom): Simplify loop. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - * net.cc: Don't include wsock_event.h. - (wsock_event::prepare): Remove. - (wsock_event::wait): Ditto. - * wsock_event.h: Remove. - -2004-05-06 Christopher Faylor <cgf@alum.bu.edu> - - * thread.cc (pthread::create): Move postcreate call to avoid a - potential race. - (pthread::cancelable_wait): Don't allow signal interrupt unless main - thread. - -2004-05-07 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@timesys.com> - - * path.cc (mount_info::conv_to_posix_path): Return proper status when - chrooted. - -2004-05-06 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (path_conv::check): Strip trailing dots and spaces and - return error if the final component had only dots and spaces. - (normalize_posix_path): Revert 2004-04-30. - (chdir): Do not check for trailing spaces. Do not set native_dir - to c:\ for virtual devices. Pass only native_dir to cwd.set. - (cwdstuff::set): Assume posix_cwd is already normalized. - -2004-05-04 Christopher Faylor <cgf@alum.bu.edu> - - * path.cc (normalize_win32_path): Detect components with only dots. - Remove a final . if it follows '\\'. - (mount_info::conv_to_win32_path): Only backslashify the path when no - mount is found. - (chdir): Do not look for components with only dots. - -2004-05-04 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@alum.bu.edu> - - * path.cc (is_unc_share): Remove redundant tests. - -2004-05-04 Corinna Vinschen <corinna@vinschen.de> - - * crt0.o (mainCRTStartup): 16 byte align stack for main function. - -2004-05-04 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (check_sysfile): Don't scan string twice. - -2004-05-03 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (writable_directory): Remove. - (mkdir): Remove call to writable_directory. - * syscalls.cc (unlink): Ditto. - (rename): Ditto. - * winsup.h (writable_directory): Remove declaration. - -2004-04-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Call path_conv::get_nt_native_path - for evaluating NT path. - * path.cc (normalize_posix_path): Remove trailing dots and spaces. - (path_conv::get_nt_native_path): New function. - * path.h (class path_conv): Declare get_nt_native_path method. - -2004-04-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Fix NT native path evaluation - to allow opening serial ports. - -2004-04-30 DJ Delorie <dj@redhat.com> - - * init.cc (threadfunc_fe): Hack to make thread stacks always 16 - byte aligned. - -2004-04-21 Yitzchak Scott-Thoennes <sthoenna@efn.org> - - * syscalls.cc (lseek64): Fix debug_printf format string. - (truncate64): Ditto. - -2004-04-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::lseek): Force res to -1 on error. - -2004-04-20 Christopher Faylor <cgf@alum.bu.edu> - - * path.cc (is_unc_share): Rename from slash_unc_prefix_p throughout. - -2004-04-20 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (normalize_posix_path): Process all Posix paths and map three - or more initial slashes to a single one. Simplify processing following - two initial slashes. - (normalize_win32_path): Make last argument non-optional and do not - check for NULL value. - -2004-04-20 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_disk_file.cc (fhandler_base::open_fs): Change - set_file_attribute call to indicate that NT security isn't used. - (fhandler_disk_file::fchmod): Rearrange to isolate 9x related - statements. - Do not set FILE_ATTRIBUTE_SYSTEM. - (fhandler_disk_file::fchown): Check noop case first. - * fhandler.cc (fhandler_base::open9x): Remove ntsec related statements. - (fhandler_base::set_name): Do not set namehash. - * fhandler.h (fhandler_base::get_namehash): Compute and set namehash if - needed. - * syscalls.cc (access): Verify that fh is not NULL. Do not set PC_FULL. - (chmod): Ditto. - (chown_worker): Ditto. - (stat_worker): Ditto. Verify if the path exists. - -2004-04-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Remove special DEV_FLOPPY_MAJOR - treatment. - * fhandler_raw.cc (fhandler_dev_raw::open): Simplify write-only case. - * fhandler_tape.cc (fhandler_dev_tape::raw_write): Add accidentally - dropped condition. - -2004-04-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Add FILE_READ_ATTRIBUTES when - only GENERIC_WRITE access is requested. - -2004-04-19 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/mtio.h (GMT_ASYNC): New define. - (MT_ST_ASYNC_WRITES): Remove "Not supported" comment. - -2004-04-19 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Handle ERROR_IO_PENDING. - * fhandler.cc (fhandler_base::open): Make tape I/O asynchronous. - * fhandler.h (class fhandler_dev_tape): Add mt_evt member. - * fhandler_tape.cc (mtinfo_drive::initialize): Initialize async_writes. - (mtinfo_drive::close): Handle async writes. - (mtinfo_drive::read): Add mt_evt parameter. Use overlapped I/O. - (mtinfo_drive::async_wait): New function. - (mtinfo_drive::write): Add mt_evt parameter. Use overlapped I/O. - Handle async writes. - (mtinfo_drive::_set_pos): Handle async writes. - (mtinfo_drive::set_partition): Ditto. - (mtinfo_drive::prepare): Ditto. - (mtinfo_drive::get_status): Drop useless "else". Handle async_writes - flag. - (mtinfo_drive::set_options): Handle async_writes flags. - (fhandler_dev_tape::close): Close mt_evt handle. - (fhandler_dev_tape::raw_read): Create mt_evt handle and use in call - to mtinfo_drive::read. - (fhandler_dev_tape::raw_write): Create mt_evt handle and use in call - to mtinfo_drive::write. - * mtinfo.h (MTINFO_VERSION): Bump. - (enum dirty_state): Add async_write_pending state. - (class mtinfo_drive): Add OVERLAPPED struct "ov". Add async_writes - flag. - (mtinfo_drive::async_wait): Add declaration. - (mtinfo_drive::read): Add mt_evt parameter. - (mtinfo_drive::write): Ditto. - - * registry.cc (load_registry_hive): Call enable_restore_privilege - instead of set_process_privilege. - -2004-04-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::_set_pos): Take additional dont_wait - parameter. Use in call to SetTapePosition. - (mtinfo_drive::set_pos): Accommodate _set_pos calls to above change. - (mtinfo_drive::set_partition): Ditto. - * mtinfo.h (mtinfo_drive::_set_pos): Change declaration accordingly. - -2004-04-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtCreateFile): Add. - * dir.cc (mkdir): Change set_file_attribute call to indicate that - NT security isn't used. - * fhandler.cc (fhandler_base::open_9x): New method, created from - fhandler_base::open. - (fhandler_base::open): Rearrange to use NtCreateFile instead of - CreateFile. - * fhandler.h (enum query_state): Redefine query_null_access to - query_stat_control. query_null_access isn't allowed in NtCreateFile. - (fhandler_base::open_9x): Declare. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use - query_stat_control first, query_read_control if that fails. - (fhandler_disk_file::fchmod): Call enable_restore_privilege before - trying to open for query_write_control. Don't fall back to - opening for query_read_control. - (fhandler_disk_file::fchown): Ditto. - (fhandler_disk_file::facl): Only request restore privilege and query - access necessary for given cmd. - * fhandler_raw.cc (fhandler_dev_raw::open): Call fhandler_base::open - instead of opening device here. - * ntdll.h (NtCreateFile): Declare. - * path.cc (symlink_worker): Change set_file_attribute call to indicate - that NT security isn't used. - * sec_acl.cc (getacl): Fix bracketing. - * sec_helper.cc (enable_restore_privilege): New function. - * security.cc (str2buf2uni_cat): New function. - (write_sd): Don't request restore permission here. - * security.h (set_process_privileges): Drop stale declaration. - (str2buf2uni): Declare. - (str2buf2uni_cat): Declare. - (enable_restore_privilege): Declare. - * syscalls.cc (fchown32): Return immediate success on 9x. - -2004-04-15 Christopher Faylor <cgf@alum.bu.edu> - - * autoload.cc (dll_chain1): Rename to dll_chain. Remove old dll_chain - code. - (wsock_init): Avoid unneeded winsock_active tests. - * winsup.h (winsock_active): Delete. - -2004-04-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Try opening - in query_read mode if query_write fails. - * fhandler_disk_file.cc (fhandler_disk_file::fchown): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::facl): Ditto. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Fix copyright date. - * sec_acl.cc (acl_worker): Delete allocated fhandler. - * syscalls.cc (chown_worker): Ditto. - (chmod): Ditto. - (stat_worker): Use get_namehash instead of hash_path_name. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (getacl): Avoid compiler warning. - * security.cc (write_sd): Ditto. Fix error handling. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fstat64): Use get_namehash instead of hash_path_name. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Simplify access evaluation - expression. - (fhandler_base::facl): New method. - * fhandler.h: Declare facl method in fhandler_base, - fhandler_disk_file and fhandler_virtual. - * fhandler_disk_file.cc (fhandler_disk_file::facl): New method. - * fhandler_virtual.cc (fhandler_virtual::facl): New method. - * sec_acl.cc: Remove forward declaration for aclsort32 and acl32. - (setacl): Remove static. Add and use handle parameter. - (getacl): Ditto. - (acl_worker): Reorganize to call fhandler's facl method eventually. - (facl32): Ditto. - * security.cc (get_nt_object_security): Remove static. - * security.h: Add extern declarations for get_nt_object_security, - aclsort32, acl32, getacl and setacl. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Accommodate query_write_control - query_state. - (fhandler_base::fchown): New method. - * fhandler.h: Declare fchown method in fhandler_base, - fhandler_disk_file and fhandler_virtual. - (enum query_state): Add query_write_control. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Set query_state - to query_write_control. Only remove FILE_ATTRIBUTE_READONLY if not - setting security descriptor. - (fhandler_disk_file::fchown): New method. - * fhandler_virtual.cc (fhandler_virtual::fchown): New method. - * sec_acl.cc (setacl): Call write_sd with additional handle attribute. - * security.cc (write_sd): Take handle argument. Only request owner - if getting SE_RESTORE_NAME privilege failed. Only open file if - NtSetSecurityObject failed or handle is NULL. - (set_nt_attribute): Call write_sd with additional handle attribute. - * security.h (write_sd): Declare with additional handle argument. - * syscalls.cc (chown_worker): Reorganize to call fhandler's fchown - method eventually. - (fchown): Ditto. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtSetSecurityObject): Add. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request - READ_CONTROL rights when opening the file. - * ntdll.h (NtSetSecurityObject): Add declaration. - * security.cc (write_sd): Call NtSetSecurityObject instead of - BackupWrite. - (get_nt_object_security): Don't free security descriptor here. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (ttyname): Use buffer of length TTY_NAME_MAX + 1. - * sysconf.cc (sysconf): Handle _SC_TTY_NAME_MAX request. - * include/limits.h: Define TTY_NAME_MAX and _POSIX_TTY_NAME_MAX. - -2004-04-14 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export rand_r and ttyname_r. - * syscalls.cc (ttyname_r): New function. - (ttyname): Move functionality to ttyname_r. Call it from here. - * include/cygwin/version.h: Bump API minor number. - -2004-04-14 Pierre Humblet <pierre.humblet@ieee.org> - - * path.h (path_conv::set_symlink): Add argument. - (path_conv::get_symlink_length): New method. - (path_conv::symlink_length): New member. - * path.cc (path_conv::check): Pass symlen to set_symlink. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): For symlinks - set st_size from get_symlink_length. - -2004-04-13 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_nt_attribute): Only call get_nt_object_security - if handle is NULL. - -2004-04-13 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Call set_file_attribute with additional handle - argument. - * fhandler.cc (fhandler_base::fchmod): New method. - * fhandler.h: Declare fchmod method in fhandler_base, - fhandler_disk_file and fhandler_virtual. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): New method. - (fhandler_base::open_fs): Call set_file_attribute with additional - handle argument. - * fhandler_virtual.cc (fhandler_virtual::fchmod): New method. - * path.cc (symlink_worker): Call set_file_attribute with additional - handle argument. - * security.cc (get_nt_object_security): New function. - (get_nt_object_attribute): Call get_nt_object_security. - (set_nt_attribute): Add handle argument. Call get_nt_object_security - first, read_sd only if that fails. - (set_file_attribute): Add handle argument. - * security.h (set_file_attribute): Declare with additional handle - argument. - * syscalls.cc (stat_suffixes): Move to beginning of file. - (chown_worker): Call set_file_attribute with additional handle argument. - (chmod): Reorganize to call fhandler's fchmod method eventually. - (fchmod): Ditto. - -2004-04-13 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtQuerySecurityObject): Add. - * ntdll.h (STATUS_BUFFER_TOO_SMALL): Add definition. - (NtQuerySecurityObject): Add declaration. - * security.cc (get_nt_object_attribute): Always use - NtQuerySecurityObject to retrieve security descriptor. - -2004-04-13 Gerd Spalink <Gerd.Spalink@t-online.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Add optional - boolean argument so that playing can be stopped without playing - pending buffers. - (fhandler_dev_dsp::ioctl): Stop playback immediately for - SNDCTL_DSP_RESET. Do not reset audio parameters in this case. - Add support for ioctl SNDCTL_DSP_GETISPACE. - (fhandler_dev_dsp::Audio_out::emptyblocks): Now returns the number of - completely empty blocks. - (fhandler_dev_dsp::Audio_out::buf_info): p->fragments is now the number - of completely empty blocks. This conforms with the OSS specification. - (fhandler_dev_dsp::Audio_out::parsewav): Ignore wave headers that are - not aligned on four byte boundary. - (fhandler_dev_dsp::Audio_in::buf_info): New, needed for - SNDCTL_DSP_GETISPACE. - -2004-04-13 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (IMPLEMENT_STATUS_FLAG): New macro to define status flag - accessor methods unambiguously. - * fhandler.h: Use IMPLEMENT_STATUS_FLAG throughout where possible. - * fhandler_termios.cc (fhandler_termios::tcinit): Call corrected - accessor for initialized status flag. - * mtinfo.h (class mtinfo_drive): Use IMPLEMENT_STATUS_FLAG throughout. - * path.cc (fs_info::update): Remove duplicate call to flags(). - * path.h (struct fs_info): Use IMPLEMENT_STATUS_FLAG where possible. - (path_conv::is_auto_device): Fix spacing. - * tty.h (class tty_min): Use IMPLEMENT_STATUS_FLAG throughout. - -2004-04-12 Christopher Faylor <cgf@alum.bu.edu> - - * thread.cc (pthread::thread_init_wrapper): Wait later to get more - parallel behavior. - -2004-04-12 Christopher Faylor <cgf@alum.bu.edu> - - * thread.cc (pthread::create): Use thread mutex to control - synchronization rather than creating a suspended thread. Wait for - "cancellation event" to indicate that started thread has been properly - initialized. - (pthread::thread_init_wrapper): Use set_tls_self_pointer() to set tid - and cygtls. Signal with cancel_event when done. - -2004-04-12 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (path_conv::check): Fix "tail filling" logic. - -2004-04-11 Christopher Faylor <cgf@alum.bu.edu> - - * cygheap.h: Replace inexplicably removed closing brace. - -2004-04-11 Christopher Faylor <cgf@alum.bu.edu> - - * cygheap.h (CYGHEAP_SLOP): Reduce drastically to avoid collisions. - -2004-04-11 Pierre Humblet <pierre.humblet@ieee.org> - - * dtable.cc (dtable::extend): Change order of memcpy and cfree. - -2004-04-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (sync): Define void according to SUSv3. - -2004-04-10 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Use correct offset when trying to combine - standard and default entry of same type. - -2004-04-10 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler.cc (rootdir): Add and use second argument. - * winsup.h (rootdir): Add second argument in declaration. - * path.cc (fs_info::update): Modify call to rootdir. - * syscalls.cc (check_posix_perm): Ditto. - (statfs): Ditto. Move syscall_printf near top. - -2004-04-10 Corinna Vinschen <corinna@vinschen.de> - - * Use new unified status_flag accessor methods from classes fhandler_*, - tty_min, mtinfo and fs_info thoroughout. - * fhandler.h: Redefine all set_close_on_exec methods to take a bool - argument. - (enum conn_state): Rename from connect_state. - (class fhandler_base): Rename some status flags to align with - accessor method names. Drop encoded flag entirely. Unify status - accessor methods. Const'ify all read accessor methods. - (class fhandler_socket): Ditto. - (class fhandler_dev_raw): Ditto. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use fs.fs_is_fat() - instead of evaluating FATness of file system here. - (fhandler_disk_file::opendir): Drop call to set_encoded(). - (fhandler_disk_file::readdir): Use pc.isencoded() directly. - * mtinfo.h (class mtinfo_drive): Const'ify all read accessor methods. - * path.cc (fsinfo_cnt): Add. - (fs_info::update): Accommodate class changes. Evaluate file system - name specific flags right here. Add thread safety for reading and - writing global fsinfo array. - * path.h (enum path_types): Drop values for flags kept in fs already. - (struct fs_info): Move status informatin into private struct type - status_flags. Add accessor methods. Remove path and file system - name string arrays in favor of status bits. - (class path_conv): Use new fs_info status information where - appropriate. - (path_conf::fs_has_ea): Rename from fs_fast_ea. - (path_conf::fs_has_acls): New method. - (path_conf::root_dir): Remove. - (path_conf::volname): Remove. - * syscalls (statfs): Evaluate root dir locally. - * tty.h (class tty_min): Unify status accessor methods. Const'ify - all read accessor methods. - -2004-04-09 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::init_mainthread): Remove parameter forked. - (pthread::set_tls_self_pointer): New static function. - * thread.cc (MTinterface::fixup_after_fork): Change call to - pthread::init_mainthread. - (pthread::init_mainthread): Remove parameter forked. Simplify thread - self pointer handling. - (pthread::self): Set thread self pointer to null_pthread if thread has - not been initialized. - (pthread::set_tls_self_pointer): New static function. - -2004-04-05 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (path_conv::check): Optimize symlink replacements. - -2004-04-09 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (normalize_posix_path): Add "tail" argument and set it. - Always have a final slash for directories. Pass 3rd argument to - normalize_win32_path. - (path_conv::check): Pass tail to normalize_posix_path. Set - need_directory and remove final slash after that call. Remove last - argument to mount_table->conv_to_win32_path(). Remove noop dostail - check. Remove fs.update() from inner loop. Improve tail finding - search. - (normalize_win32_path): Add and set tail argument. - (mount_item::build_win32): Avoid calling strcpy. - (mount_info::conv_to_win32_path): Remove third argument and simplify - because the source is normalized. Keep /proc path in Posix form. Call - win32_device_name() only once. - (mount_info::conv_to_posix_path): Add and use 3rd argument to - normalize_win32_path to avoid calling strlen. - (cwdstuff::set): Add 3rd argument to normalize_posix_path and remove - final slash if any. - * shared_info.h (mount_info::conv_to_win32_path): Remove last argument - in declaration. - -2004-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_raw): Move status bits into protected - bitfield struct type status_flags. Drop unused has_written bit. - Add accessor methods. - (fhandler_dev_raw::clear): Remove. - (fhandler_dev_raw::reset_devbuf): Remove. - * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Use accessor method - for is_writing. - * fhandler_raw.cc: Use status accessor methods throughout. - (fhandler_dev_raw::clear): Remove. - (fhandler_dev_raw::fhandler_dev_raw): Drop clear call. - (fhandler_dev_raw::~fhandler_dev_raw): Ditto. - * fhandler_tape.cc: Use mtinfo::status accessor methods throughout. - (mtinfo_drive::close): Fix conditional to enable BSD semantics - correctly. - (mtinfo_drive::get_status): Rename from mtinfo_drive::status. - * mtinfo.h (class mtinfo_drive): Move status bits into private bitfield - struct type status_flags. Add accessor methods. - Rename status method to get_status. - -2004-04-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fsinfo): Global storage for file system information. - (fs_info::update): Store file system information also in fsinfo and - short circuit GetVolumeInformation by using alredy stored file system - information. - -2004-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::status): Declare private. - (fhandler_base::open_status): Ditto. - (class fhandler_socket): Move status bits into private bitfield struct - type status_flags. Change accessor methods appropriately. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Accommodate - above status bit changes. - * tty.h: Remove status bit enumerator. - (TTYISSETF): Remove. - (TTYSETF): Remove. - (TTYCLEARF): Remove. - (TTYCONDSETF): Remove. - (tty_min::status): Define as private bitfield struct type status_flags. - Add appropriate accessor methods. - * fhandler_console.cc: Use tty_min::status accessor methods throughout. - * fhandler_termios.cc: Ditto. - * winsup.h (__ISSETF): Remove. - (__SETF): Remove. - (__CLEARF): Remove. - (__CONDSETF): Remove. - -2004-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::write): Use bool parameter in calls to - set_did_lseek. - (fhandler_base::fhandler_base): Accommodate new status and open_status - constructor. - * fhandler.h: Remove status bit enumerator. - (FHDEVN): Remove. - (FHISSETF): Remove. - (FHSETF): Remove. - (FHCLEARF): Remove. - (FHCONDSETF): Remove. - (FHSTATOFF): Remove. - (UNCONNECTED, CONNECT_PENDING, CONNECTED): Substitute by enum - connect_state. - (fhandler_base::status): Define as bitfield struct type status_flags. - Remove unused flags entirely. Accommodate all status access methods. - (open_status): Define as bitfield struct type status_flags. - (fhandler_socket): Move socket related status bits to here. Redefine - had_connect_or_listen to be part of these status bits. Accommodate - related access methods. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use pc.issymlink - instead of dropped method get_symlink_p. - (fhandler_base::open_fs): Remove setting dropped status flags. - * fhandler_socket.cc: Use values from enum connect_state throughout. - (fhandler_socket::fhandler_socket): Initialize status bits. - * fhandler_virtual.cc (fhandler_virtual::open): Remove setting dropped - status flags. - * net.cc: Use values from enum connect_state throughout. - * select.cc: Ditto. - * shared_info.h: Protect struct console_state using _FHANDLER_H_ - instead of FHDEVN. - -2004-04-09 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_attribute): Fix conditional. - -2004-04-08 Christopher Faylor <cgf@bosbc.com> - - * child_info.h: Update CHILD_INFO_MAGIC after 2004-04-03 change. - -2004-04-08 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (hash_path_name): Replace hash algorithm with SDBM. - -2004-04-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Set query access mode according - to query_open setting. - (fhandler_base::fhandler_base): Initialize query_open. - * fhandler.h (FH_QUERYOPEN): Drop. - (enum query_state): Add. - (class fhandler_base): Add query_open member. - (fhandler_base::get_query_open): Redefine to use query_open. - (fhandler_base::set_query_open): Ditto. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Remove O_DIROPEN - from open_flags since it's added in open_fs anyway. Remove - query_open_already. Use new query_open settings. Rearrange slightly. - (fhandler_base::fstat_helper): Add get_io_handle as parameter to - get_file_attribute. - * security.cc (get_nt_object_attribute): Make returning an int. - Return -1 on error, 0 otherwise. - (get_file_attribute): Take an object handle as argument. Move down - to allow calling get_nt_object_attribute in case a non-NULL handle - is given. - * security.h (get_file_attribute): Add handle to argument list. - * syscalls.cc (chown_worker): Accommodate new definition of - get_file_attribute. - -2004-04-07 Pierre Humblet <pierre.humblet@ieee.org> - - * path.cc (path_prefix_p): Optimize test order. - -2004-04-06 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (EXTRALIBS): Add libtextreadmode.a. - (INSTOBJS): Add textreadmode.o. - * textreadmode.c: New file. - -2004-04-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Request - compressed size only if the matching attributes are set. Use - NtQueryInformationFile instead of GetCompressedFileSize. - (fhandler_base::fstat_by_handle): Remove NT 3.5 cruft since - local.dwVolumeSerialNumber isn't used subsequently. - * ntdll.h: Add typedefs for FILE_COMPRESSION_INFORMATION and - FILE_INFORMATION_CLASS. - -2004-04-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::open): Actually use "options". - -2004-04-04 Gerd Spalink <Gerd.Spalink@t-online.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Add implementation - for ioctl codes SNDCTL_DSP_CHANNELS and SNDCTL_DSP_GETCAPS. - -2004-04-03 Christopher Faylor <cgf@bosbc.com> - - * child_info.h (child_info::cygheap_reserve_sz): Rename from - cygheap_alloc_sz. - * cygheap.cc: Rename alloc_sz to reserve_sz throughout. - -2004-04-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Remove has_been_closed member. - * fhandler_socket.cc (fhandler_socket::recvfrom): Revert to - overlapped I/O. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - * net.cc (wsock_event::prepare): Ditto. - (wsock_event::wait): Ditto. Evaluate overlapped result also after - calling CancelIo (thanks to Patrick Samson <p_samson@yahoo.com>). - (wsock_event::release): Remove. - * wsock_event.h: Revert to overlapped I/O. - -2004-04-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_event::release): Use NULL handle in call to - WSAEventSelect to resolve KB 168349. - -2004-04-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Rearrange loop - so that WSARecvFrom is always called before waiting. - (fhandler_socket::recvmsg): Ditto. - -2004-04-01 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_event::wait): Make wsa_err an int. Don't set - ret to 0 if any error has happened. - -2004-04-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::sendto): Drop out of loop if - has_been_closed gets set. - (fhandler_socket::sendmsg): Ditto. - * net.cc (wsock_event::wait): Don't initialize evts. Don't try to - evaluate network events if WSAEnumNetworkEvents fails. - (wsock_event::release): Save last WSA error and set it again unless - resetting to blocking socket fails. - * wsock_event.h (class wsock_event): Remove destructor. - -2004-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo::initialize): Fix fatal error message. - -2004-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize - ret to 0 when using in Winsock call. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - -2004-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::get_pos): Only set partition if - GetTapePosition returned a non-zero partition number. - (mtinfo_drive::create_partitions): Reinitialize to partition 0. - Support TAPE_DRIVE_INITIATOR and TAPE_DRIVE_FIXED partitioning. - (mtinfo_drive::set_partition): Initialize new partition. - (mtinfo_drive::status): Readd accidentally dropped setting of mt_resid. - - * net.cc (wsock_event::prepare): Always print debug output in case - of error. - -2004-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::sendmsg): Add SIGPIPE handling. - -2004-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recvfrom): Initialize res to - SOCKET_ERROR. Use SOCKET_ERROR instead of -1 throughout. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - * net.cc (wsock_event::prepare): Call WSASetLastError instead of - SetLastError. - (wsock_event::wait): Use SOCKET_ERROR instead of -1. - -2004-03-30 Thomas Pfaff <tpfaff@gmx.net> - - * thread.h (pthread::init_mainthread): Add parameter forked. Set - forked default to false.. - * thread.cc (MTinterface::fixup_after_fork): Call - pthread::init_mainthread with forked = true. - (pthread::init_mainthread): Add parameter forked. Do not change thread - self pointer when forked. - -2004-03-30 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (shmat): If shmid is unknown, call a special variation - of shmget to retrieve the shared memory segment from Cygserver - instead of failing immediately. - * include/cygwin/ipc.h (IPC_KEY_IS_SHMID): New internal flag for - shmget when called from shmat. - -2004-03-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add has_been_closed member. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize - has_been_closed to 0. - (fhandler_socket::recvfrom): Use new asynchronous I/O driven - wsock_event methods. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - * net.cc (wsock_event::prepare): Reimplement using asynchronous I/O. - (wsock_event::wait): Ditto. - (wsock_event::release): New method. - * wsock_event.h (class wsock_event): Remove ovr member. Accommodate - new implementation of prepare and wait methods. Add release method. - -2004-03-29 Thomas Pfaff <tpfaff@gmx.net> - - * thread.cc (pthread::atforkprepare): Call - MT_INTERFACE->fixup_before_fork at the end of atforkprepare. - -2004-03-29 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (wsock_event::wait): Change scope of local "len" variable. - -2004-03-28 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (shmat): Return (void *) -1 on error instead of NULL. - -2004-03-27 Christopher Faylor <cgf@redhat.com> - - * fhandler_nodevice.cc (fhandler_nodevice::open): Assume that errno has - already been set if pc.error is nonzero. - -2004-03-26 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (cygheap_fixup_in_child): Improve strace output. - -2004-03-26 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_SHARING_VIOLATION to EBUSY, - ERROR_EOM_OVERFLOW and ERROR_NO_DATA_DETECTED to EIO. Add mappings - for ERROR_NO_MEDIA_IN_DRIVE, ERROR_DEVICE_REQUIRES_CLEANING and - ERROR_DEVICE_DOOR_OPEN. - * fhandler.h (class fhandler_dev_raw): Drop varblkop member. - (fhandler_dev_raw::is_eom): De-virtualize. - (fhandler_dev_raw::is_eof): Ditto. - (class fhandler_dev_tape): Drop lasterr and dp member. Add mt_mtx - member. Drop all private methods formerly used by ioctl. - (fhandler_dev_tape::is_rewind_device): Use get_minor for clarity. - (fhandler_dev_tape::driveno): New method. - (fhandler_dev_tape::drive_init): New method. - (fhandler_dev_tape::clear): Remove method. - (fhandler_dev_tape::is_eom): Ditto. - (fhandler_dev_tape::is_eof): Ditto. - (fhandler_dev_tape::write_file): Ditto. - (fhandler_dev_tape::read_file): Ditto. - (fhandler_dev_tape::_lock): New method. - (fhandler_dev_tape::unlock): New method. - (fhandler_dev_tape::raw_read): New method. - (fhandler_dev_tape::raw_write): New method. - * fhandler_raw.cc (fhandler_dev_raw::is_eom): New method. - (fhandler_dev_raw::is_eof): New method. - (fhandler_dev_raw::open): Allow setting write through option by - using the O_TEXT flag as ... flag. - (fhandler_dev_raw::writebuf): Remove usage of varblkop and other - tape specific code. - (fhandler_dev_raw::raw_read): Ditto. - (fhandler_dev_raw::dup): Ditto. - * fhandler_tape.cc: Rewrite tape operations entirely. Implement - new tape driver classes mtinfo, mtinfo_drive and mtinfo_part. - Reduce fhandler_dev_tape methods to mostly just calling appropriate - mtinfo_drive methods. - (mtinfo_init): New function adding the mtinfo shared memory area. - * mtinfo.h: New file, containing the definition of the new tape - driver classes. - * shared.cc: Include mtinfo.h. - (offsets): Add entry for mtinfo shared memory area. - (memory_init): Call mtinfo_init. - * shared_info.h (shared_locations): Add SH_MTINFO shared location. - * include/cygwin/mtio.h: Change and add various comments. Add GMT_xxx - macros for new generic flags. Add MT_ST_xxx bitfield definitions - for MTSETDRVBUFFER ioctl. - * include/cygwin/version.h: Bump API minor version number. - -2004-03-26 Christopher Faylor <cgf@redhat.com> - - * path.cc (path_conv::check): Use 'strchr' rather than 'strrchr' to - find end of string, for efficiency. - -2004-03-26 Thomas Pfaff <tpfaff@gmx.net> - - * include/cygwin/_types.h: New file. - * include/sys/lock.h: Ditto. - * include/sys/stdio.h: Ditto. - * thread.cc: Include sys/lock.h - (__cygwin_lock_init): New function. - (__cygwin_lock_init_recursive): Ditto. - (__cygwin_lock_fini): Ditto. - (__cygwin_lock_lock): Ditto. - (__cygwin_lock_trylock): Ditto. - (__cygwin_lock_unlock): Ditto. - (pthread::atforkprepare): Lock file pointer before fork. - (pthread::atforkparent): Unlock file pointer after fork. - (pthread::atforkchild): Ditto. - -2004-03-26 Corinna Vinschen <corinna@vinschen.de> - - * sem.cc (semget): Fix debug string. - (semop): Ditto. - * shm.cc (fixup_shms_after_fork): Ditto. - (shmat): Ditto. - (shmdt): Ditto. - (shmget): Ditto. - -2004-03-26 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Make sure that SIGCHLD is handled regardless - of whether a signal is queued. - -2004-03-26 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (wait_sig): Report if not trying to send signal due to - queued signal. - -2004-03-25 Christopher Faylor <cgf@redhat.com> - - * path.cc (normalize_posix_path): Reorganize to short circuit to DOS - path handling whenever a '\' is detected. - - * signal.cc (sigaction): Make strace output more informative. - * sigproc.cc (pending_signals::add): Just index directly into signal - array rather than treating the array as a heap. - (pending_signals::del): Ditto. - (wait_sig): Don't send signal if we already have a similar signal - queued. - * sigproc.h (call_signal_handler_now): Remove obsolete declaration. - -2004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::write): Remove type - cast from argument to audio_out_->parsewav() to make reference - work properly. Now .wav file headers are properly discarded. - -2004-03-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use created - handle regardless of nohandle state. Clean up afterwards. - -2004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de> - - * autoload.cc: Load eight more functions for waveIn support. - * fhandler.h (class fhandler_dev_dsp): Add class Audio, class Audio_in - and class Audio_out members and audio_in_, audio_out_ pointers so - that future changes are restricted to file fhandler_dsp.cc. - * fhandler_dsp.cc (fhandler_dev_dsp::Audio): Add this class to treat - things common to audio recording and playback. - Add more format conversions. - (fhandler_dev_dsp::Audio::queue): New queues for buffer management - to fix incomplete cleanup of buffers passed to the wave device. - (fhandler_dev_dsp::Audio_in): New, added class to implement audio - recording. - (fhandler_dev_dsp::Audio_out): Rework to use functionality provided - by fhandler_dev_dsp::Audio. Allocate memory audio buffers late, - just before write. - (fhandler_dev_dsp::Audio_out::start): Size of wave buffer allocated - here depends on audio rate/bits/channels. - (fhandler_dev_dsp::Audio_in::start): Ditto. - (fhandler_dev_dsp::setupwav): Replaced by following function. - (fhandler_dev_dsp::Audio_out::parsewav): Does not setup wave device - any more. Discard wave header properly. - (fhandler_dev_dsp::open): Add O_RDONLY and_RDWR as legal modes. - Protect against re-open. Activate fork_fixup. - (fhandler_dev_dsp::ioctl): Protect against actions when audio is - active. SNDCTL_DSP_GETFMTS only returns formats supported by - mmsystem wave API, not all supported formats. SNDCTL_DSP_GETBLKSIZE - result now depends on current audio format. - (fhandler_dev_dsp::fixup_after_fork): Call fork_fixup for the Audio - classes to let them duplicate the CRITICAL_SECTION. - -2004-03-19 Pierre Humblet <pierre.humblet@ieee.org> - Christopher Faylor <cgf@redhat.com> - - * init.cc (munge_threadfunc): Handle all instances of search_for. - (prime_threads): Test threadfunc_ix[0]. - -2004-03-21 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cheap): Set initial_sz to something or suffer - spurious output. - (cygheap_fixup_in_child): Set alloc_sz to passed in size to ensure that - children will have the right size heap. - (_csbrk): Make output conditional on DEBUGGING. - -2004-03-21 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cheap): Conditionalize debugging code. - -2004-03-21 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cheap): Add ability to specify minimal cygwin heap - size when debugging. - (_csbrk): Report error in allocation to stderr. - (ccalloc): Ditto. - * dtable.cc (dtable::find_fifo): Remove use of atoms. - * dtable.h (dtable::find_fifo): Ditto. - * fhandler.h (fhandler_fifo): Ditto. - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Ditto. - (fhandler_fifo::set_use): Ditto. - (fhandler_fifo::open_not_mine): Ditto. - (fhandler_fifo::open): Ditto. - * pinfo.cc (_pinfo::commune_recv): Ditto. - (_pinfo::commune_send): Ditto. - -2004-03-19 Pierre Humblet <pierre.humblet@ieee.org> - - * dir.cc (rmdir): Reorganize error handling to reduce indentation. - -2004-03-19 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 10. - -2004-03-18 Christopher Faylor <cgf@redhat.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset to new value. - (child_info::cygheap_alloc_sz): New field. - * cygheap.cc (init_cheap): Reduce size of cygwin stack until minimal - hit when attempting initial allocation. - (cygheap_setup_for_child): Use alloc_sz to create secondary memory - mapped entry. Store alloc_sz in cygheap_alloc_sz. - (cygheap_fixup_in_child): Use cygheap_alloc_sz to map parent's cygheap. - * cygheap.h (_CYGHEAPSIZE_SLOP): New define. - (CYGHEAPSIZE): Use _CYGHEAPSIZE_SLOP. - -2004-03-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_meminfo): On NT, try to figure out - real swap file usage by requesting SystemPagefileInformation. Use - GlobalMemoryStatus as fallback. - * ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemPagefileInformation. - (struct _SYSTEM_PAGEFILE_INFORMATION): Define. - -2004-03-17 Christopher Faylor <cgf@redhat.com> - - * pipe.cc (fhandler_pipe::dup): Fix debugging message. - -2004-03-17 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 9. - -2004-03-16 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (proc_terminate): Release sync_proc_subproc when done - terminating or suffer potential hangs. - (get_proc_lock): Reorganize debugging output slightly. - -2004-03-15 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_cygtls::fixup_after_fork): Just manipulate the signal - stack if a signal occurred during the parent's fork. Otherwise leave - it alone. - -2004-03-15 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (try_to_debug): Report on tid of caller. - - * sync.cc (muto::acquire): Fix some races. - * sync.h (muto): Expose some fields for easier debugging. - -2004-03-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_tape::tape_get_pos): Declare with extra - parameter for partition number. - (fhandler_dev_tape::_tape_set_pos): Ditto. - (fhandler_dev_tape::tape_partition): New method. - (fhandler_dev_tape::tape_set_partition): New method. - * fhandler_tape.cc (fhandler_dev_tape::open): Call private methods - directly instead of ioctl. - (fhandler_dev_tape::ioctl): Use long erase on MTERASE by default. - Don't use absolute positioning on MTSEEK. Call tape_set_partition - on MTSETPART, tape_partition on MTMKPART. - (fhandler_dev_tape::tape_get_pos): Add partition number parameter. - Prefer logical position information over absolute position information. - Return partition number. - (fhandler_dev_tape::_tape_set_pos): Add partition number parameter. - Use in SetTapePosition. - (fhandler_dev_tape::tape_set_pos): Remove special TAPE_ABSOLUTE_BLOCK - handling. - (fhandler_dev_tape::tape_erase): Rewind before erasing. - (fhandler_dev_tape::tape_status): Rearrange slightly. Try to get a - MediaType even if no tape is loaded. Store active partition in - mt_resid as on Linux. - (fhandler_dev_tape::tape_partition): New method. - (fhandler_dev_tape::tape_set_partition): New method. - * include/cygwin/mtio.h: Fix copyright. Add comment to explain - mt_resid content. - * include/cygwin/version.h: Bump API minor number. - -2004-03-14 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_cygtls::remove): Call remove_wq even when we can't - necessarily get the cygtls table lock. - * cygtls.h (_cygtls::remove_wq): Add wait argument. - * sigproc.cc (_cygtls::remove_wq): Honor wait argument when acquiring - lock. - (proc_terminate): Don't NULL sync_proc_subproc since other threads may - still try to access it. - -2004-03-14 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_BEGINNING_OF_MEDIA and - ERROR_SETMARK_DETECTED to EIO instead of ESPIPE. - Handle ERROR_FILEMARK_DETECTED. - * fhandler_tape.cc (TAPE_FUNC): Add comment that ERROR_BUS_RESET - has still to be handled correctly. - (fhandler_dev_tape::open): Accommodate fact that get.mt_dsreg - also contains density code. - (fhandler_dev_tape::ioctl): Rearrange slightly. Reset devbuf also on - MTNOP, MTWSM, MTSETBLK, MTSETDRVBUFFER, MTSETPART and MTMKPART. - (fhandler_dev_tape::tape_set_pos): Rearrange. Match behaviour to - the Linux tape driver. - (fhandler_dev_tape::tape_status): Call IOCTL_STORAGE_GET_MEDIA_TYPES_EX - if available. Return device type and density code in appropriate - mtget members. - * wincap.h (wincaps::has_ioctl_storage_get_media_types_ex): New element. - * wincap.cc: Implement above element throughout. - * include/cygwin/mtio.h: Add tape device types as returned by - IOCTL_STORAGE_GET_MEDIA_TYPES_EX. - (MT_TAPE_INFO): Use above type codes. - (struct mtget): Change mt_dsreg comment. - -2004-03-14 Pierre Humblet <pierre.humblet@ieee.org> - - * dir.cc (rmdir): Construct real_dir with flag PC_FULL. - Use a loop instead of recursion to handle the current directory. - -2004-03-14 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_cygtls::remove): Call remove_wq to ensure that wait stuff - is removed from proc_subproc linked list. - * cygtls.h (_cygtls::remove_wq): Declare. - * sigproc.cc (_cygtls::remove_wq): Define. - (proc_subproc): Label event handle appropriately. - * spawn.cc (spawn_guts): Return -1 when wait() fails for spawn types - that require waiting. - -2004-03-13 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Handle ERROR_BUS_RESET. - * fhandler.h (fhandler_dev_raw::write_file): New method, created - from former static function. - (fhandler_dev_raw::read_file): Ditto. - (reset_devbuf): New inline method. - (class fhandler_dev_tape): Add TAPE_GET_DRIVE_PARAMETERS - member `dp'. - (fhandler_dev_tape::write_file): New method. - (fhandler_dev_tape::read_file): Ditto. - (fhandler_dev_tape::tape_get_feature): Convert to inline method. - (fhandler_dev_tape::tape_error): New method, created from former - static function. - (fhandler_dev_tape::tape_get_blocksize): Remove declaration. - * fhandler_raw.cc (fhandler_dev_raw::write_file): New method, created - from former static function. - (fhandler_dev_raw::read_file): Ditto. - (fhandler_dev_raw::writebuf): Accommodate the fact that no devbuf - exists under variable block size condition. - (fhandler_dev_raw::raw_read): Ditto. Add local p pointer to simplify - pointer arithmetic. - (fhandler_dev_raw::raw_write): Always set devbufend to 0 when starting - with writing. Accommodate the fact that no devbuf exists under - variable block size condition. - * fhandler_tape.cc: Various formatting changes. - (TAPE_FUNC): New macro. Use throughout as tape function loop. - (get_ll): Convert into macro. - (IS_EOM): New macro. - (IS_EOF): New macro. - (fhandler_dev_tape::is_eom): Use IS_EOM macro. - (fhandler_dev_tape::is_eof): Use IS_EOF macro. - (fhandler_dev_tape::write_file): New method. - (fhandler_dev_tape::read_file): New method. - (fhandler_dev_tape::open): Get drive information block here once. - (fhandler_dev_tape::lseek): Remove unneeded duplicate code. - (fhandler_dev_tape::dup): Duplicate drive information block. - (fhandler_dev_tape::ioctl): Remove drvbuf in variable block size mode. - Return ERROR_INVALID_BLOCK_LENGTH instead of ERROR_MORE_DATA if - buffer contains data which would get lost on buffer size changing. - Use absolute tape positioning also if drive only supports logical - block positioning. - (fhandler_dev_tape::tape_error): New method, created from former - static function. - (fhandler_dev_tape::tape_get_pos): Allow logical block reporting. - Workaround tape driver bug. - (fhandler_dev_tape::_tape_set_pos): Reset device buffer and flags - after successful repositioning. - (fhandler_dev_tape::tape_set_pos): Allow logical block positioning. - Workaround tape driver bug. - (fhandler_dev_tape::tape_erase): Use dp instead of calling - GetTapeParameters. - (fhandler_dev_tape::tape_prepare): Ditto. - (fhandler_dev_tape::tape_get_blocksize): Remove. - (fhandler_dev_tape::tape_set_blocksize): Don't call tape_get_blocksize. - Error handling already done in fhandler_dev_tape::ioctl. - (fhandler_dev_tape::tape_status): Remove local `dp' variable. - Accommodate logical tape reporting. Call tape_get_feature instead - of accessing feature words directly. - (fhandler_dev_tape::tape_compression): Use dp instead of calling - GetTapeParameters. Fix resetting datcompression. - -2004-03-12 Christopher Faylor <cgf@redhat.com> - - * wait.cc (wait4): Initialize pointer on entry. Avoid calling - call_signal_handler twice since that guarantees exiting with errno set - to EINTR. - -2004-03-12 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (sigpacket::process): Simplify code slightly. - -2004-03-11 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (waitq): Declare structure here. - (_cygtls::wq): Declare. - * cygtls.cc (_cygtls::fixup_after_fork): Clear wq.thread_ev to avoid - using an invalid event handle in forked process. - * dcrt0.cc (waitq_storage): Delete. - (threadstuff): Remove waitq_storage. - * perthread.h (per_thread_waitq): Delete. - (waitq_storage): Delete declaration. - * sigproc.cc (sigproc_init): Remove perthread waitq consideration. - * sigproc.h (waitq): Delete declaration. - * wait.cc (wait4): Use _my_tls waitq structure rather than per_thread. - -2004-03-11 Pierre Humblet <pierre.humblet@ieee.org> - - * cygtls.h (_cygtls::newmask): Delete member. - (_cygtls::deltamask): New member. - * gendef (_sigdelayed): Replace the call to set_process_mask by a call - to set_process_mask_delta. - * exceptions.cc (handle_sigsuspend): Do not filter tempmask. Or - SIG_NONMASKABLE in deltamask as a flag. - (_cygtls::interrupt_setup): Set deltamask only. - (set_process_mask_delta): New function. - (_cygtls::call_signal_handler): Replace the first call to - set_process_mask by a call to set_process_mask_delta. - * tlsoffsets.h: Regenerate. - -2004-03-11 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_cygtls::fixup_after_fork): Remove unneeded setting of - oldmask. - * exceptions.cc: Remove some __I386__ conditionals. - (handle_exceptions): Move ppid test to outside of a loop for - efficiency. - (setup_handler): Make debugging output more wordy. - (_cygtls::call_signal_handler): To avoid a race, use lock/unlock to - synchronize with signal thread and ensure that signal_arrived event has - actually been set. - * gendef (_sigfe): Use ebx for all sigstack manipulations to ensure - that the register is saved. Move setting of incyg to within stack lock - to avoid setup_handler confusion. - (_sigbe): Use ebx for all sigstack manipulations to ensure that the - register is saved. - (_cygtls::pop): Ditto. - (_cygtls::lock): Ditto. - (stabilize_sig_stack): Ditto. - (setjmp): Ditto. - (longjmp): Ditto. - -2004-03-08 Jaakko Hyvatti <jaakko.hyvatti@iki.fi> - - * fhandler_serial.cc (fhandler_serial::ioctl): Implement TIOCSBRK and - TIOCCBRK. - * include/sys/termios.h: Define TIOCSBRK and TIOCCBRK. - -2004-03-08 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Avoid suspending a thread if it is in - a cygwin function, in an exception, spinning, or locked. - * gendef (_sigfe): Move incyg setting earlier. - (sigreturn): Set incyg flag to avoid interrupting called cygwin - functions. - (sigdelayed): Ditto. - (stabilize_sig_stack): Ditto. - - * sigproc.cc (proc_subproc): Don't restore process lock early in exec - case. - - * cygtls.h: Reorganize fields in _cygtls slightly. - * tlsoffsets.h: Regenerate. - -2004-03-06 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_parent): Save parent pid in a temporary variable since - child could conceivably exit before function returns, rendering the - child's shared memory area invalid. - - * cygtls.h (_cygtls::incyg): Declare new field. - (_cygtls::in_exception): Define new function. - * exceptions.cc (setup_handler): Remove locked flag. Use 'incyg' flag - and in_exception function to determine when we're in a cygwin function. - (_cygtls::call_signal_handler): Decrement incyg flag prior to calling a - handler. Increment it on return. - * gendef (_sigfe): Increment incyg flag. Use testl for zero testing - rather than orl, for consistency. - (_sigbe): Decrement incyg flag. Use testl for zero testing rather than - orl, for consistency. - (_cygtls::pop): Use testl for zero testing rather than orl, for - consistency. - (stabilize_sig_stack): Ditto. - - * tlsoffsets.h: Regenerate. - -2004-03-05 Christopher Faylor <cgf@redhat.com> - - * gendef (sigdelayed): Handle return here rather than going through - sigbe to ensure that flags are properly restored. - -2004-03-04 Thomas Pfaff <tpfaff@gmx.net> - - * include/pthread.h (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): New - define. - (PTHREAD_NORMAL_MUTEX_INITIALIZER_NP): Ditto. - (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Ditto. - * thread.cc (pthread_mutex::is_good_initializer): Check for all - posssible initializers - (pthread_mutex::is_good_initializer_or_object): Ditto. - (pthread_mutex::is_good_initializer_or_bad_object): Ditto. - (verifyable_object_isvalid): Support up to three static initializers. - (verifyable_object_isvalid (void const *,long)): Remove. - (pthread_cond::is_good_initializer_or_bad_object): Remove unneeded - objectState var. - (pthread_cond::init): Condition remains unchanged when creation has - failed. - (pthread_rwlock::is_good_initializer_or_bad_object): Remove unneeded - objectState var. - (pthread_rwlock::init): Rwlock remains unchanged when creation has - failed. - (pthread_mutex::init): Remove obsolete comment. Mutex remains - unchanged when creation has failed. Add support for new initializers. - (pthread_mutex_getprioceiling): Do not create mutex, just return - ENOSYS. - (pthread_mutex_lock): Simplify. - (pthread_mutex_trylock): Remove unneeded local themutex. - (pthread_mutex_unlock): Just return EPERM if mutex is not initialized. - (pthread_mutex_setprioceiling): Do not create mutex, just return - ENOSYS. - * thread.h (verifyable_object_isvalid): Support up to three static - initializers. - (verifyable_object_isvalid (void const *,long)): Remove prototype. - (pthread_mutex::init): Add optional initializer to parameter list. - -2004-03-03 Christopher Faylor <cgf@redhat.com> - - * gendef (sigreturn): Call stabilize_sig_stack to ensure that there are - no pending signals. Restore edx later. - (sigdelayed): Save edx earlier. - - * malloc_wrapper.cc (malloc_init): Add some more debugging output. - -2004-03-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::raw_read): When reading with - variable block size, read only one block, read directly into user - supplied buffer, return ENOMEM if user supplied buffer is smaller - than size of next block to read. Use read2 instead of bytes_to_read - to count number of bytes read. - * fhandler_tape.cc (fhandler_dev_tape::open): Add debug output. - -2004-02-26 Brian Ford <ford@vss.fsi.com> - - * miscfuncs.cc (check_invalid_virtual_addr): Assure the last page - in the range is always tested. Add appropriate const. - * mmap.cc (mmap_record::alloc_fh): Remove unused static path_conf object. - -2004-02-25 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (setup_handler): Signal event for any sigwaitinfo, if it - exists, to force signal to be handled. Zero event here to prevent - races. - * signal.cc (sigwaitinfo): Use local handle value for everything since - signal thread could zero event element at any time. Detect when - awaking due to thread not in mask and set return value and errno - accordingly. Don't set signal number to zero unless we've recognized - the signal. - * sigproc.cc (sigq): Rename from sigqueue throughout. - - * thread.cc (pthread::join): Handle signals received while waiting for - thread to terminate. - -2004-02-25 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Export sighold, sigqueue. - * exceptions.cc (sighold): Define new function. - * signal.cc (handle_sigprocmask): Set correct errno for invalid signal. - Simplify debugging output. - (sigqueue): Define new function. - * include/cygwin/signal.h (sighold): Declare new function. - (sigqueue): Ditto. - * include/cygwin/version.h: Bump API minor version number. - * include/limits.h (TIMER_MAX): Define. - (_POSIX_TIMER_MAX): Ditto. - -2004-02-25 Brian Ford <ford@vss.fsi.com>, - Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (check_invalid_virtual_addr): New function. - * winsup.h (check_invalid_virtual_addr): Declare. - * mmap.cc (munmap): Call check_invalid_virtual_addr instead of - IsBadReadPtr. - -2004-02-24 Christopher Faylor <cgf@redhat.com> - - * gendef (stabilize_sig_stack): Correctly align this pointer for call - to _cygtls::call_signal_handler. - * gentls_offsets: Output sizeof field. - * tlsoffsets.h: Regenerate. - -2004-02-24 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (_dll_crt0): Don't check sync_startup if threadfunc_ix is set. - - * external.cc (cygwin_internal): Implement CW_GET_BINMODE. - * include/sys/cygwin.h: Declare CW_GET_BINMODE. - -2004-02-24 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (_dll_crt0): Add some stern internal errors. - -2004-02-24 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::cancelable_wait): Rearrange slightly. - Add do_sig_wait parameter. Wait for signal_arrived if set to true. - Return WAIT_SIGNALED if signal arrived. - (pthread_cond::wait): Accommodate change to pthread::cancelable_wait. - (pthread::join): Ditto. - (semaphore::_timedwait): Ditto. - (semaphore::_wait): Ditto. Change to return int to allow status - feedback. - (semaphore::wait): Return return value from semaphore::_wait. - * thread.h (WAIT_SIGNALED): New definition. - (pthread::cancelable_wait): Change declaration. Define do_sig_wait - as false by default to not interfere with existing calls accidentally. - (semaphore::_wait): Declare int. - -2004-02-21 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sigpacket::process): Make sure that tls is filled in - for SIGSTOP condition. - (_cygtls::call_signal_handler): Restore signal mask using saved oldmask - rather than current oldmask. - -2004-02-20 Christopher Faylor <cgf@redhat.com> - - * path.cc (conv_path_list): Return error condition. - (copy1): New function. - (copyenc): New function. - (mount_item::fnmunge): Return error condition. Use new functions to - copy strings. - (mount_item::build_win32): Ditto. - (mount_info::conv_to_win32_path): Return error condition. - (cygwin_conv_to_posix_path): Return result of path conversion. - (cygwin_conv_to_full_posix_path): Ditto. - (return_with_errno): New macro. - (cygwin_win32_to_posix_path_list): Use new macro to potentially set - errno. - (cygwin_posix_to_win32_path_list): Ditto. - * path.h (mount_item::fnmunge): Add size argument. - (mount_item::build_win32): Ditto. - -2004-02-20 Corinna Vinschen <corinna@vinschen.de> - - * getopt.c: Avoid useless compiler warnings. - -2004-02-20 Corinna Vinschen <corinna@vinschen.de> - - * getopt.c: Replace with latest vanilla(!) OpenBSD version 1.16. - -2004-02-18 Christopher Faylor <cgf@redhat.com> - - * fork.cc (fork_child): Invert sense of test which defeated correct - handling in a fork from a non-main thread. - - * dcrt0.cc (initial_env): Eliminate parameter and just send DebugBreak - when appropriate. - (dll_crt0_0): Reflect parameter change to initial_env. - (dll_crt0_1): Don't call initial_env. - -2004-02-18 Christopher Faylor <cgf@redhat.com> - - * gendef (stabilize_sig_stack): New function. - (setjmp): Import, add sig stack handling. Store sig stack info. - (longjmp): Call stabilize_sig_stack. Restore sig stack info. - * config/i386/setjmp.c: Remove. - -2004-02-17 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork_child): Move fixup_shms_after_fork so that - signal_arrived is initialized when calling it. - -2004-02-17 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (clean): Clean libserver, too. - - * fhandler.cc (fhandler_base::~fhandler_base): Remove path_conv cleanup. - * syscalls.cc (chroot): Ditto. - * path.cc (path_conv::~path_conv): Define new destructor. - (conv_path_list_buf_size): Remove explicit path_conv cleanup. - * path.h (path_conv::~path_conv): Declare new destructor. - -2004-02-16 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Compile flock.o with -fomit-frame-pointer. - -2004-02-16 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Compile dlfcn.o with -fomit-frame-pointer. - -2004-02-16 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Compile delqueue.o with -fomit-frame-pointer. - -2004-02-16 Pierre Humblet <pierre.humblet@ieee.org> - - * syscalls.cc (rename): Do not test the MoveFile error code - where MoveFileEx exists. - -2004-02-15 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (_csbrk): Report more debugging details on failing - condition. - -2004-02-14 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Compile syscalls.o with -fomit-frame-pointer. - - * sigproc.cc: Eliminate unused variable. - -2004-02-14 Corinna Vinschen <corinna@vinschen.de> - - * getopt.c: Replace with latest NetBSD version 1.16. Keep Cygwin - specific changes as minimal as possible. - -2004-02-13 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (proc_subproc): Change warning back to silent debug - output. - -2004-02-13 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (alloc_stack_hard_way): Revert to previous implementation. - (alloc_stack): Ditto. - * exceptions.cc (ctrl_c_handler): Add debugging output. - -2004-02-13 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (clean): Remove sigfe.s. - (sigfe.s): Ensure that sigfe.s will be regenerated if it does not exist. - * dll_init.cc (dll_dllcrt0): Simplify initializing tests. - - * exceptions.cc (setup_handler): Detect when stub caller is either - spinning or has acquired the lock after being suspended to avoid - windows problems with suspending a win32 API call. - - * cygtls.h (_cygtls::spinning): Declare new element. - * gendef: Remove unused _siglist_index and _siglist declaration. - (_sigfe): Set spinning element when potentially looping, waiting for lock. - (_sigbe): Ditto. - (_cygtls::lock): Ditto. - (_longjmp): Ditto. - * tlsoffsets.h: Regenerate. - * pinfo.cc (_pinfo::exit): Set final exit state here. Call sigproc_terminate if - invoked with 'norecord'. Clear any residual _cygtls stuff. - * winsup.h (exit_states): Define ES_FINAL. - * spawn.cc (spawn_guts): Don't call proc_terminate specifically when - execing. Let _pinfo::exit handle that case. - - * sigproc.cc (wait_subproc): Always exit loop early when proc_loop_wait. - - * init.cc (munge_threadfunc): Eliminate unused argument. - (dll_entry): Reflect above change in call to munge_threadfunc. - -2004-02-11 Christopher Faylor <cgf@redhat.com> - - * gendef (_sigbe): Zero location on pop. - (_cygtls::pop): Ditto. - -2004-02-11 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (alloc_stack_hard_way): Eliminate second argument. - (alloc_stack): Remove use of 'b' throughout. - -2004-02-11 Christopher Faylor <cgf@redhat.com> - - Rename _threadinfo to _cygtls, throughout. - * cygtls.h (_cygtls::call_signal_handler): Rename from - call_signal_handler_now. - (_cygtls::push): Make second argument mandatory. - (_cygtls::fixup_after_fork): Declare new function. - (_cygtls::lock): Ditto. - * cygtls.cc (_cygtls::fixup_after_fork): Define new function. - * dcrt0.cc (cygwin_finished_initializing): Define as bool. - (alloc_stack): Use _tlstop rather than arbitrary variable in probably - vain attempt to avoid strange fork problem on CTRL-C. - (dll_crt0_0): Remove obsolete winpids::init call. - * dll_init.cc (dll_dllcrt0): Detect forkee condition as equivalent to - initializing. - * winsup.h (cygwin_finished_initializing): Declare as bool. - * exceptions.cc (handle_exceptions): Rely on - cygwin_finished_initializing to determine how to handle exception - during process startup. - (_cygtls::call_signal_handler): Rename from call_signal_handler_now. - (_cygtls::interrupt_now): Fill in second argument to push. - (signal_fixup_after_fork): Eliminate. - (setup_handler): Initialize locked to avoid potential inappropriate - unlock. Resume thread if it has acquired the stack lock. - (ctrl_c_handler): Just exit if ctrl-c is hit before cygiwn has finished - initializing. - * fork.cc (sync_with_child): Don't call abort since it can cause exit - deadlocks. - (sync_with_child): Change debugging output slightly. - (fork_child): Set cygwin_finished_initializing here. Call _cygtls fork - fixup and explicitly call sigproc_init. - (fork_parent): Release malloc lock on fork failure. - (vfork): Call signal handler via _my_tls. - * sigproc.cc (sig_send): Ditto. - * syscalls.cc (readv): Ditto. - * termios.cc (tcsetattr): Ditto. - * wait.cc (wait4): Ditto. - * signal.cc (nanosleep): Ditto. - (abort): Ditto. - (kill_pgrp): Avoid killing self if exiting. - * sync.cc (muto::acquire): Remove (temporarily?) ill-advised - exiting_thread check. - * gendef (_sigfe): Be more agressive in protecting stack pointer from - other access by signal thread. - (_cygtls::locked): Define new function. - (_sigbe): Ditto. - (_cygtls::pop): Protect edx. - (_cygtls::lock): Use guaranteed method to set eax to 1. - (longjmp): Aggressively protect signal stack. - * miscfuncs.cc (low_priority_sleep): Reduce "sleep time" for secs == 0. - * pinfo.cc (winpids::set): Counterintuitively use malloc's lock to - protect simultaneous access to the pids list since there are - pathological conditions which can cause malloc to call winpid. - (winpids::init): Eliminate. - * pinfo.h (winpids::cs): Eliminate declaration. - * pinfo.h (winpids::init): Eliminate definition. - -2004-02-11 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_nt_object_attribute): Fix error handling. - -2004-02-09 Ralf Habacker <ralf.habacker@freenet.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Add FIONREAD handling. - -2004-02-08 Christopher Faylor <cgf@redhat.com> - - * debug.h (console_printf): Define for non-debugging condition. - - * cygtls.h (_threadinfo::lock): Remove wait argument. - (_threadinfo::interrupt_setup): Remove retaddr argument. - * exceptions.cc (_threadinfo::interrupt_setup): Ditto. - (_threadinfo::interrupt_now): Accommodate change to interrupt_setup - argument. - (setup_handler): Ditto. Always lock sig stack prior to determining - interrupt method. - * gendef (_sigfe): Correct thinko regarding cmpxchg. - (_sigbe): Ditto. - (_threadinfo::lock): Ditto. - (_threadinfo::pop): Eliminate left-over stack unlock. - * sigproc.cc (proc_subproc): Change debugging output to printed - warning. - -2004-02-08 Christopher Faylor <cgf@redhat.com> - - * localtime.cc (localtime_r): Call tzset. - - * Makefile.in: Make version.h/cygwin.din version check a warning since - it is not foolproof. - - * cygheap.h (CYGHEAPSIZE): Bump size down. - - * cygtls.h (_threadinfo::stacklock): New element. - (_threadinfo::pop): Make regparm. - (_threadinfo::lock): New function. - (_threadinfo::unlock): New function. - * cygtls.cc (_threadinfo::push): Wait for a lock on the stack before - performing the operation. - (_threadinfo::pop): Move to another file. - * cygwin.din: More SIGFE changes. - * exceptions.cc (try_to_debug): Always display messages on console. - (handle_exceptions): Unwind stack only when actually about to call - sig_send. - (setup_handler): Lock stack prior to performing any operations. - * gendef (_sigfe): Ditto. - (_sigbe): Ditto. - (_threadinfo::pop): Ditto. Move here. - * gen_tlsoffsets: Generate positive offsets. - * tlsoffsets.h: Regenerate. - -2004-02-06 Corinna Vinschen <corinna@vinschen.de> - - * cygserver.h (CYGWIN_SERVER_VERSION_API): Bump. - * cygserver_ipc.h (struct proc): Add signal_arrived member. - (ipc_set_proc_info): Inititalize blk.signal_arrived. - -2004-02-06 Pierre Humblet <pierre.humblet@ieee.org> - - * uinfo.cc (cygheap_user::init): Use sec_user_nih to build a - security descriptor. Set both the process and the default DACLs. - * fork.cc (fork_parent): Use sec_none_nih security attributes. - * spawn.cc (spawn_guts): Ditto. - -2004-02-05 Christopher Faylor <cgf@redhat.com> - - * cygwin.din: Make many more functions SIGFE. - * include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump. - -2004-02-05 Pierre Humblet <pierre.humblet@ieee.org> - - * security.h (SID): New macro. - (well_known_*_sid): Change type to cygpsid. - (cygsid::init): Delete declaration. - * sec_helper.cc (well_known_*_sid): Define using above SID macro. - (cygsid::init): Delete. - * dcrt0.cc (dll_crt0_0): Do not call cygsid::init. - * security.cc (get_user_local_groups): Change the second argument type - to cygpsid. - -2004-02-03 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (_local_storage::signamebuf): Increase size to prevent - overflow on really odd values. - * tlsoffsets.h: Regenerate. - -2004-02-03 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_OFILES): Add strsig.o. - * cygtls.h (_local_storage::signamebuf): New element. - * sysconf.cc (sysconf): Implement _SC_RTSIG_MAX. - * tlsoffsets.h: Regenerate. - * include/limits.h (_POSIX_RTSIG_MAX): New define. - (RTSIG_MAX): Ditto. - * include/cygwin/signal.h (SIGRTMIN): New define. - (SIGRTMAX): Ditto. - (NSIG): Bump. - * strsig.cc: New file. - -2004-02-03 Jason Tishler <jason@tishler.net> - - * window.cc (Winmain): Show windows error code in error output when - RegisterClass fails. - -2004-02-02 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (*::fixup_after_exec): Eliminate unused handle argument. - * fhandler.h (dtable::fixup_after_exec): Eliminate unused handle - argument. - * dcrt0.cc (dll_crt0_1): Reflect elimination of unused handle argument - to fixup_after_exec. - * dtable.cc (dtable::fixup_after_exec): Ditto. - * fhandler_console.cc (fhandler_console::fixup_after_exec): Ditto. - * fhandler_dsp.cc (fhandler_dsp::fixup_after_exec): Ditto. - * fhandler_raw.cc (fhandler_raw::fixup_after_exec): Ditto. - * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Ditto. - * fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Ditto. - * pipe.cc (fhandler_pipe::fixup_after_exec): Ditto. - -2004-02-02 Pierre Humblet <pierre.humblet@ieee.org> - - * spawn.cc (spawn_guts): Do not set ciresrv.parent. - * child_info.h (child_info_spawn::~child_info_spawn): Do not close - parent. Update CURR_CHILD_INFO_MAGIC. - * dcrt0.cc (dll_crt0_0): Do not close spawn_info->parent. Pass NULL to - cygheap->fdtab.fixup_after_exec(). - -2004-02-02 Christopher Faylor <cgf@redhat.com> - - Throughout, change name from set_inheritance to set_no_inheritance to - better reflect input arguments of this function. - - * cygheap.h (CYGHEAPSIZE): Increase size of cygheap to something closer - to the 21st century. - -2004-02-02 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (set_errno): Replace semicolon with comma in non-DEBUGGING - version to avoid compile time error. - -2004-02-01 Christopher Faylor <cgf@redhat.com> - - * cygerrno.h (set_errno): Set global errno whenever setting thread - specific version. - * debug.cc (__set_errno): Ditto. - - * exceptions.cc (handle_sigsuspend): Remove spurious - sig_dispatch_pending call. - (set_signal_mask): When there seem to be pending signals to dispatch, - tell signal_dispatch_pending/sig_send not to specifically call any - handlers. - * sigproc.h (sig_dispatch_pending): Change declaration to void. - * sigproc.cc (sig_dispatch_pending): Change definition to void. Take - an argument to determine whether to tell sig_send to wait for handler - to be called. - * sigproc.cc (sig_send): Don't call signal handler when sig == - __SIGFLUSHFAST. - (wait_sig): Honor __SIGFLUSHFAST. Guard against sigpacket::process - nuking si_signo. - * sigproc.h (__SIGFLUSHFAST): Define new special signal. - (sig_dispatch_pending): Change declaration to void. Take optional - boolean argument. - - * fork.cc (vfork): Add debugging output. - -2004-01-26 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle_tty_stop): Avoid races by waiting for both - signal_arrived and for sigCONT. - (sigpacket::process): Enforce sending of both signal_arrived and - sigCONT, where appropriate. - * gendef (sigreturn): Save tls pointer in ebx so that it can jump into - sigdelayed and use the same register. - -2004-01-26 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_threadinfo::init_thread): Add more local reent stdio - initialization. - * dcrt0.cc (initial_env): Can it really be true that XP doesn't allow - attaching a debugger during DLL attach? Add temporary workaround. - (dll_crt0_0): Ensure that _impure_ptr stdio is initialized before any - threads. - (dll_crt0_1): Move _impure_ptr initialization to dll_crt0_0. - * exceptions.cc (try_to_debug): Reinstate old method for looping while - debugging. - * syscalls.cc (_cygwin_istext_for_stdio): Regularize debugging output. - Remove hopefully extraneous check. - (setmode_helper): Add debugging output for improbable case. Use - "binary" rather "raw" for consistency. - -2004-01-25 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::fhaccess): Avoid always setting errno to - EACCESS when return value is < 0. Rely on errno being set properly. - -2004-01-25 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (proc_subproc): Don't protect *child's* handle. - -2004-01-24 Christopher Faylor <cgf@redhat.com> - - * fhandler.h (fhandler_base::fhaccess): Return int for compatibility - with access. - * fhandler.cc (fhandler_base::fhaccess): Return int. Use consistent - variable name for exit value. Exit at bottom, printing debugging - information, like other cygwin functions. - -2004-01-23 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cygheap::close_ctty): Protect YA vforkism. - * fhandler.h (fhandler_base::has_acls): Make pass through for path_conv - method. - (fhandler_base::isremote): Ditto. - (fhandler_base::is_fs_special): Ditto. - (fhandler_base::has_attribute): Ditto. Define new function. - (fhandler_base::fhaccess): Declare new function based on access_worker. - (fhandler_base::set_has_acls): Eliminate obsolete function. - (fhandler_base::set_isremote): Ditto. - * fhandler.cc (fhandler_base::fhaccess): Move from syscalls.cc and into - fhandler_base class. Use fhandler methods to access data rather than - path_conv stuff. - (fhandler_base::device_access_denied): Use fhaccess method. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto. - (fhandler_base::open_fs): Remove calls to obsolete functions. - * fhandler_virtual.cc (fhandler_virtual::open): Ditto. - * winsup.h (access_worker): Remove obsolete access_worker declaration. - *syscalls.cc (access_worker): Move function to fhandler.cc. - (access): Use fhaccess method. - - * pinfo.cc (_pinfo::set_ctty): Clarify debugging output. - * sigproc.cc (sig_dispatch_pending): Ditto. - * syscalls.cc (setsid): Perform minor rearrangement. - -2004-01-23 Pierre Humblet <pierre.humblet@ieee.org> - - * fhandler_socket.cc (fhandler_socket::create_secret_event): Avoid - creating multiple handles. Always allow event inheritance but set the - handle inheritance appropriately. Improve error handling. - (fhandler_socket::check_peer_secret_event): Improve error handling. - (fhandler_socket::close_secret_event): Simply call CloseHandle. - (fhandler_socket::set_close_on_exec): Set secret event inheritance. - -2004-01-23 Christopher Faylor <cgf@redhat.com> - - * configure.in: Remove NEWVFORK default. - * configure: Regenerate. - * dcrt0.cc: Conditionalize vfork stuff throughout. - * dtable.cc: Ditto. - * perthread.h: Ditto. - * pipe.cc (fhandler_pipe::close): Ditto. - * spawn.cc (spawnve): Ditto. - * syscalls.cc (setsid): Ditto. - * exceptions.cc (sigpacket::process): Use macro to refer to vfork pid. - - * debug.cc (verify_handle): Define new function. - * debug.h (VerifyHandle): Define new macro. - (verify_handle): Declare new function - * fhandler.cc (fhandler_base::dup): Verify that dup'ed handle is not - supposed to be in use. - (fhandler_base::set_inheritance): Ditto. - (fhandler_base::fork_fixup): Ditto. - * fhandler_socket.cc (fhandler_socket::dup): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - * net.cc (set_socket_inheritance): Ditto. - * pinfo.cc (pinfo_fixup_after_exec): Ditto. - * sigproc.cc (proc_subproc): Ditto. - (sig_send): Ditto. - * spawn.cc (spawn_guts): Ditto. - * thread.cc (pthread::init_mainthread): Ditto. - * pipe.cc (fhandler_pipe::close): Close read_state with - ForceCloseHandle since it was protected. - (fhandler_pipe::fixup_after_exec): Protect read_state handle. - (fhandler_pipe::dup): Correctly close open handles on error condition. - Verify that dup'ed handle is not supposed to be in use. - (fhandler_pipe::create): Protect read_state. - -2004-01-23 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (sig_handle_tty_stop): Fix boneheaded mistake by using - correct check for parent state rather than inverted check mistakenly - introduced on 2003-09-15. - -2004-01-22 Brian Ford <ford@vss.fsi.com> - - * fhandler_serial.cc (fhandler_serial::raw_write): Prevent a deadlock - when the input buffer overflows. - (fhandler_serial::raw_read): Correct to print the actual error and only - call PurgeComm when necessary. - -2004-01-22 Christopher Faylor <cgf@redhat.com> - - * dcrt0.cc (reent_data): Make global. - * cygwin.din: Reexport reent_data. - -2004-01-22 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_threadinfo::remove): Don't assume that we are removing - _my_tls. - * exceptions.cc (setup_handler): Improve debugging output. - (call_signal_handler_now): Remove ill-advised debugger call. - * sigproc.cc (sigcomplete_main): Delete. - (sig_send): Honor FIXME and avoid using main thread's completion event - for everything or suffer races. - (pending_signals::add): Default stored mask to current process mask - rather than mask at time of signal send. - (wait_sig): Add debugging output. - * sigproc.h (sigpacket::mask_storage): Delete. - -2004-01-22 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::open): Revert isfs change. - -2004-01-21 Christopher Faylor <cgf@redhat.com> - - * devices.in: Change raw com device to more correct form. - -2004-01-21 Christopher Faylor <cgf@redhat.com> - - * fhandler.cc (fhandler_base::open): Use major numbers rather than - device numbers to control special behavior for devices which take - units. - * fhandler_raw.cc (fhandler_dev_raw::writebuf): Ditto. - (fhandler_dev_raw::fstat): Ditto. - (fhandler_dev_raw::open): Ditto. - (fhandler_dev_raw::ioctl): Ditto. - -2004-01-21 Nicholas Wourms <nwourms@netscape.net> - - * signal.cc (sigaction): Fix if-statement typo. - -2004-01-21 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (handle_threadlist_exception): Change logic, improve - debugging output. - -2004-01-21 Christopher Faylor <cgf@redhat.com> - - * fhandler_tty.cc (fhandler_tty::ioctl): Semi-revert 2003-09-26 change - for TIOCSWINSZ. It is not an error for ioctl_request_event to be - missing. - -2004-01-20 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (pending_signals::save): New function. - (pending_signals::restore): Ditto. - (sig_clear): Save/restore current queue pointer. - (wait_sig): Delete signals marked as such. - * sigproc.h (__SIGDELETE): New enum. - -2004-01-20 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 8. - - * cygmalloc.h: Make more concessions to attempts to get debugging - malloc working. - * debug.h: Ditto. - * dlmalloc.cc: Ditto. - * dlmalloc.h: Ditto. - * malloc_wrapper.cc: Ditto. - - * perthread.h (perthread::create): Use calloc to ensure zeroed memory. - -2004-01-20 Christopher Faylor <cgf@redhat.com> - - * sec_acl.cc (setacl): Make sure sd_ret is large enough. - -2004-01-19 Christopher Faylor <cgf@redhat.com> - - * sigproc.cc (sigproc_terminate): Don't close sendsig handle when - execing since we're not closing what we think we're closing. - (sig_send): Improve debugging when exiting due to no_signals_available. - - * wincap.h (wincaps::cant_debug_dll_entry): New element. - * wincap.cc: Implement above element throughout. - * dcrt0.cc (initial_env): Accommodate changes necessary to allow - initial debugging for systems which do not allow debugging in - dll_entry. - (dll_crt0_0): Add initial_env call back here. - - * Makefile.in (install-man): Use mandir as target for installation. - -2004-01-19 Christopher Faylor <cgf@redhat.com> - - * include/cygwin/version.h: Bump DLL minor number to 7 (should have been - done earlier). - -2004-01-19 Christopher Faylor <cgf@redhat.com> - - * cygwin/include/signal.h: Add copyright notice. - - * cygwin.din: Make clock SIGFE. Add clock_gettime, sigwaitinfo, - timer_create, timer_delete, timer_settime. - * include/cygwin/version.h: Reflect above additions. - * fork.cc (fork_child): Call fixup_timers_after_fork. - * signal.cc (sigwait): Remove unused variable. - * timer.cc: New file. - (clock_gettime): Define new function. - (timer_tracker): Define new struct used by timer functions. - (timer_tracker::timer_tracker): New function. - (to_us): New function. - (timer_thread): New function. - (timer_tracker::settime): New function. - (timer_create): New function. - (timer_settime): New function. - (timer_delete): New function. - (fixup_timers_after_fork): New function. - * cygthread.cc: Bump thread count. - -2004-01-17 Christopher Faylor <cgf@redhat.com> - - * signal.cc (sigwaitinfo): Define new function. - (sigwait): Redefine based on sigwaitinfo. - * include/cygwin/signal.h (sigwaitinfo): Declare. - (sigwait): Ditto. - -2004-01-17 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::vfork_parent_restore): Avoid double close of ctty - when ctty == ctty_on_hold. - -2004-01-16 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (_threadinfo::threadkill): New element. - (_threadinfo::set_threadkill): Declare new function. - (_threadinfo::reset_threadkill): Declare new function. - * dcrt0.cc (dcrt0_1): Call here so that it will be possible to attach - to running process with #(*& Windows Me/9x. - (initial_env): Try to initialize strace if uninitialized. - * gendef: Don't zero signal if threadkill is set since that will happen - in the called function. - * signal.cc (sigwait): Ensure cleanup in error conditions. - * sigproc.cc (sig_send): Clear packet mask storage. - (wait_subproc): Fill in child exit code in siginfo_t structure. - * thread.cc (pthread_kill): Set threadkill flag. - * tlsoffsets.h: Regenerate. - -2004-01-16 Christopher Faylor <cgf@redhat.com> - - Throughout, use siginfo_t to fill out all signal information for - "kernel" signals. - * cygtls.h (_threadinfo::set_siginfo): Declare new function. - * cygtls.cc (_threadinfo::set_siginfo): Define new function. - * dcrt0.cc (do_exit): Accommodate siginfo_t considerations. - * exceptions.cc (handle_exceptions): Ditto. - (sig_handle_tty_stop): Ditto. - (ctrl_c_handler): Use killsys() to send signal. - (sigpacket::process): Rename from sig_handle. Use siginfo_t field from - sigpacket for everything. - (tty_min::kill_pgrp): Accommodate siginfo_t considerations. - (fhandler_termios::bg_check): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use killsys() to send signal. - * signal.cc (kill_worker): Rewrite to use siginfo_t second argument. - (kill_pgrp): Ditto. - (kill0): Define new function pulled from kill(). - (kill): Rewrite as frontend to kill0. - (killsys): Define new function. - * sigproc.cc (sigelem): Eliminate. - (sigpacket): Move to sigproc.h. Subsume sigelem. - (pending_signals): Use sigpacket rather than sigelem for everything. - (sig_clear): Ditto. - (wait_sig): Ditto. - (sig_send): Rewrite to use siginfo_t argument. - (sig_send): New function wratpper to sig_send with siginfo_t argument. - (wait_subproc): Accommodate siginfo_t considerations. - * thread.cc (pthread_kill): Ditto. - * sigproc.h (sigpacket): Move here. - (sigpacket::process): Declare "new" function. - (sig_handle): Eliminate declaration. - (sig_send): Declare with new paramaters. - (killsys): Declare new function. - (kill_pgrp): Declare. - * winsup.h: Move some signal-specific stuff to sigproc.h. - * include/cygwin/signal.h: Tweak some siginfo_t stuff. - -2004-01-16 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::close): Remove obsolete test - for vfork_cleanup. - * pipe.cc (fhandler_pipe::close): Add comment. - -2004-01-16 Christopher Faylor <cgf@redhat.com> - - * cygheap.cc (init_cygheap::close_ctty): Don't NULL ctty if it is still - active. - -2004-01-16 Christopher Faylor <cgf@redhat.com> - - * dtable.cc (dtable::vfork_parent_restore): Store ctty_on_hold prior to - calling close_all_files since it will be zeroed. - -2004-01-15 Christopher Faylor <cgf@redhat.com> - - * gentls_offsets: Reinstate unlink of temp files. - -2004-01-14 Christopher Faylor <cgf@redhat.com> - - * fhandler_console.cc (fhandler_console::close): Fix debugging output. - (fhandler_console::fixup_after_fork): Decrement open_fhs prior to call - to fhandler_console::open since this would cause incrementing too much - incrementing in child processes. (Probably needs to be handled more - elegantly someday) - (fhandler_console::fixup_after_exec): Ditto. - -2004-01-14 Christopher Faylor <cgf@redhat.com> - - * cygtls.h (_threadinfo::call): Remove regparm declaration to work - around compiler bug. - -2004-01-13 Christopher Faylor <cgf@redhat.com> - - * autoload.cc (TryEnterCriticalSection): Remove. - * dcrt0.cc (dll_crt0_0): Delete inappropriate setting of - _my_tls.stackptr to NULL since it has really bad consequences. Make - 'si' an automatic variable. - -2004-01-13 Christopher Faylor <cgf@redhat.com> - - * cygtls.cc (_threadinfo::init_thread): Correct thinko which caused - thread list to be allocated every time. - * cygtls.h (CYGTLS_PADSIZE): Define as const int. - * sync.h: Make multiple inclusion safe. - (muto::next): Eliminate. - (muto::exiting_thread): New variable. - (muto::set_exiting_thread): New function. - (new_muto): Change to use different section for mutos since c++ give - inexplicable warning in some cases otherwise. - (new_muto1): Ditto. - * dcrt0.cc (do_exit): Call muto::set_exiting_thread here. - * sync.cc (muto_start): Eliminate. - (muto::acquire): Always give exiting thread a lock. Never give thread - a lock if exiting. - (muto::release): Ditto for releasing. - * dtable.cc (dtable::init_lock): Unline function and define here. - * dtable.h (lock_cs): Define as a muto since critical sections seem to - work oddly on Windows Me. - (lock): Accommodate switch to muto. - (unlock): Ditto. - * exceptions.cc (setup_handler): Don't worry about acquiring mutos - since that hasn't mattered for a long time. - (signal_exit): Ditto: muto stuff will be handled automatically on exit - now. - -2004-01-12 Christopher Faylor <cgf@redhat.com> - - * Makefile.in (DLL_IMPORTS): Link advapi32 to ensure proper DLL - initialization. - * autoload.cc (RegCloseKey): Arbitrarily choose this function as a - "seed" to pull the advapi32 link library in. So, comment out the - autoloading. - * cygtls.cc (_threadinfo::init_thread): Just clear CYGTLS_PADSIZE. - (_threadinfo::remove): Add debugging. - (_threadinfo::find_tls): Ditto. - * cygtls.h (_threadinfo::padding): Make zero length (for now?). - * dcrt0.cc (dll_crt0_0): Move more initialization here from dll_crt0_1. - (dll_crt0_1): See above. - * dtable.h (dtable::lock): Remove commented out critical section - locking. - * dtable.h (dtable::init_lock): Remove commented out critical section - locking. - * dtable.h (dtable::unlock): Remove commented out critical section - locking. - * exceptions.cc (interruptible): bool'ize. - * init.cc (threadfunc_fe): Revert to storing threadfunc at stack - bottom. - (munge_threadfunc): Ditto. Avoid adding overhead to - calibration_thread. - (prime_threads): Don't initialize tls stuff. - (dll_entry): Make minor change to initialization order. - * tlsoffsets.h: Regenerate. - - * sigproc.cc (wait_sig): Add sanity check for end of process thread - exit. - - * select.h: Make minor formatting change. - -2004-01-10 Christopher Faylor <cgf@redhat.com> - - * Makefile.in: Add still more -fomit-frame-pointer functions. - * dtable.h (dtable::lock): New function. - (dtable::unlock): New function. - (dtable::init_lock): New function. - * cygheap.h (HEAP_TLS): Declare new enum value. - (init_cygheap::threadlist): Declare new array. - (init_cygheap::sthreads): Declare new variable. - (cygheap_fdmanip::~cygheap_fdmanip): Use new dtable lock/unlock - functions. - (cygheap_fdnew::cygheap_fdnew): Ditto. - (cygheap_fdget::cygheap_fdget): Ditto. - * dtable.cc (dtable_init): Initialize fdtab critical section. - (dtable::fixup_after_fork): Ditto. - (dtable::fixup_after_exec): Ditto. - (dtable::dup2): Use lock/unlock calls to protect access to fdtab. - (dtable::find_fifo): Ditto. - (dtable::fixup_before_fork): Ditto. - (dtable::fixup_before_exec): Ditto. - (dtable::set_file_pointers_for_exec): Ditto. - (dtable::vfork_child_dup): Ditto. - (dtable::vfork_parent_restore): Ditto. - * syscalls.cc (close_all_files): Ditto. - * sync.h (muto::acquired): Declare new function. - (new_muto1): Declare new macro used to specify name of muto storage. - * sync.cc (muto::acquired): Define new function. - - * cygthread.cc (cygthread::stub): Remove signal chain removal call - since it is handled during initialization now. - * cygthread.cc (cygthread::simplestub): Remove signal chain removal - call since it is handled during initialization now. - * cygtls.cc (sentry): New class used for locking. Use throughout. - (_threadinfo::reset_exception): Don't pop stack. - (_threadinfo::find_tls): Move from exceptions.cc. - (_threadinfo::init_thread): Initialize array of threads rather than - linked list. Take second argument indicating thread function for this - thread. - (_threadinfo::remove): Search thread array rather than linked list. - Use sentry to lock. Only unlock if we got the lock. - (_threadinfo::find_tls): Ditto for first two. - (handle_threadlist_exception): Handle exceptions when manipulating the - thread list in case of premature thread termination. - (_threadinfo::init_threadlist_exceptions): Ditto. - * cygtls.h (TLS_STACK_SIZE): Decrease size. - (_threadinfo::padding): Add element to avoid overwriting lower part of - stack. - (_threadinfo::remove): Add a "wait" argument to control how long we - wait for a lock before removing. - * exceptions.cc (init_exception_handler): Make global. Take argument - to control exception handler being set. - (ctrl_c_handler): Wait forever when removing self from signal chain. - (_threadinfo::find_tls): Move to cygtls.cc. - (sig_handle): Reorganize detection for thread-specific signals. - * heap.cc (heap_init): Rework slightly. Make fatal error more verbose. - Remove malloc initialization since it can't happen during dll attach. - * init.cc (search_for): Move address to search for on stack here. - (threadfunc_ix): Ditto for stack offset. Make shared so that stack - walk potentially only has to be done once when cygwin processes are - running. - (threadfunc_fe): Use standard tls to store thread function (may change - back later). - (calibration_thread): New function. Potentially called to find - threadfunc_ix. - (munge_threadfunc): Search for "search_for" value on stack. Output - warning when thread func not found on stack. Use standard tls to store - thread function. - (prime_threads): New function. Called to prime thread front end. - (dll_entry): Call dll_crt0_0 here when DLL_PROCESS_ATTACH. Call - prime_threads here. Try to remove thread from signal list here. - * sigproc.cc (wait_sig): Initialize threadlist exception stuff here. - * thread.cc (pthread::exit): Pass argument to signal list remove - function. - * thread.h: Remove obsolete *ResourceLock defines. - - * tlsoffsets.h: Regenerate. - - * winsup.h (spf): Define temporary debug macro to be deleted later. - - * dcrt0.cc (dll_crt0_0): New function, called during DLL - initialization. Mainly consists of code pulled from dll_crt0_1. - (dll_crt0_1): See above. - (_dll_crt0): Wait for initial calibration thread to complete, if - appropriate. Move some stuff to dll_crt0_0. - (initialize_main_tls): Accommodate argument change to - _thread_info::init_thread. - * fork.cc (fork_child): Ditto. - (sync_with_child): Fix debug message. - * external.cc (cygwin_internal): Remove special considerations for - uninitialized dll since initialization happens during dll attach now. - - * dlfcn.cc (dlopen): Remove obsolete *ResourceLock calls. - (dlclose): Ditto. - -2004-01-05 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (init_cygheap::close_ctty): Declare new function. - * cygheap.cc (init_cygheap::close_ctty): Define new function. - * syscalls.cc (close_all_files): Use close_ctty. - (setsid): Ditto. - - * cygthread.cc (cygthread::stub): Remove exception initialization. - * cygthread.cc (cygthread::stub): Remove exception initialization. - (cygthread::simplestub): Ditto. - * thread.cc (pthread::thread_init_wrapper): Ditto. - * cygtls.cc (_last_thread): Make static. - (_threadinfo::call2): Initialize exception handler here. - (_threadinfo::find_tls): Move here. - * exceptions.cc (_threadinfo::find_tls): Move. - - * dcrt0.cc (__api_fatal): Add prefix info to message here rather than - including it in every call to function. - * winsup.h (api_fatal): Accommodate above change. - * debug.cc (add_handle): Don't do anything if cygheap not around. - (mark_closed): Ditto. - - * dll_init.cc (dll_list::detach): Fix debug output. - * fork.cc (sync_with_child): Ditto. - (vfork): Improve debug output. - * heap.cc (heap_init): Ditto. - - * exceptions.cc (try_to_debug): Clarify message when debugger attaches. - -2004-01-03 Christopher Faylor <cgf@redhat.com> - - * exceptions.cc (_threadinfo::interrupt_now): Avoid double call to - sigdelayed. - * pinfo.cc (_pinfo::commune_send): Avoid inexplicable test which caused - most pids to be shown as "<defunct>" on Win9x. - -2004-01-02 Christopher Faylor <cgf@redhat.com> - - * cygheap.h (init_cygheap): Play more vfork shell games and move - ctty_on_hold and open_fhs_on_hold (back) here. - * dcrt0.cc (_dll_crt0): Just set impure_ptr_ptr here and let later - initialization deal with tls. - * dtable.cc (dtable::vfork_child_fixup): Move ctty considerations here. - (dtable:vfork_parent_restore): And here. - * fork.cc (vfork): Reflect change to ctty handling. - * perthread.h (vfork_save::fhctty): Eliminate. - - * cygwin.din: Make more exports NOSIGFE that will never be interrupted - by a signal. - - * init.cc (dll_entry): Set stackptr to NULL to catch problems earlier. diff --git a/winsup/cygwin/ChangeLog-2005 b/winsup/cygwin/ChangeLog-2005 deleted file mode 100644 index a44ab5832..000000000 --- a/winsup/cygwin/ChangeLog-2005 +++ /dev/null @@ -1,5813 +0,0 @@ -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/ChangeLog-2006 b/winsup/cygwin/ChangeLog-2006 deleted file mode 100644 index bab33364a..000000000 --- a/winsup/cygwin/ChangeLog-2006 +++ /dev/null @@ -1,3571 +0,0 @@ -2006-12-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Improve debug - output. - -2006-12-20 Corinna Vinschen <corinna@vinschen.de> - - Partially revert change from 2006-10-22. GetSecurityInfo messes up - user information on NT4. - * sec_helper.cc (security_descriptor::malloc): Drop LocalAlloc - considerations. - (security_descriptor::realloc): Ditto. - (security_descriptor::free): Ditto. - * security.cc (get_reg_security): Reinstantiate. - (get_nt_object_security): Revert to using NtQuerySecurityObject. - * security.h (class security_descriptor): Drop type member. - Accommodate throughout. - (security_descriptor::size): Constify. - (security_descriptor::copy): Ditto. - -2006-12-18 Christopher Faylor <me@cgf.cx> - - * pinfo.cc (set_myself): Use a more foolproof method for determining if - the current process was started from another cygwin process. - -2006-12-15 Pierre A. Humblet <Pierre.Humblet@ieee.org> - - * libc/minires-os-if.c (cygwin_query): Remove ERROR_PROC_NOT_FOUND case. - (get_dns_info): Verify DnsQuery exists. Use autoloaded GetNetworkParams. - -2006-12-13 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (clear_procimptoken): Close hProcImpToken in a safer way. - -2006-12-13 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (lsaauth): Initialize lsa to INVALID_HANDLE_VALUE to - avoid potential access violation. - -2006-12-12 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (subauth_id_init): Remove. - (parse_thing): Drop "subauth_id" option. - * security.cc (get_token_group_sidlist): Drop comments concerning - subauthentication. - (create_token): Back out subauthentication related changes. - (subauth): Remove. - * security.h (create_token): Remove declaration. - (subauth): Ditto. - * syscalls.cc (seteuid32): Drop subauthentication handling entirely. - -2006-12-12 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (set_traverse): Remove. - (parse_thing): Drop "traverse" option. - * path.cc (fs_info::update): Don't request SE_CHANGE_NOTIFY_PRIV - privilege. - * sec_helper.cc (set_cygwin_privileges): Ditto. - * security.cc (allow_traverse): Remove. - (alloc_sd): Drop special allow_traverse code. - * security.h (allow_traverse): Drop declaration. - * syscalls.cc (statvfs): Don't request SE_CHANGE_NOTIFY_PRIV privilege. - -2006-12-12 Corinna Vinschen <corinna@vinschen.de> - - Partially revert change from 2005-04-03, always running under an - impersonation token, which collides with Vista UAC. - * cygheap.h (deimpersonate): revert to self instead of impersonating - hProcImpToken. - (reimpersonate): Only impersonate if setuid. - * dcrt0.cc (dll_crt0_0): Don't initialize hProcImpToken here. - (dll_crt0_1): Set privileges on hProcToken. - * fork.cc (frok::child): Set privileges on hProcToken. Close handle to - hProcImpToken. - * grp.cc (internal_getgroups): Use hProcToken instead of hProcImpToken. - * security.cc (check_access): Create hProcImpToken on demand here. - * security.h (set_process_privilege): Set privileges on hProcToken. - (_push_thread_privilege): Use hProcToken instead of hProcImpToken. - (pop_thread_privilege): If not setuid'ed, revert to self. - * syscalls.cc (setegid32): Drop setting primary group on hProcImpToken. - Close handle to hProcImpToken. - * uinfo.cc (internal_getlogin): Ditto. - * winsup.h (clear_procimptoken): New inline function. - -2006-12-12 Christopher Faylor <me@cgf.cx> - - * syscalls.cc (popen): Allow '[rw][bt]'. - -2006-12-12 Corinna Vinschen <corinna@vinschen.de> - - * libc/minires.c (res_ninit): Drop handling for LOCALDOMAIN environment - variable. - -2006-12-11 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add minires-os-if.o and minires.o. - (SUBLIBS): Add libresolv.a. - Add rule for libresolv.a. - * autoload.cc: Fix return code handling for IP Helper API in case - of being unable to load iphlpapi.dll. - (DnsQuery_A): Define. - (DnsRecordListFree): Define. - * cygwin.din: Export resolver functions. - * include/resolv.h: New header. - * include/arpa/nameser.h: New header. - * include/arpa/nameser_compat.h: New header. - * include/cygwin/version.h: Bump API minor number. - * libc/minires-os-if.c: New file. - * libc/minires.c: New file. - * libc/minires.h: New file. - -2006-12-11 Christopher Faylor <me@cgf.cx> - - * sigproc.cc (child_info::child_info): Move old comment about msv_count - here. Edit it slightly to reflect new sensibilities. - -2006-12-11 Christopher Faylor <me+cygwin@cgf.cx> - - * child_info.h (child_info_spawn::__stdin): New element. - (child_info_spawn::__stdin): Ditto. - (CURR_CHILD_INFO_MAGIC): Regenerate. - * dcrt0.cc (check_sanity_and_sync): Minor cleanup. - (child_info_spawn::handle_spawn): Handle new __std* elements by calling - move_fd. - * dtable.cc (dtable::move_fd): Define new function. - * dtable.h (dtable::move_fd): Declare new function. - * fhandler.h (fhandler_pipe::popen_pid): Declare new element. - * fhandler.h (fhandler_pipe::get_popen_pid): Define new function. - * fhandler.h (fhandler_pipe::set_popen_pid): Ditto. - * pipe.cc (fhandler_pipe::fhandler_pipe): Zero popen_pid. - (fhandler_pipe::dup): Ditto. - * spawn.cc (handle): Change second argument to bool. - (spawn_guts): Accept __stdin/__stdout arguments and set them - appropriately in child_info structure and in STARTUPINFO structure. - * syscalls.cc (popen): New cygwin-specific implementation using spawn. - (pclose): Ditto. - * winsup.h (spawn_guts): Accommodate new arguments for spawn_guts. - - * fhandler.cc (fhandler_base::set_no_inheritance): Make second arg a bool. - * fhandler.h (fhandler_base::set_no_inheritance): Ditto for declaration. - - * child_info.h (child_info::msv_count): Rename from the now-inappropriate - "zero". - (child_info_spawn::filler): Add filler to work around Vista bug. - (child_info_fork::filler): Ditto. - * dcrt0.cc (get_cygwin_startup_info): Remove "zero" check since it is - now always filled out. - * fork.cc (frok::parent): Move ch.zero manipulation to constructor. - * spawn.cc (spawn_guts): Ditto. Remove _ch wrapper. - * sigproc.cc (child_info::child_info): Initialize msv_count. - - * shared.cc (shared_info::heap_slop_size): Remove noisy system_printfs. - * shared_info.h (CURR_SHARED_MAGIC): Regenerate. - -2006-12-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (rootdir): Fix typo in comment. - * syscalls.cc (try_to_bin): Ditto. - -2006-12-10 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SHFileOperationA): Drop definition. - * ntdll.h (struct _FILE_RENAME_INFORMATION): Define. - * path.cc (fs_info::update): Note length of rootdir prefix in - root_len. - (get_nt_native_path): New function, taking over functionality of - path_conv::get_nt_native_path. - (path_conv::get_nt_native_path): Just call get_nt_native_path. - * path.h (get_nt_native_path): Declare. - (struct fs_info): New member root_len. - (fs_info::length): New inline method returning root_len. - (path_conv::rootdir): New inline method returning rootdir prefix. - * syscalls.cc (try_to_bin): Rewrite using only system calls. - (unlink_nt): Call try_to_bin with additional handle to open file - parameter. - (statvfs): Use path_conv::rootdir method. - * wincap.h: Define has_recycle_dot_bin throughout. - * wincap.cc: Ditto. - -2006-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (rootdir): Clarify comment. - -2006-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (rootdir): Don't look for volume mount points on remote - shares. - -2006-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (rootdir): Drop useless post-increment. Take volume - mount points into account. - (check_posix_perm): Allocate space for root directory big enough. - -2006-12-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Add comment that this is not possibly - the final version. - -2006-12-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Open native symlinks with - FILE_OPEN_REPARSE_POINT flag. - -2006-12-07 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_DELETE_PENDING): Define. - (struct _FILE_DISPOSITION_INFORMATION): Define. - * syscalls.cc (unlink_9x): new function to delete file on 9x. - * syscalls.cc (unlink_nt): new function to delete file on NT. - (unlink): Simplify. Move OS dependent stuff into aforementioned - functions. Also handle FILE_ATTRIBUTE_HIDDEN as R/O-like flag. - -2006-12-07 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SHFileOperationA): Define. - * syscalls.cc (try_to_bin): New function trying to move a file to - the recycle bin. - (unlink): Fix arguments used in CreateFile for delete on close. - Before closing the handle, try to move the file to the recycle bin. - -2006-12-07 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct cwdstuff): Add "sync" member and accompanying - "keep_in_sync" methods. - * external.cc (cygwin_internal): Call above keep_in_sync method when - CW_SYNC_WINENV is requested. - * path.cc (cwdstuff::init): Don't change to windows_system_directory - if keep_in_sync is requested. - (cwdstuff::keep_in_sync): New method. - (cwdstuff::set): Take sync flag into account. - -2006-12-06 Corinna Vinschen <corinna@vinschen.de> - - * termios.cc: Change include order to accommodate change to sys/ioctl.h. - -2006-12-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_mem.cc (fhandler_dev_mem::open): Fix comment. - * wincap.cc (has_physical_mem_access): Reflect the fact that physical - memory access has been made a protected operation beginning with - 2003 Server. - -2006-12-06 Eric Blake <ebb9@byu.net> - - * include/sys/ioctl.h: Pick up termios.h, for TIOCGWINSZ. - -2006-12-06 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (WINVER): Set to 0x0600 to cover Vista. - -2006-12-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Fix typo. - -2006-12-05 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::init): Don't change to windows_system_directory - if Cygwin DLL has been loaded dynamically. - -2006-12-05 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Don't try to open directory on systems not - supporting that. - -2006-12-05 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (get_cygwin_startup_info): Fix comment. - * wincap.cc (wincapc::init): Always reset needs_count_in_si_lpres2 to - false on non 64-bit systems. - -2006-12-05 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (get_cygwin_startup_info): Change zeros to DWORD array. - Expect first DWORD in child_info struct being set to non-zero if - wincap.needs_count_in_si_lpres2 is set. Add comment to explain why. - * fork.cc (frok::parent): Set ch.zero[0] to a sensible count value - if wincap.needs_count_in_si_lpres2 is set. - * spawn.cc (spawn_guts): Ditto. Add filler bytes after ch on stack - to accommodate needs_count_in_si_lpres2. - * wincap.h: Define needs_count_in_si_lpres2 throughout. - * wincap.cc: Ditto. - -2006-11-29 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (mkdir): Check last path component for "..". - (rmdir): Don't check last path component for "..". - * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop kludge - which tries to allow deleting the current working directory. - * path.cc (has_dot_last_component): Add parameter to indicate testing - for "..". Take trailing slash into account. - (symlink_info::posixify): Rely on cygheap->cwd.win32 having a - useful value. - (cwdstuff::init): Initialize cygheap->cwd with current working - directory. Change to windows_system_directory afterwards. - (cwdstuff::set): Never call SetCurrentDirectory here. Just check - if changing into target directory would be allowed. Add comment to - explain why. - * path.h (has_dot_last_component): Declare with second parameter. - * pinfo.cc (pinfo::zap_cwd): Remove. - (pinfo::exit): Drop call to zap_cwd. - * pinfo.h (class pinfo): Remove declaration of zap_cwd. - * spawn.cc (spawn_guts): Set current working directory for non-Cygwin - child applications. Drop call to zap_cwd. - -2006-11-28 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (create_token): Revert erroneous change to test - subauth_token for INVAILD_HANDLE_VALUE. - * syscalls.cc (seteuid32): Set create_token's subauth_token parameter - back to NULL. - -2006-11-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Fix previous patch to handle the - SYSTEM attribute as well. - -2006-11-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Fix handling of files with - HIDDEN attribute set. - -2006-11-27 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/signal.h: Add __extension__ to various anonymous - unions and structs. (thanks to V.Haisman) - -2006-11-27 Corinna Vinschen <corinna@vinschen.de> - - * cyglsa.h: New header file. - * environ.cc: Disable subauth settings. - * grp.cc: Accommodate cygsidlist's count now being a method. - * sec_helper.cc (SECURITY_MANDATORY_INTEGRITY_AUTHORITY): Remove. - (mandatory_medium_integrity_sid): Remove. - (mandatory_high_integrity_sid): Remove. - (mandatory_system_integrity_sid): Remove. - (fake_logon_sid): Add. - (cygsid::get_sid): Add well_known parameter. Set well_known_sid - accordingly. - (cygsid::getfromstr): Ditto. - (cygsidlist::alloc_sids): Move here from security.cc. - (cygsidlist::free_sids): Ditto. - (cygsidlist::add): Move here from security.h. Add well_known parameter. - Set well_known_sid accordingly. Don't allow duplicate SIDs. - * security.cc: Include cyglsa.h and cygwin/version.h. Throughout - accommodate cygsidlist's count now being a method. Throughout drop - redundant "contains" tests. - (get_user_local_groups): Add local groups as well known SIDs. - (get_token_group_sidlist): Add well known groups as well known SIDs. - (get_server_groups): Ditto. Only call get_unix_group_sidlist after - get_user_local_groups to maintain "well_known_sid" attribute. - (get_initgroups_sidlist): Add well known groups as well known SIDs. - (get_setgroups_sidlist): Add usersid and struct passwd parameter to - allow calling get_server_groups from here. - (get_system_priv_list): Make static. Return size of TOKEN_PRIVILEGES - structure. - (get_priv_list): Ditto. - (create_token): Accommodate above changes. Drop misguided attempt to - add MIC SIDs to created user token. Print returned token as hex value. - (subauth): Disable. - (lsaauth): New function implementing client side of LSA authentication. - * security.h (class cygsid): Add well_known_sid attribute. Accommodate - throughout. Add *= operator to create a well known SID. - (class cygsidlist): Rename count to cnt. Make count a method. - (cygsidlist::add): Move to sec_helper.cc. - (cygsidlist::operator *=): New method to add well known SID. - (cygsidlist::non_well_known_count): New method returning number of - non well known SIDs in list. - (cygsidlist::next_non_well_known_sid): New method returning next non - well known SID by index. - (mandatory_medium_integrity_sid): Drop declaration. - (mandatory_high_integrity_sid): Drop declaration. - (mandatory_system_integrity_sid): Drop declaration. - (fake_logon_sid): Add declaration. - (subauth): Disable declaration. - (lsaauth): Add declaration. - * syscalls.cc (seteuid32): Disable subauthentication. Add LSA - authentication. - * wincap.h: Define needs_logon_sid_in_sid_list throughout. - * wincap.cc: Ditto. - -2006-11-23 Corinna Vinschen <corinna@vinschen.de> - - * security.h (DBGSID): Define for debugging purposes. - (MKSID): Rename from SID so as to not hide SID definition from winnt.h. - * sec_helper.cc: Change SID to MKSID throughout. - -2006-11-23 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_ipv6_funcs): Fix formatting. - -2006-11-23 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fs_info::update): Define GETVOLINFO_VALID_MASK and TEST_GVI. - Change FS_IS_SAMBA and FS_IS_SAMBA_WITH_QUOTA and their usage - accordingly. Define FS_IS_NETAPP_DATAONTAP. Recognize NetApp device - and store in is_netapp flag. Mark NetApp device as having no good - inodes. - * path.h (struct fs_info): Add is_netapp flag. Add matching accessors. - -2006-11-23 Thomas Wolff <towo@computer.org> - - * fhandler_console.cc (set_color): Avoid (again) inappropriate - intensity interchanging that used to render reverse output unreadable - when (non-reversed) text is bright. - See http://sourceware.org/bugzilla/show_bug.cgi?id=514 - -2006-11-23 Joe Loh <joel@pivot3.com> - - * devices.h: Add additional SCSI disk block device numbers per - http://www.kernel.org/pub/linux/docs/device-list/devices.txt - up to 128 devices. - * devices.in: Ditto. - (device::parsedisk): Add additonal else-if cases for decoding base - and drive indices. - * devices.cc: Regenerate. - * dtable.cc (build_fh_pc): Add additional DEV_SD{2..7}_MAJOR cases. - -2006-11-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (EqualPrefixSid): Define. - * security.cc (create_token): Drop grps_buf. Use alloca instead. - Only add the MIC SID to the TOKEN_GROUPS list for the NtCreateToken - call. If the subauthentication token exists, use its MIC SID. - Set SID Attributes for the MIC SID to 0. - -2006-11-08 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (sid_auth): Remove. - (well_known_this_org_sid): New well known sid. - (SECURITY_MANDATORY_INTEGRITY_AUTHORITY): Define. - (mandatory_medium_integrity_sid): New well known sid. - (mandatory_high_integrity_sid): Ditto. - (mandatory_system_integrity_sid): Ditto. - (cygsid::get_sid): Use local SID_IDENTIFIER_AUTHORITY. Allow all - authorities fitting in a UCHAR. - * security.cc (get_token_group_sidlist): Always add the local - group to the token. Add comment. Add "This Organization" group - if available in incoming group list. - (get_server_groups): Only add world and authenticated users groups - if not already in list. - (create_token): Add matching mandatory integrity SID to group list - on systems supporting Mandatory Integrity Control. - * security.h (well_known_this_org_sid): Define. - (mandatory_medium_integrity_sid): Define. - (mandatory_high_integrity_sid): Define. - (mandatory_system_integrity_sid): Define. - * wincap.h: Define has_mandatory_integrity_control throughout. - * wincap.cc: Ditto. - -2006-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (check_posix_perm): Moved here from syscalls.cc. - (fhandler_base::fpathconf): New method implementing (f)pathconf. - * fhandler.h (class fhandler_base): Declare fpathconf method. - * path.cc (path_conv::check): Replace MAX_LINK_DEPTH with SYMLOOP_MAX. - * path.h (MAX_LINK_DEPTH): Delete. - * syscalls.cc (check_posix_perm): Move to fhandler.cc. - (fpathconf): Call fhandler's fpathconf method. - (pathconf): Build fhandler and call fhandler's fpathconf method. - * sysconf.cc (sysconf): Reorder switch according to order of flags - in sys/unistd.h. Add handling for some missing flags. - * include/limits.h: Reorder according to SUSv3 description. Add some - missing definitions. Add comments. - * include/sys/syslimits.h: New file overriding newlib's syslimits.h - file. - -2006-11-06 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (build_fh_pc): Add missing DEV_SD1_MAJOR case (Thanks to - Joe Loh for noticing). - -2006-11-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::posixify): Fix comment. - -2006-11-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Eliminate PATH_REP bit from pflags. - -2006-11-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::posixify): New method converting NT and DOS - paths in symlinks to POSIX. - (symlink_info::check_shortcut): Allocate buf allowing for a trailing 0. - Call posixify on the result. - (symlink_info::check_sysfile): Read from file into local buffer. - Eliminate old b16 considerations. Call posixify on the result. - (symlink_info::check_reparse_point): Don't use PrintName but - SubstituteName which is relevant for Windows' path handling. - Call posixify on the result. - -2006-11-01 Corinna Vinschen <corinna@vinschen.de> - - * security.h (cygpriv_idx): Add privileges new in Vista. - * security.cc (sys_privs): Ditto. - * sec_helper.cc (cygpriv): Ditto. Fix comment. - -2006-10-31 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct user_heap_info): Add slop member. - * heap.cc (heap_init): Add slop factor to heap allocation. Add - comment. - * mmap.cc (MapViewNT): Allocate memory maps top down. - (fhandler_dev_zero::mmap): Ditto. - * shared.cc (shared_info::heap_slop_size): New method. - (shared_info::heap_chunk_size): Don't use debug_printf at early stage. - * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info. - (CURR_SHARED_MAGIC): Ditto. - (class shared_info): Add heap_slop member. Declare heap_slop_size. - * wincap.h: Define heapslop throughout. - * wincap.cc: Ditto. - -2006-10-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop - directory attribute for reparse points to avoid mistreating. - (fhandler_base::fstat_by_name): Ditto. - * path.cc (symlink_info::check_reparse_point): New method testing - reparse points for symbolic links. - (symlink_info::check_shortcut): Move file attribute tesat to calling - function. - (symlink_info::check): Add handling for reparse points. - * path.h (enum path_types): Add PATH_REP to denote reparse point based - symlinks. - (path_conv::is_rep_symlink): New method. - * syscalls.cc (unlink): Handle reparse points. - -2006-10-27 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (open_shared): Drop useless attempt from 2006-08-11. - -2006-10-27 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (__api_fatal): Drop spare argument to __small_sprintf. - * smallprint.c (__small_vsprintf): Preserve GetLastError value. - * winsup.h (api_fatal): Simplify. Drop duplicate filename arg. - -2006-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Fix comment. - -2006-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Accommodate - buggy RestartScan behaviour of Windows 2000. - * wincap.h: Define has_buggy_restart_scan throughout. - * wincap.cc: Ditto. - -2006-10-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::facl): Fix whitespace. - * external.cc: Update copyright. - * fhandler.cc: Ditto. - * sec_helper.cc: Ditto. - * security.h: Ditto. - * security.cc: Ditto. - (check_registry_access): Return -1 if W_OK is requested. - -2006-10-22 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Use security_descriptor::copy method. - * sec_helper.cc (security_descriptor::malloc): Use own free method. - Set type. - (security_descriptor::realloc): Handle the case that psd has been - allocated using LocalAlloc. Set type. - (security_descriptor::free): Ditto. - * security.cc (get_nt_attribute): Remove. - (get_reg_security): Remove. - (get_nt_object_security): Use GetSecurityInfo which handles all - securable objects. - (get_nt_object_attribute): Remove. - (get_object_attribute): Call get_nt_object_security instead of - get_nt_object_attribute. - (get_file_attribute): Ditto. - (check_registry_access): Call get_nt_object_security instead of - get_reg_security. - * security.h (cygpsid::operator PSID): Make method const, not the - result. - (class security_descriptor): Add type member. Accommodate throughout. - (security_descriptor::copy): New method. - (security_descriptor::operator PSECURITY_DESCRIPTOR *): New operator. - -2006-10-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fhaccess): Check if opening registry - actually created a handle. This handles the registry root dir. - * fhandler_registry.cc (fhandler_registry::open): Set io_handle in - case of opening one of the predefined registry keys. - -2006-10-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fhaccess): Call check_registry_access - for registry keys/values if ntsec is on. - * security.cc (check_access): New static function derived from - check_file_access, but object type agnostic. - (check_file_access): Only do file specific stuff. Call check_access. - (check_registry_access): New access check function for registry keys/ - values. - * security.h (check_registry_access): Declare. - -2006-10-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (fhandler_registry::fstat): Set restrictive - permission and ownership if key can't be opened for reading security. - (open_key): If opening key fails, retry opening with backup intent. - -2006-10-20 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getnameinfo): Fix typo in comment. - -2006-10-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::set_name): Make virtual. - (class fhandler_registry): Add wow64 and prefix_len members. - Declare set_name method. - * fhandler_proc.cc (PROC_REGISTRY32): Define. - (PROC_REGISTRY64): Define. - (proc_listing): Add "registry32" and "registry64" elements. - (proc_fhandlers): Add corresponding FH_REGISTRY values. - * fhandler_registry.cc (registry_len): Drop static value in favor of - class member prefix_len. Use preifx_len instead of registry_len - throughout. - (fhandler_registry::set_name): Define. Set wow64 and prefix_len - according to directory prefix. - (fhandler_registry::fhandler_registry): Set wow64 and prefix_len to - default values. - (open_key): Add wow64 argument. Handle wow64 in call to RegOpenKeyEx. - Use fhandler_registry member wow64 in this place throughout. - -2006-10-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc: Drop superfluous definition of _WIN32_WINNT. - * miscfuncs.cc: Ditto. - * sched.cc: Ditto. - -2006-10-17 Corinna Vinschen <corinna@vinschen.de> - - * glob.c: Remove. - * glob.cc: New file. Latest glob version from FreeBSD plus Cygwin - specific changes (__stat64/__stat32, ignore_case_with_glob, - drop collate functions). - (glob3): Return GLOB_ABORTED in case directory is unreadable and - GLOB_ERR is set, as demanded by SUSv3. - * glob.h: Import latest version from FreeBSD. - -2006-10-17 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (WINVER): Define instead of _WIN32_WINNT. Set to 0x0502. - (_NO_W32_PSEUDO_MODIFIERS): Define. - -2006-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Drop redundant - access check. - -2006-10-16 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/byteorder.h: Fix copyright dates. - -2006-10-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (PrivilegeCheck): Define. - * fhandler.cc (fhandler_base::open): Always try opening with backup - resp. restore intent. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Always try - opening with backup intent. - (fhandler_disk_file::readdir): Ditto when trying to retrieve file id - explicitely. - * security.cc (check_file_access): Replace pbuf with correctly - PPRIVILEGE_SET typed pset. Check explicitely for backup and/or restore - privileges when AccessCheck fails, to circumvent AccessCheck - shortcoming. Add comment to explain. - -2006-10-13 Christopher Faylor <cgf@timesys.com> - - * winsup.h: Turn off DEBUGGING. - -2006-10-13 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (Wow64DisableWow64FsRedirection): Define. - (Wow64RevertWow64FsRedirection): Define. - * security.cc (cygsuba_installed): New shared variable to store result - of cygsuba.dll installation test. - (subauth): Check if cygsuba.dll has been installed and registered - before issuing the (sub)authentication. - -2006-10-12 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (create_token): Fix condition for source identifier. - -2006-10-11 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (struct socketinf): Convert ser_num and w4 to dynamically - allocated arrays. Add max_w4 member to keep track. - (thread_socket): Make timeout depending on number of sockets to wait - for. Loop WFMO over all sockets. - (start_thread_socket): Handle any number of sockets. Fix typo. Don't - close socket event in out of memory condition. - (socket_cleanup): Free ser_num and w4. - -2006-10-06 David Jade <d3@mutable.net> - - * path.cc (path_conv::get_nt_native_path): Properly detect \\?\ paths. - (mount_info::conv_to_win32_path): Update comment. - * fhandler_disk_file.cc (path_conv::ndisk_links): Use backslashes - to make NT kernel functions work for \\?\GLOBALROOT paths. - -2006-10-09 Corinna Vinschen <corinna@vinschen.de> - - * devices.in: Raise number of handled serial ports to 64. - * devices.cc: Regenerate. - -2006-09-17 Danny Smith <dannysmith@clear.net.nz> - - * include/asm/byteorder.h: Correct typo. - -2006-09-17 Danny Smith <dannysmith@clear.net.nz> - - * include/asm/byteorder.h: Don't #define n* macros if -fnoinline is - specified. - -2006-09-07 Christopher Faylor <cgf@timesys.com> - - * environ.cc (build_env): Don't put an empty environment variable into - the environment. Optimize use of "len". - * errno.cc (ERROR_MORE_DATA): Translate to EMSGSIZE rather than EAGAIN. - -2006-08-31 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (initgroups32): Run get_server_groups under original token. - * syscalls.cc (seteuid32): Slightly reorganize code creating a token. - -2006-08-27 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_spawn::~child_info_spawn): Don't close - myself_pinfo handle when spawning. - -2006-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Fix formatting. - -2006-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (DIR_NUM_ENTRIES): Set to 100 to maximize - performance on remote shares. - (fhandler_disk_file::opendir): Move comment about Samba weirdness into - fhandler_disk_file::readdir. Don't disallow - FileIdBothDirectoryInformation on Samba. - (fhandler_disk_file::readdir): Workaround Samba problem with - FileIdBothDirectoryInformation by rereading already read entries - using FileBothDirectoryInformation. Change comment about Samba - weirdness explaining this change. - -2006-08-20 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp> - - * fhandler_disk_file.cc (fhandler_disk_file::pread): Properly check for - non-error return from lseek. - -2006-08-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc (raw_read): Evaluate minchars taking the - vmin_ > ulen case into account. Simplify evaluating the bytes to read. - Don't use bytes in Queue value from ClearCommError call in case vtime_ - is > 0. Reformat GetOverlappedResult call. Simplify call to ReadFile. - -2006-08-14 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (subauth): Initialize user_token to NULL. Add comment. - -2006-08-11 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (open_shared): Desperately try to get shared memory, only - when DEBUGGING enabled for now. - -2006-08-10 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (_onreturn::~onreturn): Don't attempt to close a NULL - handle. - -2006-08-10 Christopher Faylor <cgf@timesys.com> - - * winsup.h: Turn on DEBUGGING by default for now. - -2006-08-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::lock): Handle - ERROR_NOT_LOCKED returned from UnlockFileEx. - -2006-08-09 Corinna Vinschen <corinna@vinschen.de> - - * path.h (SYMLINK_EA_NAME): Remove. - (SHORTCUT_HDR_SIZE): Ditto. - -2006-08-09 Christopher Faylor <cgf@timesys.com> - - * autoload.cc (GetHandleInformation): Declare new function. - (SetHandleInformation): Ditto. - * debug.cc (add_handle): Use SetHandleInformation to protect handle. - (close_handle): Use SetHandleInformation to unprotect handle. - - * spawn.cc (spawn_guts): Move detached test outside of P_OVERLAY block. - -2006-08-07 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtSetInformationFile): Define. - * cygwin.din: Export posix_fadvise and posix_fallocate. - * fhandler.cc (fhandler_base::fadvise): New method. - (fhandler_base::ftruncate): Add allow_truncate parameter. - * fhandler.h (class fhandler_base): Add fadvise method. Accommodate - new parameter to ftruncate. - (class fhandler_pipe): Add fadvise and ftruncate methods. - (class fhandler_disk_file): Add fadvise method. Accommodate new - parameter to ftruncate. - * fhandler_disk_file.cc (fhandler_disk_file::fadvise): New method. - (fhandler_disk_file::ftruncate): Accommodate new allow_truncate - parameter. Set EOF using NtSetInformationFile on NT. - * ntdll.h (struct _FILE_END_OF_FILE_INFORMATION): Define. - (NtSetInformationFile): Declare. - * pipe.cc (fhandler_pipe::fadvise): New method. - (fhandler_pipe::ftruncate): Ditto. - * syscalls.cc (posix_fadvise): New function. - (posix_fallocate): Ditto. - (ftruncate64): Accommodate second parameter to fhandler's ftruncate - method. - * include/fcntl.h: Add POSIX_FADV_* flags. Add declarations of - posix_fadvise and posix_fallocate. - * include/cygwin/version.h: Bump API minor number. - -2006-08-02 Christopher Faylor <cgf@timesys.com> - - * environ.cc (env_win32_to_posix_path_list): Declare. - (conv_envvars): Use env_win32_to_posix_path_list rather than - cygwin_win32_to_posix_path_list. - (posify): Translate back to win32 path if errno is EIDRM. - * environ.h: Update copyright. Define ENV_CVT. - * path.cc (conv_path_list): If converting for the environment and - removed an element set errno to ENV_CVT. - (env_win32_to_posix_path_list): New function. - -2006-08-01 Christopher Faylor <cgf@timesys.com> - - * environ.cc (dos_file_warning): Declare. - (parse_thing): Add "dosfilewarning". Alphabetize. - * path.cc (normalize_posix_path): Return -1 when MS-DOS path detected. - (warn_msdos): New function. - (path_conv::check): Call if !PC_NOWARN and MS-DOS path detected. - (cygwin_conv_to_win32_path): Set PC_NOWARN when calling path_conv. - (cygwin_conv_to_full_win32_path): Ditto. - * path.h (pathconv_arg::PC_NOWARN): Define. - * shared_info.h (user_info::warned_msdos): New field. - (CURR_USER_MAGIC): Reset. - -2006-07-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Fix a problem - with poll(2) after shutdown(SHUT_RD) has been called on the local side. - * poll.cc (poll): Use POSIX type nfds_t for second parameter. Drop - special socket handling for POLLIN. Add comment to explain why. - * include/sys/poll.h: Declare nfds_t. Use as type for second parameter - in poll(2) declaration. - -2006-07-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Circumvent - potential race condition. - (fhandler_socket::recv_internal): Fix MSG_PEEK bug on blocking sockets - and simplify recv loop. - (fhandler_socket::send_internal): Only lock when changing wsock_events. - -2006-07-31 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Drop LoadDLLprime for wsock32 since no wsock32 function - is used anymore. Drop all unused ws2_32.dll functions. - -2006-07-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (struct wsa_event): Define here. - (class fhandler_socket): Make wsock_evt private again. - (fhandler_socket::wsock_event): New read accessor for wsock_evt. - (fhandler_socket::serial_number): New read accessor to get the - socket's serial number. - (fhandler_socket::ready_for_read): Just return true. - * fhandler_socket.cc (struct wsa_event): Move definition to fhandler.h. - * select.cc (struct socketinf): Add serial number vector. - (start_thread_socket): Identify duplicate sockets by their serial - number, not (wrongly) by their wsock_evt. - -2006-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Revert misguided attempt to handle FD_CLOSE error - conditions in evaluate_events. - (search_wsa_event_slot): Move wrongly placed memset in - fhandler_socket::init_events here. - (fhandler_socket::init_events): Initially set FD_WRITE event for - connectionless sockets. - * poll.cc (poll): Don't add sockets always to except_fds since select - is now supposed to do it right. - * select.cc (set_bits): Set connection state correctly for failed - af_local_connect on local sockets. Remove socket special handling - for except_selected descriptors. - (peek_socket): Try to set the read/write/exception bits actually - correctly. - -2006-07-27 Brian Ford <Brian.Ford@FlightSafety.com> - - * fhandler_socket.cc (fhandler_socket::recvmsg): Remove unused tot - argument. All callers changed. - (fhandler_socket::sendmsg): Likewise. - * net.cc (cygwin_recvmsg): Likewise. - (cygwin_sendmsg): Likewise, and prevent calling sendmsg whith an - invalid iovec. - * fhandler.h (fhandler_socket::recvmsg): Adjust prototype. - (fhandler_socket::sendmsg): Likewise. - -2006-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Remove prot_info_ptr. - (fhandler_socket::fixup_before_fork_exec): Remove. - (fhandler_socket::fixup_after_exec): Remove. - (fhandler_socket::need_fixup_before): Remove. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Drop - initializing prot_info_ptr. Remove unused code. - (fhandler_socket::~fhandler_socket): Drop free'ing prot_info_ptr. - (struct wsa_event): Rename connect_errorcode to errorcode. - (fhandler_socket::evaluate_events): Handle FD_CLOSE error condition - as FD_CONNECT error condition, except, never reset an FD_CLOSE error - condition. Always set FD_WRITE after successfully recorded FD_CONNECT. - (fhandler_socket::fixup_before_fork_exec): Remove. - (fhandler_socket::fixup_after_fork): Revert to using handle duplication. - (fhandler_socket::fixup_after_exec): Remove. - (fhandler_socket::dup): Revert to using handle duplication. - (fhandler_socket::send_internal): Only call wait_for_events in case - of WSAEWOULDBLOCK condition. - (fhandler_socket::set_close_on_exec): Call - fhandler_base::set_close_on_exec. - * net.cc (fdsock): Just set socket to inheritable on non-NT. Don't - call inc_need_fixup_before. - * select.cc (peek_socket): Don't set except_ready on every FD_CLOSE, - just on error. - -2006-07-26 Brian ford <Brian.Ford@FlightSafety.com> - - * fhandler.cc (fhandler_base::read): Call get_readahead_into_buffer - instead of duplicating it. - -2006-07-26 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (offsets): Define as offsets relative to cygwin_hmodule - instead of addresses. - (off_addr): New macro. - (open_shared): Use offsets array accordingly. Remove unused code. - * shared_info.h (cygwin_shared_address): Remove. - -2006-07-26 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct init_cygheap): Remove shared_h and mt_h members. - * fhandler_tape.cc (mt): Define as DLL shared area in - .cygwin_dll_common instead of as dynamically allocated area. - Change referencing throughout. - * mtinfo.h (mt_h): Remove entirely. - (mt): Remove extern declaration. - * shared.cc (cygwin_shared_area): New global cygwin_shared - variable located in .cygwin_dll_common. - (offsets): Define shared region addresses descending from - cygwin_shared_address. - (open_shared): Replace usage of SH_CYGWIN_SHARED by SH_USER_SHARED. - (memory_init): Set cygwin_shared just by pointing to cygwin_shared_area. - * shared_info.h (shared_locations): Remove SH_CYGWIN_SHARED and - SH_MTINFO. - (cygwin_shared_address): Define as DLL start address. - * tty.h (tty_min::tty_min): Remove constructor. - -2006-07-25 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in6.h: Guard in_port_t typedef more restrictive to - avoid compiler warning. - -2006-07-25 Christopher Faylor <cgf@timesys.com> - - * security.cc (get_logon_server): Remove nret and use dret for - everything to avoid a g++ warning. - -2006-07-25 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL version to 1.7.0. - -2006-07-25 Corinna Vinschen <corinna@vinschen.de> - - * select.h: Remove. - * fhandler_socket.cc: Don't include select.h. - * select.cc: Ditto. - -2006-07-25 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h: Drop socket related includes. - (struct _local_storage): Remove exitsock and exitsock_sin. Add - select_sockevt. - * cygtls.cc: Accommodate above change throughout. - * fhandler.h (class fhandler_socket): Make wsock_evt public. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Accommodate - reordering members. - (fhandler_socket::evaluate_events): Drop FD_CONNECT event as soon as - it gets read once. Never remove FD_WRITE event here. - (fhandler_socket::wait_for_events): Wait 50 ms instead of INFINITE for - socket events. - (fhandler_socket::accept): Fix conditional. Set wsock_events members - of accepted socket to useful start values. - (fhandler_socket::recv_internal): Always drop FD_READ/FD_OOB events from - wsock_events after the call to WSARecvFrom. - (fhandler_socket::send_internal): Drop FD_WRITE event from wsock_events - if the call to WSASendTo fails with WSAEWOULDBLOCK. Fix return value - condition. - * select.cc (struct socketinf): Change to accommodate using socket event - handling. - (peek_socket): Use event handling for peeking socket. - (thread_socket): Ditto. - (start_thread_socket): Ditto. - (socket_cleanup): Same here. - * tlsoffsets.h: Regenerate. - -2006-07-23 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump DLL minor version number to 22. - -2006-07-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Rearrange slightly to keep - event handling methods and members together. Drop owner status flag. - Split wait method. Rename event handling methods for readability. - * fhandler_socket.cc (struct wsa_event): Add owner field. - (LOCK_EVENTS): New macro. - (UNLOCK_EVENTS): Ditto. - (fhandler_socket::init_events): rename from prepare. - (fhandler_socket::evaluate_events): First half of former wait method. - Do everything but wait. Allow specifiying whether or not events from - event_mask should be erased from wsock_events->events. Simplify - OOB handling. Allow sending SIGURG to any process (group). - (fhandler_socket::wait_for_events): Second half of former wait method. - Call evaluate_events and wait in a loop if socket is blocking. - (fhandler_socket::release_events): Rename from release. - (fhandler_socket::connect): Accommodate above name changes. - (fhandler_socket::accept): Ditto. - (fhandler_socket::recv_internal): Ditto. - (fhandler_socket::send_internal): Ditto. - (fhandler_socket::close): Ditto. - (fhandler_socket::fcntl): Always set owner to given input value on - F_SETOWN. Handle F_GETOWN. - * net.cc (fdsock): Accommodate above name changes. - -2006-07-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait): Set Winsock errno to - WSAEWOULDBLOCK instead of WSAEINPROGRESS. - -2006-07-19 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (commune_process): Don't add extra \0 to cmdline. - (_pinfo::cmdline): Ditto process internal. - -2006-07-19 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (msync): Disable rounding up len. Fix bug in access check - loop. - -2006-07-19 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_worker): Return EEXIST if newpath exists. - -2006-07-18 Christopher Faylor <cgf@timesys.com> - - * tty.cc (tty_list::terminate): Don't enter the busy loop if we don't - own the master. - -2006-07-18 Silvio Laguzzi <slaguzzi@data-al.de> - - * sec_acl.cc (acltotext32): Add missing handling of default ACL entry - types. - -2006-07-18 Brian Ford <Brian.Ford@FlightSafety.com> - Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (mmap_region_status): New enum. - (mmap_is_attached_or_noreserve_page): Adjust prototype and rename - as below. - * mmap.cc (mmap_is_attached_or_noreserve_page): Rename - mmap_is_attached_or_noreserve. Add region length parameter. - Return enum above. - * exceptions.cc (_cygtls::handle_exceptions): Accommodate above. - * fhandler.cc (fhandler_base::raw_read): Call above for NOACCESS - errors and retry on success to allow reads into untouched - MAP_NORESERVE buffers. - -2006-07-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::ioctl): Fix typo in lint - directive. - -2006-07-18 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (posix_openpt): Export. - * tty.cc (posix_openpt): New function. - * include/cygwin/stdlib.h (posix_openpt): Declare. - * include/cygwin/version.h: Bump API minor number. - -2006-07-17 Christopher Faylor <cgf@timesys.com> - - GCC 4.1 fixes. - * cygheap.h (cygheap_user): Remove unneeded class names from function - declaration. - * fhandler.h (fhandler_base): Ditto. - (fhandler_dev_floppy): Ditto. - (fhandler_console): Ditto. - * wininfo.h (wininfo): Ditto. - * exceptions.cc (sigpacket::process): Avoid compiler errors about gotos - and initialization. - * fhandler_fifo.cc (fhandler_fifo::open): Ditto. - * fhandler_floppy.cc (fhandler_dev_floppy::ioctl): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Ditto. - * mmap.cc (mmap64): Ditto. - * pipe.cc (fhandler_pipe::open): Ditto. - * spawn.cc (spawn_guts): Ditto. - - * sec_helper.cc: Fix some comments. - (get_null_sd): Move file-scope static to only function where it is - used. - -2006-07-14 Christopher Faylor <cgf@timesys.com> - - * fork.cc (fork): Lock the process before forking to prevent things - like new fds from being opened, etc. - * sync.h (lock_process::dont_bother): New function. - -2006-07-14 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/types.h: Update copyright. - -2006-07-14 Christopher Faylor <cgf@timesys.com> - - * cygwin.sc: Make sure there's something in the cygheap. - * dllfixdbg: Accommodate newer binutils which put the gnu_debuglink at - the end rather than at the beginning. - -2006-07-14 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_token_group_sidlist): Always add the interactive - group to the token. Add comment. Create logon_id group SID by - copying it from incoming group list. - (create_token): Add subauth_token parameter. Use information in - subauth_token if present. Tweak SourceIdentifier if subauth_token - is present for debugging purposes. - * security.h (create_token): Add subauth_token parameter in declaration. - * syscalls.cc (seteuid32): Call subauth first. Call create_token - regardless. Use subauth token in call to create_token if subauth - succeeded. - -2006-07-13 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (waitq_head): Don't initialize to zero. - * sigproc.h: Update copyright, fix whitespace. - -2006-07-13 Christopher Faylor <cgf@timesys.com> - - * fhandler.cc (fhandler_base::raw_read): Only return EISDIR when we're - really trying to read a directory. - - * sigproc.cc: Use "Static" where appropriate. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * include/netinet/in.h: Update copyright. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Update copyright. - * include/pthread.h: Ditto. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait): Rework function so that - WaitForMultipleObjects is really only called when necessary. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Drop MAP_NORESERVE flag for non-anonymous, - non-private mappings. - (mmap_record::unmap_pages): Only check noreserve flag which now implies - anonymous and private. - (mprotect): Ditto. - (fixup_mmaps_after_fork): Ditto. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Drop MAP_RESERVED flag for all non-anonymous, - non-private mappings. - -2006-07-13 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::handle_exceptions): Call new - mmap_is_attached_or_noreserve_page function in case of access violation - and allow application to retry access on noreserve pages. - * mmap.cc (mmap_is_attached_or_noreserve_page): Changed from - mmap_is_attached_page. Handle also noreserve pages now. Change - comment accordingly. - * winsup.h (mmap_is_attached_or_noreserve_page): Declare instead of - mmap_is_attached_page. - -2006-07-12 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap_record::alloc_page_map): Don't call VirtualProtect - on maps created with MAP_NORESERVE. - -2006-07-12 Corinna Vinschen <corinna@vinschen.de> - - * include/netdb.h: Declare rcmd, rcmd_af, rexec, rresvport, - rresvport_af, iruserok, iruserok_sa, ruserok. - -2006-07-12 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Drop iruserok.o. Add rcmd.o. - * autoload.cc (rcmd): Drop definition. - * cygwin.din: Export bindresvport, bindresvport_sa, iruserok_sa, - rcmd_af, rresvport_af. - * net.cc (cygwin_rcmd): Remove. - (last_used_bindresvport): Rename from last_used_rrecvport. - (cygwin_bindresvport_sa): New function implementing bindresvport_sa. - (cygwin_bindresvport): New function implementing bindresvport. - (cygwin_rresvport): Remove. - * include/cygwin/version.h: Bump API minor number. - * include/netinet/in.h: Declare bindresvport and bindresvport_sa. - * libc/iruserok.c: Remove file. - * libc/rcmd.cc: New file implementing rcmd, rcmd_af, rresvport, - rresvport_af, iruserok_sa, iruserok and ruserok. - -2006-07-12 Corinna Vinschen <corinna@vinschen.de> - - * include/pthread.h: Define PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT and - PTHREAD_PRIO_PROTECT only if _POSIX_THREAD_PRIO_INHERIT is defined. - -2006-07-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::getsockname): Return valid - result for unbound sockets. - -2006-07-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Handle - wsock_mtx and wsock_evt on fork, thus handling close_on_exec correctly. - (fhandler_socket::fixup_after_exec): Drop misguided attempt to handle - close_on_exec here. - (fhandler_socket::dup): Call fixup_after_fork with NULL parent. - Add comment. - (fhandler_socket::set_close_on_exec): Handle wsock_mtx and wsock_evt. - -2006-07-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add wsock_mtx, wsock_evt - and wsock_events members. Remove closed status flag, add listener - status flag. Accommodate new implementation of socket event handling - methods. Declare recv* and send* functions ssize_t as the POSIX - equivalents. - (fhandler_socket::recv_internal): Declare. - (fhandler_socket::send_internal): Ditto. - * fhandler_socket.cc (EVENT_MASK): Define mask of selected events. - (fhandler_socket::fhandler_socket): Initialize new members. - (fhandler_socket::af_local_setblocking): Don't actually set the - socket to blocking mode. Keep sane event selection. - (fhandler_socket::af_local_unsetblocking): Don't actually set the - socket to previous blocking setting, just remember it. - (struct wsa_event): New structure to keep event data per shared - socket. - (NUM_SOCKS): Define number of shared sockets concurrently handled by - all active Cygwin processes. - (wsa_events): New shared datastructure keeping all wsa_event records. - (socket_serial_number): New shared variable to identify shared sockets. - (wsa_slot_mtx): Global mutex to serialize wsa_events access. - (search_wsa_event_slot): New static function to select a new wsa_event - slot for a new socket. - (fhandler_socket::prepare): Rewrite. Prepare event selection - per new socket. - (fhandler_socket::wait): Rewrite. Wait for socket events in thread - safe and multiple process safe. - (fhandler_socket::release): Rewrite. Close per-socket descriptor - mutex handle and event handle. - (fhandler_socket::dup): Duplicate wsock_mtx and wsock_evt. Fix - copy-paste error in debug output. - (fhandler_socket::connect): Accommodate new event handling. - (fhandler_socket::listen): Set listener flag on successful listen. - (fhandler_socket::accept): Accommodate new event handling. - (fhandler_socket::recv_internal): New inline method centralizing - common recv code. - (fhandler_socket::recvfrom): Call recv_internal now. - (fhandler_socket::recvmsg): Ditto. Streamline copying from iovec - to WSABUF. - (fhandler_socket::send_internal): New inline method centralizing - common send code. - (fhandler_socket::sendto): Call send_internal now. - (fhandler_socket::sendmsg): Ditto. Streamline copying from iovec - to WSABUF. - (fhandler_socket::close): Call release now. - (fhandler_socket::ioctl): Never actually switch to blocking mode. - Just keep track of the setting. - * net.cc (fdsock): Call prepare now. - (cygwin_connect): Revert again to event driven technique. - (cygwin_accept): Ditto. - * poll.cc (poll): Don't call recvfrom on a listening socket. - Remove special case for failing recvfrom. - * include/sys/socket.h: Declare recv* and send* functions ssize_t as - requested by POSIX. - -2006-07-10 Corinna Vinschen <corinna@vinschen.de> - - * libc/inet_addr.c: Define __INSIDE_CYGWIN_NET__. - * libc/inet_network.c: Ditto. - -2006-07-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait): Disable SA_RESTART - handling for now. - -2006-07-07 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_inet_ntop): Fix data type of forth parameter. - -2006-07-07 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add inet_addr.o and inet_network.o. - * autoload.cc (inet_addr): Drop definition. - (inet_ntoa): Ditto. - * net.cc: Forward declare cygwin_inet_aton and cygwin_inet_ntop. - (cygwin_inet_ntoa): Call cygwin_inet_ntop instead of Winsock inet_ntoa. - (cygwin_inet_addr): Remove here. - (cygwin_inet_aton): Ditto. - (cygwin_inet_network): Ditto. - * libc/inet_addr.c: New file implementing cygwin_inet_aton and - cygwin_inet_addr. - * libc/inet_network.c: New file implementing cygwin_inet_network. - -2006-07-06 Christopher Faylor <cgf@timesys.com> - - * hookapi.cc: Add comment header - (putmem): Make static. - (get_export): Ditto. - (rvadelta): Ditto. Don't assume that a section which ends where the - import_rva begins is the import list. - - * child_info.h: Update copyright. - * fork.cc: Ditto. - -2006-07-06 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in6.h (struct in6_addr): Fix typo. - -2006-07-06 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export in6addr_any, in6addr_loopback, freeaddrinfo, - gai_strerror, getaddrinfo, getnameinfo. - * fhandler_socket.cc: Include cygwin/in6.h. - (get_inet_addr): Accommodate AF_INET6 usage. - (fhandler_socket::connect): Ditto. - (fhandler_socket::listen): Ditto. - (fhandler_socket::sendto): Ditto. - * net.cc: Include cygwin/in6.h. - (in6addr_any): Define. - (in6addr_loopback): Define. - (cygwin_socket): Accommodate AF_INET6 usage. - (socketpair): Bind socketpairs only to loopback for security. - (inet_pton4): New static function. - (inet_pton6): Ditto. - (cygwin_inet_pton): New AF_INET6 aware inet_pton implementation. - (inet_ntop4): New static function. - (inet_ntop6): Ditto. - (cygwin_inet_ntop): New AF_INET6 aware inet_ntop implementation. - (ga_aistruct): New static function. - (ga_clone): Ditto. - (ga_echeck): Ditto. - (ga_nsearch): Ditto. - (ga_port): Ditto. - (ga_serv): Ditto. - (ga_unix): Ditto. - (gn_ipv46): Ditto. - (ipv4_freeaddrinfo): Ditto. - (ipv4_getaddrinfo): Ditto. - (ipv4_getnameinfo): Ditto. - (gai_errmap_t): New structure holding error code - error string mapping. - (cygwin_gai_strerror): New function implementing gai_strerror. - (w32_to_gai_err): New static function. - (get_ipv6_funcs): Ditto. - (load_ipv6_funcs): Ditto. - (cygwin_freeaddrinfo): New function implementing freeaddrinfo. - (cygwin_getaddrinfo): New function implementing getaddrinfo. - (cygwin_getnameinfo): New function implementing getnameinfo. - * include/netdb.h: Include stdint.h and cygwin/socket.h. Define - data types and macros used by getaddrinfo and friends. Declare - freeaddrinfo, gai_strerror, getaddrinfo and getnameinfo. - * include/cygwin/in.h: Add IPv6 related IPPROTOs. Remove definition - of struct sockaddr_in6. Include cygwin/in6.h instead. - * include/cygwin/in6.h: New header file defining IPv6 releated - data types and macros. - * include/cygwin/socket.h: Enable AF_INET6 and PF_INET6. Add - IPv6 related socket options. - * include/cygwin/version.h: Bump API minor number. - -2006-07-06 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (DsGetDcNameA): Define. - (NetGetAnyDCName): Define. - * security.cc: Include dsgetdc.h. - (DsGetDcNameA): Declare. - (DS_FORCE_REDISCOVERY): Define. - (get_logon_server): Add bool parameter to control rediscovery of DC. - Use DsGetDcNameA function if supported, NetGetDCName/NetGetAnyDCName - otherwise. - (get_server_groups): Rediscover DC if get_user_groups fails and - try again. - (get_reg_security): Use correct error code macro when testing - RegGetKeySecurity return value. - * security.h (get_logon_server): Remove default vaue from wserver - parameter. Add rediscovery parameter. - * uinfo.cc (cygheap_user::env_logsrv): Accommodate rediscovery parameter - in call to get_logon_server. - -2006-07-05 Christopher Faylor <cgf@timesys.com> - - * sortdin: Ignore all leading underscores when deriving a sort key. - * cygwin.din: Resort. - -2006-07-05 Christopher Faylor <cgf@timesys.com> - - * sortdin: New program. - * cygwin.din: Sort. - -2006-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::wait): Reset default timeout to 10ms. - -2006-07-05 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Ignore has_ea setting, it's always unset - at this point anyway. - (get_symlink_ea): Remove. - (set_symlink_ea): Remove. - (symlink_worker): Drop writing symlink into NTFS extended attributes. - (symlink_info::check): Drop reading symlinks from NTFS extended - attributes. - -2006-07-04 Christopher Faylor <cgf@timesys.com> - - * libc/rexec.cc (cygwin_rexec): Obvious (?) fix to correct a gcc - warning - set port to zero first thing in the function. - -2006-07-04 Corinna Vinschen <corinna@vinschen.de> - - * signal.cc (signal): Set sa_mask to sig. - -2006-07-04 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add rexec.o. - * autoload.cc (inet_network): Drop definition. - (rexec): Ditto. - * net.cc (rexec): Drop extern declaration. - (inet_network): Ditto. - (cygwin_inet_network): Implement using inet_addr. - (cygwin_rexec): Remove. - * libc/rexec.cc: New file. - -2006-07-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::listen): Allow listening on - unbound INET socket. - -2006-07-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::wait): Set default timeout to INFINITE. - -2006-07-03 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtQueryEaFile): Define. - (NtSetEaFile): Define. - * fhandler.cc (fhandler_base::open): Use appropriate open flags - in query case when allow_ntea is set. - * ntdll.h (struct _FILE_GET_EA_INFORMATION): Define. - (struct _FILE_FULL_EA_INFORMATION): Define. - (NtQueryEaFile): Declare. - (NtSetEaFile): Declare. - * ntea.cc (read_ea): Rename from NTReadEA and rewrite using - NtQueryEaFile. - (write_ea): Rename from NTWriteEA and rewrite using NtSetEaFile. - * path.cc (get_symlink_ea): Make static. Add handle parameter to - accommodate new read_ea call. - (set_symlink_ea): Make static. Add handle parameter to accommodate new - write_ea call. - (symlink_worker): Call set_symlink_ea while file is still open. - (symlink_info::check): Call get_symlink_ea after file has been opened. - * security.cc (get_file_attribute): Accommodate new read_ea call. - (set_file_attribute): Accommodate new write_ea call. - * security.h (read_ea): Change declaration accordingly. - (write_ea): Ditto. - -2006-07-03 Kazuhiro Fujieda <fujieda@jaist.ac.jp> - - * fhandler.h (class dev_console): Add `metabit' indicating the - current meta key mode. - * fhandler_console.cc (fhandler_console::read): Set the top bit of - the character if metabit is true. - * fhandler_console.cc (fhandler_console::ioctl): Implement - KDGKBMETA and KDSKBMETA commands. - * fhandler_tty.cc (process_ioctl): Support KDSKBMETA. - (fhandler_tty_slave::ioctl): Send KDGKBMETA and KDSKBMETA to the - master. - * include/cygwin/kd.h: New file for the meta key mode. - * include/sys/kd.h: New file. - -2006-07-03 Eric Blake <ebb9@byu.net> - - * include/stdint.h (UINT8_C, UINT16_C): Unsigned types smaller - than int promote to signed int. - -2006-07-03 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_sendto): Define appropriate parameters using - socklen_t type according to SUSv3. - (cygwin_recvfrom): Ditto. - (cygwin_setsockopt): Ditto. - (cygwin_getsockopt): Ditto. - (cygwin_connect): Ditto. - (cygwin_accept): Ditto. - (cygwin_bind): Ditto. - (cygwin_getsockname): Ditto. - (cygwin_getpeername): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - * include/cygwin/socket.h (socklen_t): Typedef and define. - * include/sys/socket.h: Declare socket functions using socklen_t type. - -2006-07-02 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump DLL minor version number to 21. - -2006-06-30 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_sendto): Allow zero-sized packets. - (cygwin_sendmsg): Ditto. - -2006-06-26 Corinna Vinschen <corinna@vinschen.de> - - Revert patches from 2005-10-22 and 2006-06-14 to use event driven - accept and connect back to using select: - * fhandler.h (class fhandler_socket): Remove accept_mtx. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Drop - initializing accept_mtx. - (fhandler_socket::accept): Drop event handling. - (fhandler_socket.cc (fhandler_socket::connect): Ditto. - (fhandler_socket::dup): Drop accept_mtx handling. - (fhandler_socket::listen): Ditto. - (fhandler_socket::prepare): Ditto. - (fhandler_socket::release): Ditto. - (fhandler_socket::close): Ditto. - * net.cc (cygwin_accept): Revert to calling cygwin_select to - implement interuptible accept. - (cygwin_connect): Ditto for connect. - -2006-06-22 Christopher Faylor <cgf@timesys.com> - - * fhandler_fifo.cc (fhandler_fifo::open): Release process lock and grab - a system-wide mutex to prevent a deadlock and a race. - * sync.h (lock_process): Make fhandler_fifo a friend. - - * smallprint.c (__small_vsprintf): Cosmetic change. - -2006-06-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export __srget_r, __swbuf_r. - * include/cygwin/version.h: Bump API minor number to 156. - -2006-06-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add private mutex handle - accept_mtx. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize - accept_mtx to NULL. - (fhandler_socket::dup): Duplicate accept_mtx, if available. - (fhandler_socket::listen): Create accept_mtx before trying to listen. - (fhandler_socket::prepare): Wait for accept_mtx if available to - serialize accepts on the same socket. - (fhandler_socket::release): Release accept_mtx. - (fhandler_socket::close): Close accept_mtx on successful closesocket. - -2006-06-12 Christopher Faylor <cgf@timesys.com> - - * fhandler_tty.cc (fhandler_pty_master::close): Always close - from_master/to_master since we always have copies of these handles. - -2006-06-12 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/wait.h: Move definition of wait constants from here... - * include/cygwin/wait.h: ...to here. New file. - * include/cygwin/stdlib.h: Include cygwin/wait.h to conform with SUSv3. - -2006-06-12 Pierre Humblet Pierre.Humblet@ieee.org - - * heap.cc (heap_init): Only commit if allocsize is not zero. - -2006-06-12 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Disable raising buffer sizes. Add comment to - explain why. - -2006-06-04 Christopher Faylor <cgf@timesys.com> - - * ioctl.cc (ioctl): Accommodate change in reported pty master device - number. - * select.cc (peek_pipe): Ditto. - -2006-06-04 Christopher Faylor <cgf@timesys.com> - - * cygtls.h (CYGTLS_PADSIZE): Reset to a size that XP SP1 seems to like. - * tlsoffsets.h: Regenerate. - -2006-06-03 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::terminate_thread): In debugging output, use - name of thread being terminated rather than thread doing the - terminating. - - * fhandler.h (fhandler_pty_master::slave): Delete. - (fhandler_pty_master::get_unit): Ditto. - (fhandler_pty_master::setup): Change argument declaration to - accommodate new usage. - * fhandler_tty.cc (fhandler_tty_master::init): Remove obsolete slave - assignment. Pass argument to setup indicating that this is a tty. - (fhandler_tty_slave::open): Use dev() method rather than referencing - pc.dev directly. - (fhandler_pty_master::open): Don't create archetype based on ptym - device number. Set device number to use DEV_TTYM_MAJOR and tty number. - Pass argument to setup indicating that this is a pty. - (fhandler_pty_master::setup): Change single argument to a flag - indicating whether we're creating a pty and use appropriately. - Calculate 't' variable here rather than in caller. - - * fhandler_dsp.cc (fhandler_dev_dsp::open): Use dev() method rather - than referencing pc.dev directly. - -2006-06-03 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Call tty_list::init_session here. - (dll_crt0_1): Reflect renaming from tty_init to tty::init_session. - (do_exit): Reflect moving of tty_terminate into tty_list. - * exceptions.cc (events_init): Move tty_mutex stuff elsewhere. - * fhandler_console.cc (set_console_title): Use lock_ttys class. - * fhandler_termios.cc (fhandler_termios::bg_check): Make debug output - more accurate. - * fhandler_tty.cc (fhandler_tty_slave::open): Reflect move of - attach_tty into tty_list class. Don't attempt to grab master end of - pty if master doesn't exist. - (fhandler_pty_master::open): Reflect move of allocate_tty into tty_list - class. Use lock_ttys::release to release mutex. Improve debugging - output. - (fhandler_pty_master::setup): Remove if 0'ed block. Fix argument to - SetNamedPipeHandleState. - * pinfo.cc (_pinfo::set_ctty): Lock ttys before setting sid/pgid. - Improve debugging. Add temporary debugging. - * tty.cc (tty_list::init_session): New function. - (tty::init_session): Rename from tty_init. Reflect move of attach_tty - to tty_list class. - (tty::create_master): Rename from create_tty_master. - (tty_list::attach): Rename from attach_tty. Reflect renaming of - connect_tty to connect. Ditto for allocate_tty. - (tty_terminate): Delete. - (tty_list::terminate): Subsume tty_terminate. Use lock_ttys rather - than manipulating mutex directly. - (tty_list::allocate): Rename from allocate_tty. Use lock_ttys rather - than manipulating mutex directly. Don't set sid here since linux - apparently doesn't do this. Reflect move of create_tty_master into - tty. - (lock_ttys::lock_ttys): Define new constructor. - (lock_ttys::release): New function. - * tty.h (tty::exists): Return false immediately if !master_pid. - (tty::set_master_closed): Define new function. - (tty::create_master): Ditto. - (tty::init_session): Ditto. - (tty_list::mutex): New field. - (tty_list::allocate): Define new function. - (tty_list::connect): Ditto. - (tty_list::attach): Ditto. - (tty_list::init_session): Ditto. - (lock_ttys): New class. - (tty_init): Delete declaration. - (tty_terminate): Ditto. - (attach_tty): Ditto. - (create_tty_master): Ditto. - -2006-06-03 Christopher Faylor <cgf@timesys.com> - - * Makefile.in (libdl.a): New library. - -2006-06-03 Christopher Faylor <cgf@timesys.com> - - * fhandler_tty.cc (fhandler_pty_master::close): Don't close handles if - we don't own them. - (fhandler_pty_master::setup): Make sure that original handle is closed - when changing inheritance. - (fhandler_pty_master::fixup_after_fork): Set from_master/to_master to - arch value always. - (fhandler_pty_master::fixup_after_exec): Clear from_master/to_master - when close_on_exec. - -2006-06-03 Christopher Faylor <cgf@timesys.com> - - * cygheap.cc (init_cygheap::close_ctty): Remove obsolete code. - * dcrt0.cc (child_info_spawn::handle_spawn): Signal ready after we've - run fixup_after_exec. - * dtable.cc (dtable::fixup_after_exec): Add debugging output. - * fhandler_tty.cc (fhandler_pty_master::doecho): Use class version of - to_master. - (fhandler_tty_common::close): Remove obsolete code. - (fhandler_tty_slave::fixup_after_exec): Don't close, since this is done - in dtable's fixup_after_exec. (revisit later?) - (fhandler_pty_master::fixup_after_exec): Ditto. - -2006-06-02 Christopher Faylor <cgf@timesys.com> - - * cygtls.h (CYGTLS_PADSIZE): Bump up or suffer a regrettable collision - with the call chain. - * tlsoffsets.h: Regenerate. - - * dcrt0.cc (break_here): Define unconditionally for use elsewhere. - Call DebugBreak, if appropriate. - (initial_env): Rely on break_here() to call DebugBreak. - * exceptions.cc (try_to_debug): Ditto. - -2006-06-02 Christopher Faylor <cgf@timesys.com> - - * fhandler.cc (fhandler_base::fixup_after_exec): Declare here. - * fhandler.h (fhandler_base::fixup_after_exec): Make non-inline. - (fhandler_termios::fixup_after_fork): Delete declaration. - (fhandler_termios::fixup_after_exec): Ditto. - (fhandler_tty_common::inuse): Remove. - (fhandler_tty_common::dup): Delete declaration. - (fhandler_tty_common::fixup_after_fork): Ditto. - (fhandler_tty_slave::fixup_after_exec): Declare new function. - (fhandler_pty_master::dwProcessId): New variable. - (fhandler_pty_master::from_master): Ditto. - (fhandler_pty_master::to_master): Ditto. - (fhandler_pty_master::setup): New function. - (fhandler_pty_master::fixup_after_fork): Ditto. - (fhandler_pty_master::fixup_after_exec): Ditto. - * fhandler_termios.cc (fhandler_termios::fixup_after_exec): Delete - definition. - (fhandler_termios::fixup_after_fork): Ditto. - * fhandler_tty.cc (fhandler_tty_master::init): Use fhandler_pty_master - setup function rather than obsolete tty::common_init. Delete obsolete - inuse setting. - (fhandler_tty_slave::fhandler_tty_slave): Set inuse to NULL here. - (fhandler_tty_slave::open): Change debugging output for clarity. Check - for different things when doing a sanity check on the tty. Reflect the - fact that master_pid now is the cygwin pid rather than the windows pid. - Use "arch" rather than "archetype" for consistency. - (fhandler_tty_slave::close): Close inuse here. - (fhandler_tty_slave::dup): Remove old if 0'ed code. - (fhandler_pty_master::dup): New function. Handles pty master - archetype. - (fhandler_pty_master::fhandler_pty_master): Zero pty_master specific - fields. - (fhandler_pty_master::open): Implement using archetypes, similar to - slave. Use fhandler_pty_master setup function rather than obsolete - tty::common_init. Don't set inuse. - (fhandler_tty_common::close): Don't deal with inuse. Delete old if - 0'ed code. - (fhandler_pty_master::close): Implement using archetypes. Close - from_master and to_master. - (fhandler_tty_common::set_close_on_exec): Just set close_on_exec flag - here since everything uses archetypes now. - (fhandler_tty_common::fixup_after_fork): Delete definition. - (fhandler_tty_slave::fixup_after_exec): Define new function. - (fhandler_pty_master::setup): New function, derived from - tty::common_init. - (fhandler_pty_master::fixup_after_fork): New function. - (shared_info.h): Reset SHARED_INFO_CB to reflect new tty size. - * tty.cc (tty_list::terminate): Close individual handles from - tty_master. - (tty::master_alive): Delete. - (tty::make_pipes): Ditto. - (tty::common_init): Ditto. - * tty.h (tty::from_slave): Delete. - (tty::to_slave): Ditto. - (tty::common_init): Delete declaration. - (tty::make_pipes): Ditto. - (tty::master_pid): Define as pid_t since it is now a cygwin pid. - -2006-06-01 Christopher Faylor <cgf@timesys.com> - - * cygheap.cc (cygheap_fixup_in_child): Don't close parent handle here. - Let the caller do that. - * dcrt0.cc (child_info_spawn::handle_spawn): Close parent handle here - to allow fixup_after_exec functions to use it. - - * cygtls.cc (_cygtls::call2): Avoid calling exit thread if called with - *crt0_1 functions. - * cygtls.h (_cygtls::isinitialized): Check that we actually have a tls - before seeing if it is initialized. - * gendef (_sigfe_maybe): Ditto. - * dcrt0.cc (dll_crt0_1): Remove static, use just one argument. - * dll_init.cc (dllcrt0_info): New structure. - (dll_dllcrt0): Change into a front-end to renamed dll_dllcrt0_1 so that - we'll always be assured of having something like a tls. - (dll_dllcrt0_1): New function, basically renamed from from dll_dllcrt0. - Unconditionally call _my_tls.init_exception_handler now that we are - assured of having a tls. Change variable name from "linking" to "linked". - * winsup.h (dll_crt0_1): Declare. - (dll_dllcrt0_1): Ditto. - -2006-05-30 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::call2): Don't call ExitThread on the main thread. - -2006-05-29 Christopher Faylor <cgf@timesys.com> - - * winf.h (MAXCYGWINCMDLEN): Set down size to 30000 or suffer fork - errors. - -2006-05-28 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (child_info::proc_retry): Mask all of the bits we're - interested in, which includes bits above and below 0xc0000000. - -2006-05-27 Christopher Faylor <cgf@timesys.com> - - * dll_init.cc (dll_dllcrt0): Previous change didn't work very well with - fork. Semi-revert it but change name of variable to something that - makes better sense. - -2006-05-27 Christopher Faylor <cgf@timesys.com> - - * thread.cc (verifyable_object_isvalid): Check for NULL specifically. - -2006-05-27 Christopher Faylor <cgf@timesys.com> - - * dll_init.cc (dll_dllcrt0): Call _my_tls.init_exception_handler if - we've finished initializing (Thanks to Gary Zablackis for noticing this - problem). Just use cygwin_finished_initializing rather than defining a - separate variable. - -2006-05-25 Christopher Faylor <cgf@timesys.com> - - * debug.h (ModifyHandle): Define new macro. - (modify_handle): Declare new function. - * debug.cc (modify_handle): Define new function. - * fhandler.h (fhandler_base::fork_fixup): Change return value from void - to bool. - * fhandler.cc (fhandler_base::fork_fixup): Return true if fork fixup has - been done. - * pipe.cc (fhandler_pipe::set_close_on_exec): Set inheritance of - protected handle via ModifyHandle if DEBUGGING. - (fhandler_pipe::fixup_after_fork): Protect guard handle if fork fixup - has been done. - -2006-05-24 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::call): Call call2 using _my_tls. - (_cygtls::init_exception_handler): Always replace existing exception - handler with cygwin exception handler. - * cygtls.h (_cygtls::call2): Remove static designation. - * dcrto.cc (dll_crt0_1): Define in a way that allows calling via - _cygtls::call. - (_initialize_main_tls): Delete. - (_dll_crt0): Call dll_crt0_1 via cygtls::call. Set _main_tls here. - * external.cc (cygwin_internal): Implement CW_CYGTLS_PADSIZE. - * include/sys/cygwin.h (CW_CYGTLS_PADSIZE): Define. - * tlsoffsets.h: Regenerate. - -2006-05-24 Christopher Faylor <cgf@timesys.com> - - * configure.in: Update to newer autoconf. - (thanks to Steve Ellcey) - * configure: Regenerate. - * aclocal.m4: New file. - -2006-05-23 Lev Bishop <lev.bishop+cygwin@gmail.com> - - * fhandler.cc (readv): Remove nonsensical assert. - -2006-05-23 Christopher Faylor <cgf@timesys.com> - - * select.cc (start_thread_socket): Delay setting thread local exitsock - until we know it's correct. Return correct value on error. - -2006-05-23 Lev Bishop <lev.bishop+cygwin@gmail.com> - Christopher Faylor <cgf@timesys.com> - - * select.cc (start_thread_socket): Clean up exitsock in case of error. - Use si->exitcode consistently. - -2006-05-21 Christopher Faylor <cgf@timesys.com> - - * child_info.h (_CI_SAW_CTRL_C): New enum. - (CURR_CHILD_INFO_MAGIC): Reset. - (saw_ctrl_c): New function. - (set_saw_ctrl_c): Ditto. - * sigproc.cc (child_info::proc_retry): Return EXITCODE_OK if we get - STATUS_CONTROL_C_EXIT and we actually saw a CTRL-C. - * spawn.cc (dwExeced): Delete. - (chExeced): New variable. - (spawn_guts): Set chExeced; - * exceptions.cc (dwExeced): Delete declaration. - (chExeced): Declare. - (ctrl_c_handler): Detect if we're an exec stub process and set a flag, - if so. - - * fhandler_tty.cc (fhandler_tty_common::__release_output_mutex): Add - extra DEBUGGING test. - - * pinfo.cc: Fix comment. - -2006-05-21 Christopher Faylor <cgf@timesys.com> - - * fhandle.h (fhandler_pipe::create_guard): Revert change which - eliminated SECURITY_ATTRIBUTES argument. - * pipe.cc (fhandler_pipe::open): Duplicate guard from other process and - protect it appropriately. Eliminate unneeded writepipe_exists - temporary variable. Set inheritance appropriately. - (fhandler_pipe::set_close_on_exec): Revert change which eliminated - handling guard inheritance. - (fhandler_pipe::fixup_after_fork): Ditto. Use correct name of entity - being checked by fork_fixup. - (fhandler_pipe::fixup_after_exec): Don't bother with guard here. - (fhandler_pipe::dup): Cosmetic changes and revert creation of - writepipe_exists as noninheritable. - (fhandler_pipe::create): Revert change which eliminated - SECURITY_ATTRIBUTES argument. Revert change which always made - writepipe_exists noninheritable. - -2006-05-21 Christopher Faylor <cgf@timesys.com> - - * debug.cc (add_handle): Print handle value when collision detected. - * dtable.cc (dtable::stdio_init): Cosmetic change. - * fhandler.h (fhandler_base::create_read_state): Protect handle. - (fhandler_pipe::create_guard): Ditto. Always mark the handle as - inheritable. - (fhandler_pipe::is_slow): Return boolean value rather than numeric 1. - * pipe.cc (fhandler_pipe::fhandler_pipe): Always flag that we need fork - fixup. - (fhandler_pipe::open): Don't pass security attributes to create_guard. - (fhandler_pipe::set_close_on_exec): Don't handle guard here. - (fhandler_pipe::close): Accommodate now-protected guard handle. - (fhandler_pipe::fixup_in_child): Don't protect read_state here. - (fhandler_pipe::fixup_after_exec): Close guard handle if close_on_exec. - (fhandler_pipe::fixup_after_fork): Don't bother with guard here. - (fhandler_pipe::dup): Don't set res to non-error prematurely. Use - boolean values where appropriate. Protect guard and read_state. - (fhandler_pipe::create): Don't call need_fork_fixup since it is now the - default. Don't protect read_state or guard. - - * pipe.cc (fhandler_base::ready_for_read): Use bool values for "avail". - - * spawn.cc (spawn_guts): Set cygheap->pid_handle as inheritable when - protecting. - -2006-05-15 Lev Bishop <lev.bishop+cygwin@gmail.com> - Christopher Faylor <cgf@timesys.com> - - * select.cc (fhandler_pipe::ready_for_read): Actually get the guard - mutex for blocking reads. - -2006-05-20 Christopher Faylor <cgf@timesys.com> - - * fhandler_tty.cc (fhandler_tty::close): Remove problematic hExeced guard. - -2006-05-20 Christopher Faylor <cgf@timesys.com> - - * fhandler_tty.cc (fhandler_tty_slave::open): Reinstate call to - need_invisible on first pty open. - -2006-05-18 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::need_invisible): Allocate an - invisible window station when ctty != TTY_CONSOLE. - -2006-05-16 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::remove): Don't test for initialization since - this function will always be called when _my_tls is initialized. - * init.cc (dll_entry): Don't attempt to remove tls info if _my_tls is - obviously not even available. - -2006-05-15 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (no_signals_available): Detect hwait_sig == - INVALID_HANDLE_VALUE. - (wait_sig): Set hwait_sig to INVALID_HANDLE_VALUE on __SIGEXIT. - -2006-05-15 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::init_thread): Zero entire _my_tls structure and - no more. - * cygtls.h (_my_tls::padding): Delete. - (CYGTLS_PADSIZE): Redefine concept of padding to mean padding at the - end of the stack. - * dcrt0.cc (initialize_main_tls): Change return to void. - * gentls_offsets: Treat const specially, too. Keep going after a '}' - is found. Change negative offset calculation to use CYGTLS_PADSIZE. - * init.cc (_my_oldfunc): New variable. - (threadfunc_fe): Use stored tls value for oldfunc rather than blindly - writing to the stack. - (munge_threadfunc): Set oldfunc in tls. - (dll_entry): Initialize tls allocation. - * tlsoffsets.h: Regenerate. - -2006-05-13 Christopher Faylor <cgf@timesys.com> - - * ntdll.h (STATUS_INVALID_INFO_CLASS): Conditionalize. - -2006-05-10 Brian Dessent <brian@dessent.net> - - * Makefile.in (clean): Also delete *.dbg. - -2006-05-08 Christian Franke <Christian.Franke@t-online.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix typo which - caused test for ".." to be skipped. - -2006-05-02 Christopher Faylor <cgf@timesys.com> - - * external.cc (cygwin_internal): Set errno on failure. - -2006-04-27 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (DEFAULT_PIPEBUFSIZE): Raise to 64K. - -2006-04-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base): Change fstat_helper prototype - to take file size and inode number as 64 bit values. - * fhandler_disk_file.cc (FS_IS_SAMBA): Move to path.cc - (FS_IS_SAMBA_WITH_QUOTA): Ditto. - (path_conv::hasgood_inode): Delete. - (path_conv::is_samba): Delete. - (path_conv::isgood_inode): Centralized function to recognize - a good inode number. - (fhandler_base::fstat_by_handle): Constify fvi_size and fai_size. - Accommodate argument change in fstat_helper. - (fhandler_base::fstat_by_name): Ditto. - (fhandler_base::fstat_helper): Accommodate argument change. Call - path_conv::isgood_inode to recognize good inodes. - (fhandler_disk_file::opendir): Explain Samba weirdness here. - Call path_conv::fs_is_samba instead of path_conv::is_samba. - (fhandler_disk_file::readdir): Add STATUS_INVALID_INFO_CLASS - as valid return code from NtQueryDirectoryFile to indicate that - FileIdBothDirectoryInformation is not supported. - Call path_conv::isgood_inode to recognize good inodes. - * ntdll.h (STATUS_INVALID_INFO_CLASS): Define. - * path.cc (fs_info::update): Rework file system recognition - and set appropriate flags. - * path.h (struct fs_info): Add is_ntfs, is_samba and is_nfs flags. - Constify pure read accessors. - -2006-04-24 Christopher Faylor <cgf@timesys.com> - - * environ.cc (getearly): Force correct dereference order when - inspecting environ table. - -2006-04-24 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (thread_pipe): Raise sleep time only every 8th iteration. - (thread_mailslot): Ditto. - -2006-04-23 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <cgf@timesys.com> - - * select.cc (thread_pipe): Raise sleep time dynamically to speed up - select on pipes when copying lots of data. - (thread_mailslot): Ditto for mailslots. - -2006-04-22 Christopher Faylor <cgf@timesys.com> - - * signal.cc (abort): On second thought, just set incyg once. - -2006-04-22 Christopher Faylor <cgf@timesys.com> - - * signal.cc (abort): Set incyg manually to help get a reliable gdb - stack trace. - * cygwin.din (abort): Make NOSIGFE. - -2006-04-21 Pierre Humblet Pierre.Humblet@ieee.org - Christopher Faylor <cgf@timesys.com> - - * environ.cc (getearly): Use GetEnvironmentVariable and cmalloc instead - of GetEnvironmentStrings. - (environ_init): Revert rawenv stuff. - -2006-04-21 Christopher Faylor <cgf@timesys.com> - - * environ.cc (rawenv): Make this variable a file-scope static. - (getearly): Rename 's' variable to 'len' since 's' is used fairly - consistently throughout cygwin as a string variable. Remove rawenv - declaration. Perform other minor cleanups. - (environ_init): Remove rawenv declaration. Only set rawenv to - GetEnvironmentStrings() if it has not already been set. Properly free - rawenv in all cases. - -2006-04-21 Christopher Faylor <cgf@timesys.com> - - * tty.h (tty::hwnd): Move to tty_min. - (tty::gethwnd): Ditto. - (tty::sethwnd): Ditto. - (tty_min::hwnd): Receive variable from tty class. - (tty_min::gethwnd): Receive function from tty classs. - (tty_min::sethwnd): Ditto. - * dtable.cc (dtable::stdio_init): Only call init_console_handler when - we actually own the console. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Set tty's hwnd - to non-zero value. - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Semi-reinstate - handling of console when pgrp is set. - -2006-04-21 Pierre Humblet <Pierre.Humblet@ieee.org> - Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (getearly): New function. - (findenv_func): New function pointer, predefined to getearly. - (getenv): Call findenv function over the findenv_func pointer. - (environ_init): Change findenv_func pointer to my_findenv after Cygwin - environment is initialized. - -2006-04-21 Lars Munch <lars@segv.dk> - - * include/asm/byteorder.h (__ntohl): Fix the missing uint32_t. - -2006-04-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait): Reorder setting - WSAError to avoid spurious errors with WSAError set to 0. - -2006-04-21 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/byteorder.h: Include stdint.h. Per standard, change - datatypes in ntohX and htonX functions to uintXX_t types. - -2006-04-18 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (ctrl_c_handler): Only exit TRUE on CTRL_LOGOFF_EVENT - when we have actually handled the event. - -2006-04-17 Eric Blake <ebb9@byu.net> - - * mktemp.cc (_gettemp): Open temp files in binary mode. - -2006-04-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Use UINT32_MAX - instead of UINT_MAX. - -2006-04-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::hasgood_inode): Make inline. - Drop remote fs handling entirely since unreliable inode numbers - are now recognized differently. - (path_conv::is_samba): Make inline. - (fhandler_disk_file::opendir): Reformat comment. - (fhandler_base::fstat_helper): Special case remote file systems - returning (unreliable) 32 bit inode numbers. - (fhandler_disk_file::readdir): Ditto. - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto. - -2006-04-13 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Move ch.set() call back to where it was - supposed to be. - -2006-04-13 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sysconf): Add _SC_THREADS, _SC_THREAD_ATTR_STACKSIZE, - _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PROCESS_SHARED, - _SC_THREAD_SAFE_FUNCTIONS, _SC_TIMERS handling. - -2006-04-12 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Revert patch which treated derived cygwin - programs differently from those which are mounted with -X. Pass extra - argument to linebuf::fromargv. - * winf.h (MAXCYGWINCMDLEN): New define. - (linebuf::finish): Add a new argument denoting when command line - overflow is ok. - (linebuf::fromargv): Ditto. - * winf.cc (linebuf::finish): Implement above change. - (linebuf::fromargv): Ditto. - -2006-04-11 Christopher Faylor <cgf@timesys.com> - - * Makefile.in (DLL_OFILES): Add winf.o. - * spawn.cc: Move command line handling stuff into winf.cc. - * winf.h: New file. - * winf.cc: New file. - -2006-04-05 Christopher Faylor <cgf@timesys.com> - - * fhandler_socket.cc: Move iptypes.h include after winsock2 since it - now relies on it. - * net.cc: Ditto. - -2006-04-05 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Move user_data->{resourcelocks,threadinterface} - initialization here from dll_crt0_1. - (dll_crt0_1): See above. - -2006-04-04 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Raise default SO_RCVBUF/SO_SNDBUF buffer sizes to - the same values as on Linux. - -2006-04-03 Christopher Faylor <cgf@timesys.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - (child_info_fork::alloc_stack): Move into this class. - (child_info_fork::alloc_stack_hard_way): Ditto. - * dcrt0.cc (child_info_fork::alloc_stack): Ditto. - (child_info_fork::alloc_stack_hard_way): Ditto. - (_dll_crt0): Reference alloc_stack via fork_info. - -2006-04-03 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (linebuf::finish): Drop argument. Don't check command line - length. - (spawn_guts): Remove wascygexec. Check real_path.iscygexec instead. - Accommodate change to linebuf::finish. - -2006-04-03 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (sm): Delete. - (alloc_stack_hard_way): Figure out where the stack lives here rather - than relying on previously filled out information which has been - invalid since 1.5.19. - -2006-03-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (FS_IS_SAMBA_WITH_QUOTA): New define. - (path_conv::hasgood_inode): Recognize Samba with quota support - compiled in. - (path_conv::is_samba): Ditto. Fix comment to include Samba version - numbers for later reference. - -2006-03-30 Corinna Vinschen <corinna@vinschen.de> - - * security.h (sec_user_nih): Make sid1 argument mandatory. - (sec_user): Ditto. - -2006-03-29 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (wait_for_sigthread): Use the current user sid when - setting up the signal pipe rather than relying on (eventually) the - effective sid. - -2006-03-29 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (child_info_fork::handle_fork): Set uid/gid in myself so - that it can be used by subsequent startup functions. - (dll_crt0_0): Issue a warning if DuplicateTokenEx fails and DEBUGGING. - (dll_crt0_1): Move user_data->{resourcelocks,threadinterface} - initialization here from dll_crt0_0. - * fork.cc (frok::child): Tell wait_for_sigthread that this is fork. - (frok::parent): Only initialize start_time once. Tighten time when - we're "deimpersonated". - * sigproc.cc (signal_fixup_after_exec): Rework (futiley) sa_buf stuff. - Add debugging output. - (wait_for_sigthread): Accept an argument which illustrates whether we - are forked or not. - (wait_sig): Avoid using myself pointer. - * winsup.h ((wait_for_sigthread): Reflect change to argument. - -2006-03-26 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Close handles if we know that we will not be - seeing a sync event from the child. - -2006-03-26 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (wait_sig): Move myself manipulation... - (wait_for_sigthread): ...to here. - -2006-03-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc: Include ntdef.h and ntdll.h. - (fhandler_dev_floppy::get_drive_info): Rearrange so that now - NtQueryVolumeInformationFile is called on drives which don't support - IOCTL_DISK_GET_DRIVE_GEOMETRY. - * ntdll.h (struct _FILE_FS_SIZE_INFORMATION): Add. - (enum _FSINFOCLASS): Add missing values. - -2006-03-23 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::fixup_after_fork_exec): Make - error message more explicit. - * pinfo.cc (_pinfo::commune_request): Don't lock process unless we're - looking for fifos. - -2006-03-23 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (child_info_spawn::handle_spawn): Don't initialize the - console handler here. - * dtable.cc (dtable::stdio_init): Initialize console handler here. - -2006-03-23 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (sigalloc): Don't set SA_RESTART here. - * signal.cc (_SA_NORESTART): New flag. - (sigaction_worker): New function, derived from sigaction. Don't set - internal flags unless called internally. - (sigaction): Use sigaction_worker. - (signal): Honor new _SA_NORESTART flag. - (siginterrupt): Set _SA_NORESTART flag appropriately. Use - sigaction_worker to set flags. - * include/cygwin/signal.h: Define _SA_INTERNAL_MASK here. - -2006-03-22 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread_mutex::is_good_initializer_or_bad_object): Delete. - (pthread_cond::is_good_initializer_or_bad_object): Delete. - (pthread_rwlock::is_good_initializer_or_bad_object): Delete. - (pthread_cond::init): Remove disabled code. Guard assignment to - object to initialize against access violation. - (pthread_rwlock::init): Ditto. - (pthread_mutex::init): Ditto. - -2006-03-22 Eric Blake <ebb9@byu.net> - - * fhandler.cc (fcntl): Print flags in hex. - -2006-03-22 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Semi-revert 2006-03-14 change which moved - pinfo_init and uinfo_init here. - (dll_crt0_1): Ditto. - (__dll_crt0): Ditto. Don't call update_envptrs here. - (dll_crt0_1): Ditto. Move wait_for_sigthread call here from dll_crt0_0. - * environ.cc (environ_init): Call it here instead. - * sigproc.cc (my_readsig): New static variable. - (wait_for_sigthread): Set up read pipe here since we are assured that - we have the proper privileges when this is called. - (talktome): Eliminate second argument since it is available as a global - now. - (wait_sig): Reflect use of my_readsig. - -2006-03-22 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread_cond::init): Disable validity test of object - to initialize since test of uninitialized content is unreliable. - (pthread_rwlock::init): Ditto. - (pthread_mutex::init): Ditto. - -2006-03-21 Christopher Faylor <cgf@timesys.com> - - * signal.cc (signal): Don't set SA_RESTART here. - (siginterrupt): White space. - * sigproc.cc (sigalloc): Set SA_RESTART here, on initialization. - -2006-03-21 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_status): Fix typo which made it impossible to set - iscygwin. - (child_info::isstraced): Booleanize. - (child_info::iscygwin): Ditto. - * sigproc.cc (child_info::child_info): Minor cleanup of flag setting. - * spawn.cc (spawn_guts): Only close_all_files when we know the process - has started successfully. - - * exceptions.cc (init_console_handler): Fix indentation. - -2006-03-20 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Call SetErrorMode earlier. - * pinfo.cc (_pinfo::dup_proc_pipe): Reset wr_proc_pipe on failure. - Return previous pipe handle. - * pinfo.h (_pinfo::dup_proc_pipe): Reflect change to return value. - * spawn.cc (spawn_guts): Restore previous proc pipe on retry or if - process exits before synchronization. - -2006-03-20 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_status): New enum. - (child_info::flag): Rename from 'straced'. - (child_info::isstraced): New function. - (child_info::iscygwin): Ditto. - (child_info_fork::handle_fork): Reparmize. - (child_info_fork::handle_failure): Ditto. - (child_info_spawn::handle_spawn): New function. - * dcrt0.cc (get_cygwin_startup_info): Use isstraced method. - (child_info_spawn::handle_spawn): Define new function from code - previously in dll_crt0_0. - (dll_crt0_0): Move spawn stuff into handle_spawn. Only call - init_console_handler for fork case. - * sigproc.cc (child_info::child_info): Set flag appropriately. - (child_info::proc_retry): Treat exit code as "funny" if it's a cygwin - process. - * spawn.cc (spawn_guts): Remove commented out flag setting. - -2006-03-19 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (commune_process): Fix randomly invalid pointer which caused - fifos to work incorrectly. - -2006-03-19 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Oops. We need to bother with setting - init_console_handler in the fork/exec case. - -2006-03-19 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Don't bother with setting init_console_handler - here since it will be set later when we discover if we have a ctty or - not. - * exceptions.cc (init_console_handler): Properly remove NULL handler. - -2006-03-18 Christopher Faylor <cgf@timesys.com> - - * pinfo.h (EXITCODE_OK): Define new constant. - * sigproc.cc (child_info::sync): Return EXITCODE_OK if entering with - exit_code == 0. - (sig_send): Don't complain if sending signals while blocked if the - sender isn't in the main thread. - -2006-03-18 Christopher Faylor <cgf@timesys.com> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Regenerate. - (child_info::retry): Move here from fork subclass. - (child_info::exit_code): New field. - (child_info::retry_count): Max retry count for process start. - (child_info::proc_retry): Declare new function. - (child_info_fork::retry): Move to parent. - (child_info_fork::fork_retry): Ditto. - * dcrt0.cc (child_info::fork_retry): Rename and move. - (child_info_fork::handle_failure): Move. - (dll_crt0_0): Initialize console handler based on whether we have a - controlling tty or not. Avoid nonsensical check for fork where it can - never occur. - * environ.cc (set_proc_retry): Rename from set_fork_retry. Set - retry_count in child_info. - (parse_thing): Reflect above change. - * exceptions.cc (dummy_ctrl_c_handler): Remove unused variable name. - (ctrl_c_handler): Always return TRUE for the annoying - CTRL_LOGOFF_EVENT. - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Remove call to - init_console_handler. - * fhandler_tty.cc (fhandler_tty_slave::open): Just call - mange_console_count here and let it decide what to do with initializing - console control handling. - * fork.cc (fork_retry): Remove definition. - (frok::parent): Define static errbuf and use in error messages (not - thread safe yet). Close pi.hThread as soon as possible. Protect - pi.hProcess as soon as possible. Don't set retry_count. That happens - automatically in the constructor now. Accommodate name change from - fork_retry to proc_retry. - * init.cc (dll_entry): Turn off ctrl-c handling early until we know how - it is supposed to be handled. - * pinfo.cc (_pinfo::dup_proc_pipe): Remember original proc pipe value - for failure error message. Tweak debug message slightly. - * sigproc.cc (child_info::retry_count): Define. - (child_info::child_info): Initialize retry count. - (child_info::sync): Set exit code if process dies before - synchronization. - (child_info::proc_retry): Rename from child_info_fork::fork_retry. Use - previously derived exit code. Be more defensive about what is - classified as an error exit. - (child_info_fork::handle_failure): Move here from dcrt0.cc. - * spawn.cc (spawn_guts): Maintain error mode when starting new process - to avoid annoying pop ups. Move deimpersonate call within new loop. - Move envblock freeing to end. Loop if process dies prematurely with - bad exit code. - * syscalls.cc (setpgid): Remove hopefully unneeded call to - init_console_handler. - -2006-03-15 Christopher Faylor <cgf@timesys.com> - - * cygheap.cc (init_cygheap::manage_console_count): Turn console control - handler on/off depending on whether we have allocated a console or not. - * dcrt0.cc (child_info_fork::fork_retry): Add more potential retry - statuses. - (dll_crt0_0): Turn on/off console control depending on whether we have - a controlling tty or not. - * exceptions.cc (init_console_handler): Change BOOL to bool. - * fhandler_console.cc (fhandler_console::need_invisible): Cosmetic - change. - * winsup.h (init_console_handler): Reflect argument type change. - - * wincap.h (supports_setconsolectrlhandler_null): Remove duplicate - capability throughout. - * wincap.cc: Ditto. - -2006-03-14 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_fork::fork_retry): Declare new function. - * dcrt0.cc (child_info_fork::fork_retry): Define new function. - * fork.cc (frok::parent): Move retry decision into - child_info_fork::fork_retry and honor what it tells us to do. - * sigproc.cc (sig_send): Unhold signals on __SIGEXIT. - -2006-03-14 Christopher Faylor <cgf@timesys.com> - - * fork.cc (frok::parent): Improve error message. - -2006-03-14 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (main_environ): Initialize to &__cygwin_environment. - (dll_crt0_1): Move resourcelocks, thread interface, pinfo_init, and - uinfo_init... - (dll_crt0_0): ...to here. - (_dll_crt0): Call update_envptrs here after setting main_environ. - * environ.cc (environ_init): Eliminate initted variable. Don't call - update_envptrs here. - * sigproc.cc (wait_sig): Use my_sendsig when calling CreatePipe to - avoid a dereference. - -2006-03-13 Christopher Faylor <cgf@timesys.com> - - * child_info.h (child_info_fork::handle_failure): Declare new function. - (child_info_fork::retry): New field. - * dcrt0.cc (__api_fatal_exit_val): Define. - (child_info_fork::handle_failure): Define new function. - (__api_fatal): Exit using __api_fatal_exit_val value. - * environ.cc (set_fork_retry): Set fork_retry based on CYGWIN - environment variable. - (parse_thing): Add "fork_retry" setting. - * fork.cc (fork_retry): Define. - (frok::parent): Reorganize to allow retry of failed child creation if - child signalled that it was ok to do so. - * heap.cc (heap_init): Signal parent via handle_failure when - VirtualAlloc fails. - * pinfo.h (EXITCODE_RETRY): Declare. - * sigproc.cc (child_info::sync): Properly exit with failure condition - if called for fork and didn't see subproc_ready. - * spawn.cc (spawn_guts): Use windows pid as first argument. - * winsup.h: Remove obsolete NEW_MACRO_VARARGS define. - (__api_fatal_exit_val): Declare. - (set_api_fatal_return): Define. - (in_dllentry): Declare. - * exceptions.cc (inside_kernel): Remove unneeded in_dllentry - declaration. - -2006-03-13 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (dll_crt0_0): Reorganize so that sigproc_init is called a - little later. Add a comment. - * fork.cc (resume_child): Make void. - (frok::parent): Only zero pi when necessary. Explicitly zero si. Set - this_errno when child_copy fails. Accommodate change to resume_child. - * sigproc.cc (sigalloc): Move global_sigs initialization here. - (sigproc_init): Move global_sigs. - (sig_send): Just check for flush signals once. - - * wincap.h: Define supports_setconsolectrlhandler_null throughout. - * wincap.cc: Ditto. - -2006-03-13 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LoadDLLfuncNt): New define to wrap NT native functions. - Use for NT native functions throughout. - * dtable.cc (handle_to_fn): Treat return value of NtQueryObject as - NTSTATUS value. - -2006-03-12 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::remove): Reset initialized flag right away if we - were previously initialized. - * cygtls.h (_cygtls::initialized): Move nearer to the end to catch - situation when Windows 98 mysteriously changes parts of _my_tls when - thread is detaching. - * gendef (__sigfe_maybe): Simplify slightly. - * tlsoffsets.h: Regenerate. - -2006-03-12 Christopher Faylor <cgf@timesys.com> - - * cygtls.h (CYGTLS_INITIALIZED): Change to a little more unlikely value. - (CYGTLSMAGIC): Delete. - * dcrt0.cc (dll_crt0_0): Call sigproc_init during init startup. - (_dll_crt0): Don't worry about sync_startup. Just wait for sigthread here. - * dll_init.cc (cygwin_detach_dll): Only pick up tls version of retaddr - if we have a valid tls. - * fork.cc (frok::child): Remove sigproc_init initialization since it - happens much earlier now. - * gendef: Recognize SIGFE_MAYBE. - (fefunc): Generate calls to _sigfe_maybe, if appropriate. - (_sigfe_maybe): New function. - * init.cc (search_for): Always initialize search_for, even on fork. - (calibration_thread): Delete. - (calibration_id): Delete. - (prime_threads): Delete. - (munge_threadfunc): Remove calibration_thread special case. Avoid - calling thread function if we haven't yet hit the "search_for" thread. - (dll_entry): Remove prime_threads call. Only call munge_threadfunc - when hwait_sig is active. Ditto. for _my_tls.remove (); - * sigproc.cc (hwait_sig): Make global. - (sigproc_init): Don't bother with sync_startup. - (sig_send): Treat flush as a no-op when signals are held. - (wait_sig): Cause signals to be held after fork. - -2006-03-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Move existance check for oldpath further up - to the start of the function. Avoid another case of a name collision - if oldpath is a shortcut and a file or directory newpath already exists. - -2006-03-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtClose): Define. - (NtOpenDirectoryObject): Define. - (NtQueryDirectoryObject): Define. - * fhandler_proc.cc: Include ctype.h and wchar.h. - (format_proc_partitions): Revamp loop over existing harddisks by - scanning the NT native \Device object directory and looking for - Harddisk entries. - * ntdll.h: Rearrange system call declarations alphabetically. - (DIRECTORY_QUERY): Define. - (struct _DIRECTORY_BASIC_INFORMATION): Define. - (NtOpenDirectoryObject): Declare. - (NtQueryDirectoryObject): Declare. - -2006-03-08 Christopher Faylor <cgf@timesys.com> - - * cygtls.h (_cygtls::retaddr): New method. - * dll_init.cc (cygwin_detach_dll): Use new tls method to find return - address since this function is now signal guarded. - (update_envptrs): Remove unneeded braces. - * syscalls.cc (statvfs): Coerce full_path to avoid a gcc warning. - -2006-03-08 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (statvfs): Simplify path name expression. - -2006-03-08 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc: Include winioctl.h. - (statvfs): Request correct volume size using DeviceIoControl if - quotas are enforced on the file system. - -2006-03-03 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (opendir): Fix indentation. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move storing - fhandler in file descriptor table to some point very late in function - to avoid double free'ing. Add comment to explain what happens. - Add label free_mounts and don't forget to delete __DIR_mounts structure - if NtOpenFile fails. - -2006-03-02 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (chroot): Disallow chroot into special directories. - Return EPERM instead. - -2006-03-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Check - cygdrive string length for those who have cygdrive mapped to "/". - -2006-03-01 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (set_cygwin_privileges): Request SE_BACKUP_NAME - privileges. - -2006-03-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (fhandler_proc::fstat): Always return fixed link - count of 1 for /proc directory instead of incorrect PROC_LINK_COUNT. - -2006-03-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (enum dirent_states): Remove dirent_saw_cygdrive, - dirent_saw_dev and dirent_saw_proc. - (fhandler_cygdrive::open): Declare. - (fhandler_cygdrive::close): Declare. - * fhandler_disk_file.cc (class __DIR_mounts): Move to beginning of file. - (__DIR_mounts::check_mount): New parameter to indicate if inode number - is needed in calling function or not. Add /proc and /cygdrive handling. - (__DIR_mounts::check_missing_mount): Ditto. - (path_conv::ndisk_links): Use __DIR_mounts class to create correct - hardlink count for directories with mount points in them. - (fhandler_disk_file::readdir_helper): Remove /dev, /proc and /cygdrive - handling. - (fhandler_cygdrive::open): New method. - (fhandler_cygdrive::close): New method. - (fhandler_cygdrive::fstat): Always return fixed inode number 2 and - fixed link count of 1. Drop call to set_drives. - (fhandler_cygdrive::opendir): Drop call to get_namehash. - (fhandler_cygdrive::readdir): Handle "." entry to return fixed inode - number 2. - -2006-03-01 Christopher Faylor <cgf@timesys.com> - - * cygwin.din: Fix some erroneous SIGFE/NOSIGFE settings. - -2006-03-01 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::callfunc): Revert below change. Make ev a - manual reset event again. so that it will be reset by WaitFor*Object - as appropriate. - (cygthread::stub): Ditto. - (cygthread::terminate_thread): Reset ev if it was found to have been - set. - -2006-03-01 Christopher Faylor <cgf@timesys.com> - - * analyze_sigfe: New script. - * dllfixdbg: Add copyright. - * gendef: Ditto. - * gendevices: Ditto. - * gentls_offsets: Ditto. - -2006-03-01 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::callfunc): Create ev as an auto-reset event - so that it will be reset by WaitFor*Object as appropriate. - (cygthread::stub): Ditto. - (cygthread::terminate_thread): Remove forced setting of thread - termination. - -2006-03-01 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/dirent.h (struct __DIR): Rename __d_unused to - __d_internal. - * fhandler_disk_file.cc (struct __DIR_cache): Remove useless "typedef". - (d_dirname): Remove useless "struct". - (d_cachepos): Ditto. - (d_cache): Ditto. - (class __DIR_mounts): New class, implementing mount point tracking - for readdir. - (d_mounts): New macro for easy access to __DIR_mounts structure. - (fhandler_disk_file::opendir): Allocate __DIR_mounts structure and - let __d_internal element of dir point to it. - (fhandler_disk_file::readdir_helper): Add mount points in the current - directory, which don't have a real directory backing them. - Don't generate an inode number for /dev. Add comment, why. - (fhandler_disk_file::readdir): Move filling fname to an earlier point. - Check if current entry is a mount point and evaluate correct inode - number for it. - (fhandler_disk_file::readdir_9x): Ditto. - (fhandler_disk_file::rewinddir): Set all mount points in this directory - to "not found" so that they are listed again after calling rewinddir(). - (fhandler_disk_file::closedir): Deallocate __DIR_mounts structure. - * path.cc (mount_info::get_mounts_here): New method to evaluate a list - of mount points in a given parent directory. - * shared_info.h (class mount_info): Declare get_mounts_here. - -2006-02-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Use iscygdrive - instead of isspecial. - * path.h (path_conv::iscygdrive): New method. - -2006-02-28 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (_cygtls::interrupt_now): Remove "inside cygwin" check - since some cygwin functions are meant to be interrupted. - -2006-02-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export __isinff, __isinfd, __isnanf, __isnand. - * include/cygwin/version.h: Bump API minor number to 155. - -2006-02-28 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir_worker): Use slash as path separator when evaluating - namehash for paths below /proc. - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Use expensive - inode number evaluation on share names. - -2006-02-27 Christopher Faylor <cgf@timesys.com> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Only set - d_cachepos under NT or suffer memory corruption. - (fhandler_disk_file::readdir_helper): Avoid else with a return. Just - calculate extension location once when doing symlink checks. - (fhandler_disk_file::readdir): Make debug output more useful. - (fhandler_disk_file::readdir_9x): Ditto. Eliminate redundant variable. - -2006-02-27 Christopher Faylor <cgf@timesys.com> - - * include/sys/termios.h (cfsetispeed): Just define as a function rather - than resorting to a macro. - (cfsetospeed): Ditto. - -2006-02-27 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc: Fix a comment. - -2006-02-27 Christopher Faylor <cgf@timesys.com> - - * cygthread.cc (cygthread::release): Add a comment. - -2006-02-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::fstat): Create unambiguous - inode number. - (fhandler_netdrive::readdir): Ditto. - -2006-02-24 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (sigheld): Define new variable. - (sig_dispatch_pending): Don't check sigq since that's racy. - (sig_send): Set sigheld flag if __SIGHOLD is specified, reset it if - __SIGNOHOLD is specified. Ignore flush signals if we're holding - signals. - -2006-02-23 Christopher Faylor <cgf@timesys.com> - - * cygwin.din (_exit): Use signal front end. - (exit): Ditto. - -2006-02-23 Christopher Faylor <cgf@timesys.com> - - * winsup.h (cygwin_hmodule): Declare. - * exceptions.cc (inside_kernel): Reverse return values to reflect - function name. Return true if we're in cygwin1.dll or if we're - executing in dll_entry. - (_cygtls::interrupt_now): Reflect reversal of inside_kernel return - value. - * hookapi.cc (cygwin_hmodule): Remove declaration. - * init.cc (dll_entry): Use in_dllentry global to record that we are - executing in dllentry. - -2006-02-22 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::interrupt_now): Reorder conditional - to call inside_kernel only if this isn't locked. - -2006-02-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Add FILE_READ_ATTRIBUTES to - access flags in case of query_read_control case, add FILE_READ_DATA - in case of query_stat_control. - -2006-02-20 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (av::fixup): Check for .bat and friends specifically now - since these extensions are no longer automatically detected. - -2006-02-19 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (stackdump): Avoid dumping more than once. - -2006-02-19 Christopher Faylor <cgf@timesys.com> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Use NtOpenFile - to open the directory. - (fhandler_disk_file::readdir): Use NT_SUCCESS to determine if status - represents success. - -2006-02-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Drop generating - path_conv for root. - -2006-02-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (FS_IS_SAMBA): Move out of - path_conv::hasgood_inode. - (path_conv::is_samba): New method. - (fhandler_base::fstat_by_handle): Don't even try to use - FileIdBothDirectoryInformation on Samba. - * path.h (class path_conv): Declare is_samba method. - -2006-02-17 Christopher Faylor <cgf@timesys.com> - - * path.cc (conv_path_list): Eat empty paths when converting to POSIX. - (cygwin_conv_to_win32_path): Deal with Cygwin's necessity of adding a - '/' to the end of a path ending in '.'. - -2006-02-16 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export sigignore and sigset. - * exceptions.cc (sigset): New function. - (sigignore): New function. - * include/cygwin/signal.h (SIG_HOLD): Define. - (sigignore): Declare. - (sigset): Declare. - * include/cygwin/version.h: Bump API minor number to 154. - -2006-02-13 Igor Peshansky <pechtcha@cs.nyu.edu> - - * include/mntent.h: Add missing #include. - -2006-02-13 Igor Peshansky <pechtcha@cs.nyu.edu> - - * gentls_offsets: Fix typo in error message. - -2006-02-10 Christopher Faylor <cgf@timesys.com> - - * fhandler_process.cc (format_process_stat): Use cygwin-derived start - time even on NT since it is the logical start time of the "process". - * pinfo.cc (set_myself): Don't set start time when it should have - already been set previously. - -2006-02-10 Brian Ford <Brian.Ford@FlightSafety.com> - - * times.cc (clock_getres): Use correct conversion from milliseconds to - seconds/nanoseconds. - (clock_setres): Use correct conversion to nanoseconds. - -2006-02-10 Christopher Faylor <cgf@timesys.com> - - * external.cc (sync_winenv): Rename from "setup_winenv". Use same - mechanism as spawn to determine environment variables which should be - converted back to windows form. - (cygwin_internal): Reflect setup_winenv -> sync_winenv name change. - * include/sys/cygwin.h: Ditto. - -2006-02-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Only set - the dirent_get_d_ino flag on filesystems having useful File IDs. - Add comment explaining why. - -2006-02-07 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (handle_to_fn): Accommodate new argument order in call to - sys_wcstombs. - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Call sys_wcstombs - instead of just wcstombs to accommodate OEM codepages. - * miscfuncs.cc (sys_wcstombs): Split len argument in source and target - length. Always 0-terminate result in target string. - * security.cc (lsa2wchar): Remove unused function. - (lsa2str): Ditto. - (get_lsa_srv_inf): Ditto. - (get_logon_server): Accommodate new argument order in call to - sys_wcstombs. - (get_user_groups): Ditto. - (get_user_local_groups): Ditto. - (get_priv_list): Call sys_wcstombs directly instead of lsa2str. - * uinfo.cc (cygheap_user::ontherange): Accommodate new argument order - in call to sys_wcstombs. - * winsup.h (sys_wcstombs): Change prototype to match new argument order. - -2006-02-07 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (respawn_wow64_process): Exit with the exit code returned - by the respawned process. - -2006-02-06 Christopher Faylor <cgf@timesys.com> - - Always zero all elements of siginfo_t throughout. - * cygtls.h (_cygtls::thread_context): Declare new field. - (_cygtls::thread_id): Ditto. - (_cygtls::signal_exit): Move into this class. - (_cygtls::copy_context): Declare new function. - (_cygtls::signal_debugger): Ditto. - * cygtls.cc (_cygtls::init_thread): Fill out thread id field. - * exceptions.cc (exception): Change message when exception info is - unknown. Copy context to thread local storage. - (_cygtls::handle_exceptions): Avoid double test for fault_guarded. - Reflect move of signal_exit to _cygtls class. - (sigpacket::process): Copy context to thread local storage. - (_cygtls::signal_exit): Move to _cygtls class. Call signal_debugger to - notify debugger of exiting signal (WIP). Call stackdump here (WIP). - (_cygtls::copy_context): Define new function. - (_cygtls::signal_debugger): Ditto. - * tlsoffsets.h: Regenerate. - * include/cygwin.h (_fpstate): New internal structure. - (ucontext): Declare new structure (WIP). - (__COPY_CONTEXT_SIZE): New define. - - * exceptions.cc (_cygtls::interrupt_setup): Clear "threadkill" field - when there is no sigwaiting thread. - (setup_handler): Move event handling into interrupt_setup. - -2006-02-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::connect): Fix formatting. - (fhandler_socket::wait): Handle SA_RESTART when signal arrives. - -2006-02-06 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h (CMSG_FIRSTHDR): Avoid compiler warning. - -2006-02-05 Corinna Vinschen <corinna@vinschen.de> - - * include/features.h: Add comment to explain what's going to happen - here at one point. - * include/sys/stdio.h: Guard getline and getdelim prototypes with - _GNU_SOURCE to avoid collision with old-style declarations. - -2006-02-05 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (struct parse_thing): Add transparent_exe option. - * fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate - transparent_exe option. Add .exe suffix for links to executable files, - if transparent_exe is set. - * fhandler_process.cc (fhandler_process::fill_filebuf): Remove .exe - suffix if transparent_exe option is set. - * path.cc (symlink_worker): Accommodate transparent_exe option. - (realpath): Don't tack on .exe suffix if transparent_exe is set. - * syscalls.cc (transparent_exe): New global variable. - (unlink): Accommodate transparent_exe option. - (open): Ditto. - (link): Ditto. - (rename): Ditto. Maybe add .exe suffix when renaming executable files. - (pathconf): Accommodate transparent_exe option. - * winsup.h: Declare transparent_exe. - -2006-02-05 Christopher Faylor <cgf@timesys.com> - Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_9x): Remove - useless code. - -2006-02-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Remove label - "out". Move test for NULL __handle ... - (fhandler_disk_file::rewinddir_9x): ... here. - -2006-02-05 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (rewinddir): Keep dirent_get_d_ino and dirent_set_d_ino flags. - -2006-02-05 Christopher Faylor <cgf@timesys.com> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Don't close dir - handle when we hit EOF since rewwindir may reactivate it. - (fhandler_disk_file::readdir_9x): Eliminate superfluous temporary - variable. - (fhandler_disk_file::closedir): Return EBADF when trying to close - unopened DIR. Reorganize slightly. Return actual derived error value - rather than always returning 0. - -2006-02-04 Christopher Faylor <cgf@timesys.com> - - * dir.cc (rmdir): Reorganize check for trailing dot to return correct - error when directory does not exist. - -2006-02-03 Christopher Faylor <cgf@timesys.com> - - * dir.cc (mkdir): Reorganize check for trailing dot to return correct - error when directory exists. - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Remove special - test for path ending in '.'. - -2006-02-03 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (suffix_scan::lnk_match): Return true beginning with - SCAN_APPENDLNK. - (suffix_scan::next): Rearrange code to make .lnk append order slightly - more deterministic. - * spawn.cc (exe_suffixes): Try no suffix before .exe suffix to align - evaluation with stat_suffixes. - (dll_suffixes): Ditto. - -2006-02-02 Christopher Faylor <cgf@timesys.com> - - * cygwin/version.h: Mention CW_SETUP_WINENV in comment for API minor - 153. - -2006-02-02 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (updwtmpx): Export. - * syscalls.cc (updwtmpx): New function. - * include/utmpx.h (updwtmpx): Declare. - * include/cygwin/version.h: Bump API minor number to 153. - -2006-02-02 Christopher Faylor <cgf@timesys.com> - - * external.cc (setup_winenv): New function. - (cygwin_internal): Implement CW_SETUP_WINENV. - * sys/cygwin.h (cygwin_getinfo_types): Define CW_SETUP_WINENV. - -2006-02-02 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (is_group_member): Fix comment. - -2006-02-02 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (is_group_member): Use local group info type 1. Test - group for being a global group or a well-known SID before adding it - to the group list. Add comment. - -2006-02-01 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetTcpTable): Define. - * fhandler_socket.cc (address_in_use): New function to check if - sockaddr_in address is already in use. - (fhandler_socket::bind): Check if address is alreay in use in case of - SO_REUSEADDR, to circumvent WinSock non-standard behaviour. - -2006-02-01 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (dll_suffixes): Add .exe and "no suffix" to the list. - -2006-01-31 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (check_path_access): Call find_exec with FE_DLL option. - * path.h (enum fe_types): Add FE_DLL value. - * spawn.cc (std_suffixes): Remove. - (exe_suffixes): New suffix_info for executing files. - (dll_suffixes): New suffix_info for searching shared libraries. - (perhaps_suffix): Add opt argument. Use dll_suffixes if FE_DLL - option is given, exe_suffixes otherwise. - (find_exec): Propagate opt argument to perhaps_suffix. Drop suffix - check when testing execute permission. - (spawn_guts): Call perhaps_suffix with FE_NADA opt argument. - -2006-01-31 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (av::fixup): Remove unused argument. - (spawn_guts): Remove capitalization in debugging. - -2006-01-31 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Only return files with execute permission set - if ntsec is on. Don't check execute permission of Windows batch files. - (av::fixup): Handle empty files gracefully. Drop execute permission - test here. - * path.cc (suffix_scan::next): Don't skip any suffix on first run. - -2006-01-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Don't set win32 error, only POSIX errno. - -2006-01-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): When SetCurrentDirectory returns - ERROR_INVALID_FUNCTION, bend it over to ERROR_FILE_NOT_FOUND. Add - comment to explain why. - -2006-01-31 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir_worker): Add comment about writing old 32 bit d_ino. - * include/cygwin/version.h: Bump API minor number to 152. - (CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO): Remove. - -2006-01-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Simplify - conditional. - -2006-01-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (d_cachepos): Rename from d_pos to distinct - clearly from __d_position. Change throughout. - (fhandler_disk_file::rewinddir): Reset readdir cache on NT. - -2006-01-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (readdir_get_ino): Don't follow symlinks. - -2006-01-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add saw_reuseaddr status flag. - * fhandler_socket.cc (fhandler_socket::bind): Set socket to - SO_EXCLUSIVEADDRUSE if application didn't explicitely set SO_REUSEADDR - socket option, on systems supporting SO_EXCLUSIVEADDRUSE. - * net.cc (cygwin_setsockopt): Set fhandler's saw_reuseaddr status flag - if SO_REUSEADDR socket option has been successsfully set. - * wincap.h (wincaps::has_exclusiveaddruse): New element. - * wincap.cc: Implement above element throughout. - -2006-01-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): In case or error, - check for existance explicitely and set errno to EEXIST. - -2006-01-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (DIR_NUM_ENTRIES): New define determining - minimum number of dir entries which fit into the readdir cache. - (DIR_BUF_SIZE): Define globally as size of readdir cache. - (struct __DIR_cache): New structure used for readdir caching on NT. - (d_dirname): Accessor for struct __DIR_cache, use throughout. - (d_pos): Ditto. - (d_cache): Ditto. - (fhandler_disk_file::opendir): Allocate __d_dirname to contain readdir - cache on NT. - (fhandler_disk_file::readdir): Use buf as pointer into readdir cache. - Implement readdir caching. - -2006-01-28 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/dirent.h (struct dirent): Revert misguided attempt to - rename __d_unused1 to __d_fd. - -2006-01-27 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NtQueryDirectoryFile): Define. - * dir.cc (__opendir_with_d_ino): Just call opendir. - (opendir): Remove CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO handling. - (readdir_worker): Only try generating d_ino if it's 0. - Utilize namehash of directories fhandler. Call readdir_get_ino to - generate d_ino for "..". - (seekdir64): Keep dirent_set_d_ino flag. - * fhandler.h (enum dirent_states): Add dirent_get_d_ino. - (class fhandler_disk_file): Declare new private methods readdir_helper - and readdir_9x. - * fhandler_disk_file.cc (path_conv::hasgood_inode): New method to - evaluate if a filesystem has reliable inode numbers. - (fhandler_base::fstat_by_handle): Accommodate structure member name - change from IndexNumber to FileId. - (fhandler_base::fstat_helper): Call hasgood_inode here. - (fhandler_disk_file::opendir): Call fhaccess only for real files. - Don't append '*' to __d_dirname here, move to readdir_9x. On NT, - open directory handle here. Set dirent_get_d_ino and dirent_set_d_ino - flags according to wincap and filesystem. - (fhandler_disk_file::readdir_helper): New method to implement readdir - postprocessing only once. - (readdir_get_ino_by_handle): New static function. - (readdir_get_ino): New function to centralize inode number evaluation - in case inode number hasn't been returned by NtQueryDirectoryFile. - (fhandler_disk_file::readdir): Move old functionality to readdir_9x. - Call readdir_9x when on 9x/Me. Implement NT specific readdir here. - (fhandler_disk_file::readdir_9x): Move 9x specific readdir here. - (fhandler_disk_file::seekdir): Accommodate new NT readdir method. - (fhandler_disk_file::closedir): Ditto. - (fhandler_cygdrive::fstat): Set d_ino to namehash. Add comment. - (fhandler_cygdrive::opendir): Call get_namehash to prepare later - correct evaluation of d_ino. - (fhandler_cygdrive::readdir): Replace recursion with loop. Evaluate - drive's d_ino by calling readdir_get_ino. - * fhandler_proc.cc (fhandler_proc::readdir): Set dirent_saw_dot and - dirent_saw_dot_dot to avoid seeing . and .. entries twice. - * fhandler_process.cc (fhandler_process::readdir): Ditto. - * fhandler_registry.cc (fhandler_registry::readdir): Ditto. - * ntdll.h (STATUS_INVALID_PARAMETER): New define. - (STATUS_INVALID_LEVEL): New define. - (struct _FILE_INTERNAL_INFORMATION): Rename member IndexNumber to - FileId (as in Nebbitt). - * path.h (path_conv::hasgood_inode): Now implemented in - fhandler_disk_file.cc. - * wincap.h (wincaps::has_fileid_dirinfo): New element. - * wincap.cc: Implement above element throughout. - * winsup.h (readdir_get_ino): Add declaration. - * include/sys/dirent.h (struct dirent): Slightly rename structure - members to accommodate changes. - Remove __USE_EXPENSIVE_CYGWIN_D_INO handling and declaration of - __opendir_with_d_ino. - -2006-01-27 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Fix potential handle leak when failing exec. - -2006-01-27 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (inside_kernel): Fix to return true if we can't get the - name of the DLL for the given memory block since we are not in kernel - code. - -2006-01-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Fix bug in argument order to - InitializeObjectAttributes call. - -2006-01-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix test for - dirent_isroot to use the correct boolean operator. - -2006-01-25 Christopher Faylor <cgf@timesys.com> - - * ntdll.h: (temporarily?) Add more functions for querying directory. - -2006-01-24 Christopher Faylor <cgf@timesys.com> - - * dir.cc (readdir_worker): Turn off expensive inode calculation. - -2006-01-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (fhandler_process::fill_filebuf): Disable - stripping the .exe suffix from the link target in PROCESS_EXE and - PROCESS_EXENAME case. - * path.cc (realpath): Tack on .exe suffix if necessary. - -2006-01-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Try harder - to determine remote file systems with reliable inode numbers. Add - longish comment. - -2006-01-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Reset - inheritance for duplicated socket. - -2006-01-20 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump API minor number to 151. - * dir.cc (__opendir_with_d_ino): New function. - (opendir): Set flag if we should be calculating inodes. - (readdir_worker): Calculate d_ino by calling stat if the user has asked - for it. - (seekdir64): Maintain all persistent flag settings. - * fhandler.h (dirent_states): Add dirent_set_d_ino. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Reflect changes - to dirent structure. - * fhandler_virtual.cc (fhandler_virtual::opendir): Ditto. - * include/sys/dirent.h (struct dirent): Coalesce two similar - structures. Remove all shreds of the apparently highly confusing - references to inodes. Add support for calculating a real inode if - __USE_EXPENSIVE_CYGWIN_D_INO is defined. - -2006-01-20 Christopher Faylor <cgf@timesys.com> - - * include/sys/dirent.h: Add comments for people who are REALLY confused - about whether they should be using something called __invalid_d_ino or - not. - -2006-01-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::prepare): Fix debug output. - (fhandler_socket::release): Add debug output for WSAEventSelect failure. - (fhandler_socket::ioctl): Always cancel WSAEventSelect before switching - to blocking mode. Only set nonblocking flag if ioctlsocket call - succeeded. Only print new socket state if ioctlsocket call succeeded. - -2006-01-19 Christopher Faylor <cgf@timesys.com> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Check posix path - for root rather than windows path. - -2006-01-19 Christopher Faylor <cgf@timesys.com> - - * dir.cc (readdir_worker): Fill in invalid fields with -1. Accommodate - name change from __ino32 to __invalid_ino32. - * include/sys/dirent.h (__invalid_ino32): Rename from __ino32. Don't - define unused d_type macros. - -2006-01-18 Christopher Faylor <cgf@timesys.com> - - * heap.cc (heap_init): Remove Sleep. - -2006-01-18 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (rresvport): Remove extern declaration. - -2006-01-18 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (rresvport): Remove. - * net.cc (last_used_rrecvport): New global shared variable. - (cygwin_rresvport): Implement rresvport without using rresvport from - wsock32. - -2006-01-18 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h (struct sockaddr_storage): Fix typo in - ss_family member name. - -2006-01-16 Christopher Faylor <cgf@timesys.com> - - * include/cygwin/version.h: Bump DLL minor version number to 20. - -2006-01-13 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Concatenate a "-WOW64" to utsname's sysname - member to see when running under WOW64. - -2006-01-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_setsockopt): Ignore errors when setting IP_TOS on - Windows 2000 and above. Clarify the comment about IP_TOS and move - to the place where the magic happens. - (get_ifconf): Remove unused code. - * wincap.h (wincaps::has_disabled_user_tos_setting): New element. - * wincap.cc: Implement above element throughout. - -2006-01-12 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (set_console_state_for_spawn): Fix to recognize - ttys >= 0. - -2006-01-12 Christopher Faylor <cgf@timesys.com> - - * fhandler.h (set_console_state_for_spawn): Whackamole the argument - back to a bool. - * spawn.cc (spawn_guts): Ditto, i.e., once again call - set_console_state_for_spawn with an indication of whether we're about - to start a cygwin process. - * fhandler_console.cc (set_console_state_for_spawn): Don't set the - console state if we know we're starting a cygwin process or if we're - using a "real" tty. - -2006-01-10 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Remove call to wincap.init. - * init.cc (dll_entry): Rename is_wow64_proc to wow64_test_stack_marker. - Call wincap.init here before doing anything else. Use wincap.is_wow64 - to determine if we're running in a WOW64 emulator. - * mmap.cc (MapViewNT): Don't use AT_ROUND_TO_PAGE in WOW64, it's - apparently not supported. - (mmap64): Don't create mappings beyond EOF, which would need to use - AT_ROUND_TO_PAGE, on WOW64. - * wincap.cc (wincap): Throw into the .cygwin_dll_common section. - (wincapc::init): Determine if running in WOW64 and set wow_64 flag. - * wincap.h (class wincapc): Add wow64 member. - (wincapc::is_wow64): New method. - -2006-01-10 Christopher Faylor <cgf@timesys.com> - - * fhandler_proc.cc (format_proc_cpuinfo): Avoid leading whitespace in - model name. - -2006-01-09 Christopher Faylor <cgf@timesys.com> - - * spawn.cc (spawn_guts): Reorganize slightly so that 16 bit check is - done prior to check for command.com/cmd.com. Don't bother setting - CREATE_SUSPENDED flag for a MS-DOS process since it doesn't work - anyway. Avoid calling remember() when the child process has already - exited. - (av::fixup): Explicitly set cygexec flag to false on a 16 bit process. - -2006-01-09 Corinna Vinschen <corinna@vinschen.de> - - * include/getopt.h (getopt_long_only): Declare. - -2006-01-09 Eric Blake <ebb9@byu.net> - - * cygwin.din: Export getsubopt. - * include/cygwin/version.h: Bump API minor version. - -2006-01-08 Christopher Faylor <cgf@timesys.com> - - * fhandler_tty.cc (fhandler_tty_slave::dup): Don't assign a controlling - terminal to a process when duped. Linux doesn't do this, so we won't - either. - -2006-01-08 Christopher Faylor <cgf@timesys.com> - - * environ.cc (spenvs[]): windir -> WINDIR. - -2006-01-07 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::need_invisible): Remove - duplicate test. - -2006-01-07 Christopher Faylor <cgf@timesys.com> - - * fhandler.h (set_console_state_for_spawn): Eliminate argument from - declaration. - * fhandler.cc (set_console_state_for_spawn): Eliminate argument from - definition. Always check for invisible console. - (fhandler_console::need_invisible): Don't do anything if the windows - station is already not visible. - * spawn.cc (spawn_guts): Accommodate change of argument to - set_console_state_for_spawn. - -2006-01-05 Christopher Faylor <cgf@timesys.com> - - * sigproc.cc (no_signals_available): Use existence of signal thread - handle to figure out if we can actually send signals rather than - relying on my_sendsig. - (hwait_sig): Make static. - (sigproc_init): Don't set my_sendsig to anything special. Use new - global static hwait_sig. - (wait_sig): Set hwait_sig to NULL when we are exiting. - -2006-01-05 Christopher Faylor <cgf@timesys.com> - - * include/getopt.h: Accommodate recent unfortunate newlib changes. - -2006-01-05 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::remove): Don't output debugging info if this - isn't a cygwin thread. - * sigproc.cc (sigproc_init): Move clearing of sync_startup here to - lessen the likelihood of trying to deal with non-cygwin threads in - dll_entry. - - * fhandler_console: Fix set_console_state_for_spawn comment. - -2006-01-05 Igor Peshansky <pechtcha@cs.nyu.edu> - - * spawn.cc (spawn_guts): Invert the argument to - set_console_state_for_spawn. - -2006-01-04 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::need_invisible): Only try to - open "CygwinInvisible" windows station if opening of default station - fails. Use CloseWindowStation to close window station handle. - -2006-01-04 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (fhandler_console::need_invisible): Open up the - security of the newly created windows station. - -2006-01-04 Eric Blake <ebb9@byu.net> - - * path.cc (dot_special_chars): Add ", <, >, and |. - -2006-01-03 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (beep): Use MB_OK which is documented as using - the default bell rather than -1 which seems to behave differently on - different versions of Windows. - -2006-01-03 Christopher Faylor <cgf@timesys.com> - - * fhandler_process.cc (fhandler_process::readdir): Add missing argument - to syscall_printf. - - * fhandler_console.cc (fhandler_console::need_invisible): Use made-up - name for windows station rather than asking Windows to create one for - us. - - * spawn.cc (spawn_guts): Don't mess with console if we're detaching. - -2006-01-03 Christopher Faylor <cgf@timesys.com> - - * dir.cc (readdir_worker): Minor code cleanup. - - * fhandler_console.cc (beep): Use a more Windows-generic wav file if - the beep is missing. Use a more foolproof way to find out whether we - should be recreating the missing key. - - * registry.h (reg_key::_disposition): New field. - (reg_key::created): New function. - * registry.cc (reg_key::reg_key): Set _disposition to zero by default. - (reg_key::build_key): Fill in _disposition field. - -2006-01-03 Eric Blake <ebb9@byu.net> - - * dir.cc (readdir_worker): Ensure that saw_dot* flags are updated when - not handling inodes. - -2006-01-02 Christopher Faylor <cgf@timesys.com> - - * fhandler_console.cc (beep): New function. Restores missing "Default - Beep", if necessary. - (fhandler_console::write_normal): Use beep(). - -2006-01-02 Christopher Faylor <cgf@timesys.com> - - * dcrt0.cc (_dll_crt0): Remove more leftover debugging stuff. - (cygwin_dll_init): Remove unneeded initializations. Call _dll_crt0 - rather than dll_crt0_1. - -2006-01-02 Corinna Vinschen <corinna@vinschen.de> - - * syslog.cc: Include sys/un.h instead of sys/socket.h. - (syslogd_inited): Convert to enum type noting the exact result of - trying to connect to syslog daemon. Use this way throughout. - (connect_syslogd): New static function taking over the task to - connect to syslog socket. Use correct struct sockaddr_un instead of - struct sockaddr. - (try_connect_syslogd): Call connect_syslogd. If write fails on - connection oriented socket, try to reconnect to syslog socket and - try to write again. - -2006-01-01 Christopher Faylor <cgf@timesys.com> - - * pinfo.cc (pinfo::exit): Swap signal and normal exit value when not - started from a cygwin process - just like the good-old-days of B20. - -2006-01-01 Christopher Faylor <cgf@timesys.com> - - * strace.cc (strace::write_childpid): Remove debugging output. - -2006-01-01 Christopher Faylor <cgf@timesys.com> - - * cygtls.cc (_cygtls::remove): Remove left over debugging cruft which - caused this function to always return prematurely. - -2006-01-01 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (sigpacket::process): Pass actual reference to signal's - sigaction structure to setup_handler. - -2006-01-01 Christopher Faylor <cgf@timesys.com> - - * exceptions.cc (_cygtls::interrupt_setup): Implement SA_RESETHAND. - * include/cygwin/signal.h: Define SA_ONESHOT and SA_NOMASK. - - * dcrt0.cc (get_cygwin_startup_info): Remove commented out code. - -2006-01-01 Corinna Vinschen <corinna@vinschen.de> - - * syslog.cc (vklog): Never log kernel messages using the vsyslog - interface. diff --git a/winsup/cygwin/ChangeLog-2007 b/winsup/cygwin/ChangeLog-2007 deleted file mode 100644 index 66cb33130..000000000 --- a/winsup/cygwin/ChangeLog-2007 +++ /dev/null @@ -1,2769 +0,0 @@ -2007-12-30 Dave Korn <dave.korn@artimi.com> - - * cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf, - _f_lrintl, _f_rint, _f_rintf, _f_rintl): Export fast *rint* functions. - (lrint, lrintf, rint, rintf): Redirect exports to alias _f_ versions. - (llrint, llrintf, llrintl, lrintl, rintl): Add exports aliasing _f_* - versions likewise. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2007-12-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_random): Add dummy_offset member. - * fhandler_random.cc (fhandler_dev_random::lseek): Fake seeking - capability as on Linux. - -2007-12-20 Eric Blake <ebb9@byu.net> - - * libc/memmem.cc (memmem): Fix bug when searching for empty string. - -2007-12-19 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcpcpy, wcpncpy. - * include/cygwin/version.h: Bump API minor number. - -2007-12-16 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (POSIX_NAMED_PIPE): New define. - (POSIX_NAMED_PIPE_LEN): Ditto. - (dtable::add_archetype): Use crealloc_abort. - (dtable::init_std_file_from_handle): Specifically detect pipe - stdin/stdout. Pass name to build_fh_dev so that proper name is - recorded. Use binmode of fh if it is set before using - get_default_mode. Set proper read/write access when calling init(). - (handle_to_fn): Handle pipes. - * fhandler.cc (fhandler_base::wait_overlapped): Add some debugging. - * fhandler.h (fhandler_base::set_name): Default to just setting the - path_conv name. - (fhandler_pipe::init): Declare. - * pipe.cc (struct pipesync): New struct. - (getov_result): New function. Blocks and retrieves the result of an - overlay I/O operation. - (pipe_handler): New function. - (pipesync::pipesync): New function. Initializer for pipesync struct. - (handler_pipe::init): Define. Detects attempts to set up a "native" - pipe fhandler and creates a thread which accepts input from or output - to the non-cygwin pipe, creating a cygwin pipe wrapper around the - non-cygwin pipe. - (fhandler_pipe::create): Add pipe-specific flags to call to init(). - - * exceptions.cc (ctrl_c_handler): Lock process while we determine what - to do. - -2007-12-14 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h: Include sys/uio.h instead of cygwin/uio.h. - * include/cygwin/uio.h: Remove. - -2007-12-14 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::set_file_pointers_for_exec): Reenable. Fix - comment. - * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec - only for non-Cygwin processes. - -2007-12-13 Craig MacGregor <cmacgreg@gmail.com> - Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Return count of fds with events instead of total - event count. - -2007-12-13 Corinna Vinschen <corinna@vinschen.de> - - * string.h: Guard cygwin internal string function definitions with - __INSIDE_CYGWIN__. - -2007-12-12 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Include string.h. - (initial_env): Use small_printf's %P specifier. - * dll_init.cc (dll_list::alloc): Use PATH_MAX instead of CYG_MAX_PATH - for path name buffer size. - * dll_init.h (struct dll): Ditto. - * environ.cc: Include string.h. - (win_env::add_cache): Use temporary local buffer for path conversion. - (posify): Ditto. - * exceptions.cc (try_to_debug): Use CreateProcessW to allow long path - names. - * miscfuncs.cc: Drop unused implementations of strcasematch and - strncasematch. - (ch_case_eq): Drop. - (strcasestr): Drop. - (cygwin_wcscasecmp): New function. - (cygwin_wcsncasecmp): New function. - (cygwin_strcasecmp): New function. - (cygwin_strncasecmp): New function. - (cygwin_wcslwr): New function. - (cygwin_wcsupr): New function. - (cygwin_strlwr): New function. - (cygwin_strupr): New function. - * ntdll.h (RtlDowncaseUnicodeString): Declare. - (RtlUpcaseUnicodeString): Declare. - (RtlInt64ToHexUnicodeString): Fix typo in comment. - * string.h: Disable not NLS aware implementations of strcasematch - and strncasematch. - (cygwin_strcasecmp): Declare. - (strcasecmp): Define as cygwin_strcasecmp. - (cygwin_strncasecmp): Declare. - (strncasecmp): Define as cygwin_strncasecmp. - (strcasematch):Define using cygwin_strcasecmp. - (strncasematch):Define using cygwin_strncasecmp. - (cygwin_strlwr): Declare. - (strlwr): Define as cygwin_strlwr. - (cygwin_strupr): Declare. - (strupr): Define as cygwin_strupr. - * wchar.h: New file. - * wincap.cc (wincapc::init): Use "NT" as fix OS string. - * winsup.h (strcasematch): Drop declaration. - (strncasematch): Ditto. - (strcasestr): Ditto. - -2007-12-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit - handling on filesystems without ACL support. - -2007-12-11 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzset): Guard by a muto for thread safety. - -2007-12-11 Dave Korn <dave.korn@artimi.com> - - * cygheap.cc (_csbrk): Don't request zero bytes from VirtualAlloc, - as windows treats that as an invalid parameter and returns an error. - -2007-12-11 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzset): Call tzsetwall only if it hasn't been - called before. - -2007-12-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h: Include limits.h. - -2007-12-06 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (initial_env): Use PATH_MAX instead of CYG_MAX_PATH for path - name buffer size. - (dll_crt0_1): Allocate new_argv0 with PATH_MAX size. - * exceptions.cc (debugger_command): Set size to 2 * PATH_MAX + 20; - (error_start_init): Use PATH_MAX instead of CYG_MAX_PATH for path - name buffer size. - * external.cc (fillout_pinfo): Always fill out ep.progname 0-terminated. - Fill out ep.progname_long. - * fhandler_process.cc (fhandler_process::fill_filebuf): Allocate - buffer for executable filename with PATH_MAX size. - * pinfo.cc: Throughout use PATH_MAX instead of CYG_MAX_PATH. - * pinfo.h (class _pinfo): Set progname size to PATH_MAX. - * smallprint.cc: Include limits.h. Use PATH_MAX instead of CYG_MAX_PATH - for path name buffer size. - * strace.cc (strace::vsprntf): Ditto. - * include/sys/cygwin.h (EXTERNAL_PINFO_VERSION_32_LP): Define. - (EXTERNAL_PINFO_VERSION): Set to EXTERNAL_PINFO_VERSION_32_LP. - (struct external_pinfo): Add progname_long member. - * include/sys/dirent.h: Correctly include limits.h instead of - sys/limits.h. - -2007-12-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::open): Use MAX_PATH instead of - CYG_MAX_PATH for event name buffer size. - (fhandler_pty_master::setup): Use MAX_PATH instead of CYG_MAX_PATH for - mutex name buffer size. - * netdb.cc: Drop old comment. - (open_system_file): Set path buffer size to MAX_PATH instead of - CYG_MAX_PATH. Drop conversion to posix path. Open file using win32 - path. - -2007-12-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc: Use NAME_MAX + 1 instead of CYG_MAX_PATH - throughout for subkey name buffer size. - * fhandler_socket.cc (search_wsa_event_slot): Use MAX_PATH instead of - CYG_MAX_PATH for mutex name buffer size. - (fhandler_socket::init_events): Ditto. - * fhandler_virtual.cc (fhandler_virtual::opendir): Check path length - against PATH_MAX instead of against CYG_MAX_PATH. - * registry.cc (get_registry_hive_path): Use PATH_MAX instead of - CYG_MAX_PATH for registry value path buffer size. - * shared.cc (open_shared): Use MAX_PATH instead of CYG_MAX_PATH - for shared memory name buffer size. - * thread.cc (semaphore::semaphore): Use MAX_PATH instead of CYG_MAX_PATH - for semaphore name buffer size. - * uinfo.cc (cygheap_user::env_userprofile): Use PATH_MAX instead of - CYG_MAX_PATH for temporary path name buffer size. - * winf.h (LINE_BUF_CHUNK): Define as MAX_PATH * 2. - * include/sys/dirent.h: Include sys/limits.h. Define name buffer sizes - using NAME_MAX. - -2007-12-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_fifo.cc (fhandler_fifo::open): Use MAX_NAME for pipe name - buffer size. - (fhandler_fifo::fstatvfs): Use same technique as in fhandler_socket. - * fhandler_proc.cc (format_proc_partitions): Use NAME_MAX+1 for - device name buffer size. Use MAX_PATH for device path buffer size. - -2007-12-03 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetModuleFileNameExW): Replace definition of - GetModuleFileNameExA. - * fhandler_process.cc (format_process_maps): Change modname type to - WCHAR. Set buffer sizes to PATH_MAX. Call GetModuleFileNameExW - instead of GetModuleFileNameExA. Call mount_info::conv_to_posix_path - instead of cygwin_conv_to_full_posix_path. Set posix_modname to - modname if that call fails. - (format_process_stat): Set cmd buffer size to NAME_MAX + 1. Simplify - setting cmd to process name. - (format_process_status): Ditto. - * path.cc (mount_info::conv_to_posix_path): Call sys_wcstombs - correctly. - -2007-12-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/time.h: Remove redundant #endif. - -2007-12-01 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/time.h (daylight): Declare as extern symbol referring - _daylight variable. - (timezone): Only define if __timezonefunc__ is undefined. - -2007-12-01 Corinna Vinschen <corinna@vinschen.de> - Brian Dessent <brian@dessent.net> - - * Makefile.in (OBSOLETE_FUNCTIONS): Add timezone. - * include/cygwin/time.h: Drop conditional timezone definitions. - (timezone): Declare as extern symbol referring _timezone variable. - -2007-11-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo::initialize): Use MAX_PATH instead of - CYG_MAX_PATH. - * fhandler_tty.cc (fhandler_pty_master::ptsname): Set buffer size to - TTY_NAME_MAX. - * syscalls.cc (ttyname): Eliminate the `+ 1' from the name buffer size - since TTY_NAME_MAX already counts the trailing NUL. - * libc/bsdlib.cc (openpty): Set pts buffer size to TTY_NAME_MAX. - -2007-11-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Add MSG_WAITALL - handling. Use explicit flag values instead of MSG_WINMASK. - (fhandler_socket::send_internal): Use explicit flag values instead of - MSG_WINMASK. - * include/cygwin/socket.h (MSG_WINMASK): Remove definition. - (MSG_WAITALL): Define. - -2007-11-27 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_names): Rename max_len to prefix_len. Store - the prefix len in it. - (check_path): Take length parameter. Use this length insetad of - calling strlen. Allow PATH_MAX length paths. - (ipc_mutex_init): Use MAX_PATH instead of CYG_MAX_PATH. - (ipc_cond_init): Ditto. - (shm_open): Allocate local name buffer not bigger than necessary. Call - check_path with additional length argument. - (shm_unlink): Ditto. - (mq_open): Ditto. - (mq_unlink): Ditto. - (sem_open): Ditto. - (sem_unlink): Ditto. - -2007-11-27 Corinna Vinschen <corinna@vinschen.de> - - Drop old SetResourceLock stuff in favor of mutos. - * dcrt0.cc (_reslock): Remove. - (__cygwin_user_data): Accommodate removal of resourcelocks member. - (dll_crt0_0): Don't initialize resourcelocks. - * exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling. - * mmap.cc (mmap_guard): New muto. - (LIST_LOCK): Define. - (LIST_UNLOCK): Define. - (mmap_list::search_record): Remove. - (mmap_list::try_map): Include code for anonymous case from - mmap_list::search_record. - (mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread - safe way. - (mmap64): Replace SetResourceLock/ReleaseResourceLock by - LIST_LOCK/LIST_UNLOCK. Lock at the latest possible point. - (munmap): Replace SetResourceLock/ReleaseResourceLock by - LIST_LOCK/LIST_UNLOCK. - (msync): Ditto. - (mprotect): Ditto. - * thread.cc (ResourceLocks::Lock): Remove. - (SetResourceLock): Remove. - (ReleaseResourceLock): Remove. - (ResourceLocks::Init): Remove. - (ResourceLocks::Delete): Remove. - * thread.h (SetResourceLock): Drop declaration. - (ReleaseResourceLock): Ditto. - (class ResourceLocks): Drop definition. - * include/sys/cygwin.h (class ResourceLocks): Drop forward declaration. - (struct per_process): Replace resourcelocks with additional unused2 - element. - (per_process_overwrite): Accommodate above change. - -2007-11-27 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Convert usage of dynamically growing cmalloced arrays to - cmalloced linked lists throughout. - (class mmap_record): Add LIST_ENTRY element. - (mmap_record::match): New method, taking over match algorithm from - list::search_record. - (class mmap_list): Rename from class list. Add LIST_ENTRY. Convert - recs to a LIST_HEAD. Drop nrecs and maxrecs members. - (mmap_list::get_record): Drop entirely. - (mmap_list::free_recs): Drop entirely. - (mmap_list::del_record): Take mmap_record to delete as parameter. - (mmap_list::search_record): Convert to mmap_record::match. - (class mmap_areas): Rename from class map. Convert lists to LIST_HEAD. - (mmap_areas::get_list): Drop entirely. - (mmap_areas::del_list): Take mmap_list to delete as parameter. - (mprotect): Fix indentation. - -2007-11-26 Christopher Faylor <me+cygwin@cgf.cx> - - Change many cygheap allocation routines to their *_abort analogs. - * cygheap.cc (cmalloc_abort): New function. - (crealloc_abort): Ditto. - (ccalloc_abort): Ditto. - -2007-11-23 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL. - -2007-11-08 Christopher Faylor <me+cygwin@cgf.cx> - - * dllfixdbg: Eliminate extra objcopy step. - -2007-11-07 Pedro Alves <pedro_alves@portugalmail.pt> - - * dllfixdbg: Pass --only-keep-debug to objcopy, instead of - selecting the sections manually. - -2007-11-06 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread_key_create): Drop check for incoming valid object. - -2007-11-06 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc: Include sync.h - (struct shm_shmid_list): Add ref_count member. - (struct shm_attached_list): Remove hdl and size members. Add a parent - member pointing to referenced shm_shmid_list entry. - (shm_guard): New muto. - (SLIST_LOCK): Define. - (SLIST_UNLOCK): Define. - (fixup_shms_after_fork): Use hdl and size members of parent - shm_shmid_list entry. - (shmat): Access sequential bookkeeping lists in a thread safe way. - Accommodate change in list element layout. Align comments. - (shmctl): Ditto. - (shmdt): Ditto. - (shmget): Ditto. - -2007-11-05 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (shmctl): On IPC_RMID don't unmap views and don't close handle - if the map is still referenced to emulate Linux and BSD behaviour. - -2007-11-05 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (shmctl): On IPC_RMID also unmap all views on shared mem - as well as connected shm_attached_list entry. - -2007-10-31 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (load_ipv6_funcs): Use MAX_PATH instead of CYG_MAX_PATH. - (cygwin_getaddrinfo): Simplify formatting. - (cygwin_getnameinfo): Ditto. - -2007-10-31 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (get_cygdrive_info): Make inline. - (get_cygdrive_prefixes): Remove. - (cygwin_internal): Call get_cygdrive_info with NULL flag parameters - instead of get_cygdrive_prefixes. - * path.cc (mount_info::get_cygdrive_info): Allow NULL flag parameters. - -2007-10-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't remove - write bits for directories with R/O attribute. - (fhandler_base::fhaccess): Don't shortcircuit R/O attribute with W_OK - scenarios for directories. - -2007-10-22 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct cwdstuff): Drop hash member. Drop get_hash, - get_initial, and fixup_after_exec declarations. - Convert win32 to UNICODE_STRING. - (cwdstuff::get_drive): Convert win32 path in current codepage. - (cwdstuff::set): Take native NT path. - * ntdll.h (struct _TEB): Typedef. - * path.cc (mount_info::conv_to_posix_path): Add variant taking - wide char DOS paths. - (symlink_info::posixify): Simplify concatenating cwd and relative path. - (hash_path_name): Drop special relative path handling. - (chdir): Drop special "drive only" handling. Call cwdstuff::set with - native path. - (cwdstuff::get_hash): Remove. - (windows_system_directory): Remove. - (_upp): Remove. - (get_user_proc_parms): Make inline. Get PEB pointer by calling - NtCurrentTeb. - (cwdstuff::init): Simplify. - (cwdstuff::set): Rework to handle incoming native NT path. Workaround - a Vista problem with CWD handle in the user process parameter block. - (cwdstuff::get): Simplify locking. Accommodate type change of win32. - * shared_info.h (mount_info): Add declaration for new conv_to_posix_path - method. - * strfuncs.cc (sys_wcstombs): Return correct length of created - multi-byte string. - -2007-10-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough - to allow multibyte chars. - -2007-10-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Open native symlinks with - FILE_OPEN_REPARSE_POINT flag. Fix typo in comment. - -2007-10-18 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/param.h (MAXPATHLEN): Define as PATH_MAX. - -2007-10-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (is_at_eof): Rewrite using NT functions. - (off_current): New static variable. - (off_append): Ditto. - (fhandler_base::raw_write): Use NtWriteFile. Accommodate O_APPEND here. - (fhandler_base::write): Drop O_APPEND hack. Use NT functions. - (fhandler_base::lseek): Rewrite using NT functions. - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add space in - debug output. - (fhandler_disk_file::ftruncate): Ditto. - * ntdll.h (STATUS_DISK_FULL): Define. - (FILE_USE_FILE_POINTER_POSITION): Define. - (FILE_WRITE_TO_END_OF_FILE): Define. - -2007-10-13 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_END_OF_FILE): Define. - * path.cc (symlink_info::check_shortcut): Use NT function to get file - size. Reintroduce checking file size before reading it. Eliminiate - close_it label. - (symlink_info::check_sysfile): Check for EOF condition. - -2007-10-11 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (basename): Return pointer into the path argument itself. - Shrink buf to 4 bytes. Use buf only for border cases. - (dirname): Ditto. - -2007-10-10 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (struct symlink_info): Change size of contents member to - be able to keep SYMLINK_MAX sized strings. - (symlink_worker): Rework for long path names. When writing windows - shortcuts, store pathname additionally "hidden" after the actual - shortcut data to workaround size limitations of the description field. - (symlink_info::check_shortcut): Drop file name parameter. Drop max - file size check. Use NT functions. Use appended full path if - available, description otherwise. Check symlink string length for - not exceeding SYMLINK_MAX. Don't close file here. - (symlink_info::check_sysfile): Drop file name parameter. Use NT - functions. Check symlink string length for not exceeding SYMLINK_MAX. - Don't close file here. - (symlink_info::check_reparse_point): Drop file name parameter. Drop - useless length checks. Allow SYMLINK_MAX length symlink strings. - Don't close file here. - (symlink_info::posixify): Allow SYMLINK_MAX length symlink strings. - (symlink_info::check): Turn around checking for symlink file attributes. - Use NT functions. Close symlink file here. - * include/limits.h (PATH_MAX): Define as 32760. Change comment. - (SYMLINK_MAX): Define as PATH_MAX - 1. - -2007-10-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Open file for deletion, - too. Don't write to file and especially don't close handle if file - couldn't be created. Set delete disposition if writing failed, - instead of calling unlink_nt. - -2007-09-27 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (struct _FILE_COMPRESSION_INFORMATION): Align with definition - in w32api / MSDN. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate - change to struct _FILE_COMPRESSION_INFORMATION. - -2007-09-26 Corinna Vinschen <corinna@vinschen.de> - - * termios.cc (setspeed): Support new baud rates introduced 2007-02-05. - -2007-09-20 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_OBJECT_NAME_INVALID): Define. - -2007-09-18 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (fh_disk_file): Delete as global static variable and... - (mmap64): ...define as local pointer to make mmap thread-safe. - Accommodate throughout. Only initialize fh_disk_file after file could - be opened with GENERIC_EXECUTE access. Call fstat_by_handle instead of - fstat to avoid overhead. - -2007-09-18 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_file_sd): Open file with FILE_OPEN_FOR_BACKUP_INTENT - too. - -2007-09-17 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Check for STATUS_OBJECT_NAME_INVALID. - Add comment. - -2007-09-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Partly revert change from - 2007-08-24: Call has_acls to avoid permission problems getting - a handle to a file on a remote share. Add comment. - -2007-09-08 Brian Dessent <brian@dessent.net> - - * include/cygwin/config.h: Conditionalize inline __getreent() - definition on _COMPILING_NEWLIB. - -2007-09-06 Brian Dessent <brian@dessent.net> - - * include/cygwin/config.h (__getreent): Define inline version. - -2007-09-06 Brian Dessent <brian@dessent.net> - - * include/sys/stdio.h (_flockfile): Don't try to lock a FILE - that has the __SSTR flag set. - (_ftrylockfile): Likewise. - (_funlockfile): Likewise. - -2007-08-24 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (open): Don't follow symlinks if O_EXCL is given. - -2007-08-23 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_NO_SUCH_FILE): Define. - * path.cc (get_nt_native_path): Reset upath.Length to 0 on each - invocation. - (symlink_info::check): Use NT native functions. - -2007-08-21 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::load): Use NT native functions. - -2007-08-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Rewrite checking - for executable file magic using a thread safe method and re-enable this - code. - -2007-08-21 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Drop one local FILE_BASIC_INFORMATION struct. - -2007-08-21 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (NtNotifyChangeDirectoryFile): Declare. - (NtQueryAttributesFile): Move to maintain alphabetical order of - declarations. Add comment to note that timestamp information returned - by NtQueryAttributesFile is unreliable. - * path.h (etc::changed_h): Move here. - (etc::fn): Change type to OBJECT_ATTRIBUTES. - (etc::last_modified): Change type to LARGE_INTEGER. - (etc::init): Take PUNICODE_STRING as second argument. - * path.cc: Accomodate above changes. - (etc::test_file_change): Use NT native functions. - (etc::dir_changed): Ditto. - * uinfo.cc (pwdgrp::load): Call etc::init with NT native path. - -2007-08-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc: Change debugging output througout to print - the NT status consistently. Use UNICODE path information if available. - -2007-08-20 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (ld_preload): Call LoadLibraryW. - * path.h (path_conv::get_wide_win32_path_len): Define. - -2007-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (rootdir): Delete. - * winsup.h (rootdir): Drop declaration. - -2007-08-19 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fillout_mntent): Append backslash to drive-only paths before - calling fs_info::update. - * path.h (fs_info::clear): Simplify. - (fs_info::fs_info): Add constructor. - -2007-08-17 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Fix typo in comment. - -2007-08-17 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CloseDesktop): Define. - (CreateDesktopA): Define. - (SetThreadDesktop): Define. - * spawn.cc (spawn_guts): When starting a process under another user - account, don't open up permissions on current window station and - desktop. Instead, if not in interactive session, create a new per-user - window station plus default desktop and use that for the child process. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Handle S_IFSOCK - mode bit by setting the SYSTEM attribute. - * fhandler_socket.cc (fhandler_socket::fchmod): Add S_IFSOCK mode bit - when calling fhandler_disk_file::fchmod. Don't set attributes here. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * path.h (path_conv::operator char *): Delete. - (path_conv::operator const char *): Delete. - * dlfcn.cc: Throughout, replace path_conv::operator char * and - path_conv::operator const char * by call to path_conv::get_win32 - for easier transition to UNICODE_PATHs. - * fhandler_socket.cc: Ditto. - * hookapi.cc: Ditto. - * path.cc: Ditto. - * spawn.cc: Ditto. - * syscalls.cc: Ditto. - * uinfo.cc: Ditto. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING. - * sec_acl.cc (getacl): Convert debug output to print native NT path. - * security.cc (set_file_attribute): Ditto. - * syscalls.cc (try_to_bin): Ditto and fix buggy debug statement. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlAcquirePebLock): Declare. - (RtlReleasePebLock): Declare. - * path.cc (cwdstuff::set): Change PEB only while it's locked. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::get_namehash): Use NT native path. - * fhandler_disk_file.cc (readdir_get_ino): Ditto in call to - hash_path_name. - -2007-08-16 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlCreateUnicodeStringFromAsciiz): Fix declaration. - (RtlUpcaseUnicodeChar): Declare. - * path.cc (hash_path_name): Split into three functions, taking - the path as char *, PWCSTR, or PUNICODE_STRING. Move implementation - into PUNICODE_STRING-based function. Drop old drive-relative path - consideration. - * winsup.h (iswdirsep): Like isdirsep but for WCHARs. - (isabspath_u): Like isabspath, for PUNICODE_STRINGs. - (iswabspath): Like isabspath, for PWCHARs. - (hash_path_name): Add new declarations. - -2007-08-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (get_nt_native_path): Allow to convert special paths which - have no native NT path representation for simplified debug output. - * syscalls.cc: Convert debug output to print native NT path. - (unlink): Drop redundant debug output. - -2007-08-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous - test for trailing dot. - * path.h (path_conv::operator []): Remove. - -2007-08-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Use NT native functions for - accessing the file representing the local socket. - (fhandler_socket::bind): Ditto. - * ntdll.h: Declare NtReadFile. - -2007-08-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): In case of ERROR_SHARING_VIOLATION and - ERROR_ACCESS_DENIED, try to get file attributes by using directory - functions. - -2007-08-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fs_info::update): Correctly handle the volume root directory. - -2007-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::pc): Make public. - * fhandler_disk_file.cc (fhandler_disk_file::link): Drop extern - declaration of stat_suffixes. Use NT native path in debug output. - (fhandler_base::utimes_fs): Simplify closeit case. Use close_fs - to close newly opened file handle. - (fhandler_base::open_fs): Use NT native path in debug output. - * path.cc: Throughout drop extern declaration of stat_suffixes. - * path.h (stat_suffixes): Declare. - * sec_acl.cc (acl_worker): Drop extern declaration of stat_suffixes. - * times.cc (utimes_worker): Take path_conv as parameter instead of - single-byte pathnam, drop nofollow argument, accommodate throughout. - Compare UNICODE paths when enumerating file descriptors. Fix - formatting. Use NT native path in debug output. - -2007-08-13 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Call NtClose instead of CloseHandle throughout. - (CreateMapping): Drop unused last argument. Accommodate throughout. - (mmap64): Re-open file with execute permissions using NtOpenFile. - -2007-08-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::close_fs): Reintroduce (as inline function) - for clearness. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Revert previous - change. - (fhandler_base::open_fs): Ditto. - * fhandler_socket.cc (fhandler_socket::close): Ditto. - -2007-08-13 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Remove delqueue.o. - * delqueue.cc: Delete. - * fhandler.h (fhandler_base::close_fs): Drop declaration. - (fhandler_disk_file::close): Drop declaration. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Call close instead of - close_fs. - (fhandler_base::fstat_helper): Use open FH_UNIX handle in call to - get_file_attribute. - (fhandler_base::open_fs): Call close instead of get_file_attribute. - (fhandler_disk_file::close): Remove. - (fhandler_base::close_fs): Remove. - * fhandler_socket.cc (fhandler_socket::close): Just call - fhandler_base::close for FH_UNIX sockets. - * shared.cc (user_shared_initialize): Drop call to - user_shared->delqueue.init. - * shared_info.h (CURR_USER_MAGIC): Change according to below change. - (MAX_DELQUEUES_PENDING): Remove. - (class delqueue_list): Remove. - (class user_info): Remove delqueue. - * syscalls.cc (close_all_files): Drop call to - user_shared->delqueue.process_queue. - (unlink): Drop delqueue handling. - -2007-08-13 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_storage): Use native NT device name for kmsg mailslot. - * devices.cc: Regenerate. - * fhandler.cc (fhandler_base::operator =): Use path_conv assignment - operator. - (fhandler_base::set_name): Ditto. - (fhandler_base::open): Use NT native path in debug output. - * fhandler_mailslot.cc: Convert to NT native function calls. - * ntdll.h (struct _FILE_MAILSLOT_SET_INFORMATION): Define. - (NtCreateMailslotFile): Declare. - * path.cc (path_conv::set_normalized_path): Don't set wide_path to NULL. - (path_conv::set_name): Remove unused function. - * path.h (path_conv::set_name): Drop declaration. - (path_conv::operator =): Define. - -2007-08-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Remove HIDDEN_DOT_FILES code. - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto. - * path.cc (symlink_worker): Ditto. - -2007-08-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (getw): Remove redundant implementation. - (putw): Ditto. - (wcscmp): Ditto. - (wcslen): Ditto. - (memccpy): Ditto. - -2007-08-12 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Add descriptive comments to special Rtl functions. - (STATUS_OBJECT_PATH_NOT_FOUND): Define. - (STATUS_BUFFER_OVERFLOW): Define. - (FILE_SUPERSEDED): Define. - (FILE_OPENED): Define. - (FILE_CREATED): Define. - (FILE_OVERWRITTEN): Define. - (FILE_EXISTS): Define. - (FILE_DOES_NOT_EXIST): Define. - (PIO_APC_ROUTINE): Typedef. - (NtFsControlFile): Fix parameter types to use PIO_APC_ROUTINE. - (NtWriteFile): Declare. - (RtlInt64ToHexUnicodeString): Declare. - * strfuncs.cc: Include ntdll.h. - (RtlInt64ToHexUnicodeString): New function. - * syscalls.cc (try_to_bin): Rewrite using native NT functions. - Only try to create recycle bin after unsuccessfully trying to move - file. Also try to create special files in recycle bin so that Windows - Explorer isn't unnecessarily stampeded. - -2007-08-10 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fillout_mntent): Fix calculation of unicode buffer size. - -2007-08-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Check oldpath and newpath for trailing dir - separators, require them to be existing directories if so. Check - for a request to change only the case of the filename. Check paths - for case insensitve equality only once. Handle renaming a directory - to another, existing directory by unlinking the destination directory - first. If newpath points to an existing file with R/O attribute set, - try to unset R/O attribute first. Augment hardlink test by not - checking directories. If renaming fails with STATUS_ACCESS_DENIED, - try to unlink existing destination filename and try renaming again. - Drop useless test for non-empty directory. Always close fh at the - end of the function. - -2007-08-09 Ernie Coskrey <Ernie.Coskrey@steeleye.com> - - * gendef (sigbe): Reset "incyg" while the stack lock is active to avoid - a potential race. - -2007-08-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Close oldpath file handle immediately after - trying to rename it. Use nfh handle when checking for non-empty - newpath directory. Only change status if check_dir_not_empty really - returns STATUS_DIRECTORY_NOT_EMPTY. - -2007-08-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (readdir_get_ino): Accommodate native symlinks. - * syscalls.cc (rename): Ditto. - -2007-08-02 Christopher Faylor <me+cygwin@cgf.cx> - - * lib/Makefile: Add missed file to accommodate below changes. - -2007-08-02 Christopher Faylor <me+cygwin@cgf.cx> - - * lib/cygwin_attach_dll.c: Fix compiler warning. - * lib/cygwin_crt0.c: Ditto. - -2007-08-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (codepage_type): Remove definition. - * strfuncs.cc: Move it here. New file with bits of miscfuncs.cc. - * miscfuncs.cc: Remove wide character stuff. - -2007-08-02 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Move and add text to comment about testing - oldpath and newpath referring to the same file. Test if oldpath - has more than one hardlink before opening oldpath (idea by Eric Blake). - Reorder test so that file id is tested before volume serial number. - -2007-08-02 Corinna Vinschen <corinna@vinschen.de> - - * path.h (struct fs_info): Drop root_len and name_hash members. - (fsinfo::length): Remove. - (path_conv::rootdir): Remove. - * syscalls.cc (try_to_bin): Use rootdir function instead of - path_conv::rootdir method. - -2007-08-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::ndisk_links): Fix typo in call to - NtClose. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Check if oldpath and newpath refer to the - same file. If so, return successfully and perform no other action, - as per SUSv3. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_ACCESS_DENIED): Define. - * syscalls.cc (check_dir_not_empty): New static function. - (unlink_nt): Move code checking for non-empty dir to check_dir_not_empty - and call check_dir_not_empty instead. - (rename): Add fault handler. Check oldpath and newpath for trailing - . and .. path components and return EINVAL if so. Check oldpath - for being on a vrtual file system. If renaming a dir fails with - STATUS_ACCESS_DENIED, check if the target dir is non-empty and return - ENOTEMPTY if so. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzsetwall): Don't set TZ. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop - usage of path_conv::volser(). - (fhandler_base::fstat_by_name): Ditto. - * ntdll.h (STATUS_NO_MEDIA_IN_DEVICE): Define. - (STATUS_OBJECT_NAME_NOT_FOUND): Define. - (FILE_REMOVABLE_MEDIA, FILE_READ_ONLY_DEVICE, FILE_FLOPPY_DISKETTE) - (FILE_WRITE_ONCE_MEDIA, FILE_REMOTE_DEVICE, FILE_DEVICE_IS_MOUNTED) - (FILE_VIRTUAL_VOLUME, FILE_AUTOGENERATED_DEVICE_NAME) - FILE_DEVICE_SECURE_OPEN): Define Device Characteristics. - (struct _FILE_FS_DEVICE_INFORMATION): Define. - * path.cc (MAX_FS_INFO_CNT): Remove. - (fsinfo): Remove. - (fsinfo_cnt): Remove. - (fs_info::update): Rewrite using native NT functions. Drop fs_info - cashing since it's incorrect. - (path_conv::fillin): Use NtQueryInformationFile. Drop setting serial - number. - (path_conv::check): Accommodate new fs_info::update parameters. - (fillout_mntent): Ditto. - * path.h (fs_info): Drop serial, has_ea and drive_type status - flags. - (fs_info::update): Declare with new parameters. - (path_conf::drive_type): Remove. - (path_conf::fs_has_ea): Remove. - (path_conf::volser): Remove. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (check_posix_perms): Remove. - (fhandler_base::fpathconf): Return value of pc.has_acls () instead - of calling check_posix_perms. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Use unchanged path_conv in condition. - -2007-08-01 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vsprintf): Add format specifier 'W' for - PWCHAR arguments. Move wide char handling after char handling. - -2007-07-31 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlFreeAnsiString): Declare. - * ntdll.h (RtlFreeOemString): Declare. - * ntdll.h (RtlUnicodeStringToAnsiString): Declare. - * ntdll.h (RtlUnicodeStringToOemString): Declare. - * smallprint.cc: Renamed from smallprint.c. Drop unnecessary - forward declarations. - (__small_vsprintf): Add format specifiers 'C' for WCHAR arguments - and 'S' for PUNICODE_STRING arguments. - -2007-07-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Revert to checking - for binary in case of .exe files. - * ntdll.h (RtlPrefixUnicodeString): Declare. - * path.cc (path_conv::is_binary): New method. - * path.h (path_conv::is_binary): Declare. - * syscalls.cc (rename_append_suffix): New static helper function for - rename. - (rename): Rewrite. New suffix tests. Use native NT functions. - -2007-07-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::facl): If file can't be - opened for reading the ACLs, fall back to faking them. - * sec_acl.cc (acl_worker): Handle non-existing files. - * security.cc (get_file_attribute): Return ILLEGAL_UID/ILLEGAL_GID - as owner/group for non-readable ACLs on file systems supporting them. - -2007-07-30 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (stat_worker): Don't call build_fh_pc with invalid pc. - -2007-07-29 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Handle read EOF better - and issue a SIGPIPE when we get ERROR_NO_DATA. - -2007-07-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allow - FileAttributes set to 0 when calling NtSetInformationFile since it has - a special meaning. - (fhandler_disk_file::facl): Ditto. - (fhandler_disk_file::link): Only set attributes after copying files. - Use SetFileAttributesW. - * syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY. - Don't allow FileAttributes set to 0 when calling NtSetInformationFile. - After marking for deletion, restore R/O attribute on files to - accommodate hardlinks. - -2007-07-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS. - (fhandler_base::utimes_fs): Fix white space. - (fhandler_disk_file::lock): Remove 9x blurb from comment. - (fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of - CreateDirectoryA. - (fhandler_disk_file::rmdir): Accommodate changes to unlink_nt. - Simplify post-delete SMB-related tests. Use NtQueryAttributesFile - instead of GetFileAttributes. - * ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define. - (NtQueryAttributesFile): Declare. - * syscalls.cc (unlink_nt): Return NTSTATUS. Drop setattrs parameter. - Never use FILE_DELETE_ON_CLOSE, always use - NtSetInformationFile(FileDispositionInformation) instead. - Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES - access if any of them are set. Remove R/O attributes before - marking for delete if necessary. Revert them afterwards if necessary. - (unlink): Accommodate changes to unlink_nt. - -2007-07-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc: Use get_handle throughout. - (fhandler_disk_file::fchmod): Always try to open file with required - access rights. Use NtSetInformationFile instead of SetFileAttributes. - (fhandler_disk_file::facl): Use NtSetInformationFile instead of - SetFileAttributes. - (fhandler_base::utimes_fs): Change lastaccess and lastwrite to - LARGE_INTEGER. Drop 9x directory case. Use NtSetInformationFile - instead of SetFileAttributes. Drop temporarily changing R/O attribute - since NtSetInformationFile(FileBasicInformation) also works on R/O - files. - * ntdll.h (STATUS_NOT_SUPPORTED): Define. - -2007-07-29 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (_cygtls::inside_kernel): Move function declaration into - _cygtls class. - * exceptions.cc (_cygtls::inside_kernel): Move function definition into - _cygtls class. - - * fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state - to detect when there is a EINTR situation. Add a pointer to a length - parameter. Move GetOverlappedResult into this function. - (fhandler_base::read_overlapped): Accommodate above changes and loop if - we receive a restartable signal. - (fhandler_base::write_overlapped): Ditto. - * fhandler.h (fhandler_base::wait_overlapped): Reflect above changes. - * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. - -2007-07-28 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix. - (RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix. - * fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above - change. - -2007-07-28 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlInitCountedUnicodeString): Swap order of string and length - parameters to be the same as for RtlInitEmptyUnicodeString. - (RtlEqualPathPrefix): New inline function. - (RtlEqualPathSuffix): New inline function. - * fhandler_disk_file.cc: Accommodate parameter order change of - RtlInitEmptyUnicodeString throughout. - (fhandler_disk_file::link): Do path checking in unicode. Call - CopyFileW instead of CopyFileA. - -2007-07-27 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateHardLinkA): Remove. - * fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType - test. Just check exe suffix instead. Tune creating new file name. - Implement creating hard link using native NT functions which works - on all platforms. - * ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define. - (struct _FILE_LINK_INFORMATION): Define. - -2007-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Use - NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead - of DeviceIoControl. - -2007-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use - RtlSplitUnicodePath. - (fhandler_disk_file::fstat): Rename oret to opened. Open file using NT - functions right here. Try to open parent dir instead of root directory - to avoid call to rootdir. Use NtFsControlFile. - * ntdll.h (RtlSplitUnicodePath): Define. - -2007-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (is_volume_mountpoint): New static inline - function. - (path_conv::ndisk_links): Call is_volume_mountpoint. - (fhandler_disk_file::readdir_helper): Ditto. - -2007-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (enum query_state): Drop redundant query_stat_control. - * fhandler.cc (fhandler_base::open): Ditto. Add READ_CONTROL to - access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening - for writing. Always set security attributes to avoid calling - has_acls. - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to - open file twice. - -2007-07-26 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (readdir_worker): Drop dir parameter from call to - readdir_get_ino. - * fhandler.h (fhandler_disk_file::readdir_helper): Switch file name - parameter to PUNICODE_STRING. - * fhandler_disk_file.cc: Drop including ntdef.h. - (class __DIR_mounts): Store mount points in UNICODE. Additionally - store cygdrive prefix in unicode here. Change methods accordingly. - (__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64. - (__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers. - (path_conv::ndisk_links): Rewrite using native NT functions. - (fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH. - Always set pfvi->VolumeSerialNumber to non-0. Remove last resort - code. - (fhandler_base::fstat_by_name): Rewrite using native NT functions. - (fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle - fails. - (fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber. - (fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails. - (DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH. - (__DIR_cache): Remove __name. - (d_dirname): Remove. - (fhandler_disk_file::opendir): Drop pathname length check. - Remove outdated comment. Use get_name method instead of accessing - pc.normalized_path directly. - (readdir_get_ino): Drop unused dir parameter. Accomodate throughout. - Allocate fname dynamically. Call new stat_worker instead of lstat64. - Call NtOpenFile instead of CreateFile. Call NtClose instead of - CloseHandle. - (fhandler_disk_file::readdir_helper): Use native NT functions. - Check for volume mount points and use correct inode number. - (fhandler_disk_file::readdir): Simplify slightly. - Use get_name instead of pc.normalized_path. - (fhandler_disk_file::rewinddir): Use RtlInitUnicodeString. - (fhandler_cygdrive::fstat): Ignore floppy drives. Set st_nlink - correctly. - (fhandler_cygdrive::readdir): Ignore floppy drives. - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate - change to readdir_get_ino. - * fhandler_proc.cc (PROC_DIR_COUNT): Define. - (fhandler_proc::fstat): Evaluate correct link count for /proc. - * ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define. - (NtFsControlFile): Declare. - (RtlAppendUnicodeToString): Declare. - (RtlAppendUnicodeStringToString): Declare. - (RtlCompareUnicodeString): Declare. - (RtlCopyUnicodeString): Declare. - (RtlCreateUnicodeStringFromAsciiz): Declare. - (RtlEqualUnicodeString): Declare. - (RtlFreeUnicodeString): Declare. - (RtlInitEmptyUnicodeString): Declare. - (RtlSecondsSince1970ToTime): Declare. - (RtlInitEmptyUnicodeString): Define as inline function. - (RtlInitCountedUnicodeString): Define as inline function. - * path.cc (path_conv::check): New method with PUNICODE_STRING as path, - preliminary implementation. - (mount_info::get_mounts_here): Change to create UNICODE_STRINGs. - Also copy cygpath prefix into UNICODE_STRING. - (is_floppy): Drop 9x consideration. - * path.h: Drop including ntdef.h. - (path_conv::check): Add declaration. - (path_conv::path_conv): Add constructor for UNICODE_STRING paths. - * shared_info.h (mount_info::get_mounts_here): Change declaration. - * syscalls.cc: Drop forward declaration of stat_worker. - (stat_worke): Take path_conv as parameter. Drop nofollow flag. - (stat64): Create matching path_conv and call stat_worker with it. - (lstat64): Ditto. - * winsup.h: Include ntdef.h. - (stat_worker): Declare. - (readdir_get_ino): Change declaration. - -2007-07-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateToolhelp32Snapshot): Remove. - -2007-07-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (Process32First): Remove. - (Process32Next): Remove. - -2007-07-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NetWkstaUserGetInfo): Remove. - (CharToOemBuffA): Remove. - (KillTimer): Remove. - (OemToCharBuffA): Remove. - (SetTimer): Remove. - -2007-07-20 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add sec_auth.o. - * fhandler.cc (fhandler_base::fhaccess): Accommodate interface changes - of access control functions throughout. - * fhandler_disk_file.cc: Ditto. - * fhandler_registry.cc: Ditto. - * sec_acl.cc: Drop unnecessary includes. - (setacl): Take path_conv instead of file name as parameter. - Accommodate interface changes of access control functions. - (getacl): Ditto. - * sec_auth.cc: New file, taking over all authentication related - functions from security.cc. - * sec_helper.cc: Drop unnecessary includes. - * security.cc: Ditto. Move all authentication related functions to - sec_auth.cc. - (ALL_SECURITY_INFORMATION): New define. Use throughout. - (set_file_sd): New function, replacing read_sd and the file related - part of get_nt_object_security. - (get_reg_sd): Rename from get_reg_security. Drop type parameter. - (get_reg_attribute): New function, replacing the registry related part - of get_nt_object_security. - (get_file_attribute): Take path_conv instead of file name as parameter. - Use new get_file_sd call. - (set_file_attribute): Ditto plus new set_file_sd. Drop unnecessary - implementation without uid/gid parameters. - (check_file_access): Take path_conv instead of file name as parameter. - Use new get_file_sd call. - (check_registry_access): Use new get_reg_sd call. - * security.h: Accommodate above interface changes. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_nt_attribute): Remove. - (set_file_attribute): Do it yourself instead of calling - set_nt_attribute. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use - NtQueryFullAttributesFile instead of FindFirstFile. - (fhandler_base::fstat_fs): Drop check for exec_state. Drop check for - invalid characters. - * ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define. - (NtQueryFullAttributesFile): Declare. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Drop local wpath and upath - variables. Call pc.get_object_attr to create object attributes. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto. - * syscalls.cc (unlink_nt): Ditto. - * path.cc (path_conv::set_normalized_path): Set wide_path to NULL. - (path_conv::get_nt_native_path): Drop parameter. Create path in - wide_path/uni_path members. - (path_conv::get_object_attr): New method to create object attributes. - (path_conv::get_wide_win32_path): New method to create Win32 wide path. - (path_conv::check): Initialize wide_path to NULL. - (path_conv::~path_conv): cfree wide_path. - * path.h (class path_conv): New members wide_path and uni_path. - Add declarations of get_object_attr and get_wide_win32_path. - (path_conv::path_conv): Initialize wide_path to NULL. - (path_conv::get_nt_native_path): Drop parameter. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc: Remove unused code. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SetSecurityDescriptorControl): Drop. - * security.cc (alloc_sd): Set security descriptor control flag without - calling SetSecurityDescriptorControl function. - * wincap.h (wincapc::has_dacl_protect): Rename from - has_security_descriptor_control. - * wincap.cc: Ditto throughout. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SetUserObjectSecurity): Drop. - * pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of - SetKernelObjectSecurity. - * spawn.cc (spawn_guts): Use NtSetSecurityObject instead of - SetUserObjectSecurity. - * uinfo.cc (cygheap_user::init): Ditto. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (init_cygheap::luid): Remove. - * mmap.cc (mlock): Accommodate parameter change in call to - push_thread_privilege. - (munlock): Ditto. - * ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define. - (NtAdjustPrivilegesToken): Declare. - * sec_helper.cc (cygpriv): Reorder to match numerical privilege order. - (privilege_luid): Take job of privilege_luid_by_name, using new - cygpriv. - (privilege_luid_by_name): Remove. - (privilege_name): Accommodate new cygpriv array. - (set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32. - Accommodate changes to privilege_name. - (set_cygwin_privileges): Simplify. Don't try to set - SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it. - * security.cc (sys_privs): Reorder to match numerical privilege order. - Use real privilege values as defined in security.h. - (get_system_priv_list): Drop unused grp_list argument. Create - list of privileges according to new wincapc::max_sys_priv value. - (get_priv_list): Call privilege_luid instead of privilege_luid_by_name. - Make priv a local value instead of a pointer. - (create_token): Accommodate parameter change in call to - push_self_privilege. - (lsaauth): Ditto. - (check_access): Use privilege values directly instead of calling - privilege_luid. - * security.h: Define real privilege values. - (cygpriv_idx): Remove. - (privilege_luid): Change declaration. - (privilege_luid_by_name): Drop declaration. - (set_privilege): Change declaration. - (set_process_privilege): Drop definition. - (_push_thread_privilege): Accomodate new set_privilege parameters. - * wincap.h (wincapc::max_sys_priv): New element. - * wincap.cc: Implement above element throughout. - (wincap_2000sp4): New wincaps structure. - (wincap_xpsp1): Ditto. - (wincap_xpsp2): Ditto. - (wincapc::init): Use new wincaps. - (wincapc::max_sys_priv): New element. - -2007-07-19 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, after - initializing hProcToken. - * sec_helper.cc (init_global_security): Don't call set_cygwin_privileges here. - -2007-07-18 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (shared_prefix): De-const. - (shared_prefix_buf): Add static buffer for shared prefix to avoid - additional allocation. - * cygheap.cc (cygheap_init): Set cygheap->shared_prefix to - cygheap->shared_prefix_buf and strcpy. - -2007-07-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system. - * security.cc (check_registry_access): Set errno to EROFS when checking - for W_OK. - -2007-07-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting - cfd->nohandle where it won't crash. - -2007-07-16 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_user::curr_imp_token): Rename from current_token. - Accommodate change throughout Cygwin. - (cygheap_user::imp_token): Rename from token. Accommodate change - throughout Cygwin. - (rcygheap_user::eimpersonate): Use primary token for impersonation. - * grp.cc (internal_getgroups): Use primary impersonation token when - impersonated. - * security.h (_push_thread_privilege): Use primary impersonation token - when impersonated. - -2007-07-14 Christopher Faylor <me+cygwin@cgf.cx> - - * init.cc (in_dllentry): Delete. - (dll_entry): Remove assignment to deleted variable. - * winsup.h (in_dllentry): Delete declaration. - * exceptions.cc (inside_kernel): Use another method to see if we are in - dll_entry phase. - -2007-07-13 Christopher Faylor <me+cygwin@cgf.cx> - - * init.cc (in_dllentry): Make NO_COPY to avoid spurious false - positives. - -2007-07-09 Christopher Faylor <me+cygwin@cgf.cx> - - * debug.cc (close_handle): Change debug output format slightly. - - * dlfcn.cc (dlclose): Don't close handle returned from - GetModuleHandle(NULL). - - * fhandler.h (fhandler_pipe::create): Remove obsolete argument. - (fhandler_pipe::create): Ditto. - * fhandler.cc (fhandler_pipe::create): Ditto. - (fhandler_pipe::create): Ditto. - -2007-07-09 Christopher Faylor <me+cygwin@cgf.cx> - - * strsig.cc (__signals): New macro. - (sys_sigabbrev): New array of signal strings, patterned after linux. - (siglist): Use __signals. - * include/cygwin/signal.h (sys_sigabbrev): Define. - * include/cygwin/version.h: Bump API minor version to 177. - -2007-07-09 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (closedir): Revert change from 2007-06-29. - * fhandler.h (dirent_valid_fd): Drop. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): If opening a - real dir, use the underlying fhandler to keep track of the directory - handle. In fdopendir case use original io_handle from fhandler. Use - fhandler's io_handle in subsequent directory functions throughout. - Create handle non-inheritable and set close-on-exec flag. - (readdir_get_ino): Drop dirent_isroot case. - (fhandler_disk_file::readdir): Handle dirent_isroot case here. - (fhandler_disk_file::rewinddir): Revert change from 2007-07-05. Use - NtClose instead of CloseHandle. - * fhandler_virtual.cc (fhandler_virtual::opendir): Drop adding - dirent_valid_fd flag. Set close-on-exec flag. - -2007-07-08 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in (DLL_OFILES): Add newly-imported random.o. Eliminate - reliance on libiberty. - * random.cc: Import from FreeBSD. Modify for Cygwin environment. - * include/cygwin/stdlib.h (random): Reflect change in return value to - be more linux/freebsd-like. - (srandom): Ditto. - -2007-07-07 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::write): Remove __stdcall decoration. - (fhandler_pipe::write): Ditto. - (fhandler_fifo::write): Ditto. - -2007-07-07 Christopher Faylor <me+cygwin@cgf.cx> - - Preliminary change to make pipes interruptible and fifos reliable. - * dtable.cc (dtable::find_fifo): Eliminate definition. - * dtable.h (dtable::find_fifo): Ditto for declaration. - * fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff. - (fhandler_base::fhandler_base): Ditto. - (fhandler_base::close): Handle overlapped I/O structure if appropriate. - (fhandler_base::dup): Ditto. - (fhandler_base::fork_fixup): Ditto. - (fhandler_base::setup_overlapped): Define new function. - (fhandler_base::destroy_overlapped): Ditto. - (fhandler_base::wait_overlapped): Ditto. - (fhandler_base::read_overlapped): Ditto. - (fhandler_base::write_overlapped): Ditto. - * fhandler.h (fhandler_base::get_overlapped): Declare new function. - (fhandler_base::setup_overlapped): Ditto. - (fhandler_base::destroy_overlapped): Ditto. - (fhandler_base::wait_overlapped): Ditto. - (fhandler_base::read_overlapped): Ditto. - (fhandler_base::write_overlapped): Ditto. - (fhandler_base::get_guard): Eliminate. - (fhandler_pipe::*): Rework to eliminate most Win9x related cruft, - removing many variables and defining a new overlapped capability. - (fhandler_fifo::*): Ditto. - (fifo_state): Declare new enum. - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x - stuff. Initialize overlapped handle to NULL. - (fhandler_fifo::set_use): Eliminate. - (fhandler_fifo::open_nonserver): Define. - (fhandler_fifo::open): Rework to use named pipes and overlapped I/O. - (fhandler_fifo::wait): Define new function to wait for named pipe - connection. - (fhandler_fifo::read): Rework to use wait() and new overlapped I/O - functionality. - (fhandler_fifo::write): Ditto. - (fhandler_fifo::dup): Eliminate. - * pinfo.cc (commune_process): Remove fifo handling. - (_pinfo::commune_request): Ditto. - * pinfo.h (picom): Ditto. - * pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff. - Initialize overlapped handle to NULL. - (fhandler_pipe::open): Eliminate Win9x stuff. - (fhandler_pipe::set_close_on_exec): Eliminate. - (read_pipe): Eliminate. - (fhandler_pipe::close): Ditto. - (fhandler_pipe::fixup_after_exec): Ditto. - (fhandler_pipe::fixup_in_child): Ditto. - (fhandler_pipe::read): Rework to use overlapped I/O. - (fhandler_pipe::write): New function using overlapped I/O. - (fhandler_pipe::dup): Rework to eliminate Win9x stuff. - (fhandler_pipe::create_selectable): Rework to eliminate Win9x and use - overlapped I/O. - * select.cc (peek_pipe): Rework to eliminate Win9x stuff and use - overlapped I/O. - (fhandler_base::ready_for_read): Ditto. - -2007-07-07 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (symlink_info::check_shortcut): Handle device "symlinks" - specially - don't posixify them. - -2007-07-07 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_disk_file.cc: White space. - * fhandler_proc.cc: Ditto. - * fhandler_virtual.cc: Ditto. - -2007-07-07 Christopher Faylor <me+cygwin@cgf.cx> - - * fork.cc: White space. - * net.cc: Ditto. - * posix_ipc.cc: Ditto. - -2007-07-06 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (gettimeofday): Align definition to POSIX. - -2007-07-06 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm. - * include/cygwin/version.h: Bump API minor number. - -2007-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Add missing - OBJ_INHERIT flag when creating OBJECT_ATTRIBUTES. - (fhandler_disk_file::rewinddir): Ditto. - -2007-07-04 Corinna Vinschen <corinna@vinschen.de> - - * times.cc: Define __timezonefunc__ before including time.h to protect - definition of timezone function. - -2007-07-04 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/time.h: Switch to timezone variable by default. Add - comment. - -2007-06-29 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export fdopendir. - * dir.cc (opendir): Call fhandler's opendir with fd set to -1. - (fdopendir): New function. - (seekdir64): Use dirent_info_mask. - (rewinddir): Ditto. - (closedir): Only release underlying file descriptor if it has been - reserved by opendir itself. - * fhandler.cc (fhandler_base::opendir): Accommodate new parameter. - * fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask. - (fhander_XXX::opendir): Add file descriptor parameter. Use regparms. - (fhandler_procnet::opendir): Drop declaration. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto. - If called from fdopendir, use existing handle to re-open directory - with valid flags. Rename fd to cfd. Use only if no valid incoming fd. - (fhandler_cygdrive::opendir): Accommodate new parameter. - * fhandler_process.cc (fhandler_process::opendir): Ditto. - * fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition. - * fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new - parameter. Only create new file descriptor entry if called from - opendir. Remove duplicated setting of dir->__flags. - * posix.sgml: Add fdopendir to list of implemented Solaris functions. - * include/cygwin/version.h: Bump API minor number. - * include/sys/dirent.h: Declare fdopendir. - -2007-06-28 Brian Dessent <brian@dessent.net> - - * include/cygwin/version.h: Fix comment typo. - -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 - on NT to allow starting them in virtual directories. - -2007-01-18 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (list::hash): Fix type to __ino64_t. - (list::get_hash): Ditto. - (list::set): Add struct stat parameter. Use that instead of calling - fstat. - (map::get_list_by_fd): Ditto. - (map::add_list): Ditto. - (mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately. - (mmap_worker): Add pameters for map list and file stat information. - Propagate to called functions. - (mmap64): Use fstat on files early. Replace call to GetFileSize. - Call get_list_by_fd and mmap_worker appropriately. - -2007-01-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc: Drop declaration of htonl and ntohs. Include - asm/byteorder.h instead. - -2007-01-18 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in6.h: Drop inclusion of asm/byteorder.h. - * fhandler_procnet.cc: Declare htonl and ntohs here. - -2007-01-17 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add fhandler_procnet.o. - * autoload.cc (GetAdaptersAddresses): Define. - * devices.h (FH_PROCNET): Define new device. - * devices.in (dev_procnet_storage): Add "/proc/net" entry. - * devices.cc: Regenerate. - * dir.cc (readdir_worker): Use isproc_dev macro. - * dtable.cc (build_fh_pc): Add FH_PROCNET. - * fhandler.h (class fhandler_procnet): New class. - * fhandler_proc.cc: Add "net" subdirectory handling. - * fhandler_procnet.cc: New file handling "/proc/net" directory. - * path.cc (isvirtual_dev): Move to path.h. - * path.h (isproc_dev): New macro to identify /proc files by device. - (isvirtual_dev): Moved here. Define using isproc_dev. - * syscalls.cc (unlink): Use isproc_dev macro. - * wincap.h (wincapc::has_gaa_prefixes): New element. - (wincapc::has_gaa_on_link_prefix): New element. - * wincap.cc: Implement above elements throughout. - (wincapc::init): Check XP for service pack and set has_gaa_prefixes - appropriately. - * include/cygwin/in6.h: Include asm/byteorder.h. - -2007-01-17 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/socket.h (SIOGIFINDEX): Define. - -2007-01-17 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (MapView9x): Note possible uselessness of retrying. - (MapViewNT): Ditto. - (mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED. - -2007-01-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (RtlAnsiStringToUnicodeString): Define. - (RtlOemStringToUnicodeString): Define. - * ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define. - (struct _PEB): Redefine with a bit of content. - (RtlAnsiStringToUnicodeString): Declare. - (RtlOemStringToUnicodeString): Declare. - * path.cc: Include ntdll.h. - (_upp): New global variable pointing to user process parameter block. - (get_user_proc_parms): New static function to retrieve user process - parameter block. - (close_user_proc_parms_cwd_handle): New function to close handle to - current working directory in user process parameter block. - (cwdstuff::init): Drop redundant declaration of dynamically_loaded. - Set current dir only on 9x. Call close_user_proc_parms_cwd_handle - on NT instead. - (cwdstuff::keep_in_sync): Only on 9x. - (cwdstuff::set): Keep behaviour on 9x. On NT write cwd path into user - process parameter block and set cwd handle to NULL. Fix comments to - reflect new behaviour. - -2007-01-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX. - * net.cc (get_2k_ifconf): Ditto. - (get_nt_ifconf): Fake SIOCGIFINDEX. - (get_95_ifconf): Ditto. - (get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems - not supporting IP Helper Lib. - * include/asm/socket.h (SIOCGIFINDEX): Define. - * include/cygwin/if.h (struct ifreq): Add member for interface index. - (ifr_ifindex): Define. - -2007-01-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in6.h (struct ipv6_mreq): Change type of interface - member to uint32_t. - (struct in6_pktinfo): Ditto. - -2007-01-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in.h (struct ip_mreq_source): Define. - (struct ip_msfilter): Define. - (IP_MSFILTER_SIZE): Define. - (struct in_pktinfo): Define. - (struct group_req): Define. - (struct group_source_req): Define. - (struct group_filter): Define. - (GROUP_FILTER_SIZE): Define. - (INADDR_ALLRTRS_GROUP): Define. - * include/cygwin/socket.h: Define protocol agnostic multicast options. - -2007-01-15 Corinna Vinschen <corinna@vinschen.de> - - * CYGWIN_LICENSE: Fix web pages and contact information. - -2007-01-15 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Adjust status definitions. - -2007-01-15 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_init): Add TODO comment. - -2007-01-15 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_SHARING_VIOLATION): Define. - -2007-01-13 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Don't move files to recycle bin which are - not in use. - -2007-01-13 Christopher Faylor <me@cgf.cx> - - * glob.cc: Update copyright notice with latest from FreeBSD. - (glob0): Use correct type for c variable to propagate previously - detected protection. - -2007-01-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (_csbrk): Fix off-by-one error. - * cygwin.sc: Give .cygheap a minimum size of 512K. - -2007-01-12 Christopher Faylor <me@cgf.cx> - - * external.cc (sync_winenv): Use cur_environ () rather than - __cygwin_environ. - -2007-01-12 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (child_copy): Add missing Windows PID in debug output. - -2007-01-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc: Update copyright. - -2007-01-10 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a - useful, valid address before the actual mappings take place. - Fix typo in comment. - -2007-01-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu). - -2007-01-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (getpagesize): Change condition for clarity. - (getsystempagesize): Ditto. - -2007-01-09 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks. - -2007-01-07 Corinna Vinschen <corinna@vinschen.de> - - * security.h (setacl): Add parameter for writability flag. - * sec_acl.cc (setacl): Ditto. Set to true if any ACE with write - permissions is created. - * fhandler_disk_file.cc (fhandler_disk_file::facl): Reset - FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions. - -2007-01-05 Corinna Vinschen <corinna@vinschen.de> - - * include/strings.h: Don't include string.h. Only declare functions - according to SUSv3. - -2007-01-04 Corinna Vinschen <corinna@vinschen.de> - - (get_ifconf): Set MTU for loopback to more correct value. - -2007-01-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results - for SIOCGIFFLAGS here. Call get_ifconf instead. - * net.cc (get_2k_ifconf): Clean up code to generate interface name. - Handle SIOCGIFFLAGS here. - (get_nt_ifconf): Fake SIOCGIFFLAGS here. - (get_95_ifconf): Ditto. - (get_ifconf): Don't fake loopback on systems with IP Helper Lib. - Set MTU for loopback to a more "modern" value. - -2007-01-04 Brian Ford <Brian.Ford@FlightSafety.com> - Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K. - * fhandler.cc (fhandler_base::fstat): Set st_blksize to - PREFERRED_IO_BLKSIZE. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto. - * fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto. - -2007-01-01 Christopher Faylor <me@cgf.cx> - - * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin - _P_NOWAIT process. diff --git a/winsup/cygwin/ChangeLog-2008 b/winsup/cygwin/ChangeLog-2008 deleted file mode 100644 index 313830261..000000000 --- a/winsup/cygwin/ChangeLog-2008 +++ /dev/null @@ -1,3341 +0,0 @@ -2008-12-31 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 191. - -2008-12-31 Christopher Faylor <me+cygwin@cgf.cx> - - * glob_pattern_p.cc: New file. - * Makefile.in (DLL_OFILES): Add glob_pattern_p.o. - * glob.h: Add declaration for glob_pattern_p. - - * pinfo.cc (pinfo::thisproc): Remove __stdcall attribute. - -2008-12-30 Christopher Faylor <me+cygwin@cgf.cx> - - * include/bits/wordsize.h: New linux-compatibility header. - -2008-12-30 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (try_to_debug): Avoid creating a huge buffer on the - stack. - -2008-12-25 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc: Change comment. - (smb_extended_info): Move here from path.cc. - (fs_info::update): Ditto. - (mount_info::create_root_entry): Delay conversion to slashes and use - passed in buffer to figure out fs type. - * path.cc (smb_extended_info): Move. - (fs_info::update): Ditto. - * mount.h: New file. Move mount information here. - * path.h: (fs_info::update): Move. - * shared_info.h (mount_item): Ditto. - -2008-12-24 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (symlink_info::check_shortcut): Ensure that symlink handle is - closed on successful return. - -2008-12-23 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base_setup_overlapped): Add new argument. - (fhandler_base::get_overlapped_buffer): Declare new function. - (fhandler_base::set_overlapped): Ditto. - (fhandler_pipe::overlapped): New variable. - (fhandler_pipe::get_overlapped): Rework to return contents of - overlapped variable. - (fhandler_pipe::set_overlapped): Set overlapped variable based on - argument. - (fhandler_fifo::get_overlapped_buffer): Return pointer to io_status. - * fhandler.cc (handler_base::setup_overlapped): Set to overlapped - pointer to NULL if new doit parameter is false. Otherwise set up - overlapped event as usual. - (fhandler_base::wait_overlapped): Return inres if this isn't an - overlapped operation. - (fhandler_base::read_overlapped): Remove inappropriate asserts. - * pipe.cc (fhandler_pipe::fhandler_pipe): Zero overlapped element. - (struct pipesync): Delete. - (getov_result): Ditto. - (pipe_handler): Ditto. - (pipesync::pipesync): Ditto. - (fhandler_pipe::init): Don't set up pipesync thread. Just pass - opened_properly flag along to overlapped setup. - -2008-12-22 Christopher Faylor <me+cygwin@cgf.cx> - - * pipe.cc (getov_result): Minor cleanup. - -2008-12-20 Christopher Faylor <me+cygwin@cgf.cx> - - * pipe.cc (getov_result): Add parameters to facilitate better EOF - checking. - (pipe_handler): Pass extra arguments to getov_result. - -2008-12-20 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Reorganize to eliminate - gotos and to hopefully eliminate one race when a signal is detected or - there is a WFMO error. - -2008-12-20 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.h (pinfo::thisproc): Declare. Rename from set_myself. - * pinfo.cc (pinfo::thisproc): Define. Rename from set_myself. Set - procinfo to NULL to avoid confusing subsequent init. - (pinfo_init): Accommodate set_myself -> pinfo::thisproc rename. - * dcrt0.cc (child_info_fork::handle_fork): Ditto. - (child_info_spawn::handle_spawn): Ditto. - -2008-12-20 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp::refresh): Fix indentation. - * uinfo.cc (pwdgrp::load): Open file synchronized to avoid truncated - read. Drop local variable off. - -2008-12-19 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.cc (pinfo_basic): New class. - (pinfo_basic::pinfo_basic): Define constructor for new class. - (myself): Initialize from myself_initial. - (set_myself): Set pid and progname from already myself_initial. - * strace.cc (strace::strace): Split apart strace::hello. Send - notification to strace as early as possible. - (strace::hello): Just send clause which describes the current process. - This can now be preceded by early initialization strace output. - * include/sys/strace.h (strace::strace): Declare new constructor. - -2008-12-19 Christian Franke <franke@computer.org> - - * fhandler_registry.cc (perf_data_files): New table. - (PERF_DATA_FILE_COUNT): New constant. - (fhandler_registry::exists): Add check for HKEY_PERFORMANCE_DATA - value names. - (fhandler_registry::fstat): For HKEY_PERFORMANCE_DATA, return - default values only. - (fhandler_registry::readdir): For HKEY_PERFORMANCE_DATA, list - names from perf_data_files only. - (fhandler_registry::fill_filebuf): Use larger buffer to speed up - access to HKEY_PERFORMANCE_DATA values. Remove check for possible - subkey. Add RegCloseKey (). - (open_key): Replace goto by break, remove label. Do not try to - open subkey of HKEY_PERFORMANCE_DATA. Add missing RegCloseKey () - after open subkey error. - -2008-12-19 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Handle incoming DOS paths non-POSIXy, - always case-insensitive, always ignoring ACLs. - -2008-12-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc: Set 4th parameter of NtQueryDirectoryFile to - NULL throughout. - (fhandler_disk_file::facl): Fix a condition so that fstat_by_handle - is actually used. - (fhandler_disk_file::readdir): Don't print debug message on a simple - STATUS_NO_MORE_FILES status code. - -2008-12-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlin_info::check): Set 4th parameter of - NtQueryDirectoryFile to NULL instead of 0 since it's a pointer. - Simplify label and break from loop handling in symlink evaluation - conditional expression. Drop a now useless break statement. Fix - behaviour when searching for `foo' and then finding a `foo.lnk' - which is no shortcut. - -2008-12-16 Christian Franke <franke@computer.org> - - * fhandler_registry.cc (DEFAULT_VALUE_NAME): Remove constant. - (encode_regname): Encode empty (default) name to "@". - Encode "@" to "%40". Change error return to -1. - (decode_regname): Decode "@" to empty name. Decode "%40" to "@". - (fhandler_registry::exists): Skip check for keys if name is empty. - Remove check for DEFAULT_VALUE_NAME, now handled by decode_regname (). - (fhandler_registry::readdir): Remove check for empty name, now - handled by encode_regname (). - (fhandler_registry::open): Remove check for DEFAULT_VALUE_NAME. - (fhandler_registry::open_key): Fail with ENOENT if key name is empty. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (gen_full_path_at): Use isabspath instead of isdirsep - to recognize absolute path. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (open_local_policy): Set lsa handle to - INVALID_HANDLE_VALUE when LsaOpenPolicy fails. Explain why. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * setlsapwd.cc (setlsapwd): Simplify code. Only try to call cygserver - if opening local policy fails. Don't treat removing non-existant - private data as error. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * setlsapwd.cc (setlsapwd): Explicitely erase password buffer content - after usage. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (fhandler_registry::exists): Handle EACCES. - (fhandler_registry::open): Ditto. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export fgetwc, fgetws, fputwc, fputws, fwide, getwc, - getwchar, putwc, putwchar, ungetwc. - * posix.sgml: Move above functions (add missing) into "implemented - SUSv3" section. - * include/cygwin/version.h: Bump api minor number. - -2008-12-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_registry): Declare dup method. - * fhandler_registry.cc (fhandler_registry::exists): Fix missing - parenthesis. - (fhandler_registry::dup): New method. - -2008-12-14 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_disk_file.cc (readdir_get_ino): Don't complain about MS-DOS - paths since the function could be fed one by an internal call. - -2008-12-13 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.cc (cygheap_user::~cygheap_user): Remove unneeded if 0'ed - code. - - * fhandler_registry.cc (fhandler_registry::exists): Recode goto as - if/else to avoid a gcc4 compiler warning. - (fhandler_registry::open): Ditto. Use one goto rather than two. - - * gentls_offsets: Fix compiler warning in generated output. - * tlsoffsets.h: Regenerate. - - * mount.cc (fillout_mntent): slashify native paths returned via - getmntent. - -2008-12-08 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * resolv.h: #include <netinet/in.h> for sockaddr_in typedef. - -2008-12-07 Christian Franke <franke@computer.org> - - * fhandler_registry.cc (encode_regname): Add Parameter add_val. - Append "%val" if add_val is set. - (decode_regname): Remove trailing "%val". Change returncode accordingly. - (__DIR_hash): New class. - (d_hash): New macro. - (key_exists): New function. - (fhandler_registry::exists): Remove encode of registry name before path - compare, decode file part of path instead. Skip checks for keys if - trailing "%val" detected. - (fhandler_registry::fstat): Change check of return value of - decode_regname (). - (fhandler_registry::readdir): Allocate __DIR_hash. Record key names in - hash table. Append "%val" if key with same name exists. Fix error - handling of encode_regname (). Set dirent.d_type. - (fhandler_registry::closedir): Delete __DIR_hash. - (fhandler_registry::open): Don't open key if trailing "%val" detected - by decode_regname (). - (open_key): Ditto. - -2008-12-03 Pierre A. Humblet <Pierre.Humblet@ieee.org> - - * libc/minires.c (open_sock): Set non blocking and close on exec. - (res_ninit): Set id pseudo-randomly. - (res_nsend): Do not set close on exec. Initialize server from id. - Flush socket. Tighten rules for answer acceptance. - (res_nmkquery): Update id using current data. - -2008-12-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (must_encode): Fix condition changed for testing. - -2008-12-01 Christian Franke <franke@computer.org> - - * fhandler_registry.cc (must_encode): New function. - (encode_regname): Ditto. - (decode_regname): Ditto. - (fhandler_registry::exists): Encode name before path compare. - (fhandler_registry::fstat): Pass decoded name to win32 registry call. - (fhandler_registry::readdir): Return encoded name to user. - (fhandler_registry::open): Store decoded name into value_name. - (open_key): Pass decoded name to win32 registry call - -2008-11-28 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.c (sigpacket::process): Set tls on return since it is - assumed to be set to a valid value by the caller. - -2008-11-28 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump api minor number to 189 to flag the - implementation of dirent.d_type. - -2008-11-28 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (sigpacket::process): Rework previous change. tls - could still become NULL. - -2008-11-28 Christian Franke <franke@computer.org> - - * dir.cc (readdir_worker): Initialize dirent.d_type and __d_unused1. - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): - Set dirent.d_type based on FILE_ATTRIBUTE_*. - * include/sys/dirent.h: Define _DIRENT_HAVE_D_TYPE (enables DT_* - declarations). - (struct dirent): Add d_type. Adjust __d_unused1 size to preserve layout. - -2008-11-27 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (sigpacket::process): Make sure that 'tls' is never - NULL when used. - -2008-11-26 Christopher Faylor <me+cygwin@cgf.cx> - - Remove unneeded whitespace throughout. - - * fhandler_fifo.cc (fhandler_fifo::open): Rework to cause errno to be - set to ENXIO when opening a fifo write/nonblocking. - - * environ.cc (ucreqenv): Rename to ucenv. Move code from old ucenv - here and conditionalize it on create_upcaseenv. - (ucenv): Delete. - (environ_init): Fix compiler warning by moving create_upcaseenv test to - ucenv. Don't bother checking for child_proc_info when calling ucenv - since it is assumed to be NULL at the point where the function is - called. - - * path.cc (symlink_worker): Turn off MS-DOS path warnings when dealing - with devices since the device handler passes in a translated MS-DOS - path. - - * sec_auth.cc (lsaprivkeyauth): Avoid variable initialization which - causes a compiler error. - - * fhandler_netdrive.cc: Update copyright. - -2008-11-26 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add setlsapwd.o. - * cygserver.h (CYGWIN_SERVER_VERSION_API): Bump. - (request_code_t): Define CYGSERVER_REQUEST_SETPWD request type. - * cygserver_msg.h (client_request_msg::retval): Use default value of -1 - for retval if msglen is 0. - * cygserver_sem.h (client_request_sem::retval): Ditto. - * cygserver_shm.h (client_request_shm::retval): Ditto. - * cygserver_setpwd.h: New file. - * external.cc (cygwin_internal): Implement new CW_SET_PRIV_KEY type. - * sec_auth.cc (open_local_policy): Make externally available. - Get ACCESS_MASK as argument. - (create_token): Accommodate change to open_local_policy. - (lsaauth): Ditto. - (lsaprivkeyauth): New function fetching token by retrieving - password stored in Cygwin or Interix LSA private data area and - calling LogonUser with it. - * security.h (lsaprivkeyauth): Declare. - (open_local_policy): Declare. - * setlsapwd.cc: New file implementing setting LSA private data password - using LsaStorePrivateData or by calling cygserver if available. - * syscalls.cc (seteuid32): Add workaround to get the original token - when switching back to the original privileged user, even if - setgroups group list is still active. Add long comment to explain why. - Call lsaprivkeyauth first, only if that fails call lsaauth or - create_token. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_SET_PRIV_KEY. - -2008-11-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::raw_read): Drop - initialization of bytes_to_read. Set bytes_to_read to len in - non-buffered case. Call read_bytes correctly with bytes_to_read - instead of len. - -2008-11-21 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (MapView): Add NT status to debug output. - -2008-11-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSystemDEPPolicy): Define. - (GetProcessDEPPolicy): Ditto. - (SetProcessDEPPolicy): Ditto. - * dcrt0.cc (disable_dep): New static function. - (dll_crt0_0): Call disable_dep on platforms requiring it. Add longish - comment to explain the circumstances. - * wincap.h (wincaps::ts_has_dep_problem): New element. - * wincap.cc: Implement above element throughout. - (wincapc::init): Set ts_has_dep_problem to true on 2008 Terminal - Servers. - * winsup.h (WINVER): Set to 0x0601. - -2008-11-11 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::cygdrive_win32_path): Always upper case - DOS drive letter to accommodate case sensitivity. - (cygdrive_getmntent): Ditto. - * path.cc (path_conv::check): Invalidate wide_path after making path - relative. - -2008-11-11 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (create_upcaseenv): New static variable. - (renv_arr): New static array to keep track of environment variables - which have to be always uppercased. - (idx_arr): Ditto. - (start_at): Ditto. - (ucreqenv): New function to uppercase only the environment variables - from renv_arr. - (parse_thing): Add "upcaseenv" setting. - (environ_init): Parse $CYGWIN before doing anything else. Call - ucreqenv instead of ucenv if CYGWIN=noupcaseenv is set. - -2008-11-10 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (normalize_win32_path): Don't add a trailing '\' if the cwd - returns a path with a trailing '\'. - -2008-11-07 Christopher Faylor <me+cygwin@cgf.cx> - - * pthread.cc (pthread_mutex::_unlock): Avoid unlocking a mutex if the - recursion_counter is already 0. - (pthread_mutex::_destroy): Don't consider a mutex busy if its - recursion_counter == 0. - (pthread_mutex::_fixup_after_fork): Set recursion_counter to 0 to flag - that we've just forked. Don't reset the owner of this mutex since the - forkee may think it still owns the mutex. Reinstate initialization of - win32_obj_id. - - * fhandler_floppy.cc (fhandler_dev_floppy::raw_read): Initialize a - variable to bypass a C++ warning. - -2008-11-05 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (environ_init): Avoid evaluating $CYGWIN twice. - -2008-10-23 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (all wincaps): Store in .cygwin_dll_common section same as - wincap. Add comment to explain why. - -2008-10-22 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSystemWindowsDirectoryW): Define. - * kernel32.cc (GetWindowsDirectoryW): Implement to abstract from - running under Terminal Services or not. - (GetWindowsDirectoryA): Ditto. - -2008-10-21 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pwdgrp::read_passwd): Check if we're called within - user_shared initialization and ignore myself, if so. Reformat - conditional expression. - -2008-10-20 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (NtSetAttributesFile): New inline function. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Use - NtSetAttributesFile. - * path.cc (symlink_worker): Ditto. - * syscalls.cc (unlink_nt): Ditto. - (rename): Omit FILE_SHARE_DELETE when opening files on Samba. Add - comment to explain why. - -2008-10-17 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::get_debugger_info): Call SetStdHandle - for the newly opened handle. Explain why. - (dtable::stdio_init): Don't duplicate standard error handle - when stderr has already been created under debugger control. - -2008-10-13 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Align standard owner and group permissions - with alloc_sd. Strip FILE_READ_ATTRIBUTES fromn setting - FILE_GENERIC_EXECUTE permissions same as in alloc_sd. - * security.cc (alloc_sd): Reformat expression. Strip EA permission - bits from owner_deny and group_deny computation. - -2008-10-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Check - for executable suffixes here in case we're on a file system - not supporting permission. - * path.cc (path_conv::check): Drop check for executable suffixes. - -2008-10-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::raw_read): Keep track of - current position in non-buffered case, too. - -2008-10-09 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (pwdgrp::read_group): Generate more speaking group name - if passwd gid exists under different gid in /etc/group. - -2008-10-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::is_binary): Always check for GetBinaryType. - * syscalls.cc (rename): Fix test for just changing case of name on - case insensitive filesystems. - -2008-10-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_shortcut): Don't check for executability - here. - (symlink_info::check_sysfile): Ditto. - -2008-10-08 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Only assume executability by suffix - on file systems not supporting permissions. - -2008-10-07 Christopher Faylor <me+cygwin@cgf.cx> - - * pthread.cc (pthread_create): Very minor formatting change. - * timer.cc (timer_thread): Ensure that any created thread defaults to - detached state. - -2008-10-06 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (_cygtls::initialized): Remove bogus stack check which would - crash when checking the current thread from the current thread. - * tlsoffsets.h: Regenerate. - -2008-10-05 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Don't initialize signals early when - dynamically loaded. - (dll_crt0_1): Wait until this phase to initialize signals when - dynamically loaded. - -2008-09-29 Christopher Faylor <me+cygwin@cgf.cx> - - * thread.cc (pthread_mutex::_fixup_after_fork): Reinstate DEBUGGING - conditional. - -2008-09-29 Christopher Faylor <me+cygwin@cgf.cx> - - * thread.cc (pthread_mutex::_fixup_after_fork): Just reset lock to - pristine state after fork. Don't recreate a mutex since it may not - actually be needed. - -2008-09-29 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (inode_t::get_all_locks_list): Fix typo. - * posix.sgml: Add cfmakeraw to list of implemented BSD functions. - -2008-09-19 Eric Blake <ebb9@byu.net> - - * errno.cc (_sys_errlist): Add ECANCELED, ENOTRECOVERABLE, - EOWNERDEAD. - -2008-09-15 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (unionent): Move from net.cc. - (unionent::struct_type): Move enum here. - (_local_storage::hostent_buf): Define as unionent. - (_local_storage::protoent_buf): Ditto. - (_local_storage::servent_buf): Ditto. - * net.cc (unionent): Move to cygtls.h. - (struct_type): Ditto. - (dup_ent): Define one function per {host,proto,serv}ent type. - (cygwin_getprotobyname): Simplify dup_ent call. Removed now-unneeded - return type coercion. - (cygwin_getprotobynumber): Ditto. - (cygwin_getservbyname): Ditto. - (cygwin_getservbyport): Ditto. - (cygwin_gethostbyname): Ditto. - (cygwin_gethostbyaddr): Ditto. - tlsoffsets.h: Regenerate. - -2008-09-12 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in: Add -c option which is now removed from COMPILE_C*. - * cygwin.din (cfmakeraw): Export. - * termios.cc (cfmakeraw): Implement. - * include/sys/termios.h (cfmakeraw): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2008-09-11 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin.din (sys_sigabbrev): Add this here. - * dcrt0.cc (__argc,__argv,_check_for_executable): Remove dllexport - decoration since it is already handled in cygwin.din. - * errno.cc (_sys_errlist): Ditto. - * strsig.cc (sys_sigabbrev): Ditto. - * include/cygwin/signal.h: Protect use of dllimport when - __INSIDE_CYGWIN__. - * libc/getopt.c: Revert previous changes. Define __INSIDE_CYGWIN__. - -2008-09-11 Christopher Faylor <me+cygwin@cgf.cx> - - * localtime.cc (increment_overflow): Mark as non-inline to prevent - compiler from complaining about the very thing we're trying to test. - * ntea.cc (read_ea): Reorganize to avoid a new compiler warning/error. - * sched.cc (sched_rr_get_interval): Ditto. - * select.cc (peek_serial): Ditto. - * libc/rexec.cc (ruserpass): Ditto. - * posix_ipc.cc (ipc_names): Make static to avoid a compiler warning - (and it's the right thing to do anyway). - -2008-09-11 Christopher Faylor <me+cygwin@cgf.cx> - - * net.cc (in6addr_any, in6addr_loopback): Add appropriate number of - braces around initializer. - (dup_ent): Try harder to coerce the first argument to deal with more - stringent compiler. - (get_2k_ifs): Remove extraneous typedef. - (get_2k_ifs): Reorganize expression to avoid a compiler warning. - (get_xp_ifs): Ditto. - (get_nt_ifs): Ditto. - -2008-09-11 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_pipe::raw_read): Remove __stdcall decoration. - * pipe.cc (fhandler_pipe::raw_read): Ditto. - -2008-09-11 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.cc (creturn): Reorganize to avoid a new compiler - warning/error. - * dtable.cc (handle_to_fn): Ditto. - * fhandler_console.cc (fhandler_console::read): Ditto. - (fhandler_console::scroll_screen): Ditto. - (dev_console::set_color): Ditto. - * fhandler_dsp.cc (fhandler_dev_dsp::write): Ditto. - (fhandler_dev_dsp::read): Ditto. - * fhandler_tape.cc (mtinfo_drive::get_status): Ditto. - * hookapi.cc (find_first_notloaded_dll): Ditto. - * mmap.cc (msync): Ditto. - * pipe.cc (pipesync::pipesync): Ditto. - * sec_acl.cc (getace): Ditto. - * sec_auth.cc (create_token): Ditto. - (lsaauth): Ditto. - * select.cc (peek_pipe): Ditto. - * spawn.cc (av::fixup): Ditto. - * syscalls.cc (popen): Ditto. - * tty.cc (tty::init_session): Ditto. - * uinfo.cc (pwdgrp::load): Ditto. - * fhandler.cc (fhandler_base::setup_overlapped): Ditto. - (fhandler_base::wait_overlapped): Rename second use of res variable to - wres or errors are not returned correctly. - * dcrt0.cc: Remove obsolete variable. - * dll_init.cc (release_upto): Fix typo involving incorrect use of '|'. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Avoid a - compiler warning regarding coercing type-punned variables. - (fhandler_base::fstat_by_name): Ditto. - * fhandler_fifo.cc (fhandler_fifo::open_nonserver): Fix = vs. == typo. - (fhandler_fifo::wait): Add all conditions to switch statement to avoid - a compiler warning. - * fhandler_process.cc: Avoid unneeded initialization of variables to - zero. - * fhandler_socket.cc (fhandler_socket::listen): Add braces around - initializer. - * flock.cc (inode_t::get_all_locks_list): Reorganize to avoid a - compiler warning. Fix problem with EWOULDBLOCK error return. - * path.cc (GUID_shortcut): Use braces around struct initializer. - (cygwin_conv_path): Reorganize to avoid a compiler warning. - * random.cc (dummy): Mark variable as volatile to avoid a "used - uninitialized" warning. - * libc/getopt.c: Mark some variables as dllexport although gcc doesn't - seem to do the right thing with them. - * libc/minires-os-if.c (get_registry_dns_items): Coerce some function - arguments to avoid a compiler warning. - -2008-08-27 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (close_maybe): Check for both types of invalid handle - before attempting CloseHandle. - (fhandler_pty_master::setup): Only set inheritance on pty handles, not - tty handles. - -2008-08-26 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (shared_info::create_root_entry): Remove extraneous - mount_info:: from declaration. - -2008-08-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_pipe): Rename read and write - declarations to raw_read and raw_write. - * pipe.cc (fhandler_pipe::raw_read): Rename from read. - (fhandler_pipe::raw_write): Rename from write. - -2008-08-21 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Reorganize again to - accommodate what appears to be an MSDN hint about not resetting the - overlapped event prior to calling GetOverlappedResult. - -2008-08-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_shortcut): If file can't be opened, - treat it as non-symlink rather than generating an EIO error. - (symlink_info::check_sysfile): Ditto. - -2008-08-19 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Always assume that - bytes will be non-NULL. Distinguish input result from result derived - from WFMO and GetOverlappedResult or res can never be -1. Only raise - SIGPIPE when writing. - * fhandler.h (fhandler_base::wait_overlapped): Pass first argument by - value. - * fhandler_fifo.cc (fhandler_fifo::wait): Pass in dummy byte count to - wait_overlapped. - * pipe.cc (DEFAULT_PIPEBUFSIZE): Define to 65536 explicitly. - -2008-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Drop fattr variable - and use FILE_ATTRIBUTE_DIRECTORY directly in call to NtCreateFile. - * posix_ipc.cc (ipc_mutex_init): Fix format string when creating IPC - object name. - (ipc_cond_init): Ditto. - * security.cc (alloc_sd): Add parentheses to fix setting initial - owner_allow value. - -2008-08-18 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Don't treat - ERROR_BROKEN_PIPE as a non-error. Do raise SIGPIPE when it is - detected. - -2008-08-15 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::get_mounts_here): Don't subtract 2 from - Length if it's 0 anyway. - -2008-08-15 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::create_root_entry): Create default cygdrive - prefix with MOUNT_NOPOSIX flag. - -2008-08-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Don't use eabuf when trying to open - file a second time. Call NtOpenFile instead of NtCreateFile in this - case. - -2008-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Fix linking - against symlinks. - -2008-08-14 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Call set_security_attribute with - additional path_conv argument. - * fhandler.cc (fhandler_base::open): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Never set DOS - R/O attribute when using ACLs. - (fhandler_disk_file::mkdir): Ditto. Set - security descriptor on remote dirs after creating the dir, same as in - fhandler_base::open. - * fhandler_socket.cc (fhandler_socket::bind): Ditto for remote AF_LOCAL - socket files. - * path.cc (symlink_worker): Ditto. for remote symlinks. - * security.cc (alloc_sd): Take additional path_conv argument. - Accommodate throughout. Drop setting FILE_WRITE_EA/FILE_READ_EA - flags unconditionally (was only necessary for "ntea"). Don't set - FILE_READ_ATTRIBUTES and FILE_WRITE_ATTRIBUTES unconditionally on - Samba. Add comment to explain. Drop useless setting of - STANDARD_RIGHTS_WRITE, it's in FILE_GENERIC_WRITE anyway. - Remove FILE_READ_ATTRIBUTES bit from FILE_GENERIC_EXECUTE so as not - to enforce read permissions on Samba. - (set_security_attribute): Take additional path_conv argument. - * security.h (set_security_attribute): Change prototype accordingly. - -2008-08-13 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fillout_mntent): Always print noumount option last. - -2008-08-13 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fillout_mntent): Print options as taken in fstab and mount. - -2008-08-13 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc: Throughout convert to use long pathnames. - * dll_init.h (struct dll): Change name to WCHAR, change operator [] to - take PWCHAR argument. - -2008-08-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): If newpath doesn't exist, check if .exe suffix - in oldpath has been omitted before appending .exe to newpath. - -2008-08-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::raw_read): Don't set - eom_detected when EOF is detected, thus returning 0 instead of - setting errno to ENOSPC. - -2008-08-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Use Samba workaround generally - for all remote filesystems supporting ACLs. Change comment and - explain why. Refer to the discussion which led to this. - -2008-08-05 Brian Dessent <brian@dessent.net> - - * config/i386/profile.h (mcount): Mark asms volatile. - -2008-08-05 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (dll_global_dtors): Add an additional test to avoid - walking the linked list if it is empty. - (dll_list::detach): Don't set dll_global_dtors_recorded if we aren't - actually going to record any dlls. - -2008-08-04 Christopher Faylor <me+cygwin@cgf.cx> - - Changes suggested by Dave Korn. - * dcrt0.cc (cygwin_exit): Remove (hopefully) extraneous call to - dll_global_dtors. - * dll_init.cc (dll_global_dtors): Run destructors in reverse - dependency/load order. - * dll_init.h (dll_list): Add dll_global_dtors as a friend. - -2008-08-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Add a symbol denoting return from call to - main(). - * exceptions.cc (stack_info::walk): Stop walking the stack when we - hit _cygwin_exit_return rather than just blindly stopping when PC - becomes zero. - -2008-07-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Handle (and explain) a special case - when accessing files matching DOS device names on SMB shares. - -2008-07-31 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Check constructed short pathname for being - a DOS device name and fall back to long path name, if so. - -2008-07-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Check for - file systems incapable of handling FileIdBothDirectoryInformation - correctly. - (fhandler_disk_file::opendir): Ditto. - * path.cc (fs_info::update): Always clear at the start. - Rearrange to make certain tests only on non-Samba, non-NFS remote - drives. - Add test for file systems known to be incapable of handling - FileIdBothDirectoryInformation correctly. Right now that's just - "UNIXFS". - * path.h (struct fs_info): Add has_buggy_fileid_dirinfo flag and - accessor methods. - (class path_conv): Add has_buggy_fileid_dirinfo method. - -2008-07-30 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (extract_nt_dom_user): Return domain and user name as - WCHAR. - (cygwin_logon_user): Accommodate above change. Convert password to - WCHAR and call LogonUserW. - * external.cc (cygwin_internal): Accommodate above change. - * security.h (extract_nt_dom_user): Change prototype accordingly. - -2008-07-30 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin.din (_getutline): Remove. - * lib/bsdlib.cc (login): Make argument const as per linux. - (logout): Ditto. - * syscalls.cc (getutid): Ditto. - (getutline): Ditto. - (pututline): Ditto. - (getutxent): Add comment mentioning non-thread-safety. - (getutxid): Ditto. - (getutxline): Ditto. - (pututxline): Ditto. - * sys/utmp.h: Declare arguments to various functions as const as per - linux. Remove bogus _getutline definition. - -2008-07-29 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Add comment indicating that current API number - bump also has another consequence. - -2008-07-29 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Remove v8 regexp files. - (OBSOLETE_FUNCTIONS): Remove v8 regexp functions. - (NEW_FUNCTIONS): Remove POSIX regex functions. - * cygwin.din: Export POSIX regex functions with their correct symbol - name. Export with posix_ prefix for backward compatibility. - * syscalls.cc (regfree): Remove ancient fake function. - * regex/regex.h: Remove renaming regex functions within Cygwin. - * regexp/*: Remove. - * include/cygwin/version.h: Bump API minor number. - -2008-07-27 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Remove calling malloc_init and - user_shared_initialize_1 from here. - (dll_crt0_1): Remove dynamically_loaded check. Just call malloc_init - and user_shared_initialize unconditionally. - * shared.cc (user_shared_create): Rename from user_shared_initialize. - (user_shared_initialize): Rename from user_shared_initialize_1. Move - complete user_shared content initialization code here from - user_shared_create. - * syscalls.cc (seteuid32): Remove call to user_shared_initialize_1. - That is implied by the "true" argument to user_shared_create(). - -2008-07-27 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::init): Add location where we're looking for - fstab to temporary message. - - * lib/cygwin_crt0.c (cygwin_crt0): Simplify by eliminating - accommodations for ancient cygwin DLLs. - * lib/crt0.h: Include <windows.h> directly since it is needed. - -2008-07-27 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (shared_destroy): Declare. - * shared.cc (shared_destroy): Define new function to destroy shared - memory regions. - * init.cc (dll_entry): Call shared_destroy when dll detaches from the - process. - -2008-07-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::send_internal): Send never more - then 64K bytes at once. For blocking sockets, loop until entire data - has been sent or an error occurs. - (fhandler_socket::sendto): Drop code which sends on 64K bytes. - (fhandler_socket::sendmsg): Ditto. - -2008-07-26 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_master::setup): Reorganize so that all - operations for each end of the pipe are grouped together. - -2008-07-25 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Call malloc_init and user_shared_initialize_1 - only in non-dynamically loaded case. - -2008-07-25 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Call malloc_init and user_shared_initialize_1 - here in case we're dynamically loaded. Explain why. - (dll_crt0_1): Call user_shared_initialize_1 from here. - * mount.cc (is_native_path): New inline function testing for native - and long Win32 path prefix. - (is_unc_share): Remove long WIn32 path prefix test. - (mount_info::create_root_entry): Use PATH_MAX buffer. - (mount_info::init): Ditto. - (mount_info::add_item): Test for is_native_path as well. - * path.cc (normalize_win32_path): Simplify native path prefix code. - * shared.cc (user_shared_initialize_1): New function taking user - shared initialization code relying on malloc and cygtls. - (user_shared_initialize): Move mountinfo initialization to - user_shared_initialize_1. - * shared_info.h (user_shared_initialize_1): Declare. - * syscalls.cc (seteuid32): Call user_shared_initialize_1 after user - changed. - -2008-07-24 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab): Change system_printf to - debug_printf on NtOpenFile failure. - -2008-07-24 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (user_shared_initialize): Fetch potentially changed Cygwin - username from /etc/passwd before loading mount table. - (shared_info::init_installation_root): New function fetching Cygwin's - installation root dir and storing as native NT path in global shared - memory. - (shared_info::initialize): Call init_installation_root exactly once at - first startup. - * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info. - (CURR_SHARED_MAGIC): Ditto. - (class shared_info): Add installation_root member. - (shared_info::init_installation_root): Declare. - - * grp.cc (pwdgrp::read_group): Call pwdgrp::load with native WCHAR path. - * passwd.cc (pwdgrp::read_passwd): Ditto. Avoid recursion. - (etc::init): Take POBJECT_ATTRIBUTES instead of path_conv. - * path.h (etc::init): Change prototype accordingly. - * pwdgrp.h (class pwdgrp): Store path as UNICODE_STRING/PWCHAR instead - of as path_conv. - (pwdgrp::load): Accommodate prototype. - * uinfo.cc (pwdgrp::load): Change argument type from char to wchar_t. - Create native NT path here instead of calling path_conv. - - * mount.cc (find_root_from_cygwin_dll): Drop in favor of global - initializaion in shared_info. - (mount_info::init): Fetch native NT root dir from cygwin_shared. - (mount_info::from_fstab): Expect native NT path and use native NT - functions to access file. Convert username part in user fstab path - according to special char transformation rules. - * path.cc (tfx_chars): Convert slash to backslash. - (transform_chars): Implement for path given as PWCHAR. - (transform_chars): PUNICODE_STRING version calls PWCHAR version. - Remove useless commented code. - -2008-07-22 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Fix previous patch for UNC paths. - -2008-07-22 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Remove long path prefix from win32 path - before calling CreateProcess if path length is < MAX_PATH. - -2008-07-22 Corinna Vinschen <corinna@vinschen.de> - - * include/ctype.h: Declare __ctype_ptr__ to keep newlib build happy. - -2008-07-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (WNetGetProviderNameA): Define. - (WNetGetResourceParentA): Remove. - * fhandler_netdrive.cc (struct net_hdls): New structure to keep - WNet handles. Stored in dir->__handle throughout. - (thread_netdrive): Rewrite to enumerate all servers in all accessible - domains and workgroups. - (fhandler_netdrive::readdir): Simplify toplevel code. Lowercase all - server names in toplevel. - (fhandler_netdrive::rewinddir): Close all WNet handles and free - net_hdls structure. - -2008-07-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Rename x to fh. On Samba, always - create file with NULL security descriptor and set the permissions - afterwards. Explain why. - -2008-07-18 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (known): Remove "binmode" option. - * fhandler.cc (binmode): Remove. - (fhandler_base::set_flags): Accommodate binmode removal. - * path.h (path_conv::set_binary): Remove. - * pipe.cc (pipe): Create pipes always as binary pipes. - * winsup.h (binmode): Remove declaration. - -2008-07-17 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab_line): Default to binary mount. - -2008-07-16 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (allow_winsymlinks): Revert default to create system bit - symlinks for speed. - -2008-07-16 Corinna Vinschen <corinna@vinschen.de> - - Add case-sensitivity. - Unconditionally handle mount points case-sensitive. - Unconditionally handle virtual paths case-sensitive. - Unconditionally handle registry paths case-insensitive. - Otherwise, accommodate case-sensitivity of given path throughout. - * cygheap.cc (cygheap_root::set): Get additional caseinsensitive - parameter and store it. - * cygheap.h (struct cygheap_root_mount_info): Add member - caseinsensitive. - * dlfcn.cc (get_full_path_of_dll): Drop PC_NOFULL parameter from call - to path_conv::check. - * environ.cc (pcheck_case): Remove. - (check_case_init): Remove. - (known): Drop "check_case" option. - * exceptions.cc (open_stackdumpfile): Add comment. - * fhandler.cc (fhandler_base::get_default_fmode): Call pathmatch - instead of strcasematch. - * fhandler_disk_file.cc: Accommodate case-sensitivity of given path - throughout. - (__DIR_mounts::check_mount): Unconditionally check virtual paths - case-sensitive. - (fhandler_disk_file::link): Drop case clash handling. - (fhandler_disk_file::open): Ditto. - (fhandler_disk_file::readdir_helper): Drop managed mount code. - * mount.cc: Remove managed mount code and datastructures. - (struct opt): Remove "managed" option. Add "posix=0" and "posix=1" - options. - (fillout_mntent): Remove "managed" output. Add "posix" output. - * path.cc (struct symlink_info): Remove case_clash member and - case_check method. - (pcheck_case): Remove. - (path_prefix_p): Take additional bool parameter "caseinsensitive". - (pathnmatch): Ditto. - (pathmatch): Ditto. - (mkrelpath): Ditto. - (fs_info::update): Set caseinsensitive flag according to file system - name and FILE_CASE_SENSITIVE_SEARCH flag. Add comment. - (tfx_chars_managed): Remove. - (transform_chars): Drop "managed" parameter. Always use tfx_chars. - (get_nt_native_path): Drop "managed" parameter. Make sure drive letters - are always upper case. - (getfileattr): Change second parameter to denote caseinsensitivity. - (path_conv::check): Initialize caseinsensitive to OBJ_CASE_INSENSITIVE. - Set caseinsensitive according to global obcaseinsensitive flag, file - system case sensitivity and MOUNT_NOPOSIX mount flag. - Drop case_clash and all the related code. - (symlink_worker): Drop case clash handling. - (symlink_info::set): Drop setting case_clash. - (symlink_info::case_check): Remove. - (cwdstuff::set): Add comment. - (etc::init): Take path_conv instead of PUNICODE_STRING as parameter to - allow case sensitivity. - * path.h (enum pathconv_arg): Drop PC_SYM_IGNORE. - (enum case_checking): Remove. - (enum path_types): Drop PATH_ENC, add PATH_NOPOSIX flag. - (struct fs_info): Add caseinsensitive flag and accessor methods. - (class path_conv): Add caseinsensitive member and define - objcaseinsensitive method. Drop case_clash member and isencoded method. - (pathmatch): Change prototype according to above change. - (pathnmatch): Ditto. - (path_prefix_p): Ditto. - (get_nt_native_path): Ditto. - (class etc): Ditto. - (fnunmunge): Remove prototype. - * shared.cc (shared_info::init_obcaseinsensitive): Initialize - obcaseinsensitive flag from obcaseinsensitive registry value. - (shared_info::initialize): Call init_obcaseinsensitive here by the - first process creating the shared memory. - * shared_info.h (mount_item::fnmunge): Remove. - (shared_info::obcaseinsensitive): Rename from obcaseinsensitivity. - (shared_info::init_obcaseinsensitive): Declare. - * syscalls.cc (try_to_bin): Add comment. - * include/sys/mount.h (MOUNT_ENC): Remove flag. - (MOUNT_NOPOSIX): Add flag. - -2008-07-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo::initialize): Remove synchronization stuff. - Just initialize drive data. - * mtinfo.h (MTINFO_MAGIC): Remove. - (MTINFO_VERSION): Remove. - (class mtinfo): Remove magic and version members. - * shared.cc (shared_info::initialize): Move call to - get_session_parent_dir so that the dir creation is only called once. - Move call to mt.initialize so that it's called only by the first - process creating the shared memory. - * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info. - (CURR_SHARED_MAGIC): Ditto. - (class shared_info): Add obcaseinsensitivity member. - -2008-07-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fpathconf): On _PC_POSIX_PERMISSIONS - and _PC_POSIX_SECURITY, return true for NFS, too. - -2008-07-14 Corinna Vinschen <corinna@vinschen.de> - - Throughout drop allow_ntsec and allow_smbntsec handling. - * environ.cc (set_ntsec): Remove. - (set_smbntsec): Remove. - (known): Remove ntsec and smbntsec options. - * external.cc (check_ntsec): Return true if no filename is given. - * mount.cc (oopts): Add "acl" and "noacl" options. Set MOUNT_NOACL - flag accordingly. - (fillout_mntent): Handle MOUNT_NOACL flag. - * path.h (enum path_types): Add PATH_NOACL. - * security.cc (allow_ntsec): Remove. - (allow_smbntsec): Remove. - * security.h (allow_ntsec): Drop declaration. - (allow_smbntsec): Drop declaration. - * include/sys/mount.h (MOUNT_NOACL): Define. - -2008-07-14 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (cygwin_strncasecmp): Fix bug which results in - prematurely truncated strings. Simplify target length argument to - sys_mbstowcs. - -2008-07-14 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetExtendedTcpTable): Define. - * fhandler_socket.cc (address_in_use): Take const struct sockaddr - pointer as argument. Implement additional AF_INET6 table check. - (fhandler_socket::bind): Drop AF_INET test before calling - address_in_use. - * net.cc (ipv4_getnameinfo): Return EAI_FAMILY instead of 1 if - called with unsupported af_family. - -2008-07-12 Eric Blake <ebb9@byu.net> - - Fix usage of recently fixed Interlocked* functions. - * winbase.h (ilockincr, ilockdecr, ilockexch, ilockcmpexch): Add - volatile qualifier, to match Interlocked* functions. - -2008-07-11 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (peek_pipe): Temporarily revert patch from 2008-05-30. - -2008-07-11 Corinna Vinschen <corinna@vinschen.de> - - Change length for domain buffers from INTERNET_MAX_HOST_NAME_LENGTH to - MAX_DOMAIN_NAME_LEN throughout. - * cyglsa.h (CYG_LSA_MAGIC): New value. - (cyglsa_t): Define username and domain as WCHAR arrays. - * errno.cc (errmap): Add mapping for ERROR_NONE_MAPPED. - * sec_auth.cc: Drop 'w' prefix from WCHAR string variable names where - appropriate. - (extract_nt_dom_user): Prefer resolving by SID before resolving by - domain\name pair. - (cygwin_logon_user): Don't print cleartext password in debug output. - Change comment. - (get_user_groups): Revert calls to LookupAccountNameW to use NULL - server instead of explicit server name, according to MSDN. - (get_user_local_groups): Ditto. - (get_server_groups): Fetch domain and user name from usersid per - LookupAccountSidW instead of calling extract_nt_dom_user. - (lsaauth): Fetch domain and user name from usersid per LookupAccountSidW - instead of calling extract_nt_dom_user. - * sec_helper.cc (cygpriv): Convert to wchar_t pointer array. - (privilege_luid): Convert first parameter to PWCHAR. - (privilege_name): Return wchar_t pointer. - (set_privileges): Accommodate debug output. - * security.h (privilege_luid): Change prototype accordingly. - -2008-07-10 Corinna Vinschen <corinna@vinschen.de> - - * cyglsa.h (SECURITY_STRING): Define. - (enum _SECPKG_NAME_TYPE): Define. - (struct _SECPKG_CALL_INFO): Define. - (struct _LSA_SECPKG_FUNCS): Extend to full size. Define unused - functions lazily. - (cygprf_t): Define. - * sec_auth.cc (lsaauth): Use actual primary group if no admins group. - Add (disabled) code to fetch token from profil data. - -2008-07-09 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (verify_token): Allow builtin groups missing in a token - and it's still valid. Explain why. - -2008-07-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (DsGetDcNameW): Replace DsGetDcNameA. - * dcrt0.cc (child_info_spawn::handle_spawn): Drop artificial - supplementary group list from calling setgroups in parent. - * grp.cc (internal_getgroups): Drop 9x-only code. Reformat. - * sec_auth.cc (get_logon_server): Do everything in WCHAR only. - (get_user_groups): Ditto. Use wlogonserver in LookupAccountNameW - calls, too. - (is_group_member): Get logon server as first argument and use in call - to NetLocalGroupGetMembers. - (get_user_local_groups): Get logon server as first argument and use in - calls to NetLocalGroupEnum and LookupAccountNameW. Revamp to work - more correctly in domain environments. - (get_server_groups): Accommodate aforementioned changed function calls. - * security.h (get_logon_server): Change prototype accordingly. - * uinfo.cc (cygheap_user::env_logsrv): Accommodate changed - get_logon_server call. - -2008-07-09 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Also add integrity-enabled groups. - -2008-07-09 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (verify_token): Disable code which returns false if - the token contains additional groups not requested by setgroups. - Explain why. - -2008-07-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Don't run explicit - local socket test in SO_REUSEADDR case on systems supporting - enhanced socket security. Explain why. Only call address_in_use - for AF_INET sockets. - * net.cc (cygwin_setsockopt): Don't call setsockopt to set SO_REUSEADDR - on systems supporting enhanced socket security. Add comment. - * wincap.h (wincaps::has_enhanced_socket_security): New element. - * wincap.cc: Implement above element throughout. - -2008-07-08 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (ipv6_inited): Make NO_COPY. - -2008-07-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::is_binary): Fix test. Add comment. - -2008-06-24 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_bindresvport_sa): Fix usage of last_used_bindresvport. - -2008-06-21 Corinna Vinschen <corinna@vinschen.de> - - * include/limits.h (PATH_MAX): Add comment. - * include/cygwin/config.h (__FILENAME_MAX__): Define as 4096. Add - comment. - -2008-06-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Fix pipe inheritance. - -2008-06-18 Christopher Faylor <me+cygwin@cgf.cx> - - * strsig.cc (strsignal): Return non-const buffer to allow building with - recent newlib change. - -2008-06-17 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (DsGetDcNameA): Drop declaration. - (DS_FORCE_REDISCOVERY): Drop definition. - -2008-06-17 Christopher Faylor <me+cygwin@cgf.cx> - - * spawn.cc (spawn_guts): Reinstate call to - fhandler_console::need_invisible since it is required to prevent - console flashing. - -2008-06-17 Corinna Vinschen <corinna@vinschen.de> - - * include/resolv.h (_getshort): Drop declaration. - (_getlong): Ditto. - -2008-06-12 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::get_cygdrive_info): Fix usage of user and - system arguments. Strip trailing slash from path for backward - compatibility. - -2008-06-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (set_console_state_for_spawn): Drop declaration. - * fhandler_console.cc (set_console_state_for_spawn): Remove. - (fhandler_console::open): Set console state last. Don't set - ENABLE_PROCESSED_INPUT flag. - * spawn.cc (spawn_guts): Drop call to set_console_state_for_spawn. - -2008-06-11 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (get_nt_native_path): Drop considerations for DOS devices. - Keep relative paths relative. - (cygwin_conv_path): Don't try to skip native NT prefixes on relative - paths. - -2008-06-11 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_MOUNT_REGISTRY): Bump. - (CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME): Remove. - (CYGWIN_INFO_CYGDRIVE_FLAGS): Remove. - (CYGWIN_INFO_CYGDRIVE_PREFIX): Remove. - (CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX): Add comment to differ from the - registry related defines. - -2008-06-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc (dad_to_flags): Fix comment. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc (get_scope): New static function to evaluate - scope. - (dad_to_flags): New static array to convert Windows DAD state to - Linux values. - (format_procnet_ifinet6): Drop asking for IfIndex, just use Ipv6IfIndex. - Use get_scope and dad_to_flags to generate more accurate linux-like - output. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (if_nametoindex): Fix typo in call to get_adapters_addresses. - (if_indextoname): Prefer IPv6 loopback device name over IPv4 loopback - device name on pre-Vista systems. - (if_nameindex): Ditto. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc (format_procnet_ifinet6): Use sprintf rather than - __small_sprintf. - * net.cc (if_nametoindex): Prefer IPv6IfIndex over IfIndex for - consistency with /proc/net/if_inet6. - (if_indextoname): Ditto. - (if_nameindex): Ditto. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab): Read sizeof (buf) - 2 bytes. - Add code to handle overly long lines. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (lsaauth): Make returned token inheritable. - -2008-06-10 Corinna Vinschen <corinna@vinschen.de> - - * devices.cc: Regenerate. - -2008-06-09 Christopher Faylor <me+cygwin@cgf.cx> - - * devices.in: Remove "Global" from tty device. - -2008-06-09 Eric Blake <ebb9@byu.net> - - * signal.cc (abort): Only flush streams after signal handler. - -2008-06-02 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin.sc: Remove unrequired and erroneous definition. - -2008-05-30 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (peek_pipe): Semi-reinstate pipe NT-special write - detection. - -2008-05-29 Christopher Faylor <me+cygwin@cgf.cx> - - * devices.in: Change mapping for /dev/ttyS* and /dev/com*. - * devices.cc: Regenerate. - -2008-05-25 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::from_fstab): Use proper buffer size. - -2008-05-24 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::init): Revert previous change. - (mount_info::from_fstab): Change system_printf to debug_printf. Just - use a local NT_MAX_PATH sized temporary buffer. - -2008-05-24 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::init): Recreate path when trying to read the - user fstab file. - -2008-05-24 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Reorder test for nfs symlinks. - -2008-05-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Don't try to - use FileIdBothDirectoryInformation on NFS shares. Fix comment to - explain why. - * path.cc (symlink_info::check): Reinstantiate no_ea. Use in - erroneously changed condition. - -2008-05-23 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (find_root_from_cygwin_dll): New function factored from - from_fstab. Avoid use of tls since it isn't necessarily initialized - when cygwin1.dll is dynamically loaded. - (mount_info::create_root_entry): Ditto. - (mount_info::init): Calculate cygwin root once. Use create_root_entry - to record it. Pass fstab location to from_fstab. - (mount_info::from_fstab): Move root calculation stuff elsewhere, as per - above. - - * shared_info.h (mount_info::from_fstab_line): Make private. - (mount_info::fstab): Ditto. Accommodate new arguments. - -2008-05-23 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::from_fstab): Use cygwin_hmodule rather than - trying to find handle based on cygwin1.dll. - - * path.cc (symlink_info::check): Remove unused variable. - -2008-05-23 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (open_shared): Fix comments. Fix a condition which has - been overlooked to revert to its old state in change from 2008-04-18. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Define eabuf and easize outside of - loop. Set to NULL on first STATUS_EAS_NOT_SUPPORTED. Align comments. - Fix formatting. - -2008-05-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Eliminate - compiler warning. - -2008-05-23 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (symlink_info::check): Don't pass EaBuffer to NtCreateFile if - it has indicated that it isn't appropriate. - * ntdll.h (STATUS_EAS_NOT_SUPPORTED): Define. - - * winsup.h: Remove __builtin* defines. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Fix thinko. Only add enabled groups to - the group list. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Don't add deny-only groups to the group - list. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (struct san): Add two int values to store the current - tls_pathbuf counters. - (return_from_fault): Restore tls_pathbuf counters. - (setup_fault): Save tls_pathbuf counters. - * tlsoffset.h: Regenerate. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Set errno to EINVAL if user or group don't exist. - -2008-05-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cygwin_conv_path): Define tp before setting up faul handler. - * syscalls.cc: Ditto, throughout. - (gen_full_path_at): Add bool parameter to allow NULL pathname. - (futimesat): Allow NULL pathname as GLIBC. - -2008-05-21 Christopher Faylor <me+cygwin@cgf.cx> - - * string.h (strchr): Eliminate. - - * syscalls.cc (rename): Work around inexplicable C++ warning. - -2008-05-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (get_ino_by_handle): Rename pfai to fai. - (fhandler_base::fstat_by_handle): Drop fai_size and pfai in favor of - static struct fai_buf. Restructure. - (fhandler_base::fstat_by_name): Drop fvi_size and pfvi. Drop fdi_size - and pfdi in favor of static struct fdi_buf. Drop redundant test for - existance. Use FileDirectoryInformation class instead of - FileBothDirectoryInformation. Drop call to NtQueryVolumeInformationFile - in favor of using pc.fs_serial_number (). Fix FileId information given - to fstat_helper. - (fhandler_disk_file::fstatvfs): Drop fvi_size, pfvi, fai_size and pfai. - Drop getting FileFsVolumeInformation and FileFsAttributeInformation in - favor of using the related path_conv info. - (fhandler_disk_file::opendir): Fix comment. - (fhandler_disk_file::readdir): Ditto. Use FileDirectoryInformation - class instead of FileBothDirectoryInformation. - * path.cc (fs_info::update): Store MaximumComponentNameLength in new - member name_len. - * path.h (struct fs_info): Use ULONG rather than DWORD. Add member - name_len to store MaximumComponentNameLength. Add accessor methods. - (path_conv::fs_name_len): New method. - -2008-05-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (dirent_states): Add dirent_nfs_d_ino state and add it to - dirent_info_mask. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set - dirent_nfs_d_ino flag for NFS shares. Explain why. - (fhandler_disk_file::readdir): Use FileNamesInformation instead of - FileBothDirectoryInformation info class on NFS clients not supporting - the FileIdBothDirectoryInformation info class. Use local pointers to - accommodate different offsets. - * path.cc (symlink_info::check): Don't test directories for symlinks - on NFS shares. Enhance comment. - -2008-05-21 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (FILTERED_MODE): Define valid chmod mode mask. - (chmod): Call fh->fchmod with filtered mode. - (fchmod): Ditto. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix test for - S_IFSOCK in mode bits. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_worker): Fix EA buffer size info given to - NtCreateFile. - (symlink_info::check_nfs_symlink): Get 64K buffer for EA buffer. - Change EA buffer size info given to NtQueryEaFile accordingly. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_shortcut): Minimize requested file - access flags. - (symlink_info::check_sysfile): Ditto. Add missing `else'. - (symlink_info::check): Only retry to open file if first try failed - with access denied. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fs_info::update): Re-add opening the unsplitted path - for fillout_mntent's sake. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Create directories - on NFS shares with correct mode bits. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (cygwin_inet_addr): Fix type of declaration. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add nfs.o. - * fhandler.cc (fhandler_base::open): Open files on NFS shares with - correct access flags and EAs. - * fhandler.h (fhandler_base::fstat_by_nfs_ea): Declare. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): New method. - (fhandler_base::fstat_by_handle): Call fstat_by_nfs_ea for files on - NFS shares. - (fhandler_disk_file::fchmod): Use NFS specific method to set mode for - files on NFS shares. Don't overrule errno from call to - set_file_attribute with errno from NtSetInformationFile call. - (fhandler_disk_file::fchown): Add comment. - * mount.cc (fillout_mntent): Accommodate change in second parameter - to fs_info::update. - * nfs.cc: New file. - * nfs.h: New file. - * path.cc (fs_info::update): Take handle instead of bool as second - parameter. Use that handle if it's not NULL. Only close handle if - it has been opened here. Use static defined buffers instead of - alloca'd buffers. - (path_conv::check): Call symlink_info::check with reference to fs. - Don't call fs.update here if file exists. - (conv_path_list): Prefer tmp_pathbuf buffer over using alloca. - (symlink_worker): Use NFS specific method to create symlinks on NFS - shares. Prefer tmp_pathbuf buffer over using alloca. - (symlink_info::check_shortcut): Reopen file from incoming handle - with necessary FILE_GENERIC_READ flag. Prefer tmp_pathbuf buffer over - using alloca. - (symlink_info::check_sysfile): Ditto. - (symlink_info::check_reparse_point): Use tmp_pathbuf buffer to - allocate REPARSE_DATA_BUFFER. - (symlink_info::check_nfs_symlink): New method. - (enum symlink_t): Remove. - (symlink_info::check): Don't use NtQueryAttributesFile. Rather, open - file with necessary access flags and call NtQueryInformationFile. Fix - error handling in case file can't be opened. For existing files, call - fs_info::update here. Restructure symlink checking to accommodate the - fact that the file is already open. Add case for NFS symlinks. - * path.h (fs_info::update): Take handle instead of bool as second - parameter. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Fix condition when to start a transaction. - -2008-05-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Free wide_path and normalized_path if - necessary. - * path.h (path_conv::path_conv): Set wide_path, normalized_path and - normalized_path_size to 0 in all constructors. - -2008-05-19 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Allocate temporary path buffers using - tmp_pathbuf. Don't try to unset R/O attribute on dstpc if a - removepc exists. dstpc is a non-existant file in that case. - -2008-05-17 Christopher Faylor <me+cygwin@cgf.cx> - - * include/stdint.h: Use int rather than long for {u,}int32_t. - -2008-05-16 Corinna Vinschen <corinna@vinschen.de> - - * CYGWIN_LICENSE: Remove duplicate file here. - -2008-05-15 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): ONly start transaction if FS supports them. - -2008-05-15 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LoadDLLfuncNt): Re-invent. - (NtCreateTransaction): Define. - (NtCommitTransaction): Define. - (NtRollbackTransaction): Define. - (RtlGetCurrentTransaction): Define. - (RtlSetCurrentTransaction): Define. - * ntdll.h (TRANSACTION_ALL_ACCESS): Define. - (NtCreateTransaction): Declare. - (NtCommitTransaction): Declare. - (NtRollbackTransaction): Declare. - (RtlGetCurrentTransaction): Declare. - (RtlSetCurrentTransaction): Declare. - * syscalls.cc (start_transaction): New static function to start TxF - transaction. - (stop_transaction): New static function to end TxF transaction. - (rename): Call start_transaction and stop_transaction where appropriate - on systems supporting transactions. - * wincap.h (wincaps::has_transactions): New element. - * wincap.cc: Implement above element throughout. - -2008-05-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Drop - explicit transformation of special DOS chars. - * strfuncs.cc (sys_wcstombs): Always transform UNICODE private use area - back to ASCII. - -2008-05-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/stdlib.h (initstate): Declare. - (setstate): Declare. - -2008-05-13 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::set_normalized_path): Drop strip_tail argument. - Never strip trailing dots and spaces. - * (path_conv::check): Accomodate above change. - * path.h (path_conv::operator=): Ditto - * dtable.cc (build_fh_dev): Ditto. - * fhandler.h (fhandler_base::set_name): Ditto. - - * path.cc (transform_chars): Disable converting trailing dots and - spaces. - - * path.cc (path_conv::check): Remove two disabled code snippets. - -2008-05-13 Corinna Vinschen <corinna@vinschen.de> - - * random.cc (initstate): Align to POSIX definition. - (setstate): Ditto. - -2008-05-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Remove _def_time.o. - * libc/_def_time.c: Remove. Move definitions of _DefaultTimeLocale - and _CurrentTimeLocale ... - * libc/strptime.cc: ... here. - -2008-05-08 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/localedef.h: Remove. - * libc/strptime.cc: Define _TimeLocale and declare _CurrentTimeLocale - as well as _DefaultTimeLocale locally for Cygwin. - -2008-05-08 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add _def_time.o. Remove timelocal.o. - * include/sys/localedef.h: New file from NetBSD. - * libc/_def_time.c: Ditto. - * libc/getopt.c: Update to latest OpenBSD version 1.23. - * libc/strptime.cc: Replace FreeBSD version 1.35 with latest NetBSD - version 1.28. - * libc/timelocal.cc: Remove. - * libc/timelocal.h: Remove. - -2008-04-30 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::release): Drop fixup_before handling. - (dtable::fixup_before_fork): Remove. - (dtable::fixup_before_exec): Remove. - * dtable.h (class dtable): Remove cnt_need_fixup_before member. - (dtable::dtable): Accommodate above change. - (dtable::dec_need_fixup_before): Remove. - (dtable::inc_need_fixup_before): Remove. - (dtable::need_fixup_before): Remove. - (dtable::fixup_before_exec): Remove declaration. - (dtable::fixup_before_fork): Ditto. - * fhandler.h (fhandler_base::fixup_before_fork_exec): Remove. - (fhandler_base::need_fixup_before): Remove. - * fork.cc (frok::parent): Drop fixup_before handling. - * spawn.cc (spawn_guts): Ditto. - -2008-04-30 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (is_unc_share): Allow \\?\ prefix as well. Enhance comment. - (mount_info::from_fstab): Remove patch from 2008-04-29. - - * mount.cc (mount_info::conv_to_posix_path): Simplify test for native - UNC path. - * path.cc (normalize_win32_path): Ditto. - (symlink_worker): Ditto. - (symlink_info::posixify): Ditto. - (cygwin_conv_path): Ditto. - -2008-04-29 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab): Skip native path prefix in - module path. - -2008-04-29 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Use volume serial numbers stored in path_conv - rather than fetching them here for the "same file" test. Change - comment to reflect this. - -2008-04-28 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Avoid special handling for - STATUS_BUFFER_OVERFLOW when calling NtQueryDirectoryFile. - * strace.cc (strace::vprntf): Use bigger buffer. - -2008-04-28 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (CreateFileMappingW): Remove stray small_printf. - -2008-04-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (IsWow64Process): Remove. - (Wow64DisableWow64FsRedirection): Remove. - (Wow64RevertWow64FsRedirection): Remove. - * ntdll.h (enum _PROCESSINFOCLASS): Define ProcessWow64Information. - * init.cc (respawn_wow64_process): Use NtQueryInformationProcess to - get WOW64 state. - * wincap.cc (wincapc::init): Ditto. - * wincap.h (wincapc::wow64): Change type to ULONG. - -2008-04-27 Corinna Vinschen <corinna@vinschen.de> - - * wincap.h (wincapc::wow64): Change type to BOOL. - * wincap.cc: Remove explicit use of this pointer in wincapc methods. - (wincapc::init): Fix bug in IsWow64Process handling. - -2008-04-26 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Set SEM_NOGPFAULTERRORBOX error mode, too, - to accommodate Vista/Longhorn. - * spawn.cc (spawn_guts): Move check for CREATE_SUSPENDED condition - after the call to ch.set() since it depends on it. - -2008-04-25 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (install): Drop install rules for postinstall script. - -2008-04-25 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: Remove (Moved to base-cygwin package). - -2008-04-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Move handling FILE_ATTRIBUTE_NORMAL - back to its old place. Or it to file_attributes instead of setting it. - -2008-04-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): *Only* handle SYSTEM and HIDDEN - attributes in FILE_OVERWRITE case. - -2008-04-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Handle SYSTEM and HIDDEN attributes - in FILE_OVERWRITE case as well. - -2008-04-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Disable calling - pc.ndisk_links. Just use nNumberOfLinks instead. - -2008-04-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::utimens_fs): Fix typo in - input range check. - -2008-04-24 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (futimens): Export. - (utimensat): Export. - * fhandler.cc (fhandler_base::utimens): Replace fhandler_base::utimes. - Call utimens_fs. - * fhandler.h (class fhandler_base): Declare utimens_fs instead of - utimes_fs, utimens instead of utimes. - (class fhandler_disk_file): Declare utimens instead of utimes. - * fhandler_disk_file.cc (fhandler_disk_file::utimens): Replace - fhandler_disk_file::utimes. - (fhandler_base::utimens_fs): Replace fhandler_base::utimes_fs. - Implement tv_nsec handling according to SUSv4. - * syscalls.cc (utimensat): New function. - * times.cc (timespec_to_filetime): New function. - (timeval_to_timespec): New function. - (utimens_worker): Replace utimes_worker. - (utimes): Convert timeval to timespec and call utimens_worker. - (lutimes): Ditto. - (futimens): Take over implementation from futimes. - (futimes): Convert timeval to timespec and call futimens. - * winsup.h (timespec_to_filetime): Declare. - * include/cygwin/version.h: Bump API minor number. - * posix.sgml: Add SUSv4 section. Add futimens and utimensat to it. - -2008-04-24 Yaakov (Cygwin Ports) <yselkowitz@users.sourceforge.net> - - * include/wait.h: New file. - -2008-04-23 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Add openat, faccessat, fchmodat, fchownat, fstatat, - futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat, - symlinkat, unlinkat to list of implemented Solaris functions. - -2008-04-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Sort. - (faccessat): Export. - (fchmodat): Export. - (fchownat): Export. - (fstatat): Export. - (futimesat): Export. - (linkat): Export. - (mkdirat): Export. - (mkfifoat): Export. - (mknodat): Export. - (openat): Export. - (readlinkat): Export. - (renameat): Export. - (symlinkat): Export. - (unlinkat): Export. - * path.cc (readlink): Align definition to POSIX. - * syscalls.cc (gen_full_path_at): New static function. - (faccessat): Implement. - (fchmodat): Implement. - (fchownat): Implement. - (fstatat): Implement. - (futimesat): Implement. - (linkat): Implement. - (mkdirat): Implement. - (mkfifoat): Implement. - (mknodat): Implement. - (openat): Implement. - (readlinkat): Implement. - (renameat): Implement. - (symlinkat): Implement. - (unlinkat): Implement. - * include/cygwin/version.h: Bump API minor number. - -2008-04-22 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Move CWD initialization from here... - (dll_crt0_1): ...to here. - -2008-04-22 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (fmemopen): Export. - (open_memstream): Export. - * include/cygwin/version.h: Bump API minor number. - -2008-04-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (create_token): Add integrity level SID to token on - systems supporting that. Remove useless check for dynamically loading - NtCreateToken function. - * sec_helper.cc (mandatory_medium_integrity_sid): Define. - (mandatory_high_integrity_sid): Define. - (mandatory_system_integrity_sid): Define. - * sec_helper.h (mandatory_medium_integrity_sid): Declare. - (mandatory_high_integrity_sid): Declare. - (mandatory_system_integrity_sid): Declare. - -2008-04-21 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::init): Remove call to from_registry. Print - message that fstab is missing. - (mount_info::from_fstab): Use CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX - instead of constant string. - (mount_info::read_mounts): Remove. - (mount_info::from_registry): Remove. - (mount_info::read_cygdrive_info_from_registry): Remove. - * postinstall: Enable code to create fstab entries from old registry - entries. - * registry.cc (reg_key::reg_key): Drop CYGWIN_INFO_CYGNUS_REGISTRY_NAME - from registry key. - * shared_info.h (mount_info::read_mounts): Remove declaration. - (mount_info::from_registry): Ditto. - (mount_info::to_registry): Ditto. - (mount_info::read_cygdrive_info_from_registry): Ditto. - * winver.rc (CYGWIN_REGISTRY_KEY): Remove. - (LegalCopyright): Fix to include 2008. - (RegistryKey): Set to CYGWIN_INFO_CYGWIN_REGISTRY_NAME. - * include/cygwin/version.h (CYGWIN_INFO_CYGNUS_REGISTRY_NAME): Remove. - -2008-04-21 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (CreateFileMappingW): Fix bug in reserve/commit handling. - -2008-04-21 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add kernel32.o. - * autoload.cc (WSACloseEvent): Remove. - (WSACreateEvent): Remove. - * cygheap.cc (cygheap_init): Drop initializing shared_prefix. - * cygheap.h (struct init_cygheap): Drop shared_prefix and - shared_prefix_buf members. - * fhandler_socket.cc (sock_shared_name): New static function. - (search_wsa_event_slot): Convert name buffers to WCHAR. Call - NtCreateMutant/NtOpenMutant to create mutexes in session local - namespace. - (fhandler_socket::init_events): Ditto. Fix debug output. - (fhandler_socket::release_events): Close mutexes using NtClose. - (fhandler_socket::dup): Ditto. - * kernel32.cc: New file, implementing Win32 calls in a Cygwin-specific - way. - * mmap.cc (MapView): Make static. - * ntdll.h: Fix status code sorting. - (STATUS_OBJECT_NAME_EXISTS): Define. - (SEMAPHORE_QUERY_STATE): Define. - (CYG_SHARED_DIR_ACCESS): Define. - (CYG_MUTANT_ACCESS): Define. - (CYG_EVENT_ACCESS): Define. - (CYG_SEMAPHORE_ACCESS): Define. - (enum _PROCESSINFOCLASS): Define ProcessSessionInformation. - (struct _PROCESS_SESSION_INFORMATION): Define. - (NtCreateSemaphore): Declare. - (NtOpenSemaphore): Declare. - * flock.cc: Use CYG_xxx_ACCESS access masks where appropriate. - * posix_ipc.cc (ipc_mutex_init): Use native functions to create mutex. - Create in cygwin-shared subdir. - (ipc_cond_init): Ditto for event. - (ipc_mutex_close): Use NtClose. - (ipc_cond_close): Ditto. - (mq_open): Drop "cyg" prefix from mqh_uname. - * shared.cc (CYG_SHARED_DIR_ACCESS): Drop definition here. - (_cygwin_testing): Declare extern on file level. - (get_shared_parent_dir): Change name of shared directory. Add name - to api_fatal output. - (get_session_parent_dir): New function. - (shared_name): Simplify. - (shared_info::initialize): Call get_session_parent_dir. - * shared_info.h (get_session_parent_dir): Declare. - * smallprint.cc (__small_vswprintf): Fix bug in multibyte string - conversion. - * thread.cc (semaphore::semaphore): Align semaphore name to object - names in posix IPC functions. - * include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump. - -2008-04-18 Corinna Vinschen <corinna@vinschen.de> - - Revert thinko in previous patch. - * fhandler.h (struct wsa_event): Move back from wsa_event.h to here. - * fhandler_socket.cc (NUM_SOCKS): Ditto. - (wsa_events): Move back from cygwin_shared to here. Accommodate - throughout. - (socket_serial_number): Ditto. - * shared_info.h: Accommodate above changes. - * wsa_event.h: Remove. - -2008-04-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (struct wsa_event): Move to wsa_event.h. Include - wsa_event.h instead. - * fhandler_socket.cc (NUM_SOCKS): Move to wsa_event.h. - (wsa_events): Move from DLL shared area to cygwin_shared shared - memory. Accommodate throughout. - (socket_serial_number): Ditto. - * fhandler_tape.cc (mt): Ditto. - (mtinfo_init): Remove. - (mt): Define as cygwin_shared->mt. - * flock.cc (FLOCK_PARENT_DIR_ACCESS): Remove. - (FLOCK_INODE_DIR_ACCESS): Move up in file. - (FLOCK_MUTANT_ACCESS): Ditto. - (FLOCK_EVENT_ACCESS): Ditto. - (get_lock_parent_dir): Remove. - (inode_t::inode_t): Call get_shared_parent_dir to get parent dir handle. - Add a "flock-" prefix to file's lock directory name for clarity. - * mtinfo.h (mtinfo_init): Drop declaration. - * net.cc (last_used_bindresvport): Move from DLL shared area to - cygwin_shared shared memory. - (cygwin_bindresvport_sa): Accommodate above change. - * sec_helper.cc (_everyone_sd): Move here from flock.cc. - * security.h (SD_MIN_SIZE): Ditto. - (everyone_sd): Ditto. - * shared.cc (cygwin_shared_area): Remove. - (cygwin_shared_h): New handle. - (get_shared_parent_dir): New static function. - (shared_name): Drop session_local argument. Call get_shared_parent_dir - here. Add cygwin-shared subdir to object name. - (offsets): Reinstantiate SH_CYGWIN_SHARED member. - (open_shared): Revert change from 2007-03-29 for systems supporting - SeCreateGlobalPrivilege. - (shared_info::initialize): Call mtinfo's initialize here. - (memory_init): Drop call to mtinfo_init. - * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info. - (CURR_SHARED_MAGIC): Ditto. - (class shared_info): Add members for global socket and tape info - sharing. - (enum shared_locations): Reinstantiate SH_CYGWIN_SHARED. - (get_shared_parent_dir): Declare. - (shared_name): Drop session_local argument from declaration. - * wsa_event.h: New file. Move definitions of NUM_SOCKS and - struct wsa_event here. - -2008-04-18 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (noload): Make sure this and succeeding functions are - located in the text segment. - -2008-04-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::close): Disable enforced - lingering since the original problem can no longer be reproduced. - -2008-04-16 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Drop local buf. Allocate groups - directly using alloca. - -2008-04-14 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: Fix copy/paste bug. - -2008-04-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Fix - thinko in UNC path handling. - * path.cc (symlink_worker): Fix typo in comment. Fix UNC path handling. - -2008-04-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify - code which checks for symlinks. Fix problem with UNC paths. - - * environ.cc (struct parse_thing): Remove transparent_exe option. - * syscalls.cc (transparent_exe): Remove. - (unlink): Always add stat_suffixes, drop transparent_exe check. - (open): Ditto. - (link): Ditto. - (pathconf): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::link): Ditto. - * fhandler_process.cc (fhandler_process::fill_filebuf): Always remove - .exe suffix. - * path.cc (realpath): Never attach known_suffix. - -2008-04-10 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (wprintf): Remove. - (_wprintf): Ditto. - * syscalls.cc (wprintf): Ditto. - * include/cygwin/version.h: Add FIXME comment. - -2008-04-08 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab): Read user fstab files from - /etc/fstab.d/$USER to avoid user write access to /etc. - * postinstall: Use variables for filenames. Create /etc/fstab.d dir - with 01777 permissions. - -2008-04-08 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: Disable adding registry mounts to /etc/fstab for now. - -2008-04-07 Christopher Faylor <me+cygwin@cgf.cx> - - Remove unneeded header files from source files throughout. - -2008-04-07 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: Add function print_flags and call where appropriate. - Omit system and cygdrive flag when testing cygdrive flags. - -2008-04-07 Christopher Faylor <me+cygwin@cgf.cx> - - Add miscfuncs.h to files as needed throughout. - * mount.cc: New file. - * path.cc: Move mount-specific stuff into mount.cc. Move common stuff - into miscfuncs.cc. Remove unneeded includes. - * miscfuncs.cc: Move some common path functions here. - * miscfuncs.h: New file. - * winsup.h: Move miscelleneous functions to miscfuncs.h. - * dcrt0.cc: Remove unneeded includes. - * Makefile.in (DLL_OFILES): Add mount.o. - - * include/cygwin/config.h: Fix a minor typo. - -2008-04-07 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: Set IFS to LF only. Change while loop in subshell to - for loop in parent shell. Add code to read system mount points and - system cygdrive prefix from registry and append them to /etc/fstab. - -2008-04-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (struct opt): Rename "system" to "nouser". - * postinsatll: Ditto. - -2008-04-05 Corinna Vinschen <corinna@vinschen.de> - - * postinstall: New script. - * Makefile.in (sysconfdir): Define. - (install): Create $(sysconfdir)/postinstall dir. Install postinstall - script into it. - - * path.cc: Add temorary comments to note later function removal. - (conv_fstab_spaces): New inline function to handle \040 to space - conversion. - (struct opt): Add "system" and "user" mount options. - (mount_info::from_fstab_line): Only allow # to start a comment at - the beginning of the line. Call conv_fstab_spaces on native_path and - posix_path fields. Don't enforce system mounts in /etc/fstab. - Drop last argument in call to add_item. - (mount_info::from_fstab): Create a default cygdrive entry. Load - user mount points from fstab.<username> instead of fstab.<sid>. - (mount_info::read_mounts): Drop last argument in call to add_item. - (mount_info::add_reg_mount): Remove. - (mount_info::del_reg_mount): Remove. - (mount_info::write_cygdrive_info): Rename from - mount_info::write_cygdrive_info_to_registry. Don't write to registry. - Disallow to overwrite a system cygdrive prefix. - (mount_info::remove_cygdrive_info_from_registry): Remove. - (mount_info::get_cygdrive_info): Just fetch current cygdrive prefix and - flags. - (mount_info::add_item): Drop last argument. Don't write to registry. - Disallow to overwrite a system mount point. - (mount_info::del_item): Drop last argument. Don't write to registry. - Disallow to remove a system mount point. - (mount): Enforce user mount. - (cygwin_umount): Ditto. - * shared_info.h (mount_info::add_item): Drop last argument. - (mount_info::del_item): Ditto. - (mount_info::add_reg_mount): Remove. - (mount_info::del_reg_mount): Remove. - (mount_info::write_cygdrive_info): Rename from - mount_info::write_cygdrive_info_to_registry. - (mount_info::remove_cygdrive_info_from_registry): Remove. - -2008-04-03 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (mount_info::from_fstab_line): Simplify. Recognize special - "cygdrive" entry from FS type field. - (mount_info::from_fstab): Create a default root dir. - -2008-04-03 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (insert_file): Fix potential buffer overflow. - -2008-04-03 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (mount_info::from_fstab): Get module path name of the Cygwin - DLL, not the path of the application. - -2008-04-03 Corinna Vinschen <corinna@vinschen.de> - - Cleanup. - * exceptions.cc (windows_system_directory): Make static. Convert to - WCHAR. - (_cygtls::inside_kernel): Accommodate above change. Check module - path name for leading \\?\ and skip, if so. - (try_to_debug): Call GetEnvironmentStringsW and convert evaluation to - WCHAR to avoid truncated environment problem. - (has_visible_window_station): Call GetUserObjectInformationW. - (events_init): Accommodate above conversion of windows_system_directory. - * init.cc (respawn_wow64_process): Use WCHAR functions to start new - process. - * net.cc (__dup_ent): Drop Windows 9x consideration. - (load_ipv6_funcs): Use WCHAR functions to load IPv6 libs. - * syscalls.cc (syscalls.cc): Remove call to GetDiskFreeSpace. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (mount_info::init): First try to fetch mount points from - fstab files. Fallback to registry if none exists. - (skip_ws): New inline function. - (find_ws): Ditto. - (struct opt): New structure for mount options. - (read_flags): New static function to convert a mount flags string into - a flag value. - (mount_info::from_fstab_line): New method to create a mount table - entry from a fstab line. - (mount_info::from_fstab): New method to read fstab file. - * shared_info.h (mount_info::from_fstab_line): Declare. - (mount_info::from_fstab): Declare. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (enum symlink_t): Rename from shortcut_t. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_reparse_point): Use NtFsControlFile - to read reparse points. - (enum shortcut_t): New type. - (symlink_info::check): Convert sym_check to shortcut_t. Use shortcut_t - enum values throughout. Check reparse point before checking for - sysfile shortcut. Open reparse points with READ_CONTROL only to - accommodate special Vista reparse points. Add comments. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (get_lock_parent_dir): Drop call to NtOpenDirectoryObject - and utilize OBJ_OPENIF flag in call to NtCreateDirectoryObject. - (inode_t::inode_t): Ditto. Same for NtOpenMutant/NtCreateMutant. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Change lockf to being implemented. - -2008-04-02 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (insert_file): Convert filename to WCHAR and call - CreateFileW to allow UTF-8 filenames. - -2008-04-01 Corinna Vinschen <corinna@vinschen.de> - - * Fix copyright dates. - -2008-04-01 Corinna Vinschen <corinna@vinschen.de> - - Throughout, call fcntl64 instead of fcntl or fcntl_worker. - * fcntl.cc (fcntl_worker): Remove. - (fcntl64): Add fault handler. Move fcntl_worker stuff here. Add case - for locking and call fhandler's lock method directly. Make sure that - F_FLOCK flag isn't set in lock call. - (_fcntl): Add fault handler. - * fhandler.cc (fhandler_base::fcntl): Drop lock cases. - * flock.cc (flock): Add fault handler. Simplify code. Call fhandlers - lock method directly instead of fcntl_worker. Add debug output. - (lockf): Add fault handler. Call fhandlers lock method directly - instead of fcntl_worker. Add debug output. - * winsup.h (fcntl_worker): Drop declaration. - (fcntl64): Declare. - -2008-03-31 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vswprintf): Fix uninitialized usage of `w'. - - Revamp advisory file locking to avoid cross reference pointers as well - as to allow BSD flock semantics. More agressively delete unused nodes - and sync objects. - * fhandler.h (fhandler_base::ino): Rename from namehash. Fix comment. - (fhandler_base::node): Remove. - (fhandler_base::unique_id): Add. - (fhandler_base::del_my_locks): New method. - (get_ino): Rename from get_namehash. Change usage throughout Cygwin. - (get_unique_id): New method. - * fhandler.cc (fhandler_base::close): Call own del_my_locks method. - Fix comment. - (fhandler_base::fhandler_base): Accommodate new and changed members. - (fhandler_base::fixup_after_fork): Call del_my_locks. - (fhandler_base::fixup_after_exec): Ditto for files with close-on-exec - flag set. - * fhandler_disk_file.cc (get_ino_by_handle): Rename from - readdir_get_ino_by_handle. Accommodate throughout. - (fhandler_base::open_fs): Fill ino with inode number if FS has good - inodes. Allocate a LUID and store in unique_id to recognize file - descriptors referencing the same file object. - * flock.cc: Drop flock TODO comments. Use explicit types __dev32_t - and __ino64_t instead of dev_t and ino_t. - (LOCK_OBJ_NAME_LEN): Change to reflect longer lf_id length. - (get_obj_handle_count): New method. - (lockf_t::lf_id): Change type to long long. - (inode_t::get_lock_obj_handle_count): Drop in favor of static function - get_obj_handle_count. - (inode_t::del_locks): Remove. - (inode_t::get): Add create_if_missing flag argument. - (inode_t::del_my_locks): Reimplement to handle POSIX and BSD flock - locks. Return if node can be deleted or not. - (inode_t::~inode_t): Ditto. Close handles to i_dir and i_mtx. - (fixup_lockf_after_fork): Remove. - (fhandler_base::del_my_locks): New method. - (fixup_lockf_after_exec): Check if node can be deleted. - (inode_t::get): Only create node if create_if_missing is set. Lock - the returned node here before unlocking the node list. - (inode_t::get_all_locks_list): Accommodate new lf_id length. - (inode_t::create_lock_obj): Ditto. - (lockf_t::open_lock_obj): Ditto. Change return type to bool. De-const. - Set lf_obj instead of returning a handle. - (lockf_t::del_lock_obj): Call SetEvent only if new incoming parameters - allow it. Explain how it's supposed to work. - (fhandler_disk_file::lock): Only fetch file length in SEEK_END case. - Use NtQueryInformationFile(FileStandardInformation) instead of - calling fstat_by_handle. Always unlock node before returning. - Use fhandler's unique id to create lf_id for BSD flock locks. - Rely on node lock from inode_t::get. Call del_lock_obj on removed - locks here to allow explicit unlocking. Delete node if no lock exists - on the file anymore. - (lf_setlock): Get file handle as additional parameter. Handle the fact - that lf_getblock now always opens the attached event object. Reactivate - erroneously applied patch which deactivates setting thread priority. - Additionally handle blocking on BSD flock locks. - (lf_clearlock): Get file handle as additional parameter. - (lf_getlock): Close event handle opened by lf_getblock. - (lf_getblock): Open potentially blocking event object here and check - its signal state if it's a BSD flock lock. - (lf_wakelock): Get file handle as additional parameter. - * fork.cc (frok::child): Drop call to fixup_lockf_after_fork. - * ntdll.h (struct _EVENT_BASIC_INFORMATION): Define. - (enum _EVENT_INFORMATION_CLASS): Define. - (NtQueryEvent): Declare. - - * fhandler.h (fhandler_base::fs_flags): Remove. - (fhandler_base::set_fs_flags): Remove. - (fhandler_base::get_fs_flags): Remove. - * fhandler.cc (fhandler_base::write): Check for sparse file using - pc.fs_flags(). - * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto. - - The return of the volume serial number in fs_info. - * fhandler.h (get_dev): New method. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call to - NtQueryVolumeInformationFile(FileFsVolumeInformation). Just use - get_dev() method. - * fhandler_fifo.cc (fhandler_fifo::open) Use device ID and inode number - to generate fifo name. - * path.h (fs_info::sernum): New member. - (fs_info::serial_number): New method. - (path_conv::fs_serial_number): New method. - * path.cc (fs_info::update): Fetch volume serial number and store in - sernum. - -2008-03-28 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lockf_t::operator new): Add operator taking a pointer. Call - cmalloc instead of ccalloc in the default operator. Add comments. - (inode_t::operator new): Call cmalloc instead of ccalloc. - (inode_t::get_all_locks_list): Return lockf_t pointer. - (inode_t::del_all_locks_list): Delete. Remove calls throughout. - (inode_t::get): Handle failing new gracefully. - (MAX_LOCKF_CNT): Define. - (inode_t::get_all_locks_list): Use pre-allocated buffer in i_all_lf - instead of allocating every lock. Return pointer to start of linked - list of locks. - (lockf_t::open_lock_obj): Create event object non-inheritable. - (fhandler_disk_file::lock): Handle failing new gracefully. - (lf_setlock): Allocate temporary buffer for node->i_all_lf from TLS. - Remove erroneous NtClose call. - (lf_getlock): Allocate temporary buffer for node->i_all_lf from TLS. - (lf_getblock): Set lf to return value of get_all_locks_list. - -2008-03-27 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (FLOCK_PARENT_DIR_ACCESS): Define. - (FLOCK_INODE_DIR_ACCESS): Define. - (FLOCK_MUTANT_ACCESS): Define. - (FLOCK_EVENT_ACCESS): Define. - (SD_MIN_SIZE): Define. - (everyone_sd): Define to simplify calling _everyone_sd. - (_everyone_sd): Replace everyone_sync_sd. Take SECURITY_DESCRIPTOR as - argument and allow to specify access mask. - (get_lock_parent_dir): Open/Create parent dir with - FLOCK_PARENT_DIR_ACCESS. Add text to api_fatal message. - (inode_t::inode_t): Open/Create dir with FLOCK_INODE_DIR_ACCESS. - Open/Create mutant with FLOCK_MUTANT_ACCESS. Add text to api_fatal - message. - (lockf_t::create_lock_obj): Create event with FLOCK_EVENT_ACCESS. - Add text to api_fatal message. - (lockf_t::open_lock_obj): Open event with FLOCK_EVENT_ACCESS. - On failure, just return NULL pointer instead of calling api_fatal. - (lockf_t::get_lock_obj_handle_count): Replace call to small_printf - with call to debug_printf. - (lf_setlock): Handle a failure to open the lock event object as - EDEADLK. Call system_printf if opening sync objects fail. - * ntdll.h (DIRECTORY_TRAVERSE): Define. - (DIRECTORY_CREATE_OBJECT): Define. - (DIRECTORY_CREATE_SUBDIRECTORY): Define. - (EVENT_QUERY_STATE): Define. - -2008-03-27 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Fix setting errno in case of trailing "/." - -2008-03-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Create shared objects session local throughout. - * shared.cc (shared_name): Add argument to allow opening session - local shared memory. - * shared_info.h (shared_name): Change declaration accordingly. - -2008-03-26 Christopher Faylor <me+cygwin@cgf.cx> - - Implement method of detecting a missing dll as suggested by Brian - Dessent. - * hookapi.cc (find_first_notloaded_dll): New function. - * pinfo.cc (status_exit): New function. Issue message when dll not - found. Use find_first_notloaded_dll to find a nonexistent dll. - (pinfo::maybe_set_exit_code_from_windows): Call status_exit when exit - code >= 0xc0000000UL. - * sigproc.cc (child_info::proc_retry): Return exit code when - STATUS_DLL_NOT_FOUND. - * spawn.cc (spawn_guts): Minor cleanup. - * syscalls.cc (close_all_files): Don't actually close stderr - filehandle. Just make it noninheritable. - * winsup.h (find_first_notloaded_dll): Declare new function. - -2008-03-26 Brian Dessent <brian@dessent.net> - - * ntdll.h: Add several missing NTSTATUS defines. - -2008-03-24 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (inode_t::get_all_locks_list): Don't allow F_WAIT flag - in lock event object name. - (lockf_t::create_lock_obj): Ditto. - (lockf_t::open_lock_obj): Ditto. - (lf_setlock): Only check POSIX locks for deadlock condition. - (lf_findoverlap): Don't let POSIX and flock locks interact. - -2008-03-24 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc: Clarify a couple of comments. - (lf_setlock): Treat not being able to sync on a process as a potential - deadlock situation. Close process handle using CloseHandle. - -2008-03-24 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc: Fix typo in comment. - -2008-03-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::dup): Drop setting flags in the parent. - - Implement advisory file locking. - * cygheap.h (struct init_cygheap): Add inode_list member. - * cygwin.din (lockf): Export. - * dcrt0.cc (child_info_spawn::handle_spawn): Call - fixup_lockf_after_exec. - * dtable.h (class dtable): Add fhandler_disk_file as friend class. - * fhandler.cc (fhandler_base::close): Call del_my_locks if node is set. - (fhandler_base::fhandler_base): Initialize node to NULL. - (fhandler_base::fixup_after_fork): Ditto. - * fhandler.h (class fhandler_base): Add member node. - * fhandler_disk_file.cc (fhandler_disk_file::lock): Delete. - * flock.cc: Implement all advisory file locking here. - (fhandler_disk_file::lock): Implement here. - (flock): Call fcntl with F_FLOCK bit set. Remove test main function. - (lockf): New function. - * fork.cc (frok::child): Call fixup_lockf_after_fork. - * ntdll.h (DIRECTORY_ALL_ACCESS): Define. - (struct _OBJECT_BASIC_INFORMATION): Define. - (enum _EVENT_TYPE): Define. - (NtCreateDirectoryObject): Declare. - (NtCreateEvent): Declare. - (NtCreateMutant): Declare. - (NtOpenEvent): Declare. - (NtOpenMutant): Declare. - * include/cygwin/version.h: Bump API minor number. - -2008-03-22 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (handle_to_fn): Modify to return true if handle represents - a cygwin tty. - (dtable::init_std_file_from_handle): Detect when we've seen a cygwin - pipe and use it in overlapped mode by default. - (decode_tty): Make static. - -2008-03-22 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc: Define various device-related string constants as wide - character constants. - (dtable::init_std_file_from_handle): Reorganize pipe handling to try to - catch special tty case. - (build_fh_name_worker): Declare for common use. - (build_fh_name): Define char version. - (build_fh_name): Define (currently unused) UNICODE_STRING version. - (decode_tty): Detect if pipe is actually a cygwin tty, returning the - tty name in the buffer. - (handle_to_fn): Reorganize to use wide characters. - * dtable.h (build_fh_name): Declare (currently unused) UNICODE_STRING - version. - * fhandler_tty.cc (fhandler_pty_master::setup): Use - fhandler_pipe::create_selectable to create a pipe with a given name. - * pipe.cc (pipe_handler): Make returned handle inheritable. - (fhandler_pipe::create_selectable): Take an optional name. Use a - standard cygwin introducer for the name. - - * path.cc (path_conv::check): Make first argument const. - * path.h (path_conv::check): Ditto for declaration. - (path_conv::path_conv): Ditto for UNICODE_STRING version. - -2008-03-18 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h: Revert erroneous move of `#ifdef WINVER' to - another location. - -2008-03-14 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl_worker): Protect with a 'myfault'. - - * path.cc (normalize_posix_path): Treat X:/ as Win32 path, too. - - * smallprint.cc (__wrn): New static function. - (__small_vswprintf): New function to generate WCHAR strings. - (__small_swprintf): Ditto. - * winsup.h (__small_swprintf): Declare. - (__small_vswprintf): Declare. - -2008-03-13 Corinna Vinschen <corinna@vinschen.de> - - * path.sgml: Remove documentation for old path API. Add documentation - for new path API. - * security.sgml: New file to document cygwin_set_impersonation_token - and cygwin_logon_user with only eight years of delay. - * shared.sgml: Remove file. - * include/sys/cygwin.h (cygwin32_attach_handle_to_fd): Move declaration - into fully deprecated function block. - (cygwin_logon_user): Move declaration down to declaration of - cygwin_set_impersonation_token. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Just return with 0 if filenames are identical, - per POSIX. Drop comment added in previous patch. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Handle a special case of trying to rename a - mount point. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * environ.h: Fix comment. - * winsup.h: Ditto. Reflect the fact that CYG_MAX_PATH is deprecated. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (fhandler_pipe::create_selectable): Use MAX_PATH instead of - CYG_MAX_PATH. - * tty.cc (tty_list::init_session): Ditto. - (tty::alive): Ditto. - (tty::open_mutex): Ditto. - (tty::create_inuse): Ditto. - (tty::get_event): Ditto. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Disable - munging. Convert all chars in the 0xf0xx area to it's ascii equivalent. - * path.cc (normalize_posix_path): Don't treat "X:foo" as windows path, - only "X:\foo". - (tfx_chars): New transformation table for special DOS chars. - (tfx_chars_managed): Ditto, plus transformation of uppercase ASCII - chars. - (transform_chars): New function. - (get_nt_native_path): Make static. Call transform_chars for all valid - FS paths. Get additional flag if file is managed or not. Accommodate - throughout. - (getfileattr): Get additional flag if file is managed or not. - Accommodate throughout. - (path_conv::check): Disable special handling for trailing dots and - spaces. - (mount_item::build_win32): Disable code for managed paths. - (mount_info::conv_to_posix_path): Ditto. - * path.h (get_nt_native_path): Remove declaration. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't - copy filename twice in the non-managed case. - -2008-03-12 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (NT_MAX_PATH): Revert ill-advised change to 32767. - Accommodate change throughout. - - * cygwin.din (cygwin_conv_path): Export. - (cygwin_conv_path_list): Export. - (cygwin_create_path): Export. - * dcrt0.cc (dll_crt0_1): Use cygwin_conv_path. - * dtable.cc (handle_to_fn): Ditto. Don't expect UNICODE_STRING being - 0-terminated. - * environ.cc (env_plist_to_posix): New helper function. - (env_plist_to_win32): Ditto. - (env_path_to_posix): Ditto. - (env_path_to_win32): Ditto. - (return_MAX_PATH): Remove. - (conv_envvars): Use new helper functions. Drop removed members. - (win_env::operator =): Accommodate removal of path length functions. - (win_env::add_cache): Accommodate new env helper function API. - (posify): Ditto. - * environ.h (struct win_env): Ditto. Remove path length function - pointers since they are unused. - * path.cc (warn_msdos): Use cygwin_conv_path. - (getfileattr): Use new tmp_pathbuf::u_get method. - (fillout_mntent): Ditto. - (symlink_info::check): Ditto. - (path_conv::check): Use sizeof (WCHAR) instead of constant 2. - (symlink_info::check_reparse_point): Ditto. - (conv_path_list): Get max size of target string as argument. Call - cygwin_conv_path as helper function. - (cygwin_conv_path): New function. - (cygwin_create_path): New function. - (cygwin_conv_to_win32_path): Just call cygwin_conv_path with size set - to MAX_PATH. - (cygwin_conv_to_full_win32_path): Ditto. - (cygwin_conv_to_posix_path): Ditto. - (cygwin_conv_to_full_posix_path): Ditto. - (conv_path_list_buf_size): Add FIXME comment. - (env_PATH_to_posix): Rename from env_win32_to_posix_path_list. - Add size argument as required for env helper functions. - (cygwin_win32_to_posix_path_list): Call conv_path_list with size set to - MAX_PATH. - (cygwin_posix_to_win32_path_list): Ditto. - (cygwin_conv_path_list): New function. - (cwdstuff::get): Fix length argument in call to sys_wcstombs. - * spawn.cc (find_exec): Use cygwin_conv_path_list. - * tls_pbuf.h (tmp_pathbuf::u_get: New method. - * uinfo.cc (cygheap_user::ontherange): Allocate temporary path buffers - using tmp_pathbuf. Use cygwin_conv_path. - * winf.cc (av::unshift): Use cygwin_conv_path. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h: Comment out old cygwin32_XXX API. - Mark old path handling API as deprecated. - (cygwin_conv_path_t): Typedef. Define values. - (cygwin_conv_path): Declare. - (cygwin_create_path): Declare. - (cygwin_conv_path_list): Declare. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Allow paths up to PATH_MAX. - (dlopen): Call get_full_path_of_dll with path buffer allocate by - tmp_pathbuf. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Use tmp_pathbuf to allocate path buffer. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Use tmp_pathbuf to - allocate path buffer. - (handle_to_fn): Ditto. Allocate fnbuf big enough to get long path - names. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Make sure drive_length is 0 for virtual - paths. Add comments. - * spawn.cc (spawn_guts): Don't allow to start a native Win32 application - from a long path or a virtual path. Print an error message to stderr. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (parse_options): Use tmp_pathbuf to allocate buffer. - (regopt): Take tmp buffer as additional argument. - (environ_init): Alllcate tmpbuf earlier. Use as temporary buffer in - call to regopt. - * tls_pbuf.cc (tmp_pathbuf::c_get): Allocate one additional char. - (tmp_pathbuf::w_get): Allocate one additional WCHAR. - * winf.cc (av::unshift): Use tmp_pathbuf to allocate buffer. - -2008-03-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (sync): Use MAX_PATH rather than CYG_MAX_PATH. - -2008-03-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_console): Add write_buf as pointer to - temporary buffer space. - * fhandler_console.cc (CONVERT_LIMIT): Define as NT_MAX_PATH. Add - comment. - (fhandler_console::write_normal): Use write_buf throughout. - (fhandler_console::write): Use tmp_pathbuf to allocate write_buf. - -2008-03-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::write_normal): Don't print - chars marked as ERR chars. - -2008-03-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (dev_console::con_to_str): Declare returning DWORD. - * fhandler_console.cc (dev_console::con_to_str): Return number of - multibyte char bytes. - (fhandler_console::read): Set nread to number of multibyte char bytes - returned from con_to_str. - (fhandler_console::write_normal): Reorder trunc buffer preocessing. - Return after writing valid multibyte sequence out of trunc buffer. - Change comments slightly. - -2008-03-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (DIR_BUF_SIZE): Define required space for file - name in terms of sizeof(WCHAR). - (fhandler_disk_file::readdir_helper): Convert *all* of fname. - * path.cc (fillout_mntent): Use tmp_pathbuf for path buffer. - (symlink_worker): Ditto. - (SCAN_JUSTCHECKTHIS): New state for suffix_scan to define - that only the actual name gets cheked and a suffix is never attached. - (suffix_scan::has): If filename + suffix would be > NAME_MAX, start - in SCAN_JUSTCHECKTHIS state. - (suffix_scan::next): Add case for SCAN_JUSTCHECKTHIS. - (symlink_info::check): Use tmp_pathbuf for path buffer. Goto - file_not_symlink in case of invalid file name. - (realpath): Use tmp_pathbuf for path buffer. - -2008-03-07 Brian Dessent <brian@dessent.net> - - * dtable.cc (handle_to_fn): Null-terminate posix_fn in the case - of justslash = true. - -2008-03-07 Brian Dessent <brian@dessent.net> - - * fhandler.cc (fhandler_base::open): Use %S for PUNICODE_STRING. - * syscalls.cc (setmode): Ditto. - -2008-03-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::sendto): Never send more than - 64K. Add comment to explain why. - (fhandler_socket::sendmsg): Ditto. - -2008-03-07 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add tls_pbuf.o. - * autoload.cc (CreateDesktopW): Replace CreateDesktopA. - (CreateWindowStationW): Replace CreateWindowStationA. - (GetUserObjectInformationW): Replace GetUserObjectInformationA. - * cygheap.h (cwdstuff::get): Assume default buffer size NT_MAX_PATH. - * cygtls.cc (_cygtls::remove): Free temporary TLS path buffers. - * cygtls.h (TP_NUM_C_BUFS): Define. - (TP_NUM_W_BUFS): Define. - (class tls_pathbuf): New class to store pointers to thread local - temporary path buffers. - (_local_storage::pathbufs): New member. - * environ.cc (win_env::add_cache): Use temporary TLS path buffer instead - of stack based buffer. - (posify): Get temporary outenv buffer from calling function. - (environ_init): Create temporary TLS path buffer for posify. - (build_env): Create Windows environment block as WCHAR buffer. - * environ.h (build_env): Change declaration accordingly. - * external.cc (sync_winenv): Accommodate build_env change. - * fhandler_console.cc (fhandler_console::need_invisible): Use - GetUserObjectInformationW and CreateWindowStationW. - * fhandler_process.cc (format_process_maps): Use temporary TLS path - buffer instead of stack based buffer. - * fork.cc (frok::parent): Convert to use CreateProcessW. - * path.cc: Throughout use temporary TLS path buffers instead of stack - based buffer. Replace checks for CYG_MAX_PATH by checks for - NT_MAX_PATH. - (getfileattr): New function to replace GetFileAttributesA. - (normalize_win32_path): Remove Win32 and NT long path prefixes. - (getwd): Assume PATH_MAX + 1 buffer per SUSv3. - * path.h (class path_conv): Set path buffer to size NT_MAX_PATH. - (iswdrive): Define. - * pinfo.cc (commune_process): Use temporary TLS path buffer instead of - stack based buffer. - * registry.cc (get_registry_hive_path): Ditto. - (load_registry_hive): Ditto. - * spawn.cc (spawn_guts): Convert to use CreateProcessW and - CreateProcessAsUserW. - (av::fixup): Open/close file using NtOpenFile/NtClose. - * syscalls.cc (mknod_worker): Allow PATH_MAX file name. - (mknod32): Ditto. - (getusershell): Ditto. - * tls_pbuf.cc: New file implementing tls_pathbuf and tmp_pathbuf - methods. - * tls_pbuf.h: New header for files using tmp_pathbuf. - * tlsoffsets.h: Regenerate. - * winsup.h (NT_MAX_PATH): Define as 32767 to avoid USHORT overflow. - -2008-03-06 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - -2008-03-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open_): Add missing test for O_CREAT. - Fix comment. - -2008-03-05 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (~child_info_spawn): Check moreinfo->myself_pinfo for - NULL before closing. - * spawn.cc (spawn_guts): Don't close moreinfo->myself_pinfo explicitely - in case of failing CloseProcess. - - * fhandler.cc (fhandler_base::open_): Return EISDIR when trying to - create a directory. - * path.cc (path_conv::check): If input path had a trailing dir - separator, tack it on to the native path if directory doesn't exist. - -2008-03-02 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Semi-revert to making - only ourselves the exception handler and nothing else. - * exceptions.cc (open_stackdumpfile): Use correct format specifiers for - unicode when printing the name of the stackdump file. - (stack_info::walk): Stop walking if ebp points into cygwin itself. - (_cygtls::handle_exceptions): Detect when signal is masked and treat as - if it was not caught. Reinitialize exception handler to known state to - avoid subsequent attempts to call Windows exception handlers if an - exception occurs in a signal handler. Revert to a 'return 0' rather - than using a goto. - - * strfuncs.cc (sys_wcstombs_alloc): Minor formatting tweak. - * winsup.h: Fix comment typo. - -2008-03-02 Christopher Faylor <me+cygwin@cgf.cx> - - * smallprint.cc (__small_vsprintf): Free allocated buffer rather than - pointer into the buffer. - -2008-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (_cygtls::handle_threadlist_exception): Eliminate. - (_cygtls::init_threadlist_exceptions): Ditto. - * cygtls.cc (_cygtls::handle_threadlist_exception): Eliminate. - (_cygtls::init_threadlist_exceptions): Ditto. - (_cygtls::find_tls): Use myfault handling to deal with errors caused by - nonexistent threads. - * sigproc.cc (wait_sig): Eliminate call to init_threadlist_exceptions. - -2008-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Just return. - -2008-03-01 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::handle_exceptions): Only call rtl_unwind when - exiting. Just return, don't set thread context. - * gendef (_setjmp): Store %fs:0 in jmp_buf. - (_sjfault): Ditto. - (_ljfault): Restore %fs:0 from jmp_buf. - (_longjmp): Ditto. - -2008-02-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call close_fs - instead of close to avoid calling close from wrong class when changing - a file system based device node. - (fhandler_disk_file::fchown): Ditto. - (fhandler_disk_file::facl): Ditto. - -2008-02-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::handle_exceptions): When being debugged, - leave through SetThreadContext, too, to keep exception handler stack - intact. - -2008-02-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Add comments. - -2008-02-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Use NtCreateFile to create - stackdump file. - -2008-02-27 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (stack_info::walk): Fix typo. - -2008-02-27 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::init_exception_handler): Fix comment. - -2008-02-27 Corinna Vinschen <corinna@vinschen.de> - - * (struct __DIR_cache): Switch order of members so that the buffer - given to NtQueryDirectoryFile is 8 byte aligned. - -2008-02-27 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::handle_threadlist_exception): Make it clear that - the function never actually returns. - * exceptions.cc (_cygtls::handle_exceptions): Jump out of function - rather than returning to avoid meddling by previously installed - exception handlers. - -2008-02-25 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (initial_env): Only use local buffer "buf" if DEBUGGING is - enabled. Replace calls to GetEnvironmentVariable by calls to - GetEnvironmentVariableA for clarity. Call GetEnvironmentVariableA - with NULL buffer. - (cygbench): Ditto, drop local buffer. - * environ.cc (getearly): Call GetEnvironmentVariableA. - (environ_init): Retrieve unicode environment and convert to current - codepage locally. - (getwinenveq): Ditto. - * exceptions.cc (try_to_debug): Accommodate new sys_mbstowcs calling - convention. - * fhandler_clipboard.cc (set_clipboard): Call sys_mbstowcs to retrieve - required buffer length. - * fork.cc (frok::child): Call GetEnvironmentVariableA. - * miscfuncs.cc: Accommodate changed arguments in calls to sys_mbstowcs. - * sec_auth.cc: Ditto. - * strfuncs.cc (sys_wcstombs_alloc): Fix formatting. - (sys_mbstowcs): Change arguments to allow specifying a source string - length. - (sys_mbstowcs_alloc): Ditto. - * uinfo.cc (cygheap_user::ontherange): Accommodate changed arguments in - calls to sys_mbstowcs. - * winsup.h (sys_mbstowcs): Adjust declaration. - (sys_mbstowcs_alloc): Ditto. - -2008-02-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Revert error handling change in case - DuplicateHandle fails, because it breaks Vista/Longhorn workaround. - -2008-02-19 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (sig_send): Use sigmask of target thread if it is - specified otherwise default to main sigmask. - -2008-02-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fpathconf): Fix _PC_NAME_MAX and - _PC_PATH_MAX cases. - -2008-02-15 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h (__INT_MAX_PATH): Remove. - (external_pinfo): Convert program_long to pointer. - * external.cc (fillout_pinfo): Add buffer for program_long value. - -2008-02-15 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h (__INT_MAX_PATH): Define to 32K. - (external_pinfo): Set size of program_long to __INT_MAX_PATH. - -2008-02-15 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/cygwin.h (external_pinfo): Define program_long size using - external buffer size rather than cygwin-internal buffer size. - -2008-02-15 Christopher Faylor <me+cygwin@cgf.cx> - - Perform whitespace cleanup throughout. - - * dcrt0.cc (signal_shift_subtract): Eliminate ancient backwards - compatibility. - (check_sanity_and_sync): Ditto. - * winsup.h (SIGTOMASK): Ditto. Just use constant in signal - calculation. - * include/cygwin/version: Remove backwards signal mask compatibility - define. - - * path.cc (symlink_info::check_sysfile): Cosmetic change. - - * registry.cc (get_registry_hive_path): Remove unneeded variable. - - * exceptions.cc (handle_sigsuspend): Eliminate thread signal mask and - use either main sigmask or current thread sigmask. - (set_process_mask): Ditto. - (sighold): Ditto. - (sigrelse): Ditto. - (sigset): Ditto. - (set_process_mask_delta): Ditto. - (_cygtls::call_signal_handler): Ditto. - * fhandler_process.cc (format_process_status): Ditto. - * fhandler_termios.cc (fhandler_termios::bg_check): Ditto. - * pinfo.h (class pinfo): Ditto. - * select.cc (pselect): Ditto. - * signal.cc (sigprocmask): Ditto. - (abort): Ditto. - (sigpause): Ditto. - (sigsend): Ditto. - (wait_sig): Ditto. - * thread.h (pthread::parent_tls): New member. - * thread.cc (pthread::pthread): Record parent_tls here. - (pthread::thread_init_wrapper): Initialize sigmask from parent thread. - -2008-02-14 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cwcsdup): New function. - (cwcsdup1): New function. - * cygheap.h (cygheap_user::get_windows_id): New method returning PWCHAR. - (cwcsdup): Declare. - (cwcsdup1): Declare. - * registry.cc (get_registry_hive_path): Use WCHAR instead of char - throughout. - (load_registry_hive): Ditto. - * registry.h (get_registry_hive_path): Change declaration accordingly. - (load_registry_hive): Ditto. - * sec_helper.cc (cygpsid::string): New method returning PWCHAR. - * security.h (cygpsid::string): Declare. - * syscalls.cc (seteuid32): Convert local name var to WCHAR. - * uinfo.cc (cygheap_user::env_userprofile): Convert local name buffers - to WCHAR. Call sys_wcstombs_alloc to generate puserprof buffer. - - * winsup.h: Fix comment. - (NT_MAX_PATH): New definition for maximum internal path length. - Use throughout where appropriate. - * include/limits.h (PATH_MAX): Set to 4096 as on Linux. - -2008-02-13 Christopher Faylor <me+cygwin@cgf.cx> - - * configure.in: Remove non-working options. - * configure: Regenerate. - -2008-02-13 Christopher Faylor <me+cygwin@cgf.cx> - - * syscalls.cc (_isatty): Define as an alias to isatty to override - newlib version. - - * thread.cc (pthread_kill): Deal with signal 0 as per POSIX and also - avoid manipulating an invalid thread. - -2008-02-13 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Move llrint, llrintf, llrintl, lrintl, rintl, wcstol, - wcstoll, wcstoul, wcstoull, wcsxfrm from unimplemented to implemented - POSIX interfaces. - Change headline of "GNU extensions" to "GNU and Linux extensions". - Add fgetxattr, flistxattr, fremovexattr, fsetxattr, getxattr, lgetxattr, - listxattr, llistxattr, lremovexattr, lsetxattr, removexattr, setxattr, - wcpcpy and wcpncpy to list of implemented GNU functions. - -2008-02-13 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::init_exception_handler): Revert patch - from 2005-12-02. - * exceptions.cc (stack_info::walk): Add workaround for NT 5.2 - 64 bit OSes. - * wincap.h (wincaps::has_restricted_stack_args): New element. - * wincap.cc: Implement above element throughout. - (wincapc::init): Reset has_restricted_stack_args if not running - under WOW64. - -2008-02-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): Remove unused - attr. - (fhandler_disk_file::fsetxattr): Ditto. - * include/attr/xattr.h: New file. - -2008-02-11 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Fix typo in call to sys_wcstombs. - * miscfuncs.cc (next_char): Initialize ret to keep gcc happy. - -2008-02-10 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add ntea.o. - * cygwin.din (getxattr, listxattr, removexattr, setxattr, lgetxattr, - llistxattr, lremovexattr, lsetxattr, fgetxattr, flistxattr, - fremovexattr, fsetxattr): Export Linux extended attribute functions. - Sort. - * errno.cc (errmap): Add mappings for ERROR_EAS_DIDNT_FIT, - ERROR_EAS_NOT_SUPPORTED, ERROR_EA_LIST_INCONSISTENT, - ERROR_EA_TABLE_FULL, ERROR_FILE_CORRUPT, ERROR_INVALID_EA_NAME. - * fhandler.h (class fhandler_base): Declare new fgetxattr and - fsetxattr methods. - (class fhandler_disk_file): Ditto. - * fhandler.cc (fhandler_base::fgetxattr): New method. - (fhandler_base::fsetxattr): New method. - * fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): New method. - (fhandler_disk_file::fsetxattr): New method. - * ntdll.h (STATUS_EA_TOO_LARGE): Define. - (STATUS_NONEXISTENT_EA_ENTRY): Define. - (STATUS_NO_EAS_ON_FILE): Define. - * ntea.cc (read_ea): Rewrite for long pathnames and for using with - Linux extended attribute functions. - (write_ea): Ditto. - (getxattr_worker): New static function. - (getxattr): New function. - (lgetxattr): New function. - (fgetxattr): New function. - (listxattr): New function. - (llistxattr): New function. - (flistxattr): New function. - (setxattr_worker): New static function. - (setxattr): New function. - (lsetxattr): New function. - (fsetxattr): New function. - (removexattr): New function. - (lsetxattr): New function. - (fsetxattr): New function. - * security.h (read_ea): Change declaration according to above changes. - (write_ea): Ditto. - * include/cygwin/version.h: Bump API minor version. - -2008-02-10 Corinna Vinschen <corinna@vinschen.de> - - * libc/ftw.cc (ftw): Allow nfds <= 0 for glibc compatibility. - * libc/nftw.c (nftw): Ditto. - -2008-02-07 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Set access to - read/write if handle is connected to a tty or console. - * fhandler_dsp.cc (fhandler_dev_dsp::dup): Set open flags correctly - after duplicating from archetype. - * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto. - (fhandler_pty_master::dup): Ditto. - -2008-02-06 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (next_char): Fix typos in comment. - * strfuncs.cc: Remove cygserver guards. - -2008-02-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_console::trunc_buf): Add to use as cache for - truncated multibyte characters on input. - (fhandler_console::write_replacement_char): Declare new method. - * fhandler_console.cc (CONVERT_LIMIT): Raise to 64K. - (fhandler_console::fhandler_console): Initialize trunc_buf. - (ERR): Define as independent value again. - (fhandler_console::write_replacement_char): New method to print - replacement chars. - (fhandler_console::write_normal): Add handling for truncated multibyte - sequences. Call next_char instead of pathetic CharNextExA function. - Don't change src, rather just work with found later on. - * miscfuncs.cc (is_cp_multibyte): Move here from strfuncs.cc. - Don't call Windows function, restrict to well-known ANSI/OEM codepages - and UTF-8. - (next_char): Call CharNextExA only for doublebyte codepages. - Implement for UTF-8 here. - * strfuncs.cc (is_cp_multibyte): Move to miscfuncs.cc. - * winsup.h (next_char): Declare. - * include/limits.h (MB_LEN_MAX): Set to maximum value of MB_CUR_MAX - as defined by newlib for now. - -2008-02-05 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CharToOemA): Remove. - (CharNextExA): Define. - * environ.cc (codepage_init): Un-static. Set active_codepage to - active codepage. Default to ansi regardless of buf pointer. - * fhandler.h (dev_console::get_console_cp): New method. - (dev_console::con_to_str): Change declaration according to new - implementation. - (dev_console::str_to_con): Ditto. - * fhandler_console.cc (cp_convert): Remove. - (dev_console::con_to_str): Redefine to take WCHAR as incoming console - char. - (dev_console::get_console_cp): Return correct codepage according to - alternate_charset_active setting. - (dev_console::str_to_con): Redefine to create WCHAR buffer for console - output. - (fhandler_console::read): Read console input as WCHARs. - (base_chars): Fix typo in comment. - (fhandler_console::char_command): Save and restore console output - buffer using UNICODE functions. - (fhandler_console::write_normal): Convert to write output in UNICODE. - Use CharNextExA to recognize multibyte characters in input. Workaround - problem with UTF-8 and MultiByteToWideChar. Simplify the loop for - printing "normal" characters. - * strfuncs.cc (active_codepage): New variable to store active codepage. - (get_cp): Call codepage_init() if active_codepage is uninitialized. - Just return active_codepage. - (is_cp_multibyte): New function. - * winsup.h (active_codepage): Declare. - (codepage_init): Declare. - (is_cp_multibyte): Declare. - -2008-02-03 Brian Dessent <brian@dessent.net> - - * smallprint.cc (__small_vsprintf): Use HEAP_NOTHEAP for type. - * strfuncs.cc (sys_wcstombs_alloc): Guard use of ccalloc - to !__OUTSIDE_CYGWIN__ for use in cygserver. - (sys_mbstowcs_alloc): Ditto. - -2008-02-01 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (cygwin_wcsncasecmp): Never access more than n - characters. - (cygwin_strncasecmp): Ditto. Fix for strings longer than n. - -2008-02-01 Corinna Vinschen <corinna@vinschen.de> - - * string.h: Re-enable inline strcasematch and strncasematch - implementations and rename to ascii_strcasematch/ascii_strncasematch. - * dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where - applicable. - * environ.cc: Ditto. - * fhandler_process.cc: Ditto. - * hookapi.cc: Ditto. - * path.cc: Ditto. - * spawn.cc: Ditto. - * strace.cc: Ditto. - * syscalls.cc: Ditto. - * uinfo.cc: Ditto. - * winf.cc: Ditto. - -2008-01-31 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Use GetCommandLineW and convert to current - codepage. - * environ.cc (set_file_api_mode): Always set file api to ANSI if not - using the OEM codepage. - (codepage_init): Allow "utf8" codepage. - * fhandler_clipboard.cc (set_clipboard): Convert clipbuf to void and - cast as needed. Always convert input to wide char and write - CF_UNICODETEXT to clipboard. - (fhandler_dev_clipboard::read): Read CF_UNICODETEXT from clipboard and - convert to current codepage if CYGWIN_NATIVE format is not available. - * fhandler_console.cc: Drop redundant undef. - * smallprint.cc (__small_vsprintf): Convert PWCHAR and UNICODE_STRING - to current codepage for printing. - * strfuncs.cc: Use PWCHAR throughout. - (get_cp): Return CP_UTF8 for utf8_cp codepage setting. - (sys_wcstombs): Allow NULL target buffer. - (sys_wcstombs_alloc): New function. - (sys_mbstowcs_alloc): Ditto. - * winsup.h (codepage_type): Add utf8_cp. - (HEAP_NOTHEAP): Define. - (sys_wcstombs_alloc): Declare. - (sys_mbstowcs_alloc): Declare. - -2008-01-31 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct cwdstuff): Add dir member to store cwd handle. - (cwdstuff::get_handle): New method. - * path.cc (cwdstuff::set): When doit is true, always try to get - directory handle. Fail if duplicating handle fails. Store handle - in dir. Fix potential SEGV when setting drive_length. - -2008-01-28 Corinna Vinschen <corinna@vinschen.de> - - * path.cc: Fix Samba version in comment. - -2008-01-24 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (fs_info::update): Fix old-style Samba test to support - recent as well as upcoming Samba releases. - -2008-01-22 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define. - * path.cc (struct smb_extended_info): Define. - (fs_info::update): Request object id info to get Samba information. - Set flags according to new implementation. - * path.h (struct fs_info): Add samba_version to status_flags. - Implement flags() and samba_version() using IMPLEMENT_STATUS_FLAG. - -2008-01-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Open file with - READ_CONTROL for Vista/Longhorn's sake. - -2008-01-15 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (install-libs): Overwrite newlib's libg.a with symlink - to libcygwin.a. - -2008-01-15 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Remove memmem.o. - * memmem.cc: Remove in favor of newlib implementation. - -2008-01-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h: Update copyright. - * include/limits.h: Ditto. - -2008-01-06 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::is_tty): Make bool. - (fhandler_serial::is_tty): Ditto. - (fhandler_termios::is_tty): Ditto. - (fhandler_base::is_slow): Return bool value. - (fhandler_socket::is_slow): Ditto. - (fhandler_serial::is_slow): Ditto. - (fhandler_console::is_slow): Ditto. - (fhandler_tty_common::is_slow): Ditto. - (fhandler_tty_master::is_slow): Ditto. - (fhandler_dev_null::is_slow): Ditto. - -2008-01-06 Christopher Faylor <me+cygwin@cgf.cx> - - * include/limits.h (TTY_NAME_MAX): Increase size to same as linux to - allow for (at least) null terminating byte for "/dev/console". - -2008-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * tty.cc: Update copyright. - * pipe.cc: Ditto. - -2008-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * newsym: First stab at understanding data as well as functions. - - * pipe.cc (fhandler_pipe::init): Move more intelligence here. - (fhandler_pipe::create): Simplify based on above change. - - * tty.cc (tty_list::allocate): Remove non-NT code. diff --git a/winsup/cygwin/ChangeLog-2009 b/winsup/cygwin/ChangeLog-2009 deleted file mode 100644 index 5638e460c..000000000 --- a/winsup/cygwin/ChangeLog-2009 +++ /dev/null @@ -1,3483 +0,0 @@ -2009-12-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::wait_for_events): Drop parameter default - value. - * fhandler_socket.cc (fhandler_socket::connect): Add false as second - parameter to wait_for_events call. - (fhandler_socket::accept): Ditto. - (fhandler_socket::send_internal): Fix typo in call to wait_for_events. - -2009-12-26 Eric Blake <ebb9@byu.net> - - * include/pty.h (openpty, forkpty): Mark last two arguments const, - to match glibc 2.8. - * libc/bsdlib.cc (openpty, forkpty): Likewise. - -2009-12-25 Andy Koppe <andy.koppe@gmail.com> - - * fhandler_console.cc (handler_console::read): Use the tty's VERASE - character as the backspace keycode. - -2009-12-24 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Set fileattr to - FILE_ATTRIBUTE_DIRECTORY in a certain error condition. Explain why. - -2009-12-22 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (fhandler_fifo::select_read): Fill in device specific - record. - (fhandler_fifo::select_write): Ditto. - (fhandler_fifo::select_except): Ditto. - -2009-12-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cygwin_conv_path): Add band-aid including comment to avoid - conversion from POSIX "." to Win32 ".\\". - -2009-12-21 Corinna Vinschen <corinna@vinschen.de> - - * exec.cc (execvp): Call find_exec with FE_NNF flag to enforce - a NULL return when executable isn't found in $PATH. Convert NULL - to "". - (execvpe): Ditto. - * spawn.cc (spawn_guts): Return with EFAULT if prog_arg is NULL. - Return with ENOENT if prog_arg is empty string. Add a comment. - -2009-12-21 Thomas Wolff <towo@towo.net> - - * fhandler_console.cc (get_nonascii_key): Generate ESC prefix - for Alt modifier generically for function keys and keypad keys. - Distinguish Normal, Ctrl, Shift, Ctrl-Shift rather - than Normal, Ctrl, Shift, Alt, so that in combination with generic - Alt handling all 8 combinations of these modifiers are distinguished. - (keytable): Add escape sequences for remaining modified - function keys as a compatible extension using rxvt escape codes. - Also distinguish keypad keys modified with Ctrl, Shift, Ctrl-Shift - using xterm-style modifier coding. - -2009-12-21 Corinna Vinschen <corinna@vinschen.de> - - Throughout, revert ill-conceived replacement of hMainThread with - GetCurrentThread/NtCurrentThread. - * dcrt0.cc (dll_crt0_0): Duplicate main thread handle to hMainThread - again. - -2009-12-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (__vt100_conv): Minor formatting change. - -2009-12-19 Thomas Wolff <towo@towo.net> - - * fhandler_console.cc (write_console): Check for VT100 - graphics mode and transform wide characters in ASCII small - letter range to corresponding graphics. - (__vt100_conv): Table to transform small ASCII letters to line - drawing graphics for use in VT100 graphics mode. - (write_normal): Check for SO/SI control characters to - enable/disable VT100 graphics mode. - (base_chars): Enable SO/SI control characters for detection. - (write): Check for ESC ( 0 / ESC ( B escape sequences to - enable/disable VT100 graphics mode. Also detect ">" while - parsing ESC [ sequences to distinguish specific requests. - (char_command): Distinguish Secondary from Primary Device Attribute - request to report more details about cygwin console terminal version. - * fhandler.h (vt100_graphics_mode_active): New flag to indicate mode. - (saw_greater_than_sign): New parse flag for ESC [ > sequences. - (gotparen, gotrparen): New state values to parse ESC ( / ) sequences. - - * fhandler_console.cc (read): Allow combined Alt-AltGr modifiers - to also produce an ESC prefix like a plain Alt modifier, e.g. to make - Alt-@ work on a keyboard where @ is AltGr-q. - -2009-12-18 Eric Blake <ebb9@byu.net> - - * signal.cc (nanosleep): Fix bug in previous patch. - -2009-12-18 Corinna Vinschen <corinna@vinschen.de> - - Throughout, replace hMainProc with GetCurrentProcess/NtCurrentProcess - according to context. Throughout, replace hMainThread with - GetCurrentThread/NtCurrentThread according to context. - * dcrt0.cc (dll_crt0_0): Drop duplication of GetCurrentProcess to - hMainProc. Drop duplication of GetCurrentThread to hMainThread. - * dtable.cc (dtable::stdio_init): Remove useless comment. - * globals.cc (hMainProc): Remove. - (hMainThread): Remove. - * ntdll.h (NtCurrentProcess): Define. - (NtCurrentThread: Define. - -2009-12-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_registry::value_name): Convert to wchar_t*. - * fhandler_registry.cc: Call UNICODE registry functions throughout - and convert to multibyte using current locale's charset. Accommodate - throughout. - (must_encode): Take wchar_t. - (encode_regname): Convert from wchar_t *. - (decode_regname): Convert to wchar_t *. - -2009-12-18 Corinna Vinschen <corinna@vinschen.de> - - * path.sgml (func-cygwin-conv-path): Clarify meaning of size parameter. - (func-cygwin-conv-path-list): Fix typo. - (func-cygwin-posix-path-list-p): Ditto. - -2009-12-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Handle remote shares as well. Just rename - files in this case, instead of moving them to the recycler. Create - even more unique filename. Add comment to explain filename. - (unlink_nt): Remove code returning with EBUSY on remote shares. - Set bin_stat to move_to_bin except on NFS. Add comment to explain. - -2009-12-17 Eric Blake <ebb9@byu.net> - - * signal.cc (nanosleep): Support 'infinite' sleep times. - (sleep): Avoid uninitialized memory. - -2009-12-16 Thomas Wolff <towo@towo.net> - - * fhandler_console.cc (read): Detect and handle mouse wheel scrolling - events (for completion of mouse reporting mode 1000) and mouse - movement events (for additional mouse reporting modes 1002 and 1003). - Use mouse_aware() as a guard and only condition for mouse - reporting in order to enforce consistence of read() and select(). - Add focus reports (for additional focus reporting mode 1004). - (mouse_aware): Enable detection of additional mouse events for select(). - Tune function to precisely match actual reporting criteria. - Move adjustment of mouse position (by window scroll offset) - here to avoid duplicate code. - (char_command): Initialization of enhanced mouse reporting modes. - Initialization of focus reporting mode. - * fhandler.h (use_mouse): Change flag (bool->int) to indicate - additional mouse modes. Add flag to indicate focus reporting. - (mouse_aware): Move enhanced function into fhandler_console.cc. - * select.cc (peek_console): Use modified mouse_aware() for more - general detection of mouse events. Also check for focus reports. - -2009-12-16 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (cygnus_class): Remove. - (reg_key::build_reg): Don't set class when creating key. - -2009-12-15 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_setsockopt): Only skip calling setsockopt(SO_REUSEADDR) - on stream sockets under systems supporting enhanced socket security. - -2009-12-15 Thomas Wolff <towo@towo.net> - - * fhandler_console.cc (char_command): Fix code to select dim mode - to 2 rather than 9. Add entries for mode 22 (normal, not bold) - 28 (visible, not invisible), 25 (not blinking). - -2009-12-14 Corinna Vinschen <corinna@vinschen.de> - - * libc/getopt.c (getopt_internal): Set optreset according to optind - setting earlier. Reevaluate POSIXLY_CORRECT if optreset is set to !0. - Handle a leading '-' in options independently of posixly_correct. - -2009-12-09 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::open): Avoid resetting errno after - it has been explicitly set. - - * include/cygwin/version.h: Bump DLL minor version number to 2. - -2009-12-06 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 1. - -2009-12-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (send_internal): Don't split datagram messages - into pieces. - - * syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't - been set yet. - -2009-12-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry - directory and siblings as nohandle fhandler. - -2009-11-30 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Use last dll found since that's the real name of the cygwin - DLL. - -2009-11-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix typos in - comments. Always open file synchronized when reading header bytes, - otherwise suffer stack corruption. - -2009-11-26 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::stdio_init): Use GetCurrentProcess() rather than - hMainProc as process handle when duplicating the stdout handle. - Explain why. Add Win32 error code to debug output. - -2009-11-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add - socket handle value to debug output. - (fhandler_socket::fixup_after_fork): Ditto. Make new socket handle - OVERLAPPED, just as if it has been created with socket(). - * net.cc (fdsock): Close duplicated socket and explain why. Disable - the entire WSADuplicateSocket test for now and explain why. - -2009-11-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call - fhandler_base::set_close_on_exec for inheritable sockets. - -2009-11-21 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_dll): New R/O unicode string. - * syscalls.cc (nt_path_has_executable_suffix): Add ro_u_dll to - blessed_executable_suffixes array. Explain why. - -2009-11-18 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (fhandler_disk_file::lock): Disable a shortcut from the - original BSD code, but keep it in and documented why we can't use it. - -2009-11-18 Corinna Vinschen <corinna@vinschen.de> - - * ntea.cc (read_ea): Always add length of "user." prefix, not only - on Samba. Change comment. - -2009-11-18 Corinna Vinschen <corinna@vinschen.de> - - * ntea.cc (read_ea): Try to open file first to have more sensible - error codes. Always refuse non "user." EAs for Linux compatibility - and return EOPNOTSUPP. Fix handling of empty (== non-existant) EAs. - Always prepend "user." prefix to EA names. - (write_ea): Try to open file first to have more sensible error codes. - Always refuse non "user." EAs for Linux compatibility and return - EOPNOTSUPP. Delay skipping "user." prefix until after potential call - to read_ea. - -2009-11-17 Corinna Vinschen <corinna@vinschen.de> - - Reintegrate socket duplication via WSADuplicateSocket/WSASocket. - * autoload.cc (WSADuplicateSocketW): Define. - (WSASocketW): Define. - * dtable.cc (dtable::release): Call dec_need_fixup_before if necessary. - (dtable::fixup_before_fork): New function. - (dtable::fixup_before_exec): New function. - * dtable.h (class dtable): Add member cnt_need_fixup_before. Add - declarations for above new functions. - (dtable::dec_need_fixup_before): New inline method. - (dtable::inc_need_fixup_before): New inline method. - (dtable::need_fixup_before): New inline method. - * fhandler.h (fhandler_base::fixup_before_fork_exec): New virtual - method. - (fhandler_base::need_fixup_before): New virtual method. - (class fhandler_socket): Add member prot_info_ptr. - (fhandler_socket::init_fixup_before): Declare. - (fhandler_socket::need_fixup_before): New inline method. - (fhandler_socket::fixup_before_fork_exec): Declare. - (fhandler_socket::fixup_after_exec): Declare. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize - prot_info_ptr to NULL. - (fhandler_socket::~fhandler_socket): Free prot_info_ptr conditionally. - (fhandler_socket::init_fixup_before): New method. - (fhandler_socket::fixup_before_fork_exec): Ditto. - (fhandler_socket::fixup_after_fork): Use WSASocketW to duplicate - socket if necessary. - (fhandler_socket::fixup_after_exec): New method. - (fhandler_socket::dup): Use fixup_before_fork_exec/fixup_after_fork - to duplicate socket if necessary. - * fork.cc (frok::parent): Start child suspended if some fhandler - needs fixup before fork. If so, call dtable::fixup_before_fork after - CreateProcess and resume child. - * net.cc (fdsock): Try to find out if socket needs fixup before and - initialize socket accordingly. Add HUGE comment to explain what happens - and why. - * spawn.cc (spawn_guts): Start child suspended if some fhandler needs - fixup before exec. If so, call dtable::fixup_before_exec after - CreateProcess. - -2009-11-16 Eric Blake <ebb9@byu.net> - - * environ.cc (setenv): Detect invalid argument. - (unsetenv): Distinguish EFAULT from EINVAL. - -2009-11-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Fill _rmem and _wmem with valid values returned - from getsockopt if setsockopt with desired values failed. - -2009-11-12 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (get_nprocs): New function. - (get_nprocs_conf): Ditto. - (get_avphys_pages): Ditto. - (get_phys_pages): Ditto. - * cygwin.din: Export them. - * include/sys/sysinfo.h: New header, decalre above new functions. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * posix.sgml: Mention them as GNU extensions. - -2009-11-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_mailslot): Declare new private method - get_object_attr. - * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Implement. - (fhandler_mailslot::open): Replace calls to path_conv::get_object_attr - with calls to fhandler_mailslot::get_object_attr. - -2009-11-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Revert change from - 2009-11-09. - -2009-11-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (is_volume_mountpoint): Align check with - symlink_info::check_reparse_point(). - * path.cc (symlink_info::check_reparse_point): Rearrange slightly. - Add code path for unrecognized repare point types. Add comment. - -2009-11-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_reparse_point): Always check - SubstituteName for volume string to recognize volume mount points. - Reuse subst when calling sys_wcstombs. - * syscalls.cc (rename): Set errno to EBUSY when trying to rename - volume mount points. Explain why. - -2009-11-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Restrict generating - META key sequences to singlebyte input chars. - -2009-11-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop all "other" - permissions from st_mode, if the reading the file's security descriptor - failed. Explain why. - -2009-11-06 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_scr): New R/O unicode string. - (ro_u_sys): Ditto. - * syscalls.cc (nt_path_has_suffix): Replace with ... - (nt_path_has_executable_suffix): New function checking for explicit - executable suffixes. - (rename): Call nt_path_has_executable_suffix instead of - nt_path_has_suffix. Check oldpath for nt_path_has_executable_suffix - as well to set old_explicit_suffix. - -2009-11-06 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (inst_root_inited): New static bool variable. - (init_installation_root): Set inst_root_inited to true. - (memory_init): Print installation root debug output only if - inst_root_inited is true. - -2009-11-05 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (nt_path_has_suffix): New function. - (rename): Don't append .exe suffix if binary target name has any suffix - at all. - -2009-11-05 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (dll_suffixes): Disable. Explain why. - (perhaps_suffix): Use stat_suffixes instead of dll_suffixes. - -2009-11-03 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Re-introduce setting the SE_DACL_PROTECTED - flag. Remove INHERITED_ACE flag from all inherited ACEs. Add comment. - Fix ace_off counter in unrelated ACE loop. - * wincap.cc: Re-add has_dacl_protect throughout. - * wincap.h: Ditto. - -2009-11-02 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Re-enable generating default permission - entries for directories. - -2009-11-02 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Drop enforcing a .dll suffix. - (dlopen): If last path component has no dot, append one to override - automatic .dll suffix in LoadLibrary. - -2009-11-02 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.h (transform_chars): Declare. Define inline variation here. - * mount.cc (mount_info::from_fstab): Remove extern declaration of - transform_chars. - * path.cc (tfx_chars): Move to strfuncs.cc. - (transform_chars): Ditto. - * strfunc.cc (tfx_chars): Moved here from path.cc. - (transform_chars): Ditto. - (sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip - save for all characters. - (sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences - representing U+F0xx UNICODE chars. Fix typo in comment. - -2009-11-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (tfx_chars): Constify. - -2009-10-31 Corinna Vinschen <corinna@vinschen.de> - - * cygprops.h: New file. - * dtable.cc (handle_to_fn): Add check for correct installation_key - string in object name for pipes and ttys. - * external.cc (cygwin_internal): Add CW_GET_INSTKEY to allow fetching - the installation_key from cygserver. - * fhandler_fifo.cc (fhandler_fifo::fifo_name): Add installation_key - to fifo name. - * globals.cc: Include cygprops.h. - (_RDATA): Move slightly and add comment. - (cygwin_props): Define. - * mount.cc (mount_info::init): Accommodate the fact that - installation_root is now a global variable in DLL common shared memory, - rather than a member of cygwin_shared. - * pipe.cc (fhandler_pipe::create_selectable): Add installation_key to - pipe name. - * shared.cc (installation_root): Define here for storage in DLL - common shared memory. - (installation_key): Ditto. - (installation_key_buf): Ditto. - (init_installation_root): Convert from shared_info method to ordinary - function. Add initializing installation_key. Invalidate - installation_key depending of value of disable_key property. Add - comment to explain. - (get_shared_parent_dir): Add installation_key to directory name. - (get_session_parent_dir): Ditto. - (shared_info::initialize): Move call to init_installation_root from - here... - (memory_init): ...to here. Add debug output to print installation root - and installation key. Add comment to explain why. - * shared_info.h (SHARED_INFO_CB): Recalculate. - (CURR_SHARED_MAGIC): Ditto. - (class shared_info): Remove definition of installation_root and - declaration of init_installation_root. - (init_installation_root): Declare. - (installation_root): Declare. - (installation_key): Declare. - * uinfo.cc (pwdgrp::load): Accommodate the fact that installation_root - is now a global variable in DLL common shared memory. - * include/cygwin/version.h: Bump API minor number. - (CYGWIN_INFO_INSTALLATIONS_NAME): Add. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_INSTKEY. - -2009-10-31 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (security_descriptor::realloc): Call free first if - current security desriptor has been allocated by GetSecurityInfo. - -2009-10-30 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (security_descriptor::free): If sd_size is 0, call - LocalFree instead of ::free. - - * sec_acl.cc: Throughout replace old ACE flag definitions with current - definitions as used in MSDN man pages. - * security.cc: Ditto. - - * fhandler.cc (fhandler_base::open): Make sure file has really been - just created before fixing file permissions. Add S_JUSTCREATED - attribute to set_file_attribute call. - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Always create dir - with default security descriptor and fix descriptor afterwards. - Add S_JUSTCREATED flag to set_file_attribute call. - * fhandler_socket.cc (fhandler_socket::bind): Ditto for AF_LOCAL - socket files. - * path.cc (symlink_worker): Ditto for symlinks. - * security.cc (get_file_sd): Call GetSecurityInfo rather than - NtQuerySecurityObject. Explain why. Change error handling accordingly. - (alloc_sd): Skip non-inherited, non-standard entries in ACL if - S_JUSTCREATED attribute is set. Explain why. Minor format fixes. - * security.h (S_JUSTCREATED): New define. - (security_descriptor::operator=): New operator. - -2009-10-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_random.cc (fhandler_dev_random::lseek): Revert change from - 2009-10-23. - -2009-10-30 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (hex_str): New const string. - (__rn): Drop str and use hex_str instead. - (__small_vsprintf): If 'l' modifier has been found, print subsequent - multibyte or wide char string using the s, S, or W options in extended - hex value layout. - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Print WCHAR - and resulting multibyte filename in extended hex value layout in - debug output. - -2009-10-26 Charles Wilson <cygwin@cwilson.fastmail.fm> - - * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug - regarding error messages. - -2009-10-25 Charles Wilson <cygwin@cwilson.fastmail.fm> - - Sync pseudo-reloc.c with mingw64 - * lib/psuedo-reloc.c: Remove unnecessary includes. - Forward declare _pei386_runtime_relocator. - Decorate _image_base__ symbol with macro for - mingw64 compatibility. Whitespace changes. - (__print_reloc_error): Renamed to... - (__report_error): This. "Returns" void, and - always aborts. Now used on all platforms. - (__write_memory): Remove special case error handling - for different platforms - always call __report_error. - (do_pseudo_reloc): Remove special case error handling - for different platforms - always call __report_error. - (_pei386_runtime_relocator): Decorate _image_base__ - symbol with mingw64 compatibility macro. - -2009-10-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd. - -2009-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Always create file with default - security descriptor and fix descriptor afterwards. Change comment to - explain why. - * security.cc (alloc_sd): Drop setting the SE_DACL_PROTECTED flag. - * wincap.cc: Remove has_dacl_protect throughout. - * wincap.h: Ditto. - -2009-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_random.cc (fhandler_dev_random::lseek): Allow negative - dummy file positions as on Linux. - -2009-10-20 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (reg_key::get_int): Add alternative implementation - taking WCHAR strings. - (reg_key::set_int): Ditto. - (reg_key::get_string): Ditto. - (reg_key::set_string): Ditto. - * registry.h (struct reg_key): Add prototypes for added methods. - -2009-10-20 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vsprintf): Simplify UNICODE string handling - and allow empty strings. - -2009-10-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status - code STATUS_NOT_SUPPORTED. Add matching comment. - -2009-10-19 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (internal_setlocale): Only convert $PATH if there is a - $PATH. - -2009-10-19 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (av::fixup): Treat non-readable, but executable files as - Cygwin executables. - -2009-10-18 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, if - not in a setuid condition. - -2009-10-13 Eric Blake <ebb9@byu.net> - - * external.cc (cygwin_internal): Use va_end. - * fork.cc (child_copy): Likewise. - * libc/bsdlib.cc (warn, warnx, err, errx): Likewise. - * pinfo.cc (commune_request): Likewise. - * strace.cc (strace::prntf, strace_printf): Likewise. - -2009-10-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2009-10-13 Christian Franke <franke@computer.org> - Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h: Add new cygwin_getinfo_type - CW_SET_EXTERNAL_TOKEN. - Add new enum CW_TOKEN_IMPERSONATION, CW_TOKEN_RESTRICTED. - * cygheap.h (cyguser): New flags ext_token_is_restricted, - curr_token_is_restricted and setuid_to_restricted. - * external.cc (cygwin_internal): Add CW_SET_EXTERNAL_TOKEN. - * sec_auth.cc (set_imp_token): New function. - (cygwin_set_impersonation_token): Call set_imp_token (). - * security.h (set_imp_token): New prototype. - * spawn.cc (spawn_guts): Use CreateProcessAsUserW if restricted token - was enabled by setuid(). Do not create new window station in this case. - * syscalls.cc (seteuid32): Add handling of restricted external tokens. - Set HANDLE_FLAG_INHERIT for primary token. - (setuid32): Set setuid_to_restricted flag. - * uinfo.cc (uinfo_init): Do not reimpersonate if restricted token was - enabled by setuid (). Initialize user.*_restricted flags. - -2009-10-13 Eric Blake <ebb9@byu.net> - - * hires.h (hires_ms): Change initime_us to initime_ns, with 10x - more resolution. - (hires_ms::nsecs): New prototype. - (hires_ms::usecs, hires_ms::msecs, hires_ms::uptime): Adjust. - * times.cc (systime_ns): New helper function. - (hires_ms::prime): Use it for more resolution. - (hires_ms::usecs): Change to... - (hires_ms::nsecs): ...with more resolution. - (clock_gettime): Use more resolution. - (systime): Rewrite in terms of systime_ns. - (timespec_to_filetime): Rewrite math to reflect true operation. - * fhandler_disk_file.cc (utimens_fs): Use higher resolution. - -2009-10-12 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Return 0 in CW_SET_DOS_FILE_WARNING - and CW_SETERRNO cases. - -2009-10-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Only append .lnk - if the original device had one, too. Add comment. - - * fhandler_socket.cc (fhandler_socket::fstat): Always return a size of - 0 on sockets. - -2009-10-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (tfx_chars): Convert all ASCII control characters except - ASCII NUL as well. Change layout to make the conversions more clear. - Add comment. - -2009-10-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (DEFAULT_LOCALE): Define as "C.UTF-8". - -2009-10-08 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (_cygtls::signal_exit): There's no need to set - signal_arrived if we're exiting. - -2009-10-08 Eric Blake <ebb9@byu.net> - - * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL. - -2009-10-07 Charles Wilson <cygwin@cwilson.fastmail.fm> - - Additional pseudo-reloc-v2 support - * ntdll.h: Add custom NTSTATUS value for pseudo-reloc - errors STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION. - * pinfo.cc (status_exit): Map custom pseudo-reloc - error value STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION to 127. - * sigproc.cc (child_info::proc_retry): Return exit code when - STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION. - - Cygwin modifications to pseudo-reloc.c - * lib/pseudo-reloc.c: Added comments throughout and various - whitespace fixes. Exploit cygwin_internal(CW_EXIT_PROCESS,...) - for fatal error handling that is consistent with cygwin process - life-cycle. Ensure state variable (in _pei386_runtime_relocator) - is unique to each address space, across fork(). - (__print_reloc_error): New function for reporting errors in a - manner supported by cygwin at this early stage of the process - life-cycle. - (_pei386_runtime_relocator): Ensure relocations performed - only once for each address space, but are repeated after fork() - in the new address space. - only once for each address space (e.g. across fork()). - (__write_memory) [MINGW]: Ensure that b is always initialized - by call to VirtualQuery, even if -DNDEBUG. - - * lib/pseudo-reloc.c: Import new implementation to support - v2 pseudo-relocs implemented by Kai Tietz from mingw. - -2009-10-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (seteuid32): Call set_cygwin_privileges on primary token - as well. - -2009-10-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_pty_master::tcgetpgrp): Declare. - * fhandler_termios.cc (fhandler_termios::tcgetpgrp): Only return - valid pgid if tty is controlling tty. Set errno to ENOTTY and - return -1 otherwise. - (fhandler_pty_master::tcgetpgrp): New function. Return 0 for - master side of pty if it's not the controlling tty of the process. - -2009-10-05 Charles Wilson <cygwin@cwilson.fastmail.fm> - - Add cygwin wrapper for ExitProcess and TerminateProcess. - * include/sys/cygwin.h: Declare new cygwin_getinfo_type - CW_EXIT_PROCESS. - * external.cc (exit_process): New function. - (cygwin_internal): Handle CW_EXIT_PROCESS. - * pinfo.h (pinfo::set_exit_code): New method. - * pinfo.cc (pinfo::set_exit_code): New, refactored from... - (pinfo::maybe_set_exit_code_from_windows): here. Call it. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR - to 215 to reflect the above change. - -2009-10-05 Charles Wilson <cygwin@cwilson.fastmail.fm> - - * exceptions.cc: Move global variable sigExeced... - * globals.cc: here. - * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Remove now - unneeded declaration. - -2009-10-04 Dave Korn <dave.korn.cygwin@gmail.com> - - * Makefile.in (CFLAGS): Add -mno-use-libstdc-wrappers. - -2009-10-04 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (internal_setlocale): Add comment. - -2009-10-02 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Drop calls to setlocale/_setlocale_r. Just - call initial_setlocale from here. - * syscalls.cc (initial_setlocale): Set internal charset and revert - application locale to "C". - (setlocale): Don't set Cygwin's internal charset here. - -2009-10-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Move cxx_malloc reset kluge from here. - (check_sanity_and_sync): to here. - -2009-09-30 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (has_dot_last_component): Rewrite to detect some corner cases - that were previously uncaught. - -2009-09-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (beep): Move up to avoid forward declaration. - (fhandler_console::read): Just beep on characters invalid in current - charset. Add comment. - -2009-09-29 Eric Blake <ebb9@byu.net> - - * syscalls.cc (rename): Fix regression in rename("dir","d/"). - -2009-09-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Always call - WSARecv on SOCK_STREAM sockets. - -2009-09-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class dev_console): Constify charset parameter of - str_to_con. - * fhandler_console.cc (dev_console::con_to_str): Simplify. Always - default to the current internal locale. - (dev_console::get_console_cp): Always use codepage 437 for alternate - charset. - (dev_console::str_to_con): Constify charset parameter. - (fhandler_console::write_normal): Always use codepage 437 for alternate - charset. Otherwise always default to the current internal locale. - Replace ASCII SO with ASCII CAN. - * strfuncs.cc: Tweak comments according to below changes. - (sys_cp_wcstombs): Constify charset parameter. Convert all wchar_t - values in the Unicode private use area U+F0xx to the singlebyte - counterpart. Drop special handling creating ASCII SO sequence from - U+DCxx value. Rearrange for performance. Replace ASCII SO with - ASCII CAN. - (sys_cp_mbstowcs): Constify charset parameter. Replace ASCII SO with - ASCII CAN. Drop special case for U+DCxx ASCII SO sequences. Always - create a replacement from the Unicode private use area U+F0xx for - invalid byte values in a multibyte sequence. Do the same for wchar_t - values from the U+F0xx range to make them roundtrip safe. - * wchar.h (sys_cp_wcstombs): Constify charset parameter. - (sys_cp_mbstowcs): Ditto. - -2009-09-28 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_init): Default locale.charset to "UTF-8". - * dcrt0.cc (dll_crt0_1): Call setlocale (LC_CTYPE, "") here, just - before resetting application locale to "C". - * environ.cc (environ_init): Drop code setting locale here. - * syscalls.cc (check_codepage): Break out check for required codepage - from internal_setlocale. - (internal_setlocale): Just convert CWD and $PATH from old charset to - new charset and set internal charset. - (setlocale): Change accordingly. Don't require LC_ALL or LC_CTYPE to - store old locale value. Always call internal_setlocale if charset - changed due to locale environment changes. - -2009-09-26 Eric Blake <ebb9@byu.net> - - * exec.cc (fexecve): New function. - * cygwin.din (execvpe, fexecve): Export new fexecve and existing - execvpe. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * posix.sgml: Mention them. - -2009-09-26 Eric Blake <ebb9@byu.net> - - * syscalls.cc (link): Delete obsolete comment. Reject directories - and missing source up front. - (rename): Use correct errno for trailing '.'. Detect empty - strings. Allow trailing slash to newpath iff oldpath is - directory. - * dir.cc (mkdir): Reject dangling symlink with trailing slash. - * fhandler_disk_file.cc (fhandler_disk_file::link): Reject - trailing slash. - * fhandler.cc (fhandler_base::link): Match Linux errno. - -2009-09-25 Eric Blake <ebb9@byu.net> - - * syscalls.cc (fchmodat): lchmod is not yet implemented. - (euidaccess): New function. - * path.cc (realpath): Update comment. - (canonicalize_file_name): New function. - * include/cygwin/stdlib.h (canonicalize_file_name): Declare it. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * cygwin.din: Export canonicalize_file_name, eaccess, euidaccess. - * posix.sgml: Mention them. - -2009-09-25 Eric Blake <ebb9@byu.net> - - * fhandler.h (fhandler_base::fhaccess): Add parameter. - * security.h (check_file_access, check_registry_access): Likewise. - * security.cc (check_file_access, check_registry_access) - (check_access): Implement new parameter. - * fhandler.cc (fhandler_base::fhaccess): Likewise. - (device_access_denied): Update caller. - * syscalls.cc (access, faccessat): Update callers. - * spawn.cc (find_exec, fixup): Likewise. - -2009-09-24 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in - case of errors. - (sem_open): Ditto. - -2009-09-24 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (CreateMutexW): Use correct access mask. - (CreateSemaphoreW): Ditto. - -2009-09-23 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI - codepage if cp is 0. - -2009-09-23 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_wcstombs): Convert lone surrogate pair - second halves to unambiguous ASCII SO sequence. When converting - chars invalid in current codepage to ASCII SO sequence, make - sure to check for surrogate pair second half only if at least - one wide characters is left. Decrement nwc if valid second half has - been converted. - (sys_cp_mbstowcs): Improve ASCII SO handling. Never break from loop - if invalid character has been found. Recognize ASCII SO sequence - representing originally invalid mulitbyte char converted into a - lone surrogate pair second half. Convert accordingly. - -2009-09-22 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (WSARecv): Define. - * fhandler_socket.cc (fhandler_socket::recv_internal): Call WSARecv - instead of WSARecvFrom if no name parameter is given. Explain why. - -2009-09-22 Eric Blake <ebb9@byu.net> - - * syscalls.cc (faccessat): Fix typo, reject bad flags. - (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject - bad flags. - -2009-09-22 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling - invalid multibyte sequence. - -2009-09-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_worker): Rework error handling to generate Linux - compatible errno in case of trailing slash in newpath. - -2009-09-22 Eric Blake <ebb9@byu.net> - - * dtable.h (OPEN_MAX_MAX): New macro. - * resource.cc (getrlimit) [RLIMIT_NOFILE]: Use it. - * dtable.cc (dtable::extend): Likewise. - * fcntl.cc (fcntl64): Obey POSIX rule with too-large F_DUPFD. - * syscalls.cc (dup2): Likewise. - -2009-09-21 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cwdstuff::get_posix): Convert to const inline method just - returning pointer to posix path. - (cwdstuff::reset_posix): Convert to non-inline method taking a wchar_t - pointer. - * path.cc (cwdstuff::set): Revert change from 2009-05-13. Set posix - to valid incoming path again. - (cwdstuff::reset_posix): New implementation setting posix path from - incoming wchar_t path. Explain usage. - (cwdstuff::get_posix): Drop implementation. - (cwdstuff::get): Drop special case to handle empty posix path. - * syscalls.cc (internal_setlocale): Store old posix cwd as wide char - path. Restore posix cwd using new charset. Explain why. - -2009-09-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink - creation on filesystems not supporting hardlinks. - -2009-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that - cxx_malloc is always set to the cygwin version. - -2009-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * external.cc (cygwin_internal): Add hack to always reset cxx_malloc to - proper value. - - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Relocate wayward - comment. - -2009-09-19 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (sigpacket::process): Explicitly set thread-specific - handler function to zero to avoid transferring to incorrect location. - (_cygtls::call_signal_handler): Don't transfer to handler if there is - no handler to transfer to. - -2009-09-18 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (sigpacket::process): Give sigwait() processing - precedence even when a handler is present. - - * syscalls.cc (getpagesize): Change return to 'int'. - -2009-09-16 Christopher Faylor <me+cygwin@cgf.cx> - - * ntea.c (write_ea): Don't abort if not-samba. - -2009-09-01 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (peek_console): Always check window size when there is ANY - keyboard activity. - -2009-08-26 Corinna Vinschen <corinna@vinschen.de> - - * path.h (INTERIX_SYMLINK_COOKIE): Define. - * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well. - -2009-08-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs - are not used. - -2009-08-24 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Add comment. - * path.cc (symlink_info::check_reparse_point): Return -1 for volume - mount points. Explain why. - (symlink_info::check): Call fs.update again for volume mount points. - Explain why. - -2009-08-24 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_volume): New R/O unicode string. - * path.cc (symlink_info::check_reparse_point): Fix check for volume - mount points to work on Vista and later as well. - -2009-08-22 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866 - (KOI8-R) and 21866 (KOI8-U). - -2009-08-21 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.h (has_dtors): New flag. - (run_dtors): New wrapper function which avoids calling dtors more than - once. - * dll_init.cc (dll_global_dtors): Use dll.run_dtors wrapper. - (dll_list::detach): Ditto. - (dll_list::alloc): Set has_dtors flag. - -2009-08-21 Christopher Faylor <me+cygwin@cgf.cx> - - * fcntl.cc (fcntl64): Detect negative fd as error. - -2009-08-21 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Allocate fh_disk_file on cygheap. Delete - explicitely before returning. - -2009-08-20 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (build_fh_dev): Take additional bool parameter indicating - whether set_name should be called or not. - (dtable::dup_worker): Call build_fh_pc with new second parameter set - to false. Explain why. If fhandler's dup failed, delete rather than - cfree newfh and set newfh to NULL to indicate failure correctly. - * dtable.h (build_fh_pc): Change declaration according to above change. - Default set_name parameter to true. - * mmap.cc (mmap_record::free_fh): Delete rather than cfree fh. - -2009-08-18 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (dtable::fixup_after_exec): Close any popen'ed file handles here. - * fhandler.h (fhandler_*::ispipe): New function. - (fhandler_base::get_popen_pid): Define virtual function. - (fhandler_*::isdevice): Make const. - (fhandler_*::isfifo): Ditto. - -2009-08-17 Christopher Faylor <me+cygwin@cgf.cx> - - * syscalls.cc (popen): Reorganize slightly for clarity. Fix a comment. - -2009-08-17 Christopher Faylor <me+cygwin@cgf.cx> - - * syscalls.cc (popen): Rewrite to accommodate situations where stdin, - stdout, or stderr are closed. - -2009-08-17 Christopher Faylor <me+cygwin@cgf.cx> - - * pipe.cc (fhandler_pipe::create_selectable): Add -pipe to default pipe names. - - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Use bool/true/false - for what is actually a boolean variable. - -2009-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length - check for ".." dir. - -2009-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment - to be fair. - -2009-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Remove - ill-advised attempt to optimize "." and ".." handling by checking for - specific position in directory listing. Explain why. - (fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto. - Special-case opening file on NFS to fetch inode number and add longish - comment to explain why. - -2009-08-14 Corinna Vinschen <corinna@vinschen.de> - - * (fhandler_socket::getsockname): Fix length returned for unbound - AF_LOCAL sockets. - (fhandler_socket::getpeername): Ditto. - * net.cc (socketpair): Don't set sun_path and peer_sun_path to - make sure getsockname and getpeername return the correct values - for AF_LOCAL sockets. - -2009-08-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept): Use sizeof rather - then constant size. Truncate returned data, but return full address - length as per POSIX. - (fhandler_socket::getsockname): Truncate returned data, but return full - address length as per POSIX. - (fhandler_socket::getpeername): Ditto. - -2009-08-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add peer_sun_path member. - (fhandler_socket::set_peer_sun_path): New method. - (fhandler_socket::get_peer_sun_path): New method. - * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize - peer_sun_path to NULL. - (fhandler_socket::~fhandler_socket): Free peer_sun_path if necessary. - (fhandler_socket::dup): Duplicate peer_sun_path. - (fhandler_socket::accept): Ditto. Return fake unbound peer content - and len in case of AF_LOCAL sockets. - (fhandler_socket::getsockname): Always use local sockaddr_storage to - store socket address and copy over to incoming address. Handle every - namelen correctly per POSIX. - (fhandler_socket::getpeername): Ditto. Add code path to return - correct value for AF_LOCAL sockets. - (fhandler_socket::set_peer_sun_path): New method. - * net.cc (socketpair): Set peer_sun_path to empty string, just like - sun_path. - -2009-08-13 Corinna Vinschen <corinna@vinschen.de> - Dave Korn <dave.korn.cygwin@googlemail.com> - - * cxx.cc (default_cygwin_cxx_malloc): Enhance commenting. - * dll_init.cc (dll_dllcrt0_1): Likewise. - * dlfcn.cc (dlopen): Prevent dlopen()'d DLL from installing any - cxx malloc overrides. - * include/cygwin/cygwin_dll.h (__dynamically_loaded): New variable. - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Check it and only - install cxx malloc overrides when statically loaded. Extend comments. - -2009-08-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept): Always use local - sockaddr_storage to store peer address and copy over to incoming - peer address if available. Truncate data as necessary according - to POSIX. - -2009-08-11 Corinna Vinschen <corinna@vinschen.de> - - * include/limits.h (NGROUPS_MAX): Set to a more sane value. - * include/sys/param.h (NGROUPS): Ditto. - -2009-08-10 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (av::fixup): Check shell scripts for executability only on - filesystems/mounts supporting real permissions. - -2009-08-10 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (DEV_SOCKET): New static WCHAR string. Name of - the native NT socket device. - (dtable::init_std_file_from_handle): Remove unused tmp_pathbuf - variable. Move check for sockets into FILE_TYPE_PIPE clause. - Rely on handle_to_fn having recognized socket, or check if - getsockopt works to accommodate NT4 shortcoming. - (handle_to_fn): Use tmp_pathbuf for OBJECT_NAME_INFORMATION - buffer and simplify code due to that. Check name returned by - NtQueryObject for socket device. - -2009-08-10 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (create_invisible_console_workaround): Fix size - of cmd in the way originally intended. - -2009-08-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (create_invisible_console_workaround): Fix - size of cmd to take spaces into account. - -2009-08-08 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Fix comment to - document change in the Windows 7 workaround. - * wincap.cc (wincapc::init): Don't set has_console_handle_problem - to false on 32 bit systems. - -2009-08-06 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getnameinfo): Force setting NI_NUMERICSERV only - on Windows 2003 and earlier, only if the port number doesn't - resolve to a well-known service. Change comment accordingly. - -2009-08-05 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.h (cygheap_debug::endh): Delete. - * debug.cc (lock_debug::acquired): Delete. - (lock_debug::lock_debug): Simplify. - (lock_debug::unlock): Ditto. - (find_handle): Don't set endh here. - (add_handle): Add new handle to beginning of the list rather than - trying to maintain an end list pointer. - (delete_handle): Minor optimization. - (mark_closed): Make logic clearer. - (verify_handle): Lock handle list before scanning. - (setclexec): Ditto. - (modify_handle): Ditto. - (newh): Don't lock handle list here. Assume caller did this. - (mark_closed): Ditto. - (close_handle): Remove unneeded #if. - * dtable.cc (dtable::dup2): Tweak debug output. - -2009-08-04 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (patch_conv::check): Zero path before setting it. - -2009-08-04 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem - size if the length exceeds it. - * net.cc (fdsock): Use 65535 as window size, just like the comment - says or we run into problems with DuplicateHandle. - - * path.cc (patch_conv::check): Use set_path to set invalid filename. - * path.h (path_conv::path_conv): Ditto. - -2009-08-04 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (pdrive_buf): Defensively allocate one extra byte. - -2009-08-04 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_cygdrive:DRVSZ): New enum. - (pdrive_buf): New place to hold information about cygdrive. - * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Store drive - info in pdrive_buf since get_win32_name() could now be too small to - hold everything. - (fhandler_cygdrive::rewinddir): Reset pdrive to pdrive_buf. - (fhandler_cygdrive::closedir): Ditto. - * pipe.cc (fhandler_pipe::init): Be more defensive when referencing - get_win32_name(). Rework logic which made a copy of the POSIX path and - then never used it. - -2009-08-02 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (stopped_or_terminated): Don't return a match when stopsig - == SIGCONT and not WCONTINUED. - * termios.cc (tcsetpgrp): Improve debugging output. - -2009-08-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap_malloc.h: New file. - * cygheap.h: Remove stuff now included in cygheap_malloc.h and include - that file. Make cygheap_init a standard c++ function. Remove unneeded - child_info declaration. - * path.h: Include cygheap_malloc.h. Remove extra cstrdup declaration. - (path_conv): Reorganize to group variables together. - (path_conv::path): Make const char *. - (path_conv::known_suffix): Ditto. - (path_conv::normalized_path): Ditto. - (path_conv::path_conv): Reorganize initializers to reflect new element - ordering. - (path_conv::get_win32): Change return value to const char *. - (path_conv::set_path): Move back here from spawn.cc. - (parh_conv::modifiable_path): New function. - * path.cc (path_conv::add_ext_from_sym): Accommodate const'ness of - known_suffixes. - (path_conv::set_normalized_path): Ditto for normalized_path. - (path_conv::check): Use modifiable_path whereever we need to modify the - path element. Use set_path to set the path. - (path_conv::~path_conv): Accommodate new const'ness. - * spawn.cc (perhaps_suffix): Declare ext as const since that's what is - being returned. - (path_conv::set_path): Move back to path.h. - * winf.f (linebuf): Perform minor cleanup. - (linebuf::fromargv): Change second parameter to const. - * winf.cc (linebuf::fromargv): Ditto. - -2009-08-01 Christopher Faylor <me+cygwin@cgf.cx> - - * path.h (path_conv::set_path): Change return value. - * spawn.cc (path_conv::set_path): Return newly set value. - (find_exec): Set retval to newly set value when calling set_path. - -2009-07-31 Christopher Faylor <me+cygwin@cgf.cx> - - * spawn.cc (find_exec): Fix one more path where retval was not set. - -2009-07-31 Christopher Faylor <me+cygwin@cgf.cx> - - * spawn.cc (find_exec): Stop relying on the ability to set retval to a - fixed path_conv buffer and set it on the fly instead. - -2009-07-30 Corinna Vinschen <corinna@vinschen.de> - - * path.h (cstrdup): Fix declaration. - -2009-07-29 Dave Korn <dave.korn.cygwin@googlemail.com> - - * globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete. - * dcrt0.cc (__main): Schedule dll_global_dtors to run - atexit before global dtors. - (do_exit): Delete test for ES_GLOBAL_DTORS and call to - dll_global_dtors. - -2009-07-29 Corinna Vinschen <corinna@vinschen.de> - - * path.h (class path_conv): Convert path from char array to char *. - Initialize to NULL in constructors. Drop normalized_path_size member. - (path_conv::size): Remove. - (path_conv::operator =): Always copy with sizeof path_conv. Always - duplicate path on cygheap. - (path_conv::set_path): Move implementation to spawn.cc. - * path.cc (path_conv::set_normalized_path): Always allocate - normalized_path on cygheap. - (path_conv::check): Don't work on path, rather allocate THIS_path in - TLS and use it throughout. When finished, allocate path on cygheap - and copy over. Defer tacking on extension after having copied path. - * spawn.cc (path_conv::set_path): Implement here. - -2009-07-27 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (enum fs_info_type): New type. - (IMPLEMENT_FS_FLAG): New define. - (class fs_info): Convert filesystem type status flags into an enum - fs_info_type. Add cifs FS. Revert change to has_buggy_open and - has_buggy_fileid_dirinfo. Make them normal; status flags again. - Implement is_FS functions using IMPLEMENT_FS_FLAG. - * mount.cc (fs_info::update): Define MINIMAL_WIN_NTFS_FLAGS and - FS_IS_WINDOWS_NTFS. Add comment. Only test remote filesystems - for "NTFS" once. Add is_cifs check using FS_IS_WINDOWS_NTFS. - Set has_buggy_open flag for SUNWNFS. Set has_buggy_fileid_dirinfo - flag for UNIXFS and all cifs type filesystems. Only check for - caseinsensitivity once. - (fillout_mntent): Create locale fs_names array. Use for setting - _my_tls.locals.mnt_type. - -2009-07-27 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server. - -2009-07-25 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Add flock restriction. - -2009-07-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (set_console_title): Set buffer size to - TITLESIZE + 1. Call sys_mbstowcs with correct destination length. - -2009-07-24 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.h (wait_for_sigthread): Eliminate parameter. - * sigproc.cc (wait_for_sigthread): Ditto. Don't synchronize with - wait_sig after receiving an event that it is ready to go. - (init_sig_pipe): New function. - (wait_sig): Call init_sig_pipe to create pipes for communicating - signals to this process. Don't send sigCONT signal when initializing. - * fork.cc (frok::child): Accommodate wait_for_sigpipe parameter change. - -2009-07-24 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_*::write): Make ssize_t/__stdcall. - (fhandler_*::write_overlapped): Ditto. - (fhandler_*::raw_write): Ditto. - (fhandler_*::readv): Ditto. - (fhandler_*::writev): Ditto. - (fhandler_*::raw_read): Make __stdcall. - * fhandler: Accommodate changes to read/write functions throughout. - * fhandler_clipboard.cc: Ditto. - * fhandler_console.cc: Ditto. - * fhandler_dsp.cc: Ditto. - * fhandler_fifo.cc: Ditto. - * fhandler_mailslot.cc: Ditto. - * fhandler_mem.cc: Ditto. - * fhandler_mem.cc: Ditto. - * fhandler_random.cc: Ditto. - * fhandler_tape.cc: Ditto. - * fhandler_tty.cc: Ditto. - * fhandler_virtual.cc: Ditto. - * fhandler_windows.cc: Ditto. - * fhandler_zero.cc: Ditto. - * syscalls.cc (readv): Use ssize_t as temp variable. - - * fhandler.cc (fhandler_base::read): Coerce returned len to signed or - it will never be treated as < 0. - (fhandler_base::wait_overlapped): Minimize calls to GetLastError. - Remove duplicate debugging test. Fix error return. - - * fhandler.h (fhandler_fifo::fifo_name): Declare new function. - (fhandler_fifo::close): Ditto. - (fhandler_fifo::dup): Ditto. - (fhandler_fifo::close_on_exec): Ditto. - * fhandler.cc (fhandler_fifo::fifo_name): Define new function. - (FIFO_BUF_SIZE): New define. - (cnp): Ditto. - (fhandler_fifo::open): Rework. Use cnp to open named pipe. Always - open write side as a client. Open dummy client when writing and can't - connect. - (wait): Rework. Implement fifo_wait_for_next_client. Handle signals - during connect better. Add new fifo_wait_for_server code which polls - (sigh) waiting for server. - (fhandler_fifo::raw_read): Handle transition states when one client - closes and another is available. - (fhandler_fifo::close): Define. - (fhandler_fifo::dup): Ditto. - (fhandler_fifo::close_on_exec): Ditto. - -2009-07-24 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (internal_setlocale): Fix typo in GBK codepage. - -2009-07-24 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Ignore sharing violation on NFS. Align - comments. - -2009-07-23 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (fs_info::fsn): New member. - (fs_info::clear): Clear fsn. - (fs_info::fsname): New read accessor for fsn. - * mount.cc (fs_info::update): Fill in fsn member with lowercased - filesystem name if filesystem is not well-known. Fall back to - "unknown" if filesystem name is missing. - (fillout_mntent): Print filesystem name retrieved in fs_info::update - rather than static string "unknown". - -2009-07-23 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Revert to open filesystem with access set - to READ_CONTROL. If that fails, try additionally with FILE_READ_DATA. - -2009-07-22 Eric Blake <ebb9@byu.net> - - * exceptions.cc (handle_exceptions): Set si_addr according to - POSIX for SIGSEGV. - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Open filesystem with access set to 0. - Explain why. - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc: Revert accidental checkin. - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Handle STATUS_NOT_SUPPORTED from - NtCreateFile just like STATUS_EAS_NOT_SUPPORTED. - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fillout_mntent): Fix typo (noexec -> notexec). - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Fix typo in comment. - -2009-07-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (enum del_lock_called_from): New enumeration. - (fhandler_base::del_my_locks): Declare taking a del_lock_called_from - as argument. - * fhandler.cc (fhandler_base::close): Call del_my_locks with "on_close". - (fhandler_base::fixup_after_fork): Call del_my_locks with "after_fork". - (fhandler_base::fixup_after_exec): Call del_my_locks with "after_exec". - * flock.cc (fhandler_base::del_my_locks): Take del_lock_called_from - as argument. Call node->del_my_locks with NULL handle in after_exec - case. Explain why. - -2009-07-21 Eric Blake <ebb9@byu.net> - - * dtable.cc (dup2): Correct return value for no-op. - -2009-07-21 Corinna Vinschen <corinna@vinschen.de> - Eric Blake <ebb9@byu.net> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Add special case - for MVFS. Explain why. - (fhandler_disk_file::utimens): Drop local variables lastaccess and - lastwrite. Copy timestamps right into FILE_BASIC_INFORMATION structure - to avoid copying them twice. - -2009-07-20 Corinna Vinschen <corinna@vinschen.de> - - * wincap.h (wincaps::has_always_all_codepages): New element. - * wincap.cc: Implement above element throughout. - * wchar.h (__sjis_mbtowc): Declare. - (__eucjp_mbtowc): Ditto. - (__gbk_mbtowc): Ditto. - (__kr_mbtowc): Ditto. - (__big5_mbtowc): Ditto. - * syscalls.cc (internal_setlocale): Convert to char * function. - Return parameter by default. Return NULL if request to use a - charset can't be satisfied due to missing codepage support in the - underlying OS. Fix comment. - (setlocale): Store original locale. Restore to original locale if - internal_setlocale returns NULL. - -2009-07-20 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (fork): Create local tmp_pathbuf. Explain why. - -2009-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (sig_handle_tty_stop): Set stopsig to SIGCONT when - continuing. - (stopped_or_terminated): Honor WCONTINUED. - * wait.cc (wait4): Ditto. - * include/cygwin/wait.h (WCONTINUED): Define. - (__W_CONTINUED): Ditto. - (WIFCONTINUED): Ditto. - -2009-07-18 Dave Korn <dave.korn.cygwin@gmail.com> - - * libstdcxx_wrapper.cc (operator delete): Remove stray space in - asm name. - -2009-07-17 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Test for e, not e->prev - or we could still end up adding our handler twice. Add comment - explaining what we're doing. - * dll_init.cc (dll_dllcrt0_1): Clarify comment. - -2009-07-17 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our - exception handler twice. - -2009-07-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Just return when a sharing violation - occurs on remote filesystems. - -2009-07-17 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc: Improve comment on R/O UNICODE_STRINGs. - * mount.h (class fs_info): Add is_mvfs bit. - * mount.cc (fs_info::update): Recognize MVFS remote filesystem. - (fillout_mntent): Reorder filesystem checks for speed. Add - mvfs, unixfs, and sunwnfs filesystem types. - * path.h (class path_conv): Add fs_is_mvfs method. - * path.cc (symlink_worker): On MVFS, always create symlinks as - Windows shortcuts. Explain why. - -2009-07-16 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): First remove the R/O DOS attribute with - FILE_WRITE_ATTRIBUTES access only, then re-open the file for DELETE. - Explain why. - -2009-07-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Remove file - attribute check already done in NtSetAttributesFile. - -2009-07-15 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc: Reorder constant UNICODE_STRINGs for clarity. - * mount.h (fs_info::sttaus): Move filesystem type flags into - substructure. Add union to allow simple test for having set any - one filesystem type flag. Replace has_buggy_open flag with is_sunwnfs - flag. Replace has_buggy_fileid_dirinfo with is_unixfs flag. - (fs_info::got_fs): New private method. - (fs_info::has_buggy_open): New explicit implementation. - (fs_info::has_buggy_fileid_dirinfo): Ditto. - * mount.cc (fs_info::update): Optimize filesystem checks for speed. - * winsup.h (IMPLEMENT_STATUS_FLAG): Change write accessor to return - value just set. - -2009-07-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (GET_RESOURCE_INFO): Remove. - (thread_netdrive): Drop GET_RESOURCE_INFO case. - (fhandler_netdrive::exists): Use GET_RESOURCE_OPENENUM info class - to check for existance. - -2009-07-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Remove useless - alloca. - -2009-07-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Only fix up UNC path in win32 so as not - to overwrite incoming path. - -2009-07-14 Corinna Vinschen <corinna@vinschen.de> - - Throughout avoid having to initialize constant UNICODE_STRINGs. - * globals.cc: Define constant UNICODE_STRINGs and store in .rdata - section. - * fhandler_disk_file.cc: Throughout, use readonly UNICODE_STRINGs - rather then initializing local UNICODE_STRING variable where - applicable. - * fhandler_mem.cc (fhandler_dev_mem::open): Ditto. - * flock.cc (inode_t::inode_t): Ditto. - * mmap.cc: Ditto. - * syscalls.cc: Ditto. - * mount.cc (fs_info::update): Ditto. - * path.cc: Ditto. - - * ntdll.h (RtlEqualUnicodePathPrefix): Redefine to take prefix as - UNICODE_STRING. - (RtlEqualUnicodePathSuffix): Redefine to take suffix as UNICODE_STRING. - * fhandler_disk_file.cc: Accommodate throughout. - * mount.cc (fs_info::update): Ditto. - * path.cc (cwdstuff::set): Ditto. - * syscalls.cc: Ditto. - -2009-07-14 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (active_codepage): Remove. - -2009-07-12 Christopher Faylor <me+cygwin@cgf.cx> - - * how-spawn-works.txt: Add "out of date" note. - * how-vfork-works.txt: Ditto. - -2009-07-12 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in: Don't do anything special with any RCS directories. - - * ntdll.h (PROCESSINFOCLASS): Remove unneeded trailing comma. - - * pinfo.cc (_pinfo::dup_proc_pipe): Remove unneeded assignment. - - * sigproc.cc (sig_send): Don't send signal to myself if this is an exec - stub. - -2009-07-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Don't use - FileAllInformation info class since it needs a big buffer. Add a - comment. - -2009-07-07 Dave Korn <dave.korn.cygwin@gmail.com> - - * winbase.h (ilockexch): Avoid making 'ret' volatile. - (ilockcmpexch): Likewise. - -2009-07-07 Dave Korn <dave.korn.cygwin@gmail.com> - - * Makefile.in (DLL_OFILES): Add libstdcxx_wrapper.o - (libstdcxx_wrapper_CFLAGS): Add flags for new module. - (_cygwin_crt0_common_STDINCFLAGS): Define per-file override. - (libstdcxx_wrapper_STDINCFLAGS, cxx_STDINCFLAGS): Likewise. - * cxx.cc: Include "cygwin-cxx.h". - (operator new): Tweak prototype for full standards compliance. - (operator new[]): Likewise. - (operator new (nothrow)): New fallback function. - (operator new[] (nothrow), operator delete (nothrow), - operator delete[] (nothrow)): Likewise. - (default_cygwin_cxx_malloc): New struct of pointers to the above, - for final last-resort fallback default. - * cygwin-cxx.h: New file. - (struct per_process_cxx_malloc): Define. - (default_cygwin_cxx_malloc): Declare extern. - * cygwin.din (__wrap__ZdaPv): Export new wrapper. - (__wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv, - __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj, - __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj, - __wrap__ZnwjRKSt9nothrow_t): Likewise. - * globals.cc (__cygwin_user_data): Init newly-repurposed 'forkee' - field (now 'cxx_malloc') to point to default_cygwin_cxx_malloc. - * libstdcxx_wrapper.cc: New file. - (__wrap__ZdaPv, __wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv, - __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj, - __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj, - __wrap__ZnwjRKSt9nothrow_t): Define wrapper functions for libstdc++ - malloc operators and their overrides. - * winsup.h (default_cygwin_cxx_malloc): Declare extern. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/cygwin.h (struct per_process_cxx_malloc): Forward - declare here. - (struct per_process::forkee): Rename and repurpose from this ... - (struct per_process::cxx_malloc): ... to this. - * lib/_cygwin_crt0_common.cc: Include cygwin-cxx.h. - (WEAK): Define shorthand helper macro. - (__cygwin_cxx_malloc): Define and populate with weak references - to whatever libstdc++ malloc operators will be visible at final - link time for Cygwin apps and dlls. - (_cygwin_crt0_common): Always look up cygwin DLL's internal - per_process data, and don't test for (impossible) failure. Inherit - any members of __cygwin_cxx_malloc that we don't have overrides - for from the DLL's default and store the resulting overall set of - overrides back into the DLL's global per_process data. - -2009-07-07 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Fix typo. - -2009-07-06 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in (clean): Clean generated files in srcdir. - * tlsoffsets.h: Regenerate. - -2009-07-06 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::remove): Avoid closing a NULL handle. - -2009-07-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Convert wsabuf - and wsacnt to references. Fix handling of WSAEMSGSIZE. - -2009-07-06 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (struct _local_storage): Add thread storage pointers for - memory used by socket select functions. Combine them into a single - struct select. - * cygtls.cc: Accommodate above change throughout. - (_cygtls::init_thread): Drop initalizing of sockevt to - INVALID_HANDLE_VALUE. - (_cygtls::fixup_after_fork): Reset sockevt to NULL. - (_cygtls::remove): Don't use sockevt value to bail out prematurely. - Set sockevt to NULL. Free malloced select members. - * select.h (struct select_socket_info): Drop max_w4 member. - * select.cc (thread_socket): Use INFINITE timeout value if number of - objects to wait for is <= MAXIMUM_WAIT_OBJECTS. Use num_w4 member - of select_socket_info struct rather than dropped max_w4. - (init_tls_select_info): New inline function to initialize TLS select - members. - (start_thread_socket): Just call init_tls_select_info to initialize TLS - select members and use them later on. - (socket_cleanup): Don't free select_socket_info pointer members since - they are thread local now. - -2009-07-06 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (handle_to_fn): Detect failing NtQueryObject. - -2009-07-06 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Delete stray CR. - -2009-07-05 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc: Change workstation -> windows station - throughout. - -2009-07-04 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (SetParent): Add new import. - * fhandler.h (fhandler_console::create_invisible_console): Declare new - function. - (create_invisible_console_workaround): Ditto. - * fhandler_console.cc (fhandler_console::create_invisible_console): - Define new function. - (create_invisible_console_workaround): Ditto. Add too much code to - deal with broken Windows 7. Use a helper app to start an invisible - console window. - (fhandler_console::need_invisible): Reorganize to use helper functions - to create invisible console. - - * spawn.cc (spawn_guts): Avoid zeroing already zeroed fields in si. - -2009-07-04 Dave Korn <dave.korn.cygwin@gmail.com> - - * autoload.cc (AttachConsole): Correct size of args. - -2009-07-03 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (jit_debug): New global. - (initial_env): Set jit_debug when we are automatically starting a gdb - process. - * dtable.cc (dtable::get_debugger_info): Don't tty tricks when we are - being debugged by our own captive gdb, as determined by jit_debug == - true. - (dtable::init_std_file_from_handle): Detect errors when initializing a - tty early rather than at random points later. - * fhandler.h (fhandler_*::init): Return int to indicate - success/failure. - * fhandler.cc (fhandler_base::init): Reflect change in return value. - * pipe.cc (fhandler_pipe::init): Ditto. - (fhandler_pipe::create_selectable): Don't say we're retrying when we - aren't. - * fhandler_console.cc (fhandler_console::init): Ditto. Return - success/failure. - * fhandler_serial.cc (fhandler_serial::init): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::init): Ditto. - (fhandler_tty_slave::open): Make debugging output more detailed. - * tty.cc (tty_list::terminate): Don't close I/O handles before all - slaves have checked in. - (tty::slave_alive): Make a non-inlined function. Check if tty pipe - handles can be created as an additional exists check. - * tty.h (tty::slave_alive): Just define here. - -2009-07-03 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Add fpurge and mkstemps to BSD list. - -2009-07-03 Eric Blake <ebb9@byu.net> - - * cygwin.din (fpurge, mkstemps): New exports. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * mktemp.cc (_gettemp): Add parameter. - (mkstemps): New function. - (mkstemp, mkdtemp, mktemp): Adjust clients. - -2009-07-03 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Fix typo in comment. - (ShowWindowAsync): Define. - (AttachConsole): Define. - * fhandler_console.cc (fhandler_console::need_invisible): Add band-aid - for Windows 7 AllocConsole bug. - -2009-07-01 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_xp_ifs): Fix typo in comment. - -2009-07-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_socket): Add class members and methods - to store and retrieve the SO_RCVBUF and SO_SNDBUF sizes. - * fhandler_socket.cc (fhandler_socket::dup): Duplicate new members. - (fhandler_socket::send_internal): Check for SO_SNDBUF size and - restrict send to 1 byte less per KB 823764. Leave loop immediately - if WSASendMsg has been used. - * net.cc (fdsock): Change comment again. Set buffer sizes to 65536. - Store values in fhandler_socket. - (cygwin_setsockopt): Store SO_RCVBUF and SO_SNDBUF sizes in - fhandler_socket. - (cygwin_sendto): Drop call to sig_dispatch_pending. - (cygwin_recvfrom): Ditto. - (cygwin_recvmsg): Ditto. - (cygwin_sendmsg): Ditto. - -2009-06-30 Christopher Faylor <me+cygwin@cgf.cx> - - * select.h: New file split from fhandler.h. - (select_record::select_record): Define do-nothing constructor for "new" - to avoid gratuitous zeroing. - (select_info): New base class. - (select_pipe_info): New class with methods for dealing with pipes. - (select_socket_info): New class with methods for dealing with sockets. - (select_serial_info): Dummy class for serial. - (select_mailslot_info): Dummy class for mailslots. - (select_stuff): Define device_specific_* as actual classes rather than - void *. - * dtable.h (dtable::select_read): Accommodate return value change to - 'bool' and argument change to "select_stuff". - (dtable::select_write): Ditto. - (dtable::select_except): Ditto. - * dtable.cc (dtable::select_read): Accommodate return value change to - 'bool' and argument change to "select_stuff". - (dtable::select_write): Ditto. - (dtable::select_except): Ditto. - * fhandler.h: Excise select-related classes. - (fhandler_*::select_read): Change argument to select_stuff. - (fhandler_*::select_write): Ditto. - (fhandler_*::select_except): Ditto. - * select.cc (UNIX_FD_ZERO): Use memset rather than bzero. - (select_stuff::test_and_set): Change return type to bool. Allocate - select_record on entry and let fhandler_*::select_* operate on the - start.next field of select_stuff. - (pipeinf): Delete. - (select_pipe_info::select_pipe_info): New constructor. Allocates event - for controlling pipe waits. - (select_pipe_info::~select_pipe_info): New destructor. Destroy event. - Stop thread. - (select_pipe_info::add_watch_handle): New function. - (thread_pipe): Wait for the hEvent part of any overlapped pipes before - peeking. - (start_thread_pipe): Don't allocate device_specific_pipe stuff here. - Assume that it has been allocated earlier. - (pipe_cleanup): Rely on select_pipe_info destructor to clean up pipe - paraphenalia. - (fhandler_*::select_*): Derive select_record from new select_stuff - argument. - (fhandler_pipe::select_*): Ditto. Allocate pipe-specific field if not - already allocated. - (serialinf): Delete. - (thread_serial): serialinf -> select_serial_info. - (fhandler_base::ready_for_read): Rewrite to accommodate change in - argument to fhandler_*::select_*. - (socketinf): Delete. - (thread_socket): socketinf -> select_socket_info. - (mailslotinf): Delete. - (thread_mailslot): mailslotinf -> select_mailslot_info. - -2009-06-30 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::has_ongoing_io): Accept an argument - indicating whether the overlapped event should be tested. - (fhandler_base::read_overlapped): Pass is_overlapped state to - has_ongoing_io. - (fhandler_base::write_overlapped): Ditto. - * fhandler.h (fhandler_base::has_ongoing_io): Accommodate argument - change. - * select.cc (peek_pipe): Ditto. - -2009-06-30 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Set default socket buffer sizes to 65520. Change - comment accordingly. - * fhandler_socket.cc (fhandler_socket::send_internal): Set maximum - send size to 65520 as well. - -2009-06-29 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (peek_pipe): Turn on (temporarily?) the experimental code - which tries to determine when a pipe is writable. - -2009-06-28 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (peek_pipe): Use has_ongoing_io() to determine if the pipe - is ready for writing rather than performing brute-force checks. - -2009-06-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::has_ongoing_io): Declare new function. - * fhandler.cc (fhandler_base::has_ongoing_io): Define new function. - (fhandler_base::read_overlapped): Use has_ongoing_io to avoid writing - when handle has not completed last I/O. - (fhandler_base::write_overlapped): Ditto. - * select.cc (peek_pipe): Be more careful about accessing hEvent field - from get_overlapped(). - -2009-06-28 Christopher Faylor <me+cygwin@cgf.cx> - - * gendef (cleanup): Rename from 'nocr'. Remove comments and trailing - spaces. - * cygwin.din: Add long-needed comment describing what - dll_crt0__FP11per_process demangles to. - - * select.cc (peek_pipe): Flag handle as not ready for write if event is - not signalled. - * fhandler.cc (fhandler_base::setup_overlapped): Establish event as - already signalled. - (fhandler_base::wait_overlapped): Don't reset event after we've - successfully waited. MSDN documentation says that this happens - automatically after a WriteFileEx/ReadFileEx. - -2009-06-26 Corinna Vinschen <corinna@vinschen.de> - - * wincap.h (wincaps::has_broken_alloc_console): New element. - * wincap.cc: Implement above element throughout. - -2009-06-25 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (lsaauth): Close unused handle. - (lsaprivkeyauth): Ditto. - -2009-06-23 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_server_groups): Ignore errors from - get_user_local_groups. - -2009-06-22 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Don't run additional check for Win32 - incompatible CWD if newargv.fixup bailed out already. - (av::fixup): Check shell scripts for executability. - -2009-06-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (chdir): Check error conditions first. - -2009-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg - as NO_COPY. - -2009-06-16 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::read_overlapped): Use a better variable - name. - -2009-06-16 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::read_overlapped): Preserve len when - looping due to received signal. - -2009-06-15 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_flags): New static function to generate interface flags - value. - (get_ipv4fromreg_ipcnt): New static function to fetch number of - configured IPv4 addresses for a given NIC from registry. - (get_ipv4fromreg): New static function to fetch configured IPv4 - addresses for a given NIC from registry. - (get_friendlyname): New static function to generate friendly name. - (get_hwaddr): New static function to copy hardware address. - (get_xp_ifs): Restructure slightly. Add code to generate IPv4 entries - entries for interfaces which are disconnected. - -2009-06-14 Christopher Faylor <me+cygwin@cgf.cx> - - * errno.cc (errmap): Add mapping for ERROR_IO_INCOMPLETE. - * fhandler.cc (fhandler_base::fcntl): Fix comment. - (fhandler_base::wait_overlapped): Accept an optional len parameter. - Use the len parameter when WriteFile fails with ERROR_IO_PENDING. Make - debug output less alarming. - (fhandler_base::write_overlapped): Pass len to wait_overlapped. - * fhandler.h (fhandler_base::wait_overlapped): Add an optional argument - denoting the number of characters intended to be written. - - * fhandler_tty.cc (fhandler_pty_master::close): Don't close archetype - handles when cygwin is still initializing since the handles aren't - actually opened at that point. - -2009-06-14 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (time2): Take another stab at fixing a compiler warning. - -2009-06-14 Christopher Faylor <me+cygwin@cgf.cx> - - * localtime.cc (time2): Take a stab at fixing a compiler warning. - -2009-06-14 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Honor nonblocking flag - for writes. Don't reset event handle when we see a ERROR_IO_PENDING. - - * sigproc.cc (stopped_or_terminated): Use bool constants for - consistency. - - * wait.cc (wait4): Remove nonsensical comment. - -2009-06-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::recv_internal): Set namelen - pointer to NULL if name pointer is NULL. Explain why. - -2009-06-12 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (time2): Change "spring gap" to "spring forward gap" - in comment. - -2009-06-12 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (time2): Add workaround for spring forward gap problem. - Add explaining comment. - -2009-06-12 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (SUBLIBS): Add librt.a. - (librt.a): New rule to build librt.a. - -2009-06-12 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (check_path): Fix typo in comment. Align naming - convention rules to Linux. Handle backslash same as slash. Add - comment. - -2009-06-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSystemTimes): Remove. - * fhandler_proc.cc (format_proc_uptime): Use global system_info rather - than retrieving a local copy of the SYSTEM_INFO. Drop call to - GetSystemTimes and retrieve SystemPerformanceInformation on all systems - again with buffer size big enough for 64 bit systems. - (format_proc_stat): Use global system_info rather than retrieving a - local copy of the SYSTEM_INFO. Retrieve SystemPerformanceInformation - with buffer size big enough for 64 bit systems. - -2009-06-08 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSystemTimes): Define. - * fhandler_proc.cc (format_proc_uptime): Use GetSystemInfo to retrieve - processor count. Use GetSystemTimes when available to retrieve system - idle time. Improve debug output. - (format_proc_stat): Use GetSystemInfo to retrieve processor - count. Improve debug output. Ignore if SystemPerformanceInformation - returns error. Explain why. - -2009-06-08 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (frok::parent): Remove ancient code erroneously flushing - stdout. - -2009-06-08 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (save_errno::~save_errno): Set errno directly to avoid - flooding debug output. - -2009-06-08 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Return with error set to ENOENT if - STATUS_NO_MEDIA_IN_DEVICE is returned. - -2009-06-07 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.h (mini_cygheap): New struct. - (init_cygheap): Inherit locale field via mini_cygheap. - * cygheap.cc (cygheap_at_start): Define new variable. - (cygheap): Initialize as cygheap_at_start so that locale information is - always available. - (cygheap_init): Initialize cygheap iff it is set to cygheap_at_start. - * shared_info.h (memory_init): Accommodate argument change. - * memory.cc (memory_init): Accept an argument indicating whether - cygheap should be initialized or not. - * dcrt0.cc (child_info_fork::handle_fork): Pass false to memory_init(). - (child_info_spawn::handle_spawn): Ditto. - (dll_crt0_0): Pass true to memory_init when not forking or execing. - - * cygheap.h (cygheap_types::HEAP_2_DLL): New enum. - * dll_init.h (dll): Remove unused namelen field. - (dll_list::load_after_fork): Accommodate change in arguments. - * dll_init.cc (dll_list::alloc): Allocate dll information in the cygwin - heap. - (dll_list::detach): Free dll information from the cygwin heap. - (dll_list::load_after_fork): Use dll information in the cygwin heap - directly rather than querying parent. - * fork.cc (frok::first_dll): Delete. - (frok::child): Don't report on first_dll. Don't pass it to - load_on_fork. - (frok::parent): Don't set first_dll. - (fork): Ditto. - -2009-06-06 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::alloc): Allocate memory using a section - object. Explain why. Drop call to GetSystemInfo, rather call - getpagesize to get allocation granularity. Only align to allocation - granularity under WOW64. Use roundup2 to align. - (dll_list::detach): Call NtUnmapViewOfSection instead of VirtualFree. - -2009-06-06 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Use NtUnmapViewOfSection instead of UnmapViewOfFile - throughout for symmetry. - (fhandler_dev_mem::munmap): Use correct process handle in call to - NtUnmapViewOfSection. - -2009-06-06 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.h (struct dll): Set size of name element to ANYSIZE_ARRAY. - * dll_init.cc: Fix formatting. - (dll_list::alloc): Only allocate as much memory for struct dll as - necessary for given DLL name. - (dll_list::load_after_fork): Only read a single page of parent memory. - Only read more if namelen indicates that it's necessary. - -2009-06-05 Dave Korn <dave.korn.cygwin@gmail.com> - - * winbase.h (ilockexch): Fix asm constraints. - (ilockcmpexch): Likewise. - -2009-06-05 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (heap_init): Fix typo in comment. - -2009-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_clipboard.cc: Avoid calling system_printf. - (set_clipboard): Add basic error checking. Set errno here. Per MSDN, - don't call GlobalFree on data block transferred to clipboard. - (fhandler_dev_clipboard::write): Drop setting errno after call to - set_clipboard. - (fhandler_dev_clipboard::read): Add basic error checking. Simplify code. - -2009-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (set_console_title): Convert title string to - wchar_t and call SetConsoleTitleW. - -2009-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Allow Ctrl-Space to - emit a NUL byte. - -2009-06-04 Dave Korn <dave.korn.cygwin@gmail.com> - - * thread.cc (__cygwin_lock_lock): Delete racy optimisation. - (__cygwin_lock_unlock): Likewise. - -2009-06-03 IWAMURO Motnori <deenheart@gmail.com> - - * strfuncs.cc (sys_cp_mbstowcs): Fix condition. - -2009-06-03 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_wcstombs): Implement reverse functionality - of the change to sys_cp_mbstowcs from 2009-05-30. - (sys_cp_mbstowcs): Slightly reformat. Fix comment to accommodate - change to sys_cp_wcstombs. Don't write to *ptr if dst is NULL. - -2009-06-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Convert Alt-Backspace - to \033\177 or to \377 dependent on the setting of dev_state->metabit. - -2009-06-02 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Don't call set_exec for files on "noacl" - mount points. - -2009-05-30 Christopher Faylor <me+cygwin@cgf.cx> - - * strfuncs.cc (sys_cp_mbstowcs): Treat src as unsigned char *. Convert - failure of f_mbtowc into a single malformed utf-16 value. - -2009-05-30 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin/include/sys/termios.h: Make default erase character "^?". - -2009-05-30 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (fhandler_console::read): Convert backspace key - to DEL. - -2009-05-29 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (cwdstuff::set): Rewrite previous change to properly test the - end of the buffer. - -2009-05-28 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash. - -2009-05-20 Eric Blake <ebb9@byu.net> - - * net.cc (gethostby_helper): Use correct signedness. - -2009-05-18 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::add_item): Avoid using any-old '/' as - indicating root. - -2009-05-18 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::got_usr_bin): Mark as NO_COPY. - (mount_info::got_usr_lib): Ditto. - (mount_info::root_idx): Ditto. - -2009-05-14 Corinna Vinschen <corinna@vinschen.de> - - * wchar.h (sys_mbstowcs): Add missing __stdcall attribute. - -2009-05-14 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_init): Set Cygwin default locale values. - * cygheap.h (struct cygheap_locale): New structure. - (struct user_heap_info): Add cygheap_locale member locale. - * dcrt0.cc (dll_crt0_1): Revert to calling _setlocale_r so that only - the applications locale is reverted to "C". - * environ.cc (environ_init): Remove unused got_lc variable. - * fhandler.h (class dev_console): Remove now unsed locale variables. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Remove - setting dev_console's locale members. - (dev_console::con_to_str): Use internal locale settings. Default to - __ascii_wctomb if charset is "ASCII". - (fhandler_console::write_normal): Ditto. - * strfuncs.cc (__ascii_wctomb): Drop declaration. - (__db_wctomb): Use fixed value 2 instead of not - necessarily matching MB_CUR_MAX. - (__eucjp_wctomb): Use 3 instead of MB_CUR_MAX. - (sys_cp_wcstombs): Remove special case for "C" locale. - (sys_wcstombs): Implement here. Use internal locale data stored on - cygheap. - (sys_cp_mbstowcs): Remove special case for "C" locale. - (sys_mbstowcs): Implement here. Use internal locale data stored on - cygheap. - * syscalls.cc (internal_setlocale): New function to set cygheap locale - data and to reset CWD posix path. - (setlocale): Just call internal_setlocale from here if necessary. - * wchar.h (__ascii_wctomb): Declare. - (sys_wcstombs): Don't define inline, just declare. - (sys_mbstowcs): Ditto. - -2009-05-14 Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::init): Remove MOUNT_CYGWIN_EXEC setting when - auto-mounting /usr/bin. - -2009-05-14 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (oopts): Add a no-op "auto" option. - (mount_info::create_root_entry): Set root dir to MOUNT_IMMUTABLE rather - than to MOUNT_OVERRIDE. - -2009-05-13 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me+cygwin@cgf.cx> - - * mount.cc (mount_info::got_usr_bin): Define. - (mount_info::got_usr_lib): Ditto. - (mount_info::root_idx): Ditto. - (mount_info::create_root_entry): Create root entry as immutable and - flag as automatic. - (mount_info::init): Remove "Huh? No /etc/fstab..." warning. - Unconditionally call from_fstab for user and system tables. Fill in - /usr/bin and /usr/lib if they have not been specified in /etc/fstab. - (oopts): Alphabetize. Add "override" option to allow overriding - immutable mount points. - (mount_info::add_item): Accommodate new MOUNT_IMMUTABLE flag intended - for root mount. - (mount_info::add_item): Detect "/usr/bin", "/usr/lib", and "/" and set - appropriate global state. - (fillout_mntent): Add ,auto to mount points added by Cygwin DLL. - (mount): Remove masking of MOUNT_SYSTEM. Allow user to shoot - themselves. Add comment. - * mount.h (mount_info::got_usr_bin): Declare. - (mount_info::got_usr_lib): Ditto. - (mount_info::root_idx): Ditto. - * include/sys/mount.h: Reformat enum. - Add MOUNT_{OVERRIDE,IMMUTABLE,AUTOMATIC}. - -2009-05-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cwdstuff): Convert to class. Make posix and dir private. - (cwdstuff::get_posix): New method. - (cwdstuff::reset_posix): New method. - * dcrt0.cc (dll_crt0_1): Call setlocale rather than _setlocale_r. - * environ.cc (environ_init): Ditto. Prefer "C" locale over current - codepage default locale. - * path.cc (chdir): Use cwdstuff::get_posix method instead of accessing - cwdstuff::posix directly. - (cwdstuff::set): Defer creating posix path to first usage. - (cwdstuff::get_posix): Create posix path if it's empty, and return it. - (cwdstuff::get): Create posix path if it's empty. - * strfuncs.cc (sys_cp_wcstombs): Use UTF-8 conversion in the "C" - locale. - (sys_cp_mbstowcs): Ditto. - * syscalls.cc (gen_full_path_at): Fetch CWD posix path locked. - (setlocale): Implement here. Reset CWD posix path. - -2009-05-09 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin/version.h (CYGWIN_VERSION_CYGWIN_CONV): New define. - -2009-05-09 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Add workaround for - Windows 7 64 bit issue. Add lengthy comment to explain what happens. - * wincap.h (wincaps::has_console_handle_problem): New element. - * wincap.cc: Implement above element throughout. - (wincap_7): New wincaps structure for NT 6.1 kernels. - (wincapc::init): Set has_console_handle_problem to false for 32 bit - systems. - -2009-05-09 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (str2uni_cat): Move from here... - * path.cc (str2uni_cat): ...to here. Simplify. Make static inline. - (get_nt_native_path): Use RtlAppendUnicodeToString rather than - str2uni_cat for constant strings for speed. - * security.h (str2uni_cat): Drop declaration. - -2009-05-08 Corinna Vinschen <corinna@vinschen.de> - IWAMURO Motonori <deenheart@gmail.com> - - * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value. - (sys_cp_mbstowcs): Ditto. - -2009-05-08 IWAMURO Motonori <deenheart@gmail.com> - - * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting - wide char to SO/UTF-8 sequence. - -2009-05-08 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/select.h: Guard definitions with __USE_W32_SOCKETS as - the accompanying fd_set definitions in newlib's sys/types.h. - -2009-05-06 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (fhandler_console::ioctl): Properly treat - TIOCLINUX argument as a char. - * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use coercion to properly - set char value. - -2009-05-06 Corinna Vinschen <corinna@vinschen.de> - - * libc/minires.c (scanline): Fix type in calls to ctype functions - to stay in unsigned char range for char values >= 0x80. - * regex/regcomp.c: Ditto, throughout. - * regex/regex2.h (ISWORD): Ditto. - -2009-05-06 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_init): Set umask to a sane default. - * uinfo.cc (cygheap_user::ontherange): Don't use HOMEDRIVE/HOMEPATH - to set HOME. Default to /home/USERNAME. - -2009-05-03 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (set_file_sd): Drop using FILE_OPEN_FOR_RECOVERY flag in - call to NtOpenFile. - * exceptions.cc (open_stackdumpfile): Ditto in call to NtCreateFile. - * fhandler.cc (fhandler_base::open): Ditto. Simplify setting - create_options. - - * mount.cc (fs_info::update): Recognize offline storage. - (fillout_mntent): Report UDF and offline storage. - * mount.h (class fs_info): Add is_csc_cache status flag. - -2009-05-04 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (fhandler_console::write_console): Eliminate - unneeded debugging output. - (fhandler_console::write_normal): Eliminate unneeded __seterrno. - -2009-05-04 Christopher Faylor <me+cygwin@cgf.cx> - - * libc/minires.c (scanline): Accommodate ctype changes which disallow - use of an unadorned char argument to is* macros. - * regex/regcomp.c: Ditto, throughout. - * regex/regex2.h (ISWORD): Ditto. - -2009-05-03 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_console::MAX_WRITE_CHARS): Declare. - (fhandler_console::write_replacement_char): Declare as inline. - (fhandler_console::write_console): Declare new function. - * fhandler_console.cc (fhandler_console::MAX_WRITE_CHARS): Define. - (handler_console::write_console): Define. - (fhandler_console::write_replacement_char): Define as inline. - (fhandler_console::write_normal): Use write_console when writing - buffers of unknown length. - -2009-04-26 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/socket.h: Define SOL_IPV6. - -2009-04-21 Corinna Vinschen <corinna@vinschen.de> - - * ctype.cc (__set_ctype): Copy exact part of the current active - character class array. - -2009-04-20 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lf_setlock): Handle border case which results in WFMO loop - exiting with ret == WAIT_TIMEOUT gracefully. Add a system_printf to - uncover other potential problems with WFMO loop. - -2009-04-18 Christopher Faylor <me+cygwin@cgf.cx> - - * mkimport: Specify .text for stub explicitly. - * speclib: Add a dummy '.idata$7' section referring to the dll - associated with the real import library. - -2009-04-18 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (globify): Only call mbtowc for non-ascii chars. - -2009-04-17 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (globify): Make multibyte-aware. - -2009-04-17 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (class inode_t): Add i_wait member and matching methods - wait(), unwait(), and waiting(). - (inode_t::inode_t): Initialize i_wait to 0. - (fhandler_disk_file::lock): Only remove node if no other thread is - waiting for a blocking lock. - (lf_setlock): Manipulate node->i_wait to signal that a thread is - waiting for a blocking lock in this node. - (lf_findoverlap): Reinstantiate SELF test as in original code. - -2009-04-16 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Just return a bool value. Drop - local path_conv in favor of getting it as parameter. Add local string - buffer instead of getting it as parameter. - (dlopen): Accommodate get_full_path_of_dll change. Fetch WCHAR Windows - path from path_conv variable and call LoadLibraryW. - -2009-04-16 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_LOCK_NOT_GRANTED): Define. - * syscalls.cc (unlink_nt): Handle STATUS_LOCK_NOT_GRANTED same as - STATUS_SHARING_VIOLATION. Add lengthy comment to explain why. - -2009-04-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::get_wide_win32_path): Allow relative paths. - (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative - paths to absolute paths if the relative pathname length exceeds - MAX_PATH. - -2009-04-15 Corinna Vinschen <corinna@vinschen.de> - - * libc/bsdlib.cc: Align copyright with upstream. - * libc/fnmatch.c: Ditto. - * libc/fts.c: Ditto. - * libc/inet_addr.c: Ditto. - * libc/inet_network.c: Ditto. - * libc/rcmd.cc: Ditto. - * libc/rexec.cc: Ditto. - -2009-04-14 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Really revert to using tempdir. - -2009-04-14 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Revert to using tempdir. - -2009-04-14 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzload): Implement setting __tzrule's offset member - using newlib's __gettzinfo () interface also when tzload returns - successfully. - -2009-04-13 Dave Korn <dave.korn.cygwin@gmail.com> - - * include/stdint.h (intptr_t): Remove long from type. - (uintptr_t): Likewise. - (INTPTR_MIN): Remove 'L' suffix. - (INTPTR_MAX, UINTPTR_MAX): Likewise. - -2009-04-12 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Initial stab at cleaning up temp files. More work needed. - * mkimport: Ditto. - -2009-04-12 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in (clean): Clean globals.h. - (LIBCOS): Depend on globals.h. - -2009-04-11 Christopher Faylor <me+cygwin@cgf.cx> - - * mkimport: New script to perform all operations necessary to create - libcygwin.a. - * rmsym: Delete. - * newsym: Delete. - * Makefile.in (toolopts): New variable which holds options relating to - binutils/gcc tools. - (speclib): Use toolopts. Add symbols to avoid copying to special - libraries. - (OBSOLETE_FUNCTIONS): Delete. - (NEW_FUNCTIONS): Change to represent an argument to new mkimport - script. - (libcygwin.a): Use only new mkimport script to create libcygwin.a. - Only rely on ${LIBCOS}. - (*/lib*.a): Simplify speclib dependencies. - (speclib): Accept toolchain options. Convert every argument to - absolute path. Simplify parsing of nm output. Accommodate new - exclude option. - -2009-04-11 Dave Korn <dave.korn.cygwin@googlemail.com> - - * include/stdint.h (INTPTR_MIN, INTPTR_MAX): Add 'L' suffix. - (WINT_MAX): Add 'U' suffix. - -2009-04-10 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Use a more robust method to derive full file path. - -2009-04-09 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Semi-revert to previous version but don't try to generate - well-formed import library. Instead, just extract appropriate symbols - and let later libcygwin.a on link line fill in the rest of the import - stuff. - * gendef: Hopefully no-op modification to allow easier post-processing - on symbol values. - -2009-04-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Use tmp_pathbuf buffer to allocate infobuf - rather than using the stack. - -2009-04-09 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Fix alignment of infobuf. - -2009-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchown): Catch an - error when changing the user account on a standalone Samba server. - Explain why. - * sec_acl.cc (setacl): Accommodate additional parameter to set_file_sd. - * sec_helper.cc (SECURITY_SAMBA_UNIX_AUTHORITY): Define. - (well_known_samba_unix_user_fake_sid): Define. - * security.cc (set_file_sd): Take additional parameter if ownership - should be changed. Restrict requested permissions accordingly. - (set_file_attribute): Accommodate additional parameter to set_file_sd. - * security.h (well_known_samba_unix_user_fake_sid): Declare. - (set_file_sd): Align declaration to above change. - -2009-04-07 Corinna Vinschen <corinna@vinschen.de> - - * include/stdint.h (int_least32_t): Define as int. - (uint_least32_t): Ditto, unsigned. - (int_fast16_t): Define as int. - (int_fast32_t): Ditto. - (uint_fast16_t): Ditto, unsigned. - (uint_fast32_t): Ditto. - (UINT32_MAX): Remove `L' long marker. - (UINT_LEAST32_MAX): Ditto. - (UINT_FAST16_MAX): Ditto. - (UINT_FAST32_MAX): Ditto. - (INT32_C): Ditto. - (UINT32_C): Ditto. - -2009-04-07 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc: Change WCHAR to wchar_t in multibyte<->widechar - conversion functions throughout. - * wchar.h: Ditto in declarations. Guard them __INSIDE_CYGWIN__. - -2009-04-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class dev_console): Add members con_mbtowc, con_wctomb, - and con_charset. - (dev_console::str_to_con): Take mbtowc function pointer and charset - as additional parameters. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize - aforementioned new members. Explain why. - (dev_console::con_to_str): Remove useless comment. Call new - sys_cp_wcstombs function rather than sys_wcstombs. - (dev_console::str_to_con): Take mbtowc function pointer and charset - as additional parameters. Call sys_cp_mbstowcs accordingly. - (fhandler_console::write_normal): Only initialize f_mbtowc and charset - once. Accommodate changed str_to_con. - * strfuncs.cc (sys_cp_wcstombs): Renamed from sys_wcstombs. Take - wctomb function pointer and charset as parameters. Use throughout. - (sys_cp_mbstowcs): Take wctomb function pointer and charset as - parameters instead of codepage. Remove matching local variables and - their initialization. - * wchar.h (ENCODING_LEN): Define as in newlib. - (__mbtowc): Use mbtowc_p typedef for declaration. - (wctomb_f): New type. - (wctomb_p): New type. - (__wctomb): Declare. - (__utf8_wctomb): Use wctomb_f typedef for declaration. - (sys_cp_wcstombs): Move declaration from winsup.h here. - (sys_wcstombs): Ditto. - (sys_wcstombs_alloc): Ditto. - (sys_cp_mbstowcs): Ditto. - (sys_mbstowcs): Ditto. - (sys_mbstowcs_alloc): Ditto. - * winsup.h: Move declaration of sys_FOO functions to wchar.h. Include - wchar.h instead. - -2009-04-06 Earl Chew <earl_chew@agilent.com> - - * libc/rexec.cc (ruserpass): Use fstat64 instead of fstat. - -2009-04-06 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc: Add comment to explain why we can't support JIS - for now. - (__db_wctomb): Alwaus use WC_NO_BEST_FIT_CHARS. - (__jis_wctomb): Just call __ascii_wctomb from here. - (__eucjp_wctomb): Convert to standalone implementation to fix up the - difference between eucJP and CP 20932 affecting JIS-X-0212 characters. - Explain. - (__kr_wctomb): Use codepage 949. - (__db_mbtowc): Reorder code slightly. Always use MB_ERR_INVALID_CHARS - in call to MultiByteToWideChar. Fix a problem with singlebyte - sequences. Fix a bug in '\0' handling. Reset state->__count on - successful return from non-zero state. - (__jis_mbtowc): Just call __ascii_mbtowc from here. - (__eucjp_mbtowc): Convert to standalone implementation to fix up the - difference between eucJP and CP 20932 affecting JIS-X-0212 characters. - (__kr_mbtowc): Use codepage 949. - (__set_charset_from_codepage): Handle codepage 20932 as eucJP. - -2009-04-05 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in: Use all compile options when calculating magic values. - * shared_info.h (CURR_SHARED_MAGIC): Revert erroneous value. - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - - * fhandler.h (acquire_output_mutex): Remove unneeded ';'. - (release_output_mutex): Ditto. - -2009-04-05 Christopher Faylor <me+cygwin@cgf.cx> - - * net.cc: Undefine NOERROR and DELETE to avoid compiler warnings. - * shared_info.h (CURR_SHARED_MAGIC): Update. - * spawn.cc (spawn_guts): Avoid copying one line command line argument - if it hasn't been filled out. - -2009-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Corinna Vinschen <corinna@vinschen.de> - - * include/asm/byteorder.h (__ntohl): Prototype before define to avoid - a warning with -Wmissing-prototypes. Use _ELIDABLE_INLINE macro from - _ansi.h. - (__ntohs): Ditto. - -2009-04-02 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (build_env): Fix length calculation of resulting - wide char environment string. - -2009-04-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/netdb.h: #include <inttypes.h>, <netinet/in.h>, - and <sys/socket.h> per SUSv3. - -2009-04-01 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_mbstowcs): Check if ASCII SO is followed by at - least two chars and the next byte is a valid UTF-8 start byte before - trying to convert the followup bytes as UTF-8 sequence. - -2009-03-31 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (struct shm_attached_list): Convert access type to ULONG. - (fixup_shms_after_fork): Fix comment. Use NtMapViewOfSection rather - than MapViewOfFileEx to recreate shared memory regions. Add function - name to api_fatal output. - (shmat): Use NtMapViewOfSection to create shared memory region - top-down. - -2009-03-31 Corinna Vinschen <corinna@vinschen.de> - - * ctype.cc: Remove implementation of ctype functions in favor of - pointer-based newlib implementation. - (_ctype_b): Declare. - (__ctype_cp): Move to newlib. Declare. - (__ctype_iso): Ditto. - (__set_ctype): Implement changing __ctype_ptr__. Only copy character - class data in applications built under older Cygwin. - * cygwin.din (__ctype_ptr__): Export. - * include/ctype.h: Remove in favor of newlib implementation. - * include/cygwin/config.h (__EXPORT): Define alongside __IMPORT. - * include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_OLD_CTYPE): - Define check for old vs. new ctype implementation. - Bump API minor number. - -2009-03-28 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in: Perform some minor cleanup. Revamp speclib handling. - * speclib: Rewrite to create libraries with dlltool rather than - attempting surgery on libcygwin.a. - -2009-03-27 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (inet_ntop6): Convert to lowercase hex digits on the fly. - -2009-03-27 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getaddrinfo): Check hints for non-NULL before - checking its content. - -2009-03-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_fifo): Rename read/write methods to - raw_read/raw_write. - * fhandler_fifo.cc: Ditto. - -2009-03-27 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (pathconf): Fix memory leak. - -2009-03-26 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_worker): Write target filename as UTF-16 string - with leading BOM marker. - (symlink_info::check_shortcut): If check for leading BOM marker - succeeds, read filename as UTF-16 string. - (symlink_info::check_sysfile): Ditto. - -2009-03-26 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/asm/byteorder.h (__ntohl): Align definition to ISO C99. - (__ntohs): Ditto. - -2009-03-26 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__set_charset_from_codepage): Revert to translating - codepage 936 to "GBK". - -2009-03-25 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_wcstombs): Don't convert ASCII SO into two - ASCII SO's. - -2009-03-25 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (environ_init): Break from locale loop after first hit. - * fhandler_console.cc (fhandler_console::write_normal): Print a SO - sequence using always valid Unicode chars. - -2009-03-25 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__kr_wctomb): Use codepage 51949 rather than 50949. - (__kr_mbtowc): Ditto. - (__set_charset_from_codepage): Ditto. Translate codepage 936 to - "GB2312" and drop the charset name "GBK". - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__kr_wctomb): Use codepage 50949 rather than 949. - (__kr_mbtowc): Ditto. - (__set_charset_from_codepage): Translate codepages 949 and 50949 to - "EUCKR" and drop the charset name "CP949". - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_mbstowcs): Don't read beyond src + nms. - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * shared_info.h (CURR_SHARED_MAGIC): Update. - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * wchar.h: Replace UINT with unsigned int. - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * wchar.h: Remove erroneous "C" specifier from extern declaration. - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * ctype.cc (_CTYPE_DATA_0_127): Add _B class to TAB character. - (__ctype_default): New character class array for default ASCII - character set. - (__ctype_iso): New array of character class array for ISO charsets. - (__ctype_cp): Ditto for singlebyte Windows codepages. - (tolower): Implement as distinct function to support any singlebyte - charset. - (toupper): Ditto. - (__set_ctype): New function to copy singlebyte character classes - corresponding to current charset to ctype_b array. - Align copyright text to upstream. - * dcrt0.cc (dll_crt0_1): Reset current locale to "C" per POSIX. - * environ.cc (set_file_api_mode): Remove. - (codepage_init): Remove. - (parse_thing): Remove "codepage" setting. - (environ_init): Set locale according to environment settings, or - to current codepage, before converting environment to multibyte. - * fhandler.h (fhandler_console::write_replacement_char): Drop argument. - * fhandler_console.cc (dev_console::str_to_con): Call sys_cp_mbstowcs - rather than MultiByteToWideChar. - (fhandler_console::write_replacement_char): Always print a funny - half filled square if a character isn't in the current charset. - (fhandler_console::write_normal): Convert to using __mbtowc - rather than next_char. - * fork.cc (frok::child): Drop call to set_file_api_mode. - * globals.cc (enum codepage_type) Remove. - (current_codepage): Remove. - * miscfuncs.cc (cygwin_wcslwr): Unused, dangerous. Remove. - (cygwin_wcsupr): Ditto. - (is_cp_multibyte): Remove. - (next_char): Remove. - * miscfuncs.h (is_cp_multibyte): Drop declaration. - (next_char): Ditto. - * strfuncs.cc (get_cp): Remove. - (__db_wctomb): New function to implement _wctomb_r functionality for - doublebyte charsets using WideCharToMultiByte. - (__sjis_wctomb): New function to replace unusable newlib function. - (__jis_wctomb): Ditto. - (__eucjp_wctomb): Ditto. - (__gbk_wctomb): New function. - (__kr_wctomb): Ditto. - (__big5_wctomb): Ditto. - (__db_mbtowc): New function to implement _mbtowc_r functionality for - doublebyte charsets using MultiByteToWideChar. - (__sjis_mbtowc): New function to replace unusable newlib function. - (__jis_mbtowc): Ditto. - (__eucjp_mbtowc): Ditto. - (__gbk_mbtowc): New function. - (__kr_mbtowc): New function - (__big5_mbtowc): New function - (__set_charset_from_codepage): New function. - (sys_wcstombs): Reimplement, basically using same wide char to multibyte - conversion as newlib's application level functions. Plus extras. - Add lengthy comment to explain. Change return type to size_t. - (sys_wcstombs_alloc): Just use sys_wcstombs. Change return type to - size_t. - (sys_cp_mbstowcs): Replace sys_mbstowcs, take additional codepage - argument. Explain why. Change return type to size_t. - (sys_mbstowcs_alloc): Just use sys_mbstowcs. Change return type to - size_t. - * wchar.h: Declare internal functions implemented in strfuncs.cc. - (wcscasecmp): Remove. - (wcsncasecmp): Remove. - (wcslwr): Remove. - (wcsupr): Remove. - * winsup.h (codepage_init): Remove declaration. - (get_cp): Ditto. - (sys_wcstombs): Align declaration to new implementation. - (sys_wcstombs_alloc): Ditto. - (sys_cp_mbstowcs): Add declaration. - (sys_mbstowcs): Define as inline function. - (sys_mbstowcs_alloc): Align declaration to new implementation. - (set_file_api_mode): Remove declaration. - * include/ctype.h (isblank): Redefine to use _B character class. - (toupper): Remove ASCII-only definition. - (tolower): Ditto. - -2009-03-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (str2buf2uni): Remove. - * security.h (str2buf2uni): Remove declaration. - -2009-03-24 Yaakov Selkowitz <yselkowitz@cygwin.com> - - * include/mntent.h: Remove declarations of nonexistant addmntent - and hasmntopt. Update and clarify the /etc/mtab comment. - -2009-03-23 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and - PUNICODE_STRING arguments. - (__small_vswprintf): Ditto. - -2009-03-23 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/byteorder.h (__constant_ntohs): Remove declaration. - (__constant_ntohl): Ditto. - -2009-03-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wordexp, wordfree. - * posix.sgml: Move them to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-22 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/sys/un.h: #include <string.h> for strlen. - -2009-03-19 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Revert patch from 2008-07-16. - -2009-03-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din: Export log2, log2f as functions. - * posix.sgml: Add them to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (lsaauth): Remove local definitions of struct - _TOKEN_LINKED_TOKEN and TokenLinkedToken in favor of definitions - from winnt.h. - (lsaprivkeyauth): As in lsaauth, fetch linked token if available and - return that in favor of default token. - -2009-03-15 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * errno.cc (_sys_errlist): Add ESTRPIPE. - -2009-03-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcsdup. - * posix.sgml: Add wcsdup to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-15 Corinna Vinschen <corinna@vinschen.de> - - * include/inttypes.h: Remove "l" size specifier from all 16 and 32 bit - definitions. - -2009-03-14 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (warn_msdos): Don't warn about MS-DOS filenames encountered - during initialization. - -2009-03-14 Corinna Vinschen <corinna@vinschen.de> - - * gendef: Remove STABS directives. - -2009-03-13 Corinna Vinschen <corinna@vinschen.de> - - * mktemp.cc: Remove STABS specific link-time warning. Align copyright - text to upstream. - -2009-03-13 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc: Fix lockf copyright to latest version. - -2009-03-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::isgood_inode): Move to be defined - earlier. - (get_ino_by_handle): Take additional path_conv argument, accommodate - throughout. Only use FileId if isgood_inode check is true. - (fhandler_base::open_fs): Simplify setting ino due to above change. - (readdir_get_ino): Make sure to return always a non-zero inode number. - (fhandler_disk_file::readdir): Always open file in dir with - FILE_OPEN_REPARSE_POINT so as not to open wrong file. - Drop call to isgood_inode here. - * path.cc (symlink_info::check): Call fs.update in case we're fetching - file information from call to NtQueryDirectoryFile. - -2009-03-12 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (fhandler_disk_file::lock): Don't test file open mode in - case of flock-type locks. Explain why. - -2009-03-12 Brian Ford <Brian.Ford@FlightSafety.com> - - * gethostby_helper: Fix typos in DEBUGGING case. - -2009-03-11 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcscasecmp, wcsncasecmp. - * posix.sgml: Move wcscasecmp, wcsncasecmp to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-11 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wscanf, fwscanf, swscanf, vwscanf, vfwscanf, - vswscanf. - * posix.sgml: Move fwscanf, swscanf, vwscanf, vfwscanf, vswscanf - to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::wait_for_events): Take additional - parameter "dontwait". - * fhandler_socket.cc (fhandler_socket::wait_for_events): Act as if the - socket is non-blocking if dontwait is true. - (fhandler_socket::recv_internal): Use incoming MSG_DONTWAIT flag to - set the wait_for_events dontwait parameter. - (fhandler_socket::send_internal): Ditto. Optimize code slightly. - * include/cygwin/socket.h (MSG_DONTWAIT): Define. - * include/cygwin/version.h: Bump API minor number. - -2009-03-09 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcsftime. - * posix.sgml: Move wcsftime to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-06 Pierre A. Humblet <pierre@phumblet.no-ip.org> - - * cygwin.din: Export gethostbyname2. - * net.cc: define _CYGWIN_IN_H and include resolv.h. - (realloc_ent): New function. - (dup_ent): Call realloc_ent. - (memcpy4to6): New function. - (dn_length1): New function. - (gethostby_helper): New function. - (gethostbyname2): New function. - * posix.sgml: Add gethostbyname2. - * include/cygwin/version.h: Bump API minor number. - * libc/minires.c (get_options): Look for "inet6" and apply bounds - to "retry" and "retrans". - (res_ninit): Set the default options at the beginning. - (dn_expand): Fix "off by one". - -2009-03-06 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wprintf, fwprintf, swprintf, vwprintf, vfwprintf, - vswprintf. Sort. - * posix.sgml: Move fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - to SUSv4 list. Sort SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-04 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (disable_dep): Disable. Explain why. - (dll_crt0_0): Disable calling disable_dep. Explain why. - -2009-03-03 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Include asm/byteorder.h. - (htonl): Move to end of file. Add comment to explain why. Align - definition to POSIX. Use related macro from asm/byteorder.h. - (ntohl): Ditto. - (htons): Ditto. - (ntohs): Ditto. - * include/asm/byteorder.h: Revert previous patch. - -2009-03-03 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/byteorder.h: Disable optimization when building - Cygwin network code. - -2009-02-26 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (dtable::select_read): Add ability to override fh. - * fhandler.h (fhandler_fifo::select_read): Declare new function. - (fhandler_fifo::select_write): Ditto. - (fhandler_fifo::select_except): Ditto. - * select.cc (peek_pipe): Treat certain classes of pipe errors as "no - data". - (fhandler_fifo::select_read): Define new function. - (fhandler_fifo::select_write): Ditto. - (fhandler_fifo::select_except): Ditto. - - * shared_info.h (CURR_SHARED_MAGIC): Update. - -2009-02-23 Sjors Gielen <mailinglist@dazjorz.com> - - * Makefile.in: Add DESTDIR functionality. - -2009-02-23 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_local_groups): Simplify LookupAccountName code. - -2009-02-20 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NetLocalGroupEnum): Remove. - (NetLocalGroupGetMembers): Remove. - (NetUserGetLocalGroups): Add. - * sec_auth.cc (is_group_member): Remove function. - (get_user_local_groups): Get user as string instead of as SID. - Call NetUserGetLocalGroups instead of NetLocalGroupEnum. Drop call - to is_group_member. - (get_server_groups): Call get_user_local_groups with user name instead - of user SID. - -2009-02-19 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc: Fix Copyright date. - -2009-02-19 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export mbsnrtowcs and wcsnrtombs. - * posix.sgml: Move mbsnrtowcs and wcsnrtombs to SUSv4 section. - * include/cygwin/version.h: Bump API minor number. - -2009-02-18 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export open_wmemstream. - * posix.sgml: Move open_wmemstream to SUSv4 section. - * include/cygwin/version.h: Bump API minor number. - -2009-02-16 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export reallocf. - * malloc_wrapper.cc( reallocf): New function. - * posix.sgml: Add reallocf to BSD section. - * include/cygwin/version.h: Bump API minor number. - * libc/fts.c: Remove erroneous reallocf definition. - -2009-02-16 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcstoimax, wcstoumax. - * posix.sgml: Move wcstoimax and wcstoumax to SUSv4 section. - * include/inttypes.h: Declare wcstoimax and wcstoumax. - * include/cygwin/version.h: Bump API minor number. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcsnlen. - * posix.sgml: Move wcsnlen to SUSv4 section. - * include/cygwin/version.h: Bump API minor number. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (_getenv_r): New function. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Move dirfd to SUSv4 section. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Move interfaces deprecated in SUSv4 to deprecated - interfaces section. Move interfaces added in SUSv4 to SUSv4 - section or, if unimplemented, add them to the unimplemented interfaces - section. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Merge SUSv3 and SUSv4 section into a single SUSv4 section. - Move Solaris calls now in SUSv4 to SUSv4 section. Rename unimplemented - section to refer to SUSv4. Add note about missing interfaces. - Move wcstod and wcstof from unimplemented to SUSv4 section. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab_line): Make cygdrive posix=0 by - default as documented. - -2009-02-13 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcstod and wcstof. - * include/cygwin/version.h: Bump API minor number. - -2009-02-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (open): Handle O_DIRECTORY flag. - * include/fcntl.h: Add SUSv4 flags O_DIRECTORY, O_EXEC and O_SEARCH. - * include/cygwin/version.h: Bump API minor number. - -2009-02-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::open): Fix format. Add - code to allow to read disk and CD/DVD devices in full length. Explain - why. - (fhandler_dev_floppy::raw_read): Add current position to debug output. - - * include/sys/sched.h: New stub file to override newlib file with - clashing definitions. - -2009-02-05 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export wcstok. - * posix.sgml: Move wcstok from unimplemented to susv3. - * include/cygwin/version.h: Bump API minor number. - -2009-02-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (proc_tab): Add entry for mounts symlink. - (format_proc_mounts): New function to implement mounts symlink. - * fhandler_process.cc (process_tab): Add entry for mounts file. - (format_process_mounts): New function to implement mounts file. - -2009-02-04 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Disable generating default permission entries - for directories. - -2009-01-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix inode number - evaluation for faked "." entry. - - * mount.cc (fs_info::update): Move setting of is_cdrom after checking - for caseinsensitivity. Recognize UDF in is_cdrom case and set - caseinsensitive flag according to UDF brokenness determined by OS. - Add comment to explain why. - * mount.h (class fs_info): Add is_udf status flag. - * path.cc (symlink_info::check): Add workaround for UDF bug in - terms of casesensitivity on certain OSes. - * wincap.h (wincaps::has_broken_udf): New element. - * wincap.cc: Implement above element throughout. - -2009-01-27 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::wait_overlapped): Set bytes to -1 on - EINTR or real error. - (fhandler_base::write_overlapped): Assume that bytes_written will - contain proper error value. - * pipe.cc (fhandler_pipe::fhandler_pipe): Set uninterruptible_io since - signals are handled by pipe functions now. - -2009-01-26 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (shared_name): New function for WCHAR names. - (open_shared): Take name parameter as WCHAR. Accommodate throughout. - * shared_info.h ((CURR_SHARED_MAGIC): Redefine. - (shared_name): Add declaration for function taking a WCHAR name. - (open_shared): Change declaration according to above change. - * pinfo.cc (pinfo::init) : Accommodate above change. - -2009-01-26 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgrgid_r): Simplify code by using stpcpy. - (getgrnam_r): Ditto. - * passwd.cc (getpwuid_r32): Simplify code by using stpcpy. - (getpwnam_r): Ditto. - -2009-01-26 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::load): Open file with FILE_OPEN_FOR_BACKUP_INTENT - flag. - -2009-01-24 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab): Open fstab file with - FILE_OPEN_FOR_BACKUP_INTENT flag. - -2009-01-23 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vsprintf): Use already available buffer tmp - in wfillin case. - -2009-01-22 Christopher Faylor <me+cygwin@cgf.cx> - - * select.cc (peek_serial): Add hack to allow proper operation with - com0com driver. - -2009-01-21 Corinna Vinschen <corinna@vinschen.de> - - Remove USE_SERVER define. Accommodate throughout. - * configure.in: Remove --enable-server option. - * configure: Regenerate. - * environ.cc: Remove CYGWIN=server setting. - -2009-01-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc: Reorganize global procnet content data into a - new struct virt_tab_t. Accommodate throughout. - - * fhandler.h: Fix copyright dates. - * fhandler_process.cc: Ditto. - * fhandler_registry.cc: Ditto. - -2009-01-20 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (FH_PROCESSFD): New device type. - * dtable.cc (build_fh_pc): Add case for FH_PROCESSFD. - * fhandler.h (class fhandler_virtual): Drop bufalloc member. - * fhandler_virtual.h: New header. - * fhandler_proc.cc: Remove types proc_type_t and proc_tab_t in favor - of types virt_type_t and virt_tab_t from fhandler_virtual.h. - Change prototypes of format_XXX functions accordingly. - (proc_tab): Drop size member info. - (fhandler_proc::fill_filebuf): Don't allocate filebuf here. Allocate - it in the format_XXX functions. - * fhandler_process.cc: Reorganize global process content data into a - new struct virt_tab_t. Accommodate throughout. - (format_process_winexename): New function. - (format_process_winpid): New function. - (format_process_exename): New function. - (format_process_root): New function. - (format_process_cwd): New function. - (format_process_cmdline): New function. - (format_process_ppid): New function. - (format_process_uid): New function. - (format_process_pgid): New function. - (format_process_sid): New function. - (format_process_gid): New function. - (format_process_ctty): New function. - (format_process_fd): New function. - * fhandler_procnet.cc (fhandler_procnet::fill_filebuf): Don't use - bufalloc. - * fhandler_registry.cc (fhandler_registry::fill_filebuf): Define - bufalloc locally. - * fhandler_virtual.cc (fhandler_virtual::fhandler_virtual): Drop - initialization of bufalloc. - (fhandler_virtual::dup): Drop copying bufalloc. - -2009-01-20 Corinna Vinschen <corinna@vinschen.de> - - * thread.h (struct pthread_rwlock::RWLOCK_READER): Add counter n. - * thread.cc (pthread_rwlock::rdlock): If a thread already owns a - read lock, just count the number of locks for it, per SUSv4. - (pthread_rwlock::tryrdlock): Ditto. - (pthread_rwlock::unlock): If a thread has more than one concurrent - read locks, just count down. - -2009-01-20 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (WSAIoctl): Reintroduce. - (WSASendMsg): Define. - * fhandler.h (class fhandler_socket): Change definition of recv_internal - and send_internal to take WSAMSG pointer as parameter. - * fhandler_socket.cc (WSAID_WSARECVMSG): Define. - (LPFN_WSARECVMSG): Define. - (WSASendMsg): Declare. - (get_ext_funcptr): New function to fetch address of WSARecvMsg. - (fhandler_socket::recv_internal): Take just a LPWSAMSG parameter. - Change code accordingly. If control information is requested, - fetch address of WSARecvMsg and use that instead of WSARecvFrom. - (fhandler_socket::recvfrom): Change return type to ssize_t as - declared in fhandler.h. Accommodate changes to recv_internal. - (fhandler_socket::recvmsg): Ditto. Make sure that control information - is only requested if system, address family, and socket type support it. - (fhandler_socket::send_internal): Take just a LPWSAMSG parameter - and the flags. Change code accordingly. If control information is - provided, use WSASendMsg instead of WSASendTo. - (fhandler_socket::sendto): Drop useless comment. Accommodate changes - to send_internal. - (fhandler_socket::sendmsg): Ditto. Make sure that control information - is only provided if system, address family, and socket type support it. - * wincap.h (wincaps::has_recvmsg): New element. - (wincaps::has_sendmsg): New element - * wincap.cc: Implement above elements throughout. - * include/cygwin/socket.h (CMSG_ALIGN): Phrase in terms of alignment - of type struct cmsghdr. - -2009-01-17 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Fix condition checking if anonymous mapping beyond - EOF is required. - -2009-01-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc: Reorganize global proc content data into a new - struct proc_tab_t. Accommodate throughout. - (format_proc_version): New function. - (format_proc_loadavg): New function. - (format_proc_self): New function. - - * resource.cc (getrlimit): Return correct rlim_max value for - RLIMIT_NOFILE. - -2009-01-16 Corinna Vinschen <corinna@vinschen.de> - - * Fix copyright dates. - -2009-01-13 Corinna Vinschen <corinna@vinschen.de> - - * libc/getopt.c (parse_long_options): Use fix from NetBSD's getopt - to avoid false ambiguities. - -2009-01-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (enum bin_status): New type. - (try_to_bin): Return bin_status. Rename win32_path to pc. Rename h - to fh. Rename fh to tmp_fh. Add code to set delete dispostion and - more code to replace file moved to bin by another, temporary file. - Add comments to explain why. - (unlink_nt): Replace move_to_bin with bin_stat. Only set bin_stat - to move_to_bin for non-remote files. As a last resort, call try_to_bin - if setting delete-on-close failed. Only re-set R/O DOS attribute - and only close handle if it's still valid. - -2009-01-11 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Set errno to ENOENT instead of ENOSHARE throughout. - * path.cc (path_conv::check): Set to and check for ENOENT instead of - ENOSHARE. - - * path.cc (symlink_info::check): Fix Samba 3.2.x comment. - -2009-01-09 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab_line): Always convert drive - letter in native path to uppercase. - * path.cc (normalize_win32_path): Ditto. - (path_prefix_p): Revert previous patch. - - * path.cc (symlink_info::check): Check for STATUS_INVALID_PARAMETER - return code to circumvent weird behaviour of Samba 3.2.x shares. - -2009-01-09 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/cygwin.h (CW_SETERRNO): Define. - * external.cc (CW_SETERRNO): Implement. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 192 to - reflect the above change. - - * path.cc (path_prefix_p): Treat X: as equivalent to x:. - - * mkglobals_h: Remove unneeded #define. - - * spawn.cc (spawn_guts): Avoid overly wordy initialization to zero. - -2009-01-08 Corinna Vinschen <corinna@vinschen.de> - - * libc/fts.c (fts_build): Use DT_DIR case on Cygwin. - (fts_ufslinks): Fix using wrong structure member in Cygwin-specific - code. - -2009-01-07 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Reorder NT status flags. Fix a case difference. Add - STATUS_CANNOT_DELETE flag. - * syscalls.cc (unlink_nt): Change initial NtOpenFile to request - FILE_SHARE_DELETE sharing mode. Change comment accordingly. - If setting delete disposition failed with STATUS_CANNOT_DELETE, try - to delete using delete-on-close. Explain why. - Rearrange setting R/O DOS attribute after trying to delete. Simplify - comment. - -2009-01-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if - original file has .exe as well. - * path.cc (path_conv::is_binary): Only recognize Windows 32 and 64 bit - apps as binaries. - -2009-01-02 Christopher Faylor <me+cygwin@cgf.cx> - - Remove unneeded header files from source files throughout. - Update copyrights where appropriate. - - * globals.cc: New file for generic global variables. - * mkglobals_h: New script to generate globals.h. - * mkstatic: New script used to build a (currently non-working) static - libcygwin_s.a. - * Makefile.in: Add unused rule to build a non-working libcygwin_s.a. - (DLL_OFILES): Add globals.o. Make all objects rely on globals.h. - (globals.h): New target. Generate globals.h. - * cygtls.h: Honor new CYGTLS_HANDLE define to control when the HANDLE - operator is allowed in _cygtls. - * dcrt0.cc: Move most globals to globals.cc. - * init.cc: Ditto. - * environ.cc (strip_title_path): Remove now-unneeded extern. - * fhandler_serial.cc (fhandler_serial::open): Ditto. - * pinfo.cc: Ditto. - (commune_process): Ditto. - * shared.cc: Ditto. - * glob.cc: Ditto. - * strace.cc: Ditto. - * exceptions.cc: Define CYGTLS_HANDLE before including winsup.h. - * path.cc (stat_suffixes): Move here. - * security.h: Add forward class path_conv declaration. - * smallprint.cc (__small_vsprintf): Make a true c++ function. - (__small_sprintf): Ditto. - (small_printf): Ditto. - (console_printf): Ditto. - (__small_vswprintf): Ditto. - (__small_swprintf): Ditto. - * spawn.cc (spawn_guts): Remove _stdcall decoration in favor of - regparm. - (hExeced): Move to globals.cc - * strfuncs.cc (current_codepage): Ditto. - (active_codepage): Ditto. - * sync.cc (lock_process::locker): Move here from dcrt0.cc. - * syscalls.cc (stat_suffixes): Move to path.cc. - * tty.cc (tty::create_master): Uncapitalize fatal warning for - consistency. - * winsup.h: Include globals.h to declare most of the grab bag list of - globals which were previously defined here. - - * mount.h: Move USER_* defines back to shared_info.h. - - * speclib: Force temporary directory cleanup. - -2009-01-02 Christopher Faylor <me+cygwin@cgf.cx> - - * speclib: Rewrite completely in perl. Avoid multiple nm calls. - diff --git a/winsup/cygwin/ChangeLog-2010 b/winsup/cygwin/ChangeLog-2010 deleted file mode 100644 index cd103f7e9..000000000 --- a/winsup/cygwin/ChangeLog-2010 +++ /dev/null @@ -1,3103 +0,0 @@ -2010-12-29 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc: Include stdlib.h. - (_cygtls::init_thread): Seed random number generator on a per-thread - basis. - -2010-12-27 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 234. - -2010-12-26 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin.din: Export program_invocation_name and program_invocation_short_name. - * dcrt0.cc: Set program_invocation*name to correct values, based on - argv[0]. - * globals.cc (program_invocation_name): Define. - (program_invocation_short_name): Ditto. - -2010-12-16 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Really fix erroneous inheritence entry - duplication now. Add more comments for clarity. - -2010-12-15 Christian Franke <franke@computer.org> - - * sec_acl.cc (getacl): Ensure that the default acl contains at least - DEF_(USER|GROUP|OTHER)_OBJ entries. - -2010-12-15 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Fix erroneous inheritence entry duplication. - -2010-12-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (check_dir_not_empty): Never count more than 3 directory - entries. - -2010-12-12 Christopher Faylor <me+cygwin@cgf.cx> - - * init.cc (search_for): Put this in shared section or suffer subtle - problems with the tls. - * pinfo.cc (status_exit): Add debug output to report on unexpected exit. - * tls_pbuf.cc (tmp_pathbuf::c_get): Add more details to internal error. - -2010-12-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (RETRY_COUNT): New define. - (std_dll_init): Restructure loop to retry loading a DLL only if - specific errors occur. If these errors persist, try to load DLL - with name only. - -2010-12-08 Corinna Vinschen <corinna@vinschen.de> - - * include/strings.h: Remove in favor of equivalent newlib file. - -2010-12-08 Christian Franke <franke@computer.org> - - * sec_acl.cc (getacl): Set DEF_CLASS_OBJ permissions to 07 instead - of 0777. - -2010-12-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Don't generate ENOENT for non-existant - CYGDRIVE and NETDRIVE paths. Add comment. - -2010-12-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_xp_ifs): Fix counting of idx to return stable interface - alias names for interfaces with multiple IPv4 addresses. - -2010-11-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::dup): Free path_conv strings - to avoid memory leak. Add comment. - (fhandler_pty_master::dup): Ditto. - * path.h (path_conv::free_strings): New method. - -2010-11-23 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SendARP): Remove. - * net.cc (get_flags): Set IFF_NOARP flag for PPP and SLIP devices. - (get_xp_ifs): Unify IFF_BROADCAST setting. Drop calling SendARP to - set IFF_NOARP flag. - -2010-11-23 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Don't use FileNetworkOpenInformation - on Netapps. Relax condition for workaround. Always request size - information via FileStandardInformation info class in workaround. - -2010-11-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (NETAPP_IGNORE): Add FILE_PERSISTENT_ACLS. - (FS_IS_NETAPP_DATAONTAP): Drop test for FILE_PERSISTENT_ACLS. - (fs_info::update): Set filetype to ntfs in remote case, too. Fix a - couple of comments. Add test for Netapps faking to be FAT. - - * mount.h (IMPLEMENT_FS_FLAG): Simplify definition and usage. - -2010-11-22 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_ipv4fromreg_ipcnt): Fix debug output. Only create debug - output if error is not ERROR_FILE_NOT_FOUND. - (get_ipv4fromreg): Ditto. - -2010-11-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::fchown): Initialize mode to 0. - -2010-11-15 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Move llround and llroundf to implemented SUSv4 functions. - * include/cygwin/version.h: Add llround and llroundf to the comment for - the 233 CYGWIN_VERSION_API_MINOR bump. - -2010-11-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/paths.h (_PATH_VARTMP): Define. - -2010-10-30 Christopher Faylor <me+cygwin@cgf.cx> - - * localtime.cc (is_upper): Rename to isupper and include ctype.h to - pull in standard macro. - (lcl_is_set): Define as an enum. - (tzsetwall): Assign lcl_is_set to correct enum values. - (tzset): Ditto. Copy as much of TZ as will fit to TZ buffer. - -2010-10-27 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 233. - -2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (do_exit): Don't set thread termination until all fds have - been closed since an fd may rely on a thread. - * fhandler_tty.cc: Reformat comment. - (fhandler_pty_master::pty_master_thread): Don't treat - ERROR_PIPE_CONNECTED state as an error. - * globals.cc (exit_states): Reorder ES_THREADTERM. - - * path.cc (find_fast_cwd_pointers): Remove excessively wordy DEBUGGING output. - -2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (try_to_debug): Improve comment. - * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a - comment. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.cc (pinfo::exit): Grab a tty lock before setting pgid. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.cc (pinfo::exit): Reset tty pgrp to zero if no more handles open. - (_pinfo::set_ctty): Remove debugging stuff. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_master::open): Remove debugging printf. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_termios::tcinit): Make second argument - non-optional. - * fhandler_console.cc (fhandler_console::open): Specify second argument - to tcinit. - * fhandler_termios.cc (fhandler_termios::tcinit): Rename second - argument. Set pgid to 0 if this is a pty master. - (fhandler_termios::tcgetpgrp): Just return value of pgid. It will be - zero if not initialized. - * fhandler_tty.cc (fhandler_tty_slave::open): Specify second argument - to tcinit. - (fhandler_tty_slave::ioctl): Implement TIOCGPRP/TIOCSPGRP. Fix switch - indentation. - (fhandler_tty_master::ioctl): Implement TIOCGPRP/TIOCSPGRP. - * include/sys/termios.h (TIOCGPGRP): Define similarly to Linux. - (TIOCSPGRP): Ditto. - -2010-10-18 Marco Atzeri <marco_atzeri@yahoo.it> - - * winsup/cygwin/cygwin.din: Add llround and llroundf. - -2010-10-09 John Carey <aeolus@electric-cloud.com> - Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cwdstuff::override_win32_cwd): Declare. - * ntdll.h (struct _PEB): Add members accessed by the fast cwd method - starting with Vista. - (struct _KUSER_SHARED_DATA): Define with only the DismountCount. - (RtlAllocateHeap): Declare. - (RtlEnterCriticalSection): Declare. - (RtlFreeHeap): Declare. - (RtlLeaveCriticalSection): Declare. - * path.cc (get_user_proc_parms): Remove. - (struct _FAST_CWD): New structure. - (fast_cwd_ptr): Define. - (SharedUserData): Define. - (peek32): Define. - (find_fast_cwd_pointers): New function to find the global pointer - to the current FAST_CWD structure. - (copy_cwd_str): New helper function. - (cwdstuff::override_win32_cwd): New method to set the Win32 CWD. - (cwdstuff::init): Just call override_win32_cwd from here when - started from native Win32 parent. - (cwdstuff::set): Access Win32 CWD via PEB reference instead of using - get_user_proc_parms function. Memorize old DismountCount before - opening directory handle. Call override_win32_cwd to set up Win32 CWD. - Be more verbose in comments. - * wincap.h (wincaps::has_fast_cwd): New element. - * wincap.cc: Implement has_fast_cwd element throughout. - -2010-10-08 Marco Atzeri <marco_atzeri@yahoo.it> - Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export new complex math functions from newlib. - * posix.sgml: Move newly exported complex functions to implemented - SUSv4 functions. - * include/cygwin/version.h: Bump API minor version. - -2010-10-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::get_stat_access): Delete. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Always check - executable suffix to get x-bits for .exe files also in notexec case. - Always reopen file when checking for file header. - * ntdll.h (wait_pending): Delete. - * path.cc (symlink_info::check_shortcut): Drop call to wait_pending - since file is always opened for sync IO. - (symlink_info::check_sysfile): Ditto. - (MIN_STAT_ACCESS): Remove. - (FULL_STAT_ACCESS): Remove. - (symlink_info::check): Drop access flag. Revert to open file with - just read attributes access. Reorder symlink check to check for - reparse points first. Don't check reparse points for anything else, - even on remote drives. Open file for GENERIC_READ when trying to - read shortcuts or system-bit symlinks. Accommodate dropped access - flag in call to path_conv_handle::set. - * path.h (class path_conv_handle): Drop access flag and accommodate - all related methods. - -2010-10-06 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_mutex_init): Call NtCreateMutant to make sure the - access mask is correct. - (ipc_cond_init): Take additional parameter to differ between send and - receive event. Call NtCreateEvent to make sure the access mask is - correct. - (ipc_cond_timedwait): Reset Event prior to calling WFMO. - (struct mq_info): Split mqi_wait into two events, mqi_waitsend and - mqi_waitrecv. - (mq_open): Calloc mqinfo. Create mqi_waitsend and mqi_waitrecv events. - Make sure all synchronization objects are closed in case of an error. - (_mq_send): Wait for mqi_waitsend event. Signal mqi_waitrecv event. - (_mq_receive): Wait for mqi_waitrecv event. Signal mqi_waitsend event. - (mq_close): Close mqi_waitsend and mqi_waitrecv events. - -2010-10-05 Corinna Vinschen <corinna@vinschen.de> - - * path.h (enum pathconv_arg): Remove PC_CHECK_EA. - -2010-10-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Move _main_tls initialization here. - (__dll_crt0): Only initialize _main_tls if it changes. - * fhandler_console.cc (fhandler_console::write): Fix debugging output. - -2010-10-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Simplify. - Just call nfs_fetch_fattr3 if called via fstat. - * nfs.cc (nfs_fetch_fattr3): New function to fetch NFS fattr3 info from - file handle. - * nfs.h (nfs_fetch_fattr3): Declare. - * path.cc (symlink_info::check): Simplify NFS case. Just call - nfs_fetch_fattr3. - -2010-10-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::exists): Return virt_none - if path is invalid. - -2010-10-01 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Add a retry loop. - -2010-09-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc: Drop including nfs.h. - * fhandler_disk_file.cc: Ditto. - (fhandler_base::fstat_by_nfs_ea): Use fattr3 from path_conv member, - unless called from fstat. - * path.cc: Drop including nfs.h. - (symlink_info::check): Rearrange definition of file info buffers. - Fetch fattr3 info for files on NFS and store in conv_hdl for later - use in fhandler_base::fstat_by_nfs_ea. Use fattr3 file type to - recognize symlink on NFS and try to fetch symlink target only for - actual symlinks. - * path.h: Include nfs.h. - (class path_conv_handle): Change file info storage to union of - FILE_NETWORK_OPEN_INFORMATION and fattr3 structures. - (path_conv_handle::fnoi): Align to aforementioned change. - (path_conv_handle::nfsattr): New method. - (path_conv::nfsattr): New method. - -2010-09-30 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Remove erroneous assumption about - required permissions when reading NFS symlinks. - -2010-09-29 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Revert to using - tc->setpgid since previous change broke some use cases. - -2010-09-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Add debugging. Use - tcsetpgrp to potentially set pgid since it is smarter about deciding if - a process is in the background. - * include/sys/cygwin.h (PID_ORPHANED): Actually delete as planned. - (PID_NOTCYGWIN): Correctly define. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (getdomainname): Drop special case for NT4. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - Revert accidental previous login. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_IMPORTS): Remove libadvapi32.a. - * autoload.cc: Add all advapi32 entry points. - * mount.cc (mount_info::init): Read user fstab only if we have a - username. - * passwd.cc (pwdgrp::read_passwd): Only use username if we have one. - * shared.cc (user_info::initialize): Set cb last so as not to override - planned behaviour in pwdgrp::read_passwd. - * uinfo.cc (cygheap_user::init): Fetch Windows username from environment - variable $USERNAME. Don't set name in cygheap if variable is empty. - (internal_getlogin): If we still have no username, try GetUserNameW. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Always create master - thread. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (gethostid): Use correct path to ProductId registry value. - -2010-09-27 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Remove erroneous NtClose on random handle - value. - -2010-09-26 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::init): Call GetUserNameW and convert to - multibyte here so as not to rely on the current ANSI page. - -2010-09-26 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (__main): Force signal synchronization. - -2010-09-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Drop has_exclusiveaddruse - condition. Fix comment about availability. Move remaining comment to - the right spot. Drop has_ip_helper_lib condition. - * net.cc (cygwin_setsockopt): Drop has_disabled_user_tos_setting - condition. Fix comment. - (get_2k_ifs): Fix comment. - (get_nt_ifs): Remove. - (getifaddrs): Drop call to get_nt_ifs. - (get_ifconf): Ditto. - * wincap.cc: Throughout, drop has_ip_helper_lib, - has_disabled_user_tos_setting, and has_exclusiveaddruse settings from - wincaps. - (wincap_unknown): Remove. - (wincap_nt4): Remove. - (wincap_minimal): New macro, set to wincap_nt4sp4 for now. - (wincapc::init): Drop test for pre-SP4 NT4. Just imply at least NT SP4. - Replace references to wincap_unknown with references to wincap_minimal. - * wincap.h (struct wincaps): Drop has_ip_helper_lib, - has_disabled_user_tos_setting, and has_exclusiveaddruse flags and - methods. - -2010-09-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Throughout, order entry points alphabetically by DLL - and function name. Make functions which are available on all supported - systems non-optional. Fix return value on entry points imported from - secur32.dll. Add comment. - (std_dll_init): Call fesetenv unconditionally. - -2010-09-24 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Move dll_path closer to its use. Use - dll_path in fatal error. Set ret values under lock control. - * lib/minires.c (res_nsend): Fix compilation errors owing to pointer - signedness. - -2010-09-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Handle query_write_dac flag. - * fhandler.h (enum query_state): Add query_write_dac flag. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file - with query_write_dac instead of query_write_control. - -2010-09-24 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS. - * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and - point to the explanation. - * ntdll.h (STATUS_NOT_IMPLEMENTED): Define. - * path.cc (symlink_info::check): Handle the inability of NT4 to use - FileNetworkOpenInformation on share root dirs in either direction. - * path.h (slash_unc_prefix_p): Remove unused declaration. - * security.cc (get_info_from_sd): Handle ENOSYS from get_file_sd. - Explain when this happens. - -2010-09-23 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Use correct format type when displaying - dll name in error output. - -2010-09-21 Pierre Humblet <Pierre.Humblet@ieee.org> - - * libc/minires.c (res_nsend): Use the Windows resolver if appropriate. - (dn_expand): Only set errno in case of error. Delete old comments. - (dn_skipname): Fix typo in comment. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Replace constant 2 with sizeof(WCHAR) where - appropriate. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (class fs_info): Add has_buggy_reopen flag and accessor - methods. - * mount.cc (fs_info::update): Set has_buggy_reopen flag for NWFS. - Add comment. - * path.h (path_conv::get_object_attr) Make inline method. - (path_conv::init_reopen_attr): New inline method. - * path.cc (path_conv::get_object_attr): Remove. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use - path_conv::init_reopen_attr method to initialize OBJECT_ATTRIBUTE for - reopening file. - (fhandler_disk_file::fchmod): Ditto. - (fhandler_base::utimens_fs): Ditto. - (fhandler_disk_file::rewinddir): Ditto. - * syscalls.cc (unlink_nt): Ditto. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Always open NFS files with - FILE_READ_EA, even when opening with O_WRONLY to allow fstat. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Call - FlushFileBuffers if file has been opened for writing. Explain why. - (fhandler_base::fstat_by_handle): Renew content of pc.fnoi if called - via fstat. Explain why. Fix formatting. - * path.cc (symlink_info::check): Try to open file the second time with - FILE_READ_EA permissions since it's needed in later calls to - fhandler_base::fstat_by_nfs_ea. - -2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/cygwin.h (PID_NOTCYGWIN): New enum. - * spawn.cc (spawn_guts): Set a flag when a process is not a cygwin - process. - * fhandler_tty.cc (fhandler_tty_slave::init): Remove previous change. - Try a different method to determine when we should become the process - group owner. - * signal.cc (kill0): Remove archaic code which dealt with never-set - flag. - -2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to - determine when a process should grab control of a tty's pgid. Use - being_debugged() for consistency. - * debug.h (being_debugged): Remove vestige of win9x accommodation. - -2010-09-19 Christopher Faylor <me+cygwin@cgf.cx> - - * wincap.h (wincaps::has_buggy_thread_startup): Declare. - (wincapc::has_buggy_thread_startup): Ditto. - * wincap.cc::wincap_*): Accommodate has_buggy_thread_startup. - (wincapc::init): Explicitly turn off has_buggy_thread_startup if not - WOW64. - * cygthread.h (cygthread::thread_handle): Declare/define new method. - * dcrt0.cc (_dll_crt0): Don't call __sinit here. - (dll_crt0_0): Don't call sigproc_init during initialization - if wincap.has_buggy_thread_startup(). - (dll_crt0_1): Defer sigproc_init to here when - wincap.has_buggy_thread_startup(). Call __sinit after we've determined - that we're not forking. - (__main): Rework comments. Add potential future reminder. - -2010-09-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch number - of links and inode number only if path has good inodes. - (fhandler_base::fstat_by_name): Fetch inode number only if path has - good inodes. - -2010-09-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile - are stored in the right order when fetching the info from the - NtQueryDirectoryFile result. - -2010-09-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (get_mem_values): Simplify code. Fix - NtQueryVirtualMemory loop so it handles memory allocation gracefully. - Always set errno to a useful value. - -2010-09-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_base): Change inheritance of fstat_helper - and fstat_by_... methods to private. - (fhandler_base::fstat_helper): Drop all redundant arguments. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call - to fstat_by_nfs_ea here. Drop fetching basic file information. - Drop setting file attributes. Accommodate change in fstat_helper call. - (fhandler_base::fstat_by_name): Simplify. Only fetch directory - information to get the inode number. Drop setting file attributes. - Accommodate change in fstat_helper call. - (fhandler_base::fstat_fs): Call fstat_by_nfs_ea if on NFS. - (fhandler_base::fstat_helper): Drop all redundant arguments. Use - information already collected in the fhandler. Move heading comment - into code and drop dwFileAttributes comment. - * mmap.cc (mmap64): Call fstat_fs rather than fstat_by_handle. - * mount.cc (fs_info::update): Note that has_buggy_basic_info is unused. - * path.cc (symlink_info::check_reparse_point): Add comment. - (symlink_info::check): Fetch FileNetworkOpenInformation rather than - FileBasicInformation throughout, except on NFS. Explain why. Store - FILE_NETWORK_OPEN_INFORMATION in conv_hdl. Remove - FILE_ATTRIBUTE_DIRECTORY attribute in conv_hdl for reparse point - symlinks. - * path.h (class path_conv_handle): Add FILE_NETWORK_OPEN_INFORMATION - member _fnoi. - (path_conv_handle::fnoi): New accessor method for _fnoi. - (path_conv::fnoi): New accessor method for cubv_hdl._fnoi. - - * fhandler_tty.cc (fhandler_tty_slave::init): Use tty::setpgid method. - -2010-09-12 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (acl_worker): Remove. - (acl32): Implement acl_worker functionality here. - (lacl32): Just return -1 with errno set to ENOSYS. - (lacl): Ditto. - * include/cygwin/acl.h (lacl): Remove this call. - -2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (sig_dispatch_pending): Remove debugging statement. - (sigproc_init): Wrap a long line. - -2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.h (cygthread::cygthread): Reorganize slightly. - * dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure - everything we need has been set up. - (dll_crt0_1): Streamline some logic slightly. - * sigproc.cc (no_signals_available): Add back dropped test for macro - parameter. - * fhandler_console.cc (fhandler_console::write): Show a little bit of - what's being written to the console in debugging output. - -2010-09-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (start_transaction): Make inline function. Move up to be - more generally available. - (stop_transaction): Ditto. - (unlink_nt): Potentially start transaction when trying to delete file - with DOS R/O attribute set. If file is .lnk symlink, check for number - of hardlinks. Add "out" label and only return via "out". Rearrange - reversion of DOS R/O attribute and, on success, only revert R/O - attribute if file is .lnk symlink with more than one hardlink. Add - length comment to explain why. - -2010-09-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rmdir): More thoroughly - check the existence condition on remote drives. Enhance comment. - -2010-09-11 Dave Korn <dave.korn.cygwin@gmail.com> - - * Makefile.in (DLL_OFILES): Add new fenv.o module. - (fenv_CFLAGS): New flags definition for fenv.o compile. - * autoload.cc (std_dll_init): Use fenv.h functions instead of direct - manipulation of x87 FPU registers. - * crt0.c (mainCRTStartup): Likewise. - * cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept, - fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv, - feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec, - feenableexcept, fedisableexcept, fegetexcept, _feinitialise, - _fe_dfl_env, _fe_nomask_env): Export new functions and data items. - * fenv.cc: New file. - * posix.sgml: Update status of newly-implemented APIs. - * include/fenv.h: Likewise related header. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Limit retry loop in case of sharing violation - to about a second. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fstatat): Call stat_worker directly from here. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Define MAX_PROCESS_SD_SIZE. Use - instead of ACL_DEFAULT_SIZE. - * sec_acl.cc (setacl): Use TLS buffer to allow maximum ACL size. - * security.h (ACL_DEFAULT_SIZE): Drop definition. - (ACL_MAXIMUM_SIZE): Define. - (SD_MAXIMUM_SIZE): Define. - * security.cc (get_file_sd): Allocate security_decscriptor with size - SD_MAXIMUM_SIZE. - (alloc_sd): Use TLS buffer to allow maximum ACL size. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (class fs_info_cache): New class to cache filesystem - information. - (fs_info::update): Check FileFsVolumeInformation against filesystem - cache and use it, if filesystem is already available. Add filesystem - to cache, if not. Only request FileFsObjectIdInformation if - FILE_SUPPORTS_OBJECT_IDS is set in filesystem flags. - * ntdll.h (struct _FILE_FS_VOLUME_INFORMATION): Add pragma pack so the - structure size is matching the OS expectations. Add __dummy member - used in filesystem cache. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_sd): Add bool parameter justcreated. Use - GetSecurityInfo only if justcreated is true, NtQuerySecurityObject - otherwise. Add comment to explain why. Don't waste time to call - NtQuerySecurityObject twice, just allocate big enough area. - (get_file_attribute): Call get_file_sd with justcreated set to false. - (set_file_attribute): Call get_file_sd with justcreated depending on - S_JUSTCREATED pseudo file attribute. - (check_file_access): Call get_file_sd with justcreated set to false. - * sec_acl.cc (setacl): Ditto. - (getacl): Ditto. - * security.h: Convert many functions to regparm functions. - (get_file_sd): Declare with extra bool parameter. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::exists): Rearrange to handle - dangling symlinks correctly. Fix comments. - (fhandler_procsys::fill_filebuf): Remove useless comment. - -2010-09-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::open): Simplify by just - calling fhandler_base::open. - -2010-09-06 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add fhandler_procsys.o. - * devices.h (enum fh_devices): Add FH_PROCSYS. - * devices.in (dev_procsys_storage): New device. - * devices.cc: Regenerate. - * dtable.cc (build_fh_pc): Add code to allocate fhandler_procsys. - * fhandler.h (proc_len): Convert to size_t. - (procsys): Declare. - (procsys_len): Declare. - (enum virtual_ftype_t): Move here from fhandler_virtual.h. - Add members supported by fhandler_procsys. - (fhandler_virtual::exists): Return virtual_ftype_t. Change - in all derived classes. - (class fhandler_procsys): New class. - (fhandler_union): Add fhandler_procnet and fhandler_procsys members. - * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Use - ro_u_proc. - (fhandler_base::fstat_by_handle): Don't copy attributes if file is an - NT device. - (fhandler_base::fstat_by_name): Ditto. - * fhandler_netdrive.cc (fhandler_netdrive::exists): Return - virtual_ftype_t. - * fhandler_proc.cc (proc_tab): Sort alphabetically. Use _VN macro - to store length. - (proc_len): Change to size_t. - (proc_tab_cmp): New static function. - (virt_tab_search): New function to search entry in virt_tab_t - arrays. Use throughout in /proc and sibling classes instead of - loop. - (fhandler_proc::exists): Return virtual_ftype_t. - * fhandler_process.cc (process_tab): Sort alphabetically. Use _VN - macro to store length. - (fhandler_process::exists): Return virtual_ftype_t. - (fhandler_process::open): Simplify code. - * fhandler_procnet.cc (procnet_tab): Sort alphabetically. Use _VN - macro to store length. - (fhandler_procnet::exists): Return virtual_ftype_t. - (fhandler_procnet::open): Simplify. - * fhandler_procsys.cc: New file. - * fhandler_registry.cc (fhandler_registry::exists): Return - virtual_ftype_t. - * fhandler_virtual.cc (fhandler_virtual::exists): Ditto. - * fhandler_virtual.h (enum virtual_ftype_t): Move to fhandler.h. - (virt_tab_t): Add name_len member. - (_VN): New macro. - (virt_tab_search): Declare. - * mount.cc (mount_info::conv_to_win32_path): Fix comment. Backslashify - isprocsys_dev paths. - * ntdll.h (STATUS_OBJECT_TYPE_MISMATCH): Define - (STATUS_INSTANCE_NOT_AVAILABLE): Define. - (STATUS_PIPE_NOT_AVAILABLE): Define. - (STATUS_INVALID_PIPE_STATE): Define. - (STATUS_PIPE_BUSY): Define. - (SYMBOLIC_LINK_QUERY): Define. - (NtOpenSymbolicLinkObject): Declare. - (NtQuerySymbolicLinkObject): Declare. - * path.cc (path_conv::check): Accommodate fact that exists method - returns virtual_ftype_t now. Add cases for new virtual_ftype_t - types. - (cygwin_conv_path): Add GLOBALROOT prefix to native device paths. - Make sure to strip \\?\ prefix only for actual filesystem-based - paths, not for all paths. - * path.h (isproc_dev): Add FH_PROCSYS. - (isprocsys_dev): Define. - -2010-09-04 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab_line): Reorder to make sure all - mounts from user fstab are user mounts. - (mount): Make sure all mounts are user mounts, even those added via - mount -a. - -2010-09-02 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (sigproc_init): Use American spelling in comment. - -2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Remove myself settings. - * fork.cc (fork): Set myself process_state. - * pinfo.cc (pinfo_init): Ditto. - (pinfo::thisproc): Make sure any sendsig setting is correctly copied. - * pinfo.h: Update copyright. Remove unused code. - -2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.cc (cygthread::create): Fix incorrect use of name rather - than __name. - * cygthread.h (cygthread::cygthread): Create versions which eliminate - 'n' parameter. - * dcrt0.cc (dll_crt0_1): Remove check for threadfunc_ix. Remove - obsolete comments. Set process_state to active here. - * fhandler_netdrive.cc (create_thread_and_wait): Use shortened - cygthread constructor. - * timer.cc (timer_tracker::settime): Ditto. - * window.cc (HWND): Ditto. - * fhandler_tty.cc: Use shortened cygthread constructor, where - appropriate, throughout. - * select.cc: Ditto. - * fork.cc (frok::child): Remove wait_for_sigthread. - (fork): Reformat if for slightly better clarity. - * init.cc (dll_finished_loading): New variable. - (dll_entry): Use dll_finished_loading to determine when we should call - merge_threadfunc. - * sigproc.cc (no_signals_available): Simplify by using my_readsig. - (wait_sig_inited): Delete. - (wait_sig): Define as void function. - (pending_signals): Accommodate change to wait_sig definition. - (wait_for_sigthread): Delete definition. - (sigproc_init): Initialize signal pipe here, before wait_sig thread is - created. Use void form of cygthread creation. - (init_sig_pipe): Delete. - (wait_sig): Return void rather than DWORD. Assume previous - initialization of signal pipe. Set my_sendsig to NULL when exiting. - * sigproc.h (wait_for_sigthread): Delete declaration. - -2010-09-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Set d_type. - (fhandler_netdrive::seekdir): Fix test for readdir return value. - * fhandler_registry.cc (fhandler_registry::seekdir): Ditto. - -2010-09-01 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 8. - -2010-08-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes. - (path_conv::check): Allow access to root directory of native NT disk - devices. - -2010-08-31 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 7. - -2010-08-30 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Move sigproc_init later, after cygheap - initialization since it relies on the cygheap existing (even if - it shouldn't matter due to dll initialization serialization). - -2010-08-30 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Fix typos and incorrectnesses. - -2010-08-30 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (MsgWaitForMultipleObjectsEx): Define. - (MsgWaitForMultipleObjects): Remove. - * select.cc (select_stuff::wait): Use MsgWaitForMultipleObjectsEx with - QS_ALLPOSTMESSAGE and, if possible, MWMO_INPUTAVAILABLE flags. Explain - why. Fix a potential crash due to a NULL pointer in WAIT_FAILED case. - (peek_windows): Use filter pattern on NT4. Explain why. - * wincap.h (wincaps::has_mwmo_inputavailable): New element. - * wincap.cc: Implement above element throughout. - -2010-08-29 Christopher Faylor <me+cygwin@cgf.cx> - - * winlean.h: New file. - * automode.c: Use "winlean.h". - * binmode.c: Ditto. - * gmon.c: Ditto. - * textmode.c: Ditto. - * textreadmode.c: Ditto. - * winsup.h: Ditto. - * lib/cygwin_attach_dll.c: Ditto. - * lib/dll_main.cc: Ditto. - * profile.c: Ditto. - * crt0.c: Ditto. Cleanup ancient cruft. Add dummy calls to - cygwin_premain*. - * include/sys/cygwin.h: Remove old stuff. Move premain declarations - nearer to other cygwin-specific function declarations. - * globals.cc: Add comment. - -2010-08-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LoadDLLprime): Change dllname storage to string16. - (struct dll_info): Convert name to WCHAR. - (std_dll_init): Load DLLs with full path to windows system directory. - Add hint to Microsoft security advisory. - * dcrt0.cc (init_windows_system_directory): New function. - (dll_crt0_0): Call init_windows_system_directory first. - * exceptions.cc (windows_system_directory): Move to globals.cc. - (windows_system_directory_length): Ditto. - (events_init): Drop code fetching windows_system_directory. - * globals.cc (windows_system_directory): New global variable. - (windows_system_directory_length): Ditto. - * net.cc (load_ipv6_funcs): Use windows_system_directory rather than - GetSystemDirectoryW. - * netdb.cc (open_system_file): Ditto. Simplify debug output. - -2010-08-27 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (sync_wincwd): Remove. - (cygwin_internal): Drop CW_SYNC_WINCWD case. - * globals.cc (ro_u_pipedir): New R/O unicode string. - * ntdll.h (RtlSetCurrentDirectory_U): Declare. - * path.cc (cwdstuff::set): Improve comments. Drop setting Win32 CWD to - \\?\PIPE\ on init. Keep Win32 CWD in sync, if possible. Set to - \\?\PIPE\ otherwise. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Revert to 230. - * include/sys/cygwin.h (cygwin_getinfo_types): Remove CW_SYNC_WINCWD. - -2010-08-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Improve comment. - -2010-08-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Simplify code and enable - partition layout printing for non-privileged users. - -2010-08-25 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Fix comments. - -2010-08-25 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Open file with FILE_READ_ATTRIBUTES. - -2010-08-24 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Fix comment. - -2010-08-24 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): In CW_CVT_MNT_OPTS case, initialize - flags with *pflags to restore original behaviour. - -2010-08-21 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_IMPORTS): Link against advapi32.a before kernel32.a. - -2010-08-20 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.cc: Update copyright. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Close handle in conv_handle if we're - following a symlink. - -2010-08-20 Pedro Izecksohn <pedro.izecksohn@gmail.com> - - * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, - htole16, htole32, htole64, le16toh, le32toh, le64toh): Define. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (readdir_check_reparse_point): Rename from - is_volume_mountpoint. Return valid d_type value for underlying - reparse point type. - (readdir_get_ino): Don't rely on the handle set in pc.check. Open - file here if pc.handle() is NULL. - (fhandler_disk_file::readdir_helper): Try to set a correct d_type value - more diligent. - (fhandler_disk_file::readdir): Don't reset dirent_set_d_ino unless - we're really sure it's due to an untrusted FS. Simplify usage of - FileAttributes, which is 0 if buf is NULL, anyway. Set d_type - correctly for faked "." and ".." entries. Improve debug output. - * path.cc (symlink_info::check): Don't keep handle to volume mount - point open. Explain why. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Revert usage - of get_stat_handle () to get_handle (). Add comment to explain why. - * syscalls.cc (statvfs): Drop using PC_KEEP_HANDLE. - -2010-08-19 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (sync_wincwd): New function. - (cygwin_internal): Rename CW_SETCWD to CW_SYNC_WINCWD. Call - sync_wincwd from here. - * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_SETCWD to - CW_SYNC_WINCWD. - -2010-08-18 Christopher Faylor <me+cygwin@cgf.cx> - - * external.cc (CW_SETCWD): New option. - * include/cygwin/version.h: Bump api minor to 231. - * include/sys/cygwin.h (CW_SETCWD): Define. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Fix renaming file-based devices. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Don't try to open file if we - have no filesystem based CWD. Add comment. - * path.cc (cwdstuff::set): Set CWD handle to NULL if CWD is a virtual - path. Simplify matching comment. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev - to correct device number for fs_special devices. - -2010-08-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 6. - -2010-08-14 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (fhandler_pipe::open): Duplicate content of opened pipe - fhandler before calling dup method. - -2010-08-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cwdstuff): Make drive_length private. - Add "error" member. - (cwdstuff::get_error): New inline method. - (cwdstuff::get_error_desc): Declare. - (cwdstuff::set): Change first parameter to pointer to path_conv. - * path.cc (chdir): Drop doit. Align call to cwdstuff::set to - new arguments. - (cwdstuff::init): Only call cwdstuff::set if it's not already - initialized. Add comment. Drop third parameter in call to - cwdstuff::set. - (cwdstuff::set): Partially rewrite. Add lots of comments to explain - everything. Drop "doit" since it's not used anymore. Always create - new handle to CWD if not in a virtual path. Drop PEB locking when - reading PEB values in init phase. Check for accessibility to set - correct error code. Drop Vista workaround. Never write back into PEB. - Set Win32 CWD to \\?\PIPE\ on init. Simplify creation of win32 path. - Set new error member to a meaningful value. - (cwdstuff::get_error_desc): New method to generate error message - from cwd error code. - * spawn.cc (spawn_guts): Call cwdstuff::get_error_desc to create - more meaningful error message when not being able to start native - Win32 app due to CWD restrictions. When starting native Win32 app, - lock cwd and use in calls to CreateProcessW/CreateProcessAsUserW. - -2010-08-11 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (struct opt): Add "bind" option. - (mount_info::from_fstab_line): Handle "bind" option. - (fillout_mntent): Add "bind" option to mnt_opts. - (mount): Handle "bind" option. - * include/sys/mount.h (MOUNT_BIND): New mount flag. - -2010-08-10 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (init_sig_pipe): Add retry loop. - -2010-08-09 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.h (cygheap_fdmanip): Delete fh and use fd index into - cygheap->fdtab throughout. - (cygheap_fdnew): Replace fh by using fd index into cygheap->fdtab - throughout. (cygheap_fdget): Ditto. (cygheap_fdenum): Ditto. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - Implement POSIX.1-2004 Monotonic Clock. - * hires.h: Change hires_us to hires_ns, with nanosecond resolution. - (hires_ns::primed_ft): Remove. - (hires_ns::nsecs): New prototype. - (hires_ns::usecs): Rewrite in terms of nsecs. - (hires_ns::resolution): New prototype. - * times.cc: Change hires_us to hires_ns. - (ntod): Declare. - (systime): Remove. - (hires_ns::prime): Increase resolution to nanoseconds. - (hires_ns::nsecs): Rename usecs to nsecs to reflect increased resolution. - Remove justdelta argument. - (hires_ns::resolution): New function. - (clock_gettime): Accept CLOCK_MONOTONIC. - Use EINVAL instead of ENOSYS per POSIX.1-2004. - (clock_getres): Ditto. - (clock_setres): Use EINVAL instead of ENOSYS to conform with other - implementations. - * strace.cc (strace::microseconds): Adjust for hires_ns. - * sysconf.cc (sca): Set _SC_MONOTONIC_CLOCK to _POSIX_MONOTONIC_CLOCK. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * fhandler_proc.cc: Add /proc/filesystems virtual file. - (format_proc_filesystems): New function. - * mount.cc (fs_names): Move to global scope. Redefine as array - of { "name", block_device? } structs. - (fillout_mntent): Use name member of fs_names. - * mount.h (fs_names): New prototype. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/dlfcn.h (RTLD_LOCAL): Define. - -2010-08-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/dirent.h (d_fileno): Define as d_ino. - -2010-08-04 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cygwin_conv_path): Rearrange test for "." in POSIX to - relative DOS path conversion. Simplify fixing the path. - In CCP_POSIX_TO_WIN_W conversion, always drop long path prefix if path - fits into MAX_PATH. Explain why. - -2010-08-01 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Revert to checking for - "spinning" when choosing to defer signal. - (_cygtls::call_signal_handler): Grab func when we have the lock. - * gendef: Update copyright. - (__sigbe): Simplify slightly. - (_sigdelayed): Grab a lock before manipulating stuff. - (_cygtls::pop): Properly return popped value. - (stabilize_sig_stack): Set incyg when we have the lock. - * sigproc.cc: Update copyright. - -2010-07-28 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.h (LPVOID_THREAD_START_ROUTINE): Define. - (cygthread::create): Rename from cygthread::cygthread. - (cygthread::cygthread): Define new constructor which accepts - LPVOID_THREAD_START_ROUTINE as the first argument. Call - cygthread::create. - * cygthread.cc (cygthread::create): Rename from cygthread::cygthread. - Use 'arglen' rather than 'n' since 'n' is no longer supplied. - * fhandler_tty.cc (process_input): Define as void/noreturn. - (process_output): Ditto. - (process_ioctl): Ditto. - (fhandler_tty_master::init): Don't "zap_h" cygthreads which are - noreturn. It's now implied. - -2010-07-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::raw_write): Remove STATUS_DISK_FULL - special handling. - -2010-07-19 Eric Blake <eblake@redhat.com> - - * mktemp.cc (_gettemp): Add flags argument. All callers updated. - (mkostemp, mkostemps): New functions. - * cygwin.din (mkostemp, mkostemps): Export. - * posix.sgml: Document them. - * include/cygwin/version.h: Bump version. - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (noload): Use "pushl" rather than "push". - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Avoid nonsensical tests which - delay an interrupt. - (setup_handler): Remove unneeded DEBUGGING handling. Ensure that stack - is locked when we are about to do push/pop to it. Fix debugging output. - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * gendef: Throughout, remove lock from xchgl since it is implied. - (__ZN7_cygtls3popEv): Avoid potential (but probably nonexistent) race - when clearing element after pop. - -2010-07-15 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincap_7): Set needs_count_in_si_lpres2 to false. - -2010-07-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives. - Explain why. - -2010-07-05 Corinna Vinschen <corinna@vinschen.de> - - Align seekdir and telldir API to POSIX definition. - * Makefile.in (NEW_FUNCTIONS): Remove seekdir and telldir mappings. - * dir.cc (telldir): Move functionality from telldir64 here. Use - long, rather than _off_t. - (telldir64): Just call telldir. Only keep for backward compatibility. - (seekdir): Move functionality from seekdir64 here. Use long, rather - than _off_t. - (seekdir64): Just call seekdir. Only keep for backward compatibility. - * fhandler.h: Throughout, change prototypes of seekdir and telldir - methods to use long, rather than _off64_t. - * fhandler_disk_file.cc: Change aforementioned methods accordingly. - * fhandler_netdrive.cc: Ditto. - * fhandler_registry.cc: Ditto. - * fhandler_virtual.cc: Ditto. - * include/sys/dirent.h (struct __DIR): Change __d_position from - _off_t to long to reflect API change. - (telldir): Change prototype to use long, rather than off_t. - (seekdir): Ditto. - -2010-07-04 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (path_conv::check): Move fs-specific settings to a point - where we know that we have filled out the filesystem information. - * path.h (path_conv::path_conv): Use consistent initialization for - constructors. - - * include/sys/cygwin.h: Define CW_STRERROR. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 228. - * include/external.h: Implement CW_STRERROR. - -2010-07-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getsockopt): Make sure SO_PEERCRED is only handled - in level SOL_SOCKET. Workaround a return value regression in Vista - and later. Add comment to explain. - -2010-06-29 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Reinstantiate a FIXME comment. - -2010-06-29 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (dump_exception): Use %W instead of %s for printing - progname. - * fork.cc (frok::parent): Fix typos in debug output. - * spawn.cc (spawn_guts): Copy wide Win32 filename into _pinfo::progname, - rather than native NT name. Use %W instead of %S for printing progname. - -2010-06-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fork.cc (frok::parent): Improve error message. - -2010-06-22 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Use small stack buffer rather - than big temp buffer. Fix typo in comment. - (lf_setlock): Revert to using tmp_pathbuf. - (lf_getlock): Ditto. - -2010-06-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Use the long time unused ACL_DEFAULT_SIZE - instead of a constant value. - * security.cc (alloc_sd): Ditto. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * tmpbuf.h: New file. - * flock.cc: Include tmpbuf.h for new tmpbuf functionality. - (allow_others_to_sync): Use tmpbuf rather than tmp_pathbuf. Explain - why. - (lf_setlock): For consistency, use tmpbuf rather than tmp_pathbuf. - (lf_getlock): Ditto. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (__api_fatal): Temporarily generate a stackdump. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * tls_pbuf.cc (tmp_pathbuf::w_get): Report what's failing when too many - buffers are in use. - -2010-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch stat - handle only after checking for NFS. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Use handle - returned by get_stat_handle. - (fhandler_base::fstat_helper): Reinstatiate code to re-open the file - when checking for executability if called via fstat. Explain why. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::dup_worker): Reset path_conv handle in duplicated - fhandler. - * fhandler.cc (fhandler_base::fstatvfs): Keep handle in created - path_conv. - * fhandler.h (fhandler_base::get_stat_access): New method. - (fhandler_base::get_stat_handle): New method. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use handle - returned by get_stat_handle. Only request inode from system if it - isn't already set in the fhandler, and only for filesystems supporting - them. - (fhandler_base::fstat_fs): Use handle returned by get_stat_handle. - Change the way open_fs is called. Explain why. - (fhandler_base::fstat_helper): Use handle returned by get_stat_handle. - Never use 0 inode number. Simplify executable recognition by re-using - get_stat_handle if file could be opened with sufficient rights. - (fhandler_disk_file::fstatvfs): Use handle returned by get_stat_handle. - (fhandler_disk_file::facl): Use handle returned by get_stat_handle in - GETACL and GETACLCNT cases. - (fhandler_disk_file::link): Use handle returned by get_stat_handle - instead of opening file here again. Add comment. - (readdir_get_ino): Keep handle in created path_conv and drop - opening file. - * ntdll.h (wait_pending): New helper function. - * path.cc (symlink_info::check): Drop unused 'opt' parameter from - declaration. Add path_conv_handle argument. - (path_conv::check): Make sure conv_handle is closed. Keep - PC_KEEP_HANDLE flag in pflags_or. Accommodate call to sym.check to - new args. - (path_conv::~path_conv): Close conv_handle. - (symlink_info::check_shortcut): Don't re-open file here, just use - incoming handle. Drop goto's and label out. - (symlink_info::check_sysfile): Don't re-open file here, just use - incoming handle. Keep track of file position to accommodate the fact - that file has been opened asynchronously in calling function. - (symlink_info::check_nfs_symlink): Don't re-open file here, just use - incoming handle. - (symlink_info::check): Drop unused 'opt' parameter. Add - path_conv_handle argument. Always try to open file with GENERIC_READ - rights first to allow reading file content w/o having to re-open the - file. Drop back to READ_CONTROL | FILE_READ_ATTRIBUTES otherwise. - Call symlink test functions (except for check_reparse_point) only if - file could be opened with GENERIC_READ. Keep file handle open if - PC_KEEP_HANDLE is set in pflags. - * path.h (enum pathconv_arg): Add PC_KEEP_HANDLE flag. - (class path_conv_handle): New class. - (class path_conv): Add conv_handle member. - (path_conv::operator =): Duplicate conv_handle. - (path_conv::handle): New method. - (path_conv::access): New method. - (path_conv::reset_conv_handle): New method. - (path_conv::close_conv_handle): New method. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Fix indentation. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Convert from - static function to path_conv method. Accommodate throughout. - (path_conv::ndisk_links): Unused, comment out. - * path.h (path_conv::get_ino_by_handle): Declare. - (path_conv::ndisk_links): Comment out declaration. - -2010-06-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Return with ENOTDIR if component is a - device. - -2010-06-14 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Revert patch from 2010-04-29. - -2010-06-12 Christopher Faylor <me+cygwin@cgf.cx> - - * times.cc (gtod): Move to sharable region. - -2010-06-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_shortcut): Use ro_u_empty rather than - local UNICODE_STRING object. - (symlink_info::check_sysfile): Ditto. Return immediately if NtOpenFile - failed to avoid closing random handle. Improve debug output in case - NtReadFile failed. - -2010-06-08 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Set h to NULL after closing handle - in udf check. Remove overagressive bracketing. Don't set h to NULL - without closing the handle. Fix using wrong handle in checking - file system when using parent directory handle. - -2010-06-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/stdio.h: Remove _GNU_SOURCE guard around getline - and getdelim prototypes since they are SUSv4 now. - -2010-06-02 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_BAD_NETWORK_PATH): Define. - (STATUS_BAD_NETWORK_NAME): Define. - * path.cc (symlink_info::check): Convert STATUS_BAD_NETWORK_PATH and - STATUS_BAD_NETWORK_NAME into an immediate ENOENT. - -2010-06-01 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Correctly append .stackdump - suffix. - - * nlsfuncs.cc (rebase_locale_buf): Reorder arguments. Accommodate - throughout. Add pointer to end of buffer and avoid changing pointers - not pointing into the buffer. - -2010-06-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::exists): Always free WNet - resource if created. - -2010-05-31 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::set_name): Allow to change the user name - if it only differs by case. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (multi_wcstombs): New function. - (fhandler_registry::fstat): Call multi_wcstombs for strings of type - REG_MULTI_SZ. - (fhandler_registry::fill_filebuf): Ditto. - -2010-05-26 Christopher Faylor <me+cygwin@cgf.cx> - - * hires.h (hires_base::reset): New function. - (hires_us): Specify that hires_base is a public import. - (hires_ms): Ditto. - * times.cc (gtod): Move earlier in file. - (settimeofday): Reset gtod so that base will be subsequently - recalculated. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Don't try to handle remote reparse - points as symlinks. Explain why. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * include/inttypes.h: Change PTR definitions to int to align with the - stdint.h type definitions of intptr_t/uintptr_t. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_pty_master): Add master_thread member. - * fhandler_tty.cc (fhandler_pty_master::close): Properly detach from - master thread. - (fhandler_pty_master::setup): Store cygthread pointer of pty master - control thread in master_thread. Don't zap thread handle. - -2010-05-26 Kazuhiro Fujieda <fujieda@acm.org> - Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_time_from_win): Use LOCALE_SMONTHNAME1 - instead of LOCALE_SABBREVMONTHNAME1 in Japanese and Korean - locales to get abbreviated month names. Explain why. - -2010-05-18 Kazuhiro Fujieda <fujieda@acm.org> - - * environ.cc (regopt): Change the first argument to wide char string. - (environ_init): Accommodate change to the first argument of regopt. - * exception.cc (open_stackdumpfile): Accommodate change to the type of - progname in _pinfo. - * external.cc (fillout_pinfo): Ditto. - * fhandler_process.cc (format_process_winexename): Ditto. - (format_process_stat): Ditto. - * fork.cc (fork::parent): Ditto. - * pinfo.cc (pinfo_basic::pinfo_basic): Call GetModuleFileNameW instead - of GetModuleFileName. - (pinfo::thisproc): Accommodate change to the type of progname in - _pinfo. - (pinfo_init): Ditto. - * pinfo.h (_pinfo): Change the type of progname to a wide char array. - * registry.h (reg_key::get_int): Change the first argument from - constant point to pointer to constant. - (reg_key::get_string): Ditto. Change the last argument likewise. - * registry.cc (reg_key::get_int): Accommodate change to the - declaration. - (reg_key::get_string): Ditto. - * strace.cc (strace::hello): Accommodate change to the type of progname - in _pinfo. - (strace::vsprntf): Ditto. - -2010-05-07 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in (DLL_OFILES): Add pseudo-reloc.o. - * dcrt0.cc (child_info_fork::handle_fork): Call - _pei386_runtime_relocator here. - (dll_crt0_1): Ditto for non-fork case. - * dll_init.cc (dll::init): Complain more in comment. Clean up - slightly. - (dll_dllcrt0_1): Call _pei386_runtime_relocator when we know we have - a filled-in per_process structure. - * globals.cc (__cygwin_user_data): Accommodate new fields for - _pei386_runtime_relocator. - * pseudo-reloc.cc: New file adapted from old lib/pseudo-reloc.c. - Include winsup.h directly. Collapse #ifdef __CYGWIN__ into one block. - Perform minor whitespace code reformatting. - (__report_error): Use small_printf to output error. - (_pei386_runtime_relocator): Conditionalize for cygwin to take - per_process pointer parameter. - * winsup.h (_pei386_runtime_relocator): Declare. - * include/cygwin/version.h - (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED): New macro. - (CYGWIN_VERSION_USER_API_VERSION_COMBINED): Use above macro. - (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL): New macro. - (CYGWIN_VERSION_API_MINOR): Bump to 227. - * include/sys/cygwin.h: Remove obsolete comment. - (per_process::unused2): Shorten. - (per_process::pseudo_reloc_start): New field. - (per_process::pseudo_reloc_end): Ditto. - (per_process::image_base): Ditto. - * lib/_cygwin_crt0_common.cc: Declare pseudo runtime externs needed for - per_process structure. - (_cygwin_crt0_common): Fill in pseudo_reloc runtime constants. - * lib/pseudo-reloc-dummy.c: New file. Dummy function to satisify ld. - * lib/pseudo-reloc.c: Delete. - -2010-05-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::init): Disable grabbing - process group ownership of tty in case we're being debugged. - -2010-05-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Drop setting sym.pflags before calling - mount_info::conv_to_win32_path since the flag value is overwritten by - mount_info::conv_to_win32_path anyway. - Set flags for DOS paths before calling symlink_info::check so they can - be used in that function already. - -2010-05-03 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (dll_list::alloc): Add debugging assertion. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Handle non-existent file. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (struct opt): Add "dos" and "ihash" options. - (fillout_mntent): Ditto. - * path.cc (path_conv::get_nt_native_path): Use path_conv's - has_dos_filenames_only method. - (path_conv::check): Add PATH_IHASH flag if FS has unreliable inode - numbers. - (symlink_info::check_shortcut): Or symlink flags to pflags. - (symlink_info::check_sysfile): Ditto. Change test accordingly. - (symlink_info::check_reparse_point): Ditto. - (symlink_info::check_nfs_symlink): Ditto. - (symlink_info::check): Check PATH_DOS flag in call to get_nt_native_path - to utilize mount flag. Ditto in test for potential restarting. Set - PATH_DOS if FS only allows DOS filename rules. - * path.h (enum path_types): Add PATH_DOS and PATH_IHASH. - (path_conv::hasgood_inode): Check PATH_IHASH instead of - fs.hasgood_inode. - (path_conv::has_dos_filenames_only): New method. - * include/sys/mount.h (MOUNT_DOS): New mount flag. - (MOUNT_IHASH): Ditto. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_CVT_MNT_OPTS to allow mount - flag parsing. Add CW_LST_MNT_OPTS case to allow mount flag listing. - * mount.cc (fstab_read_flags): Rename from read_flags. Make externally - available. Change input string to char ** to allow returning faulty - option. Add flag for avoiding debug output. - (fstab_list_flags): New function to create list of options. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_MNT_OPTS and - CW_LST_MNT_OPTS. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (compare_flags): New function. - (read_flags): Replace loop with bsearch. Simplify error check. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump API minor version. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (__locale_mb_cur_max): Export. - * nlsfuncs.cc (__getlocaleinfo): Drop conversion to multibyte. - (__charfromwchar): New function to convert to multibyte. - (__eval_datetimefmt): Convert to return wchar_t pointer. Work on - wide char string. - (__set_lc_time_from_win): Take additional pointer to "C" category info - to accommodate C.foo locales. Rework to fill wide char members in - category info. - (__set_lc_ctype_from_win): New function. - (__set_lc_numeric_from_win): Take additional pointer to "C" category - info to accommodate C.foo locales. Rework to fill wide char members - in category info. - (__set_lc_monetary_from_win): Ditto. - (__set_lc_messages_from_win): Ditto. - (__get_current_collate_codeset): New function, called from nl_langinfo. - * include/cygwin/config.h (__HAVE_LOCALE_INFO_EXTENDED__): Define. - -2010-04-27 Christopher Faylor <me+cygwin@cgf.cx> - - * spawn.cc (find_exec): Use the first detected errno when lookup fails. - -2010-04-27 Corinna Vinschen <corinna@vinschen.de> - - * include/regex.h: Include _ansi.h to avoid missing out on preprocessor - macros in sys/_types.h. - -2010-04-26 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (fs_info::inited): New inline method. - * path.cc (path_conv::check): Clear filesystem info if following a - symlink. Use new fs_info::inited method to check if FS info is already - available. - (symlink_info::check): Drop fs_update_called. Use fs_info::inited - method instead. Streamline test for leading space and trailing dot or - space. Add comments. - -2010-04-23 Corinna Vinschen <corinna@vinschen.de> - - * path.h (get_nt_native_path): Add third parameter to declaration and - declare with regparms. - * path.cc (get_nt_native_path): Add third parameter to allow conversion - of leading and trailing dots and spaces on filesystems only supporting - filenames following DOS rules. - (path_conv::get_nt_native_path): Call get_nt_native_path according to - fs.has_dos_filenames_only flag. - (getfileattr): Accommodate new parameter to get_nt_native_path. - (symlink_info::check): Revamp fs_update_called handling to call - fs.update only once per call. Call get_nt_native_path according to - fs.has_dos_filenames_only flag. Streamline filesystem dependent code - not to be called more than once unnecessarily. Drop code tweaking - incoming path for broken filesystems only allowing DOS pathnames. - Rely on changed get_nt_native_path instead. - * mount.cc (fillout_mntent): Accommodate new parameter to - get_nt_native_path. - * strfuncs.cc (tfx_rev_chars): New conversion table with comment. - (sys_cp_wcstombs): Use tfx_rev_chars rather than tfx_chars. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Make sure to restart only once. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (GETVOLINFO_VALID_MASK): Drop FILE_SEQUENTIAL_WRITE_ONCE - from mask. Expand the comment a bit. - (WIN_FAT_FLAGS): New define. - (FS_IS_WINDOWS_FAT): New macro. - (fs_info::update): Handle remote FS faking to be FAT. Subsume under - CIFS. Check for NWFS and has_buggy_basic_info only for remote - filesystems. Add check for has_dos_filenames_only. - * mount.h (class fs_info): Add has_dos_filenames_only status flag. - Implement accessors. - * path.cc (symlink_info::check): Rearrange variable definitions to - clear them up. Add a restart label to allow a clean restart within - the method. Add a check for broken filesystems only allowing DOS - pathnames in case we encounter a STATUS_OBJECT_NAME_NOT_FOUND status. - If all checks point to one of that, restart method with tweaked - incoming path. Add lengthy comments to explain what we do. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Fix a comment. - -2010-04-21 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_termios.cc (tcinit): Remove previously applied change. - Replace with... - * fhandler_tty.cc (fhandler_tty_slave::init): Become process group - leader if called from dtable::init_std_file_from_handle. Add comment - to explain. - -2010-04-21 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Set access mask for - the slave side of ttys explicitely. Explain why. - -2010-04-20 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (cygwin_create_path): Free memory on error. - -2010-04-20 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct init_cygheap): Add rlim_core member. - * cygheap.cc (cygheap_init): Initialize rlim_core to RLIM_INFINITY. - * exceptions.cc (stackdump): Drop extern declaration of rlim_core. - Refer to cygheap->rlim_core instead. - (exception::handle): Disable stackdumping if cygheap->rlim_core is 0. - Don't set WCOREDUMP flag in exit code, if cygheap->rlim_core is 0. - (sigpacket::process): Ditto. - * resource.cc (rlim_core): Remove. - (getrlimit): Fetch RLIMIT_CORE value from cygheap->rlim_core. - (setrlimit): Store RLIMIT_CORE value in cygheap->rlim_core. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * cygerrno.h: Nevermind. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * cygerrno.h: Protect use of NTSTATUS for only when we need it. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * lib/_cygwin_crt0_common.cc: Remove unneeded declarations. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::fch_set_sd): Remove commented out - code. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetNamedPipeClientProcessId): Define. - * fhandler.h (fhandler_tty_slave::fch_open_handles): Declare private. - (fhandler_tty_slave::fch_close_handles): Ditto. - (fhandler_tty_slave::cygserver_attach_tty): Drop declaration. - (fhandler_tty_slave::fstat): Declare public. - (fhandler_tty_slave::fchmod): Declare public. - (fhandler_tty_slave::fchown): Declare public. - (class fhandler_pty_master): Add master_ctl handle. - (fhandler_pty_master::pty_master_thread): Declare public. - * fhandler_termios.cc (fhandler_termios::tcinit): If the process - is started from a non-Cygwin process, make it tty process group - leader. - * fhandler_tty.cc: Throughout accommodate additional security related - arguments in calls to functions creating or opening objects. - (close_maybe): Move to start of file to reuse it - in other methods. - (struct pipe_request): Define. - (struct pipe_reply): Define. - (fhandler_tty_slave::open): Throughout, try to open synchronization - objects with MAXIMUM_ALLOWED permissions. Drop call to cygserver. - Try to duplicate pipe handles via master_ctl pipe if duplicating - directly doesn't work. - (fhandler_tty_slave::cygserver_attach_tty): Remove. - (fhandler_tty_slave::init): Close unused incoming pipe handle. - (fhandler_pty_master::close): Send exit message to master control - thread and close master_ctl handle. - (fhandler_pty_master::pty_master_thread): New method, implementing the - master control thread. - (pty_master_thread): Static helper to start master control thread. - (fhandler_pty_master::setup): Simplify creating pipe inheritance. - Make sure we're the one creating the input_available_event. Add - comment to explain why. Create master_ctl pipe and start master - control thread. Close master_ctl handle in case of error. - * security.cc (alloc_sd): Add code to handle tty objects. Add comments - to explain what exactly is required. - (get_object_sd): New function. - (get_object_attribute): New function. - (create_object_sd_from_attribute): New function. - (set_object_sd): New function. - (set_object_attribute): New function. - (set_file_attribute): Change attribute type to mode_t. - * security.h (set_file_attribute): Change attribute type to mode_t. - (get_object_sd): Declare. - (get_object_attribute): Declare. - (create_object_sd_from_attribute): Declare. - (set_object_sd): Declare. - (set_object_attribute): Declare. - * tty.cc (tty::slave_alive): Implement directly instead of via alive. - (tty::exists): Open mutex handle with READ_CONTROL access. - (tty::alive): Remove. - (tty::open_output_mutex): Convert to inline method. - (tty::open_input_mutex): Ditto. - (tty::open_mutex): Take additional ACCESS_MASK parameter for the - mutex open access mask. - (tty::open_inuse): New method. - (tty::create_inuse): Take PSECURITY_ATTRIBUTES parameter. Drop fmt - name parameter. Always create TTY_SLAVE_ALIVE event. - (tty::get_event): Take additional PSECURITY_ATTRIBUTES parameter for - CreateEvent. - * tty.h (class tty): Change declarations according to aforementioned - changes. - (tty::open_output_mutex): Implement as inline method. - (tty::open_input_mutex): Ditto. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Set dev to - valid content for ptys. Remove setting FILE_CREATE_PIPE_INSTANCE - in access flags since it's not needed. Set the access mask for - kernel objects according to what's returned by NtQueryInformationFile, - info class FileAccessInformation. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): On STATUS_ACCESS_VIOLATION, retry to open - for DELETE until the STATUS_ACCESS_VIOLATION goes away. Add comment - to explain why. - -2010-04-17 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (get_null_sd): Make static. Use PSECURITY_DESCRIPTOR - instead of SECURITY_DESCRIPTOR *. - (sec_acl): Fix fomratting. - * security.h (get_null_sd): Drop declaration. - -2010-04-16 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (seterrno_from_nt_status): Declare. - (__seterrno_from_nt_status): Call seterrno_from_nt_status. - * errno.cc (seterrno_from_win_error): Set errno without calling - set_errno to avoid packing strace output with errno messages. - (seterrno_from_nt_status): New function to print NT status as well as - resulting Windows error. - -2010-04-15 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (CreateEventW): Create event object with EVENT_ALL_ACCESS - access mask. - (CreateMutexW): Create mutex object with MUTEX_ALL_ACCESS access mask. - (CreateSemaphoreW): Create semaphore object with SEMAPHORE_ALL_ACCESS - access mask. - -2010-04-15 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (set_cygwin_privileges): Enable SE_DEBUG_PRIVILEGE, if - available. Add comments. - -2010-04-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Only test the file for being a - socket after opening it. Retry if opening failed with sharing - violation. Explain why we do this. - (fhandler_socket::bind): Create file with no sharing allowed. - -2010-04-13 John Bowman <bowman@math.ualberta.ca> - - * cygheap.cc (cwcsdup): Fix allocation size to accommodate sizeof WCHAR. - (cwcsdup1): Ditto. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 5. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Improve lseek description. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::open): Add code to duplicate - handles within a single process to simplify openpty case. - (fhandler_tty_slave::cygserver_attach_tty): Correctly send Windows PID - to cygserver, rather than the Cygwin PID. - -2010-04-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class dev_console): Add backspace_keycode member. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize - backspace_keycode with CERASE. - (fhandler_console::read): Return dev_state->backspace_keycode if the - backspace key is pressed. - (fhandler_console::char_command): Implement DECBKM escape sequence. - -2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (fhandler_console::read): Default to sending - CERASE character if termios VERASE field is zero. - (fhandler_console::fixup_after_fork_exec): Avoid a spurious debug - message. - -2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> - - * mkvers.sh: Use modern date formats to construct the date. - -2010-04-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_time_from_win): Actually set - _time_locale->md_order to the D_MD_ORDER value written to the buffer. - -2010-04-09 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (path_conv::set_normalized_path): Use crealloc_abort to avoid - a memory leak. - * path.h (path_conv::operator =): Just use cstrdup to allocate - normalized_path, avoiding attempt to free a pointer which is allocated - in another pc. - -2010-04-07 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 4. - -2010-04-06 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (valid_sched_parameters): Declare extern here. - (sched_set_thread_priority): Ditto. - -2010-04-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sched.h: Remove, overruled by newlib file. - * include/sys/sched.h: Ditto. - -2010-04-06 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::open): Accommodate previous return - value change to setup_overlapped. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::has_ongoing_io): Declare virtual method. - * select.cc (peek_pipe): Reorganize slightly. Don't attempt to check a - handle if it has ongoing I/O. - (select_pipe_info::select_pipe_info): Delete definition. - (select_pipe_info::~select_pipe_info): Delete definition. - (thread_pipe): Get rid of WFMO call. Reorganize loop. - (pipe_cleanup): Remove dependence on destructor. - (thread_serial): Reorganize loop. - * select.h (select_pipe_info): Empty this class since it no longer has - any special requirements (for now). - - * syscalls.cc (readv): Remove an unneeded debug printf. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::setup_overlapped): Delete virtual - declaration. - (fhandler_base::destroy_overlapped): Ditto. - (fhandler_base_overlapped): Remove now-unneeded friend. - (fhandler_base_overlapped::setup_overlapped): Return int, remove - parameter. - (fhandler_base_overlapped::get_overlapped): Return reference. - (fhandler_base_overlapped::fhandler_base_overlapped): Be more assertive - about zeroing everything. - (fhandler_base_overlapped::fixup_after_fork): Declare new function. - (fhandler_base_overlapped::fixup_after_exec): Ditto. - (fhandler_base_overlapped::dup): Ditto. - (fhandler_base_overlapped::close): Ditto. - * fhandler_fifo.cc (fhandler_fifo::dup): Call - fhandler_base_overlapped::dup rather than fhandler_base::dup. - * pipe.cc (fhandler_pipe::dup): Ditto. - (fhandler_pipe::init): Accommodate change in setup_overlapped arguments - for "opened_properly" case. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Properly initialize - overlapped part of this class. - -2010-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::close): Revert previous change. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * select.h (select_pipe_info::add_watch_handle): Delete declaration. - * select.cc (select_pipe_info::add_watch_handle): Delete definition. - (fhandler_pipe::select_read): Delete call to add_watch_handle. - (fhandler_pipe::select_write): Ditto. - (fhandler_pipe::select_except): Ditto. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (dtable::init_std_file_from_handle): Avoid adding fh to - fdtab until we know that it is good. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Handle - error conditions more consistently. Avoid handle leakage on error. - -2010-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::close): Avoid potential crash - if former open call has been unsuccessful. - -2010-04-01 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc: Fix indentation. - -2010-04-01 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (rebase_locale_buf): New helper function to rebase - function pointers in locale structures. Explain why this is necessary. - (__set_lc_time_from_win): Use rebase_locale_buf after realloc. - (__set_lc_numeric_from_win): Ditto. - (__set_lc_monetary_from_win): Ditto. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (wait_sig): Make sure that strace is activated on - __SIGSTRACE by calling new strace::activate function. - * strace.cc (strace::activate): Rename from strace::strace. - * strace.h (strace::activate): Define new function. - (strace::strace): Call activate. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base_overlapped): Temporarily (?) make - select_pipe_info a friend until the fhandler_tty intertangling can be - worked out. - * select.cc (select_pipe_info::add_watch_handle): Don't inspect the - overlapped event if we're not waiting for I/O. - (fhandler_tty_common::select_*): Change to standard function. Don't do - kludgy fhandler_pipe coercion. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::dup): Call setup_overlapped - unconditionally. - (fhandler_base::fork_fixup): Ditto. - (fhandler_base::fixup_after_fork): Ditto. - (fhandler_base::fixup_after_exec): Ditto. - (fhandler_base_overlapped::setup_overlapped): Move to this class from - fhandler_base. - (handler_base_overlapped::destroy_overlapped): Ditto. - (fhandler_base_overlapped::wait_overlapped): Ditto. Track when we - expect pending I/O. - (fhandler_base_overlapped::read_overlapped): Move to this class from - fhandler_base. Return error if ongoing I/O. - (fhandler_base_overlapped::write_overlapped): Ditto. - (fhandler_base_overlapped::has_ongoing_io): Semi-reinstate previous - function. - * fhandler.h (fhandler_base::wait_overlapped): Move to - fhandler_base_overlapped class. - (fhandler_base::write_overlapped): Ditto. - (fhandler_base::get_overlapped): Ditto. - (fhandler_base::get_overlapped_buffer): Ditto. - (fhandler_base_overlapped): New class. - (fhandler_pipe): Inherit from fhandler_base_overlapped. Remove - overlapped stuff as a result. - (fhandler_fifo): Ditto. - * pipe.cc (fhandler_pipe::fhandler_pipe): Initialize fhandler_base_overlapped. - (pipe): Put a descriptive name in the fhandler. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait_for_events): Remove call to - sig_dispatch_pending. - -2010-03-30 Thomas Wolff <towo@towo.net> - - * fhandler.h (class dev_console): Drop vt100_graphics_mode_active. Add - flags vt100_graphics_mode_G0, vt100_graphics_mode_G1 and iso_2022_G1. - * fhandler_console.cc: Throughout, tune VT100 graphics mode switching - to follow ISO 2022 strictly. - (fhandler_console::write) Reset VT100 graphic mode flags on terminal - full reset (ESC c). - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (open): Remove call to sig_dispatch_pending. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Remove calls to sig_dispatch_pending throughout. - * libc/rexec.cc: Ditto. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Allow variable FILE_SUPPORTS_SPARSE_FILES - flag in netapp flag test. Add comment. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Enable finding paths in backslash notation, - especially for the exec[vl]p functions. - - * path.cc (symlink_info::check): Disable returning directories with - suffix appended here. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 3. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fstat): Keep st_ctime and st_birthtime - fixed to 2006-12-01 00:00 UTC. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * libc/rcmd.c: Enable IPv6. - -2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::fstat): Set st_mtime to current time. - -2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> - - * globals.cc (exit_status): Add new ES_EXIT_STARTING enum. - * dcrt0.cc (cygwin_exit): Set exit_state to ES_EXIT_STARTING prior to - calling real exit. - * dll_init.cc (dll_list::detach): Remove dll from linked list and call - destructors even if exiting. Don't call __cxa_finalize in exiting case. - -2010-03-27 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - locales defaulting to codepage 936 to GB2312. - -2010-03-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Make erase - const in parameter list. - (fhandler_socket::wait_for_events): Take a DWORD flags value instead of - just a bool. Call evaluate_events with erase flag according to - MSG_PEEK value in flags. Replace check for dontwait with check for - MSG_DONTWAIT in flags. - (fhandler_socket::connect): Call wait_for_events with 0 flags value. - (fhandler_socket::accept4): Ditto. - (fhandler_socket::recv_internal): Save flags in wait_flags. Drop - dontwait variable. Call wait_for_events with wait_flags. - (fhandler_socket::send_internal): Save MSG_DONTWAIT flag in wait_flags - and call wait_for_events with wait_flags as argument. Drop dontwait - variable. - * fhandler.h (class fhandler_socket): Change second parameter in - declaration of wait_for_events to const DWORD. - -2010-03-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Add standard read - permissions again. - -2010-03-18 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (init_installation_root): Change to make sure that scope of - the lock lasts the entire function. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (user_info): Add dll_crt0_1 as a friend. - (user_info::version): Make LONG to accommodate spinlock use. - (user_info::create): New static function renamed from user_info_create. - (user_info::initialize): New private function renamed from - user_info_initialize. - (SHARED_VERSION): Delete. - (SHARED_VERSION_MAGIC): Ditto. - (USER_VERSION_MAGIC): Ditto. - (SHARED_INFO_CB): Ditto. - (USER_VERSION): Ditto. - (USER_VERSION_MAGIC): Ditto. - (CURR_SHARED_MAGIC): Update. - (CURR_USER_MAGIC): Ditto. - (shared_info::version): Make LONG to accommodate spinlock use. - (shared_info::create): New static function mirroring user_info::create. - (dll_crt0_1): Accommodate change to user_info::initialize. - * spinlock.h (spinlock::setto): New variable member. - (spinlock::done): New function. - (spinlock::spinlock): Generalize to allow arbitrary values and - timeouts. Call done() when lock is not needed. - * ntdll.h: Make multiple-inclusion safe. - (NtQuerySystemTime): Declare. - * shared.cc (installation_root_inited): Rename from shared_mem_inited. - (init_installation_root): Make inline. Use a spinlock to ensure that - this is initialized only once per session. - (user_info::initialize): Rename from user_shared_initialize. Protect - with spinlock on sversion and remove other spinlock-like things. - Remove reference to user_shared since it is now implicit. Refer to - spinlock version of multiple_cygwin_problem to ensure that any spinlock - is released. - (user_info::create): Rename from user_shared_create. Accommodate - change from user_shared_initialize to user_info::initialize. - (shared_info::create): New inline function. - (shared_info::initialize): Protect with spinlock on sversion. Move - heap_init back under specific control of shared_info spinlock. Remove - reference to SHARED_INFO_CB and just use sizeof(*this). - (memory_init): Move all locking into respective functions where it is - needed. Accommodate name changes. Remove call to heap_init(). - * syscalls.cc (seteuid32): Accommodate name change to - user_info::create(). - - * mount.cc (mount_info::create_root_entry): Report on errors from - add_item since they should be nonexistent. - (mount_info::init): Don't initialize nmounts. It should already be - zero. Give more verbose error when root_idx < 0. Implicitly use this - pointer rather than explicitly referencing mount_table->. - (mount_info::add_item): Minor whitespace fix. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (no_signals_available): Get sense of the test right for - previous botched change. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (no_signals_available): Don't try to send a signal if - still in cygwin startup code. - -2010-03-13 Christopher Faylor <me+cygwin@cgf.cx> - - * spinlock.h: New file. - (spinlock): New class. - * shared.cc: Include spinlock.h. - (memory_init): Use new spinlock methods rather than roll-your-own. - Time out after ten seconds if shared_mem_inited is not initialized. - - * sync.h: Update copyright. Remove vanity attribution. - - * sigproc.cc (sigproc_terminate): Avoid attempts to kill the signal - thread while we're still initializing or suffer a deadlock. - -2010-03-12 Christopher Faylor <me+cygwin@cgf.cx> - - Throughout change all calls of low_priority_sleep (0) to yield (). - * miscfuncs.cc (yield): Rename from low_priority_sleep. Remove all of - the logic which called Sleep() and just use SwitchToThread. - * miscfuncs.h (yield): Rename from low_priority_sleep. - (SLEEP_0_STAY_LOW): Delete unused define. - * shared.cc (memory_init): Move heap_init() call directly after shared - memory initialization to more closely mimic long-standing program flow. - * tty.cc (tty_list::terminate): Replace call to low_priority_sleep with - Sleep. - -2010-03-10 Christopher Faylor <me.cygwin@cgf.cx> - - * shared.cc (memory_init): Fix comment. Fix indentation. - -2010-03-09 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (open_shared): Create function wrapper for common use - case. - (open_shared): Change fifth argument to a pointer rather than a - reference. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Eliminate use - of dummy variable and call open_shared with constant. - * fhandler_process.cc (format_process_mounts): Ditto. - * pinfo.cc (pinfo::init): Pass pointer to shloc. - * shared.cc (shared_mem_inited): New variable. - (open_shared): Crate function wrapper for common use case. - (open_shared): Accommodate change to fifth argument to a pointer. - (shared_info::initialize): Remove spinlock test. Simplify function. - Move get_session_parent_dir call back here. - (memory_init): Protect global shared settings with shared_mem_inited - spinlock. Move get_session_parent_dir call to shared_info::initialize. - -2010-03-09 Christopher Faylor <me.cygwin@cgf.cx> - - * shared.cc (inst_root_inited): Delete. - * (shared_info::initialize): Reorganize. Move call to - init_installation_root here under spinlock control. Move unneeded - non-shared_info initialization out of this function. - (memory_init): Remove call to init_installation_root. Call heap_init - and get_session_parent_dir here. - -2010-03-04 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (nt_path_has_executable_suffix): Change storage class of - blessed_executable_suffixes to static. - (rename): Revert meaning of old_explicit_suffix. Change the rules - for appending a .exe suffix and (yikes!) document them. - -2010-03-04 Charles Wilson <cygwin@cwilson.fastmail.fm> - - * cygwin.din: Export __xdr functions. - * include/cygwin/version.h: Bump version. - * posix.sgml: Add a few more XDR functions to list - of implemented Solaris functions. - -2010-03-03 Charles Wilson <cygwin@cwilson.fastmail.fm> - - Add XDR support. - * cygwin.din: Export xdr functions. - * include/cygwin/version.h: Bump version. - * cygxdr.cc: New. - * cygxdr.h: New. - * dcrt0.cc (dll_crt0_1): Print the (rare) xdr-related - error messages to stderr. - * Makefile.in: Add cygxdr. - * posix.sgml: Add new XDR functions to list of implemented Solaris - functions. - -2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h: Replace /*gentls_offsets*/ at end. - -2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * exception.h: Fix copyright. - -2010-02-27 Christopher Faylor <me+cygwin@cgf.cx> - - Update some copyrights. - * cygtls.cc (_cygtls::call): Invoke new exception protection here. - (_cygtls::init_thread): Remove conditionalized exception handler setup. - (exception_list): Delete declaration. - (_cygtls::init_exception_handler): Delete obsolete function. - * cygtls.h: Remove (now) unneeded include. - (_cygtls): Make this a real C++ class. - (_cygtls::handle_exceptions): Remove. - (_cygtls::init_exception_handler): Remove. - (_cygtls::call2): Make private. - (myfault::faulted): Remove unneeded parentheses. - * dcrt0.cc (dll_crt0_1): Remove exception handler setup. - * dlfcn.cc (dlopen): Ditto. - (dlclose): Ditto. - * dll_init.cc (dll_dllcrt0_1): Ditto. - (dll_list::detach): Use new exception handler protection. - * exceptions.cc (dump_exception): Rename to prevent confusion with new - class. - (exception::handle): Rename from _cygtls::handle_exceptions. - Accommodate new exception class. Accommodate rename to dump_exception. - * tlsoffsets.h: Regenerate. - -2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (_cygtls::init_exception_handler): Eliminate argument. - (_cygtls::andreas): Convert to a pointer. - (san): Convert to a real class with methods. Use a linked list to - keep track of previous handlers on the "stack". - (myfault): Rewrite to use new san class rather than calling directly - into _cygtls. - * cygtls.cc (_cygtls::init_exception_handler): Just assume that we're - always using the standard exception handler. - (_cygtls::init_thread): Reflect loss of argument to - init_exception_handler. - * dcrt0.cc (dll_crt0_1): Ditto. - * dfcn.cc (dlopen): Ditto. - (dlclose): Reset the exception handler after FreeLibrary. - * dll_init.cc (dll_list::detach): Make sure that the exception handler - is initialized before calling destructors. - * exceptions.cc (_cygtls::handle_exceptions): Accommodate new andreas - pointer. - * thread.cc (verifyable_object_isvalid): Pass objectptr to faulted for - explicit NULL pointer checking. - * tlsoffsets.h: Regenerate. - -2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> - - * mkimport: cd away from temp directory or Windows will have problems - removing the directory. - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - * libc/strptime.cc: Implement support for era, alt_digits and POSIX - padding and width modifiers. - (era_info_t): New type. - (free_era_info): New static function to free era_info_t storage. - (get_era_info): New static function to create era_info_t storage - from LC_TIME era information. - (alt_digits_t): New type. - (get_alt_digits): New static function to create alt_digits_t storage - from LC_TIME alt_digits information. - (free_alt_digits): New static function to free alt_digits_t storage. - (find_alt_digits): New static function to scan input for alternative - digits and return them, if any. Return NULL otherwise. - (__strptime): New static function taking all code from strptime. - Implement handling for E, O, +, 0, and width modifiers per POSIX-1.2008. - (strptime): Convert into wrapper function to provide era_info and - alt_digits pointers and call __strptime. - (conv_num): Take additional alt_digits_t parameter and if it's not - NULL, call find_alt_digits to convert. - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - * strsig.cc: Fix formatting and copyright. - -2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org> - - * security.cc (check_access): Use user.imp_token if appropriate. - Set errno and return if DuplicateTokenEx fails . - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - Remove all traces of __CYGWIN_USE_BIG_TYPES__. - - * include/cygwin/config.h: Move Cygwin-specific build flags from - newlib's sys/config.h here. Add a comment. - -2010-02-25 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/signal.h: Define SIGPWR as synonym for SIGLOST. - * strsig.cc: Ditto. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR. - -2010-02-25 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h (lc_era_t): Fix apparent glibc bug in ja_JP era definition. - -2010-02-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_full_privileged_inheritable_token): Fix dumb typo - when checking linked token for being a primary token. - -2010-02-24 Christopher Faylor <me+cygwin@cgf.cx> - - * dlfcn.cc (dlopen): Make sure exception handler is really loaded after - dynamic load. - -2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Force installation of - our exception handler to always be at the beginning. - -2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> - - * thread.cc (pthread_mutex::unlock): Don't attempt to unlock if there - is an error. - -2010-02-22 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/strace.h: Define _STRACE_SPECIAL. - (strace_printf_wrap): Fix NOSTRACE definitions. - (strace_printf_wrap1): Fix NOSTRACE definitions. - (special_printf): Define. - - * thread.cc: Perform minor syntax fix in a comment. Rename - "is_good_initialzer*" to "is_initializer*" throughout. Use - pthread_printf rather than debug_printf throughout. Add extra - pthread_printf debugging throughout. - (pthread_mutex::_new_mutex): New constant value. - (pthread_mutex::_unlocked_mutex): Ditto. - (pthread_mutex::_destroyed_mutex): Ditto. - (pthread_mutex::no_owner): Define new function. - (pthread_mutex::can_be_unlocked): Detect no_owner situation. Handle - PTHREAD_MUTEX_NORMAL as a special case. - (pthread::create_cancel_event): Use C++ boolean values. - (pthread::precreate): Use method to set mutex type. - (pthread_cond::pthread_cond): Ditto. - (pthread_rwlock::pthread_rwlock): Ditto. - (pthread_mutex::pthread_mutex): Set owner to _new_mutex initially. - (pthread_mutex::~pthread_mutex): Reset various elements to make it - clearer if they are incorrectly reused. - (pthread_mutex::lock): Add clarifying comment. - (pthread_mutex::unlock): Attempt to handle various mutex types - correctly. In particular, reinstate ability to have one thread unlock - another thread's mutex if type == PTHREAD_MUTEX_NORMAL. - (semaphore::_fixup_after_fork): Avoid redundancy. - (pthread_mutex::_fixup_after_fork): Ditto. Fix debugging statement. - (__pthread_cond_dowait): Accommodate changes to remove previously - inexplicable use can_be_unblocked() as a static function. - * thread.h: Rename "is_good_initialzer*" to "is_initializer*" - throughout. - (pthread_mutex): Reorganize. Make many things private. - (pthread_mutex::no_owner): Define new method. - (pthread_mutex::_new_mutex): Define new constant. - (pthread_mutex::_unlocked_mutex): Ditto. - (pthread_mutex::_destroyed_mutex): Ditto. - -2010-02-22 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h: Redefine lc_era_t to keep - default date and time formats as well to workaround YA Windows - shortcoming. Refresh with latest data. - * lc_msg.h: Refresh with latest data. - * nlsfuncs.cc (__eval_datetimefmt): Revert latest change. - (__set_lc_time_from_win): Rename res to era. Prefer default date and - time formats from era array if available. - (__set_lc_messages_from_win): Rename res to msg. - -2010-02-20 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional - format. - * nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data - in Windows makes it useless. - (__eval_datetimefmt): Check if locale's default calender has - non-gregorian start year. Use era year also in default date entries, - if so. - -2010-02-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (warn_msdos): Enforce extended hex printing of multibyte - pathnames. - -2010-02-19 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/strace.h: Remove old code. Add support for ptrace - tracing. - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h: New file. - * nlsfuncs.cc: Include lc_era.h. - (locale_cmp): convert arguments to char** to be usable for both types, - lc_msg_t and lc_era_t. - (__set_lc_time_from_win): Handle era-related data - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Try to open - directory with stat()-friendly access mask first. Explain why. - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev - to same value as st_dev. Avoid useless debug output in executable - check. Add filename to debug output. - (fhandler_disk_file::facl): Simplify code calling fstat methods to - just call fstat to avoid errors with the cygdrive directory. - -2010-02-18 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (eval_datetimefmt): Rename force to flags. - (enum dt_flags): Define. - (__eval_datetimefmt): Change force to flags and change type to - dt_flags. Accommodate throughout. - (__set_lc_time_from_win): Accommodate above change. Set era-related - values to empty strings for now. - -2010-02-18 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::setup_overlapped): Revert to starting - with handle in signalled state as it seems to fix some hangs. - -2010-02-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Treat native DOS paths as "noacl". - -2010-02-15 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::conv_to_win32_path): Set UNC path flags to - cygdrive prefix path flags. - -2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::setup_overlapped): Don't set signalled - state to true initially. - (fhandler_base::has_ongoing_io): Delete ill-advised function. - (fhandler_base::read_overlapped): Rely on caller having checked - nonblocking state. Don't attempt to (incorrectly) check it here. - (fhandler_base::write_overlapped): Remove call to has_ongoing_io. - * select.cc (peek_pipe): Ditto. - * fhandler.h (fhandler_base::has_ongoing_io): Delete declaration. - -2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> - - * regex/regcomp.c (xwcrtomb): Fix one explicable and one inexcplicable - C warning. - -2010-02-13 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (xwcrtomb): Don't convert Unicode chars outside the - base plane always to UTF-8. Call wcsnrtombs instead to allow arbitrary - multibyte charsets. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (wgetnext): Use size_t as type for n2 since that's - what's returned by mbrtowc. - * regex/regexec.c (xmbrtowc): Ditto. - -2010-02-12 Christopher Faylor <me+cygwin@cgf.cx> - - * pthread.cc (pthread_mutex_init): Explicitly fill out third arg to - pthread_mutex::init. - * thread.cc: Remov some obsolete comments. - (verifyable_object_isvalid): Reflect change to use thread_magic_t for - magic numbers. - (pthread_mutex::pthread_mutex): Set magic number to invalid initially - until we've verified that everything is valid. - (pthread_mutex::unlock): Fix a comment. - (verifyable_object::verifyable_object): Delete here. - (~verifyable_object::~verifyable_object): Ditto. - (pthread_mutex::init): Don't run is_good_initializer for non-static - objects. - * thread.h (thread_magic_t): New typedef. - (verifyable_object::verifyable_object): Use thread_magic_t; - (verifyable_object::magic): Ditto. - (pthread_mutex::is_good_initializer_or_bad_object): Remove unneeded - variable names. - (pthread_mutex::can_be_unlocked): Ditto. - (pthread_mutex::init): Ditto. Remove default for third argument. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (xwcrtomb): New function to convert wide chars - outside of the base plane to UTF-8. Call throughout instead of - wcrtomb. - (wgetnext): Handle surrogate pairs on UTF-16 systems. - * regex/regexec.c (xmbrtowc): Ditto. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_local_groups): Retrieve name of well known - builtin group from system. Explain why. - * sec_helper.cc (well_known_builtin_sid): New SID for BUILTIN group. - * security.h (well_known_builtin_sid): Declare. - -2010-02-11 Pierre Humblet <Pierre.Humblet@ieee.org> - - * registry.cc (get_registry_hive_path): Add space in string. - -2010-02-11 Corinna Vinschen <corinna@vinschen.de> - - * regex/engine.c (step): Drop Cygwin-specific definition. - (NONCHAR): Better cast here to make the test work. Move comment - from step here. - (matcher): Disable skipping initial string in multibyte case. - * regex/regcomp.c (p_bracket): Don't simplify singleton in the invert - case. - (p_b_term): Handle early end of pattern after dash in bracket - expression. - (singleton): Don't ignore the wides just because there's already a - singleton in the single byte chars. Fix condition for a singleton - wide accordingly. - (findmust): Check for LC_CTYPE charset, rather than LC_COLLATE charset. - * regex2.h (CHIN): Fix condition in the icase & invert case. - (ISWORD): Fix wrong cast to unsigned char. - -2010-02-11 Andy Koppe <andy.koppe@gmail.com> - - * nlsfuncs.cc (initial_setlocale): Move check whether charset has - changed from here... - (internal_setlocale): ...to here, to avoid unnecessary work when invoked - via CW_INT_SETLOCALE. - -2010-02-10 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only - for locales which use EUR as currency. - -2010-02-10 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Convert iu_CA to iu-Latn-CA - rather than iu-Cans-CA on Vista and later. - (__set_charset_from_locale): Set default charset for iu_CA to UTF-8. - -2010-02-10 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (_dll_crt0): Set _main_tls as early as possible. - * thread.cc (pthread_mutex::can_be_unlocked): Remove check for - MUTEX_OWNER_ANONYMOUS since it is racy and unsafe. - (pthread::init_mainthread): Initialize thread directly from _my_tls. - (pthread::self): Ditto. - (pthread::get_tls_self_pointer): Delete. - (pthread_mutex::pthread_mutex): Use an event rather than a semaphore. - (pthread_mutex::lock): Rename from _<func>. Derive self directly. - (pthread_mutex::tryunlock): Ditto. - (pthread_mutex::destroy): Ditto. - (pthread_mutex::unlock): Ditto. Accommodate change from semaphore to - event. - (pthread_mutex::_fixup_after_fork): Accommodate change from semaphore - to event. - (pthread_mutex::init): Don't attempt to initialize a semaphore unless - it is in an initialized state. Do this check under - mutex_initialization_lock.lock - * thread.h (fast_mutex::init): Use event rather than semaphore. - (fast_mutex::lock): Ditto. - (pthread_mutex::_lock): Delete. - (pthread_mutex::_unlock): Ditto. - (pthread_mutex::_trylock): Ditto. - (pthread_mutex::_destroy): Ditto. - (pthread_mutex::get_pthread_self): Ditto. - (pthread_mutex::get_tls_self_pointer): Ditto. - (pthread_mutex::lock): Un-inline. - (pthread_mutex::unlock): Ditto. - (pthread_mutex::trylock): Ditto. - (pthread_mutex::destroy): Ditto. - -2010-02-09 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (struct _cygtls): Remove unneeded elements. - * thread.cc (pthread::exit): Avoid potential double call to - _my_tls.remove. - * tlsoffsets.h: Regenerate. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (lc_wcstombs): Add `return_invalid' flag to specify - whether invalid chars should be ignored or not. Change comment. - (__set_lc_monetary_from_win): Call lc_wcstombs with return_invalid - flag set. - (__set_lc_messages_from_win): Simplify to accommodate the fact that - lc_wcstombs just ignores invalid chars. Explain why. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_messages_from_win): Fix typo. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, fix a problem in locales with modifiers. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, generated from running Linux system. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, autogenerated from CLDR data. - * nlsfuncs.cc: Include lc_msg.h. - (lc_time_buf): Remove. - (lc_numeric_buf): Remove. - (lc_monetary_buf): Remove. - (lc_mbstowcs): Fix previous fix. - (__set_lc_time_from_win): Take additional pointer to buffer pointer, - defined in newlib. - (__set_lc_numeric_from_win): Ditto. - (__set_lc_monetary_from_win): Ditto. - (locale_cmp): New static function. - (__set_lc_messages_from_win): New function to be called from newlib. - -2010-02-08 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_INT_SETLOCALE case to - allow to call internal_setlocale(). - * nlsfuncs.cc (internal_setlocale): Make externally available. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_INT_SETLOCALE. - - * nlsfuncs.cc (lc_mbstowcs): Fix call to f_mbtowc. - (__set_locale_from_locale_alias): Ignore "@cjknarrow" modifier. - -2010-02-07 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Handle "@cyrillic" modifier - for uz_UZ locale here. - (__set_charset_from_locale): Accommodate above change. - -2010-02-07 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_locale_from_locale_alias): New function to read - locale aliases from /usr/share/locale/locale.alias. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Handle no_NO as nb_NO, rather - than nn_NO. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (has_modifier): MOve up in file to use in - __get_lcid_from_locale as well. - (__get_lcid_from_locale): Handle no_NO locale as alias for nn_NO. - Default all sr_XY locales to Cyrillic script. Change lcid to Latin - script if "@latin" modifier has been specified. - (__set_charset_from_locale): Handle Serbian in codepage 1251 case as - well. Also check for sr_BA lcid. Restrict "@euro" modifier to - locales otherwise defaulting to ISO-8859-1. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - "ka_GE" locale to GEORGIAN-PS, for "kk_KZ" to PT154. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_nfs_symlink): Reopen file with - FILE_READ_EA access since, surprisingly, you need it to read EAs even - on NFS. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_full_privileged_inheritable_token): New function - to fetch token with full privileges from logon token in Vista and - later, and to make token inheritable. Add lengthy comments to explain - the function's job. - (cygwin_logon_user): Drop calling SetHandleInformation. Enable TCB - privilege and call get_full_privileged_inheritable_token. - (lsaauth): Don't fetch linked token and don't make handle inheritable - here, just call get_full_privileged_inheritable_token instead. - (lsaprivkeyauth): Ditto. - -2010-02-05 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - "uz_UZ" locale to ISO-8859-1, with the "@cyrillic" modifier to UTF-8. - -2010-02-05 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (per_module::run_dtors): Use consistent method for - running destructors. - -2010-02-04 Christopher Faylor <me+cygwin@cgf.cx> - - * regcomp.c (p_ere): Workaround incorrect compiler warning. - * regerror.c (regatoi): Return non-const string or compiler complains - in certain inexplicable situations. - -2010-02-04 Corinna Vinschen <corinna@vinschen.de> - - * regex/engine.c (step): Declare and define with `int ch' rather than - `wint_t ch' parameter. Explain why. - (NONCHAR): Remove related Cygwin patch here, including wrong comment. - -2010-02-04 Corinna Vinschen <corinna@vinschen.de> - - Replace regex files with multibyte-aware version from FreeBSD. - * Makefile.in (install-headers): Remove extra command to install - regex.h. - (uninstall-headers): Remove extra command to uninstall regex.h. - * nlsfuncs.cc (collate_lcid): Make externally available to allow - access to collation internals from regex functions. - (collate_charset): Ditto. - * wchar.h: Add __cplusplus guards to make C-clean. - * include/regex.h: New file, replacing regex/regex.h. Remove UCB - advertising clause. - * regex/COPYRIGHT: Accommodate BSD license. Remove UCB advertising - clause. - * regex/cclass.h: Remove. - * regex/cname.h: New file from FreeBSD. - * regex/engine.c: Ditto. - (NONCHAR): Tweak for Cygwin. - * regex/engine.ih: Remove. - * regex/mkh: Remove. - * regex/regcomp.c: New file from FreeBSD. Tweak slightly for Cygwin. - Import required collate internals from nlsfunc.cc. - (p_ere_exp): Add GNU-specific \< and \> handling for word boundaries. - (p_simp_re): Ditto. - (__collate_range_cmp): Define. - (p_b_term): Use Cygwin-specific collate internals. - (findmust): Ditto. - * regex/regcomp.ih: Remove. - * regex/regerror.c: New file from FreeBSD. Fix a few compiler warnings. - * regex/regerror.ih: Remove. - * regex/regex.7: New file from FreeBSD. Remove UCB advertising clause. - * regex/regex.h: Remove. Replaced by include/regex.h. - * regex/regexec.c: New file from FreeBSD. Fix a few compiler warnings. - * regex/regfree.c: New file from FreeBSD. - * regex/tests: Remove. - * regex/utils.h: New file from FreeBSD. - -2010-02-03 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (get_proc_lock): Fix error message typo. - -2010-02-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Workaround - another bug in NWFS. Add comment to explain why. Improve debug output - in case the NT calls to test for binary fail. - * path.h (path_conv::fs_is_cifs): New method. - (path_conv::fs_is_nwfs): New method. - -2010-02-02 Corinna Vinschen <corinna@vinschen.de> - - * include/paths.h (_PATH_MNTTAB): Define. - (_PATH_MOUNTED): Define. - * include/mntent.h: Include paths.h. Define MNTTAB and MOUNTED as their - paths.h equivalents. Add comment. - -2010-02-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (atexit_lock): Delete. - (cygwin_exit): Remove atexit lock. - (cygwin_atexit): Ditto. Rename parameter to match newlib. Call - __cxa_atexit when invoked by a registered DLL. - * dll_init.cc (remove_dll_atexit): Delete. - (dll_list::find): New function. - (dll_list::detach): Use dll_list::find to find dll associated with - return address. Use __cxa_finalize to run atexit functions associated - with the dll. - (cygwin_detach_dll): Don't assume that HANDLE == void *. - * dll_init.h (dll_list::find): Declare. - (__cxa_atexit): Ditto. - (__cxa_finalize): Ditto. - - * init.cc (dll_entry): Clarify comment. - -2010-02-02 Dave Korn <dave.korn.cygwin@gmail.com> - - * how-startup-shutdown-works.txt: Add new document. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (lsaauth): Use CYG_LSA_MAGIC as checksum start value to - decouple from Cygwin release. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - * libc/strfmon.c (__setup_vars): Test for an empty string rather than - for a NULL pointer. - -2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (remove_dll_atexit): New function. - (dll_list::detach): Run any atexit handlers registered in the DLL prior - to unloading. - -2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> - - * libc/strfmon.c (__setup_vars): Fix compiler warning about assigning - const strings. Compare a pointer to NULL rather than '\0'. - - * dll_init.cc (dll_dllcrt0_1): Minor comment fix. - - * pipe.cc (fhandler_pipe::create_selectable): Remove Win9x - accommodation. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - Throughout, use FileBothDirectoryInformation info class rather than - FileDirectoryInformation info class to avoid problems with incomplete - filesystem implementations. Fix comments accordingly. - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Set - fname->Length to 0 in error case to avoid potential crash in debug - output. - (fhandler_disk_file::readdir): Try to speed up the working default case. - Check for STATUS_INVALID_NETWORK_RESPONSE as potential status value - returned by filesystems not implementing FileIdBothDirectoryInformation. - * ntdll.h (STATUS_INVALID_NETWORK_RESPONSE): Define. - (FILE_BOTH_DIRECTORY_INFORMATION): Rename to official name. - * path.cc (symlink_info::check): Don't request FILE_READ_EA access, it's - not required for NFS. Try to speed up the working default case. Check - for STATUS_INVALID_NETWORK_RESPONSE as potential status value returned - by filesystems not supporting non-NULL EA parameters. Fix the way - fs.update is called. Improve debug output. - -2010-01-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (tags, ctags, CTAGS)): Add rules to create tags file. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Add comments. Fix typos in - comments. Make sure to set last_lcid every time. Return locale - without territory part as invalid. Handle modern serbian territory - names per ISO 3166 on older systems as well. Add appropriate comment. - (__set_charset_from_locale): Handle LCID for sr_CS as well to make older - systems happy. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Rearrange to set charset - more closely aligned to Glibc. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Only try to remove long path prefix from - runpath if runpath is not NULL. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Fix a comment. Handle special - language/TERRITORY combinations explicitely. Explain why. - -2010-01-24 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Fix comment. - -2010-01-24 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (check_codepage): Move from syscalls.cc here. - (internal_setlocale): Ditto. - (initial_setlocale): Ditto. - (setlocale): Ditto. - * strfuncs.cc (__sjis_wctomb): Revert previous patch. - (__sjis_mbtowc): Ditto. - * syscalls.cc: Move setlocale-related functions to nlsfuncs.cc. - -2010-01-23 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__sjis_wctomb): Special handling for characters which - differ between SJIS and Windows codepage 932, if charset is "SJIS". - (__sjis_mbtowc): Ditto. - (_jis_wctomb): Remove. - (__jis_mbtowc): Remove. - -2010-01-23 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (wcsxfrm): Call LCMapStringW with LCMAP_BYTEREV flag to - allow correct comparison using wcscmp. - -2010-01-22 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (strfmon): Move to implemented SUSv4 API. - -2010-01-22 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add nlsfunc.o and strfmon.o. - * autoload.cc (LocaleNameToLCID): Define. - * cygwin.din (strfmon): Export. - * nlsfuncs.cc: New file. Define a lot of internal functions called - from setlocale. - (wcscoll): Implement locale-aware here, using CompareStringW function. - (strcoll): Ditto. - (wcsxfrm): Implement locale-aware here, usingLCMapStringW function. - (strxfrm): Ditto. - (__set_charset_from_locale): Replace __set_charset_from_codepage. - Return Linux-compatible charset. - * strfuncs.cc (__set_charset_from_codepage): Remove. - * wchar.h (__set_charset_from_codepage): Drop definition. - * wincap.h (wincaps::has_localenames): New element. - * wincap.cc: Implement above element throughout. - * libc/strfmon.c: New file. - * libc/strptime.cc: Remove locale constant strings in favor of - access to locale-specifc data. - (strptime): Point _CurrentTimeLocale to locale-specific data. - Throughout use correct locale-specific format fields for all - locale-specific formats. - * include/monetary.h: New file. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-01-18 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc: Remove needless includes. - -2010-01-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (internal_setlocale): Use UTF-8 internally if external - charset is ASCII. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * libc/fnmatch.c: Replace with multibyte capable version from FreeBSD. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept4): Reset async flag - on accepted socket. - -2010-01-15 Pierre A. Humblet <phumblet@phumblet.no-ip.org> - - * fhandler_socket.cc (fhandler_socket::accept4): Set nonblocking - flag exactly according to flags, as on Linux. - * net.cc (cygwin_accept): Maintain BSD semantics here. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (accept4): Export. - * fhandler.h (fhandler_socket::accept4): Rename from accept. Take - additional flag parameter. - * fhandler_socket.cc (fhandler_socket::accept4): Ditto. Handle - SOCK_NONBLOCK and SOCK_CLOEXEC flags. - * net.cc (cygwin_socket): Handle SOCK_NONBLOCK and SOCK_CLOEXEC flags - in type. Check for invalid flag values. - (socketpair): Ditto. - (cygwin_accept): Accommodate renaming of fhandler_socket::accept - function to accept4. - (accept4): New function. - * posix.sgml: Mention accept4 as GNU extensions. - * include/cygwin/socket.h (SOCK_NONBLOCK): Define. - (SOCK_CLOEXEC): Define. - (_SOCK_FLAG_MASK): Define when building Cygwin. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/socket.h (accept4): Declare. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Mention dup3 and pipe2 as GNU extensions. - -2010-01-14 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before - calling the application's main. - * syscalls.cc (internal_setlocale): Don't reset locale to "C here. - Change comment accordingly. - -2010-01-14 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (dup3): Export. - (pipe2): Export. - * dtable.cc (dtable::dup_worker): Take additional flags parameter. - Handle O_CLOEXEC flag. - (dtable::dup3): Rename from dup2. Take additional flags parameter. - Check for valid flags. Drop check for newfd == oldfd. - * dtable.h (dtable::dup_worker): Add flags parameter. - (dtable::dup3): Rename from dup2. - * fcntl.cc (fcntl64): Add F_DUPFD_CLOEXEC case. - * fhandler.h (fhandler_mailslot::get_object_attr): Add flags parameter. - * fhandler.cc (fhandler_base::open): Use security attribute with - inheritance according to setting of O_CLOEXEC flag. - * fhandler_console.cc (fhandler_console::open): Ditto. - * fhandler_fifo.cc (sec_user_cloexec): New inline function to - create security attribute with inheritance according to setting of - O_CLOEXEC flag. - (fhandler_fifo::open): Call sec_user_cloexec to fetch security - attribute. - (fhandler_fifo::wait): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::open): Ditto. - * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Take - additional flags parameter. Use security attribute with inheritance - according to setting of O_CLOEXEC flag. - (fhandler_mailslot::open): Call get_object_attr with flags parameter. - * fhandler_registry.cc (fhandler_registry::open): Call set_close_on_exec - on real handles to accommodate O_CLOEXEC flag. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - * fhandler_tape.cc: Create mutex with inheritance according to setting - of O_CLOEXEC flag. - * pipe.cc: Replace usage of O_NOINHERIT with O_CLOEXEC. - (fhandler_pipe::init): Simplify setting close_on_exec flag. - (fhandler_pipe::open): Remove setting close_on_exec flag. - (fhandler_pipe::create): Use security attribute with inheritance - according to setting of O_CLOEXEC flag. - (pipe2): New exported function. - * posix_ipc.cc: Throughout, open backing files with O_CLOEXEC - flag to follow POSIX semantics. - * security.h (sec_none_cloexec): New define. - * syscalls.cc (dup): Add missing extern "C" qualifier. Accommodate - renaming of dtable::dup2 to dtable::dup3. - (dup2): Ditto. Check newfd == oldfd here. - (dup3): New function. Check newfd == oldfd here. - (open): Set close_on_exec flag according to O_CLOEXEC flag before - calling fhandler->open. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * include/fcntl.h (O_TTY_INIT): Define as 0. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_master::init): Don't erase all default - termios settings of slave console. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Don't exit prematurely with EROFS when trying - to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL - socket. - -2010-01-12 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_nwfs): New R/O unicode string. - * mount.cc (fs_info::update): Check for NWFS filesystem. Set - has_buggy_basic_info, if so. Add comment to explain why. - (fillout_mntent): Add "nwfs" string to fs_names array. - * mount.h (enum fs_info_type): Add nwfs. - (class fs_info): Add has_buggy_basic_info status flag. Add accessors - for has_buggy_basic_info and is_nwfs. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Accommodate - filesystems with broken FileBasicInformation handling. - * path.cc (symlink_info::check): Ditto. - * path.h (path_conv::has_buggy_basic_info): Add method. - -2010-01-12 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (build_fh_name_worker): Remove. Move all functionality - back into build_fh_name. - (build_fh_name): Drop unused HANDLE parameter. Drop call to pc.fillin. - Remove disabled build_fh_name with UNICODE_STRING name parameter. - * dtable.h (build_fh_name): Drop HANDLE parameter from declaration. - Remove declaration for build_fh_name with UNICODE_STRING name parameter. - * path.cc (path_conv::fillin): Remove. - (symlink_info::check): Fix comment. - * path.h (path_conv::fillin): Remove declaration. - * dir.cc: Accommodate change in build_fh_name parameters throughout. - * sec_acl.cc: Ditto. - * syscalls.cc: Ditto. - - * ntea.cc (getxattr_worker): Fix debug output. - (setxattr_worker): Ditto. - * times.cc (utimens_worker): Ditto. - -2010-01-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_stat): Use new in_buf. - (format_proc_cpuinfo): Replace szBuffer with a union in_buf. Use type - correct throughout. Add a couple of missing or newer cpu flags. Allow - certain AMD flags for intel as well. - -2010-01-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::fstat_helper): Declare timestamps as - PLARGE_INTEGER. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): - Accommodate fstat_helper change of timestamp arguments. - (fhandler_base::fstat_by_name): Ditto. - (fhandler_base::fstat_helper): Define with timestamps as PLARGE_INTEGER. - Accommodate in call to to_timestruc_t. - -2010-01-08 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_token_group_sidlist): Add BUILTIN\Users account - to all created tokens. - * sec_helper.cc (well_known_users_sid): Define as BUILTIN\Users. - * security.h (well_known_users_sid): Declare. - -2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc: Bump copyright. - -2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Move internal locale setting prior to - potential globify to prevent creation of unglobbed filenames in the - wrong character set. diff --git a/winsup/cygwin/ChangeLog-2011 b/winsup/cygwin/ChangeLog-2011 deleted file mode 100644 index a8b9a3af5..000000000 --- a/winsup/cygwin/ChangeLog-2011 +++ /dev/null @@ -1,5318 +0,0 @@ -2011-12-30 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (getpt): Export. - * posix.sgml (std-gnu): Add getpt. - * tty.cc (getpt): New function. - * include/cygwin/stdlib.h [!__STRICT_ANSI__] (getpt): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-12-30 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * thread.cc: Mark pthread_rwlock_timedrdlock and - pthread_rwlock_timedwrlock as not yet implemented in the list of - cancellation points. - -2011-12-24 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_dsp.cc (fhandler_dev_dsp::fhandler_dev_dsp): Set up device. - - * syscalls.cc (open): Very minor formatting tweak. - -2011-12-24 Corinna Vinschen <vinschen@redhat.com> - - * path.cc (struct symlink_info): Add bool argument to declaration of - check_reparse_point. - (symlink_info::check_reparse_point): Add bool argument to indicate - remote drive. Handle STATUS_PENDING. Don't evaluate junctions on - remote drives. Fix comments. - (symlink_info::check): Drop check for is_remote_drive and associated - comment here. Add fs.is_remote_drive as second parameter to - check_reparse_point call. - -2011-12-23 Corinna Vinschen <vinschen@redhat.com> - - * pinfo.cc (pinfo_basic::pinfo_basic): Fix formatting. Set uid and gid - to default values to accommodate early initialization of shared user - info. Add comment. - -2011-12-22 Corinna Vinschen <vinschen@redhat.com> - - * spawn.cc (child_info_spawn::worker): Add CREATE_BREAKAWAY_FROM_JOB - to c_flags only if current process is member of a job and breakaway - is allowed. - -2011-12-22 Corinna Vinschen <vinschen@redhat.com> - - * external.cc (cygwin_internal): Implement CW_ALLOC_DRIVE_MAP, - CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. - * fhandler_process.cc: Include mount.h. - (get_volume_path_names_for_volume_name): Move to mount.cc. - (struct dos_drive_mappings): Ditto. - * mount.cc (get_volume_path_names_for_volume_name): Move here. - (dos_drive_mappings::dos_drive_mappings): Ditto. - (dos_drive_mappings::fixup_if_match): Ditto. - (dos_drive_mappings::~dos_drive_mappings): Ditto. - * mount.h (class dos_drive_mappings): Declare her. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_ALLOC_DRIVE_MAP, - CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. - * include/cygwin/version.h: Bump API minor number. - -2011-12-22 Corinna Vinschen <vinschen@redhat.com> - - * fhandler_process.cc: Drop unneeded includes. - -2011-12-22 Corinna Vinschen <vinschen@redhat.com> - - Throughout use wincap.allocation_granularity instead of getpagesize. - Throughout use wincap.page_size instead of getsystempagesize. - Throughout use "status" as variable name to hold NTSTATUS values. - * fhandler_mem.cc: Check for NT_SUCCESS rather than for STATUS_SUCCESS. - Fix debug_printf output. Rectify long statements. Fix comment - formatting. - * fhandler_proc.cc: Ditto. - (format_proc_swaps): Drop useless test for ERROR_PROC_NOT_FOUND. - * fhandler_process.cc: Ditto as in fhandler_mem.cc. - (get_process_state): Rearrange allocation loop. Use malloc/realloc. - (get_mem_values): Fix potential NULL pointer usage. Drop unused - variable. - * pinfo.cc (winpids::enum_processes): Handle low memory gracefully. - * sec_auth.cc (get_priv_list): Drop local variable ret. - * shared.cc (memory_init): Drop outdated call to getpagesize. - * syscalls.cc (getsystempagesize): Remove. - * sysconf.cc: Check for NT_SUCCESS rather than for STATUS_SUCCESS. - (sysinfo): Constify sizeof_stodi. Drop useless test for - ERROR_PROC_NOT_FOUND. - * thread.cc (pthread_getattr_np): Cast pointers to uintptr_t rather - than to int for pointer arithmetic. - * winsup.h (getsystempagesize): Drop declaration. - -2011-12-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use correct - value in switch statement. - -2011-12-21 Corinna Vinschen <vinschen@redhat.com> - - * dcrt0.cc (_dll_crt0): Rephrase comments. Set $ebp to NULL, as in - the pthread stack setup. - * wow64.cc (wow64_revert_to_original_stack): Rephrase some comments. - Return _tlsbase-16 rather than _main_tls-4 so as not to waste stack. - -2011-12-19 Corinna Vinschen <vinschen@redhat.com> - - * syscalls.cc (rename): Fix typo in comment. Fix condition to handle - the case oldpath is no .lnk symlink and newpath points to an existing - .lnk symlink or .exe file and no explicit .lnk suffix has been given - in oldpath. Add a comment to explain. - -2011-12-19 Corinna Vinschen <vinschen@redhat.com> - - * dcrt0.cc (dll_crt0_0): Check for wincap.wow64_has_secondary_stack - rather than for wincap.is_wow64. Accommodate name change from - wow64_has_64bit_parent to wow64_needs_stack_adjustment. Align comment. - (_dll_crt0): Ditto. - * wincap.h (wincaps::wow64_has_secondary_stack): New element. - * wincap.cc: Implement above element throughout. - (wincapc::init): Set wow64_has_secondary_stack to false on non-64 bit - systems. - * wow64.cc (wow64_needs_stack_adjustment): Rename (hopefully the last - time) from wow64_has_64bit_parent. - (wow64_eval_expected_main_stack): Fix comment to reflect real life. - (wow64_test_for_64bit_parent): Fix comment. - * wow64.h (wow64_needs_stack_adjustment): Accommodate new name. - -2011-12-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base::close): Move setting isclosed() from here - to closed(). - (fhandler_base_overlapped::close): Correct comment. - (fhandler_base_overlapped::destroy_overlapped): Signal overlapped event - before closing it to potentially wake up a waiting thread. - (fhandler_base_overlapped::wait_overlapped): Expand setting of err when - closed to encompass non-signal event. Test for a cancel event before - making nonblocking decisions. - * syscalls.cc (close): Set closed flag here so that any concurrently - executing functions will be notified ASAP. - -2011-12-17 Corinna Vinschen <vinschen@redhat.com> - - * dcrt0.cc (_dll_crt0): Fix formatting. - -2011-12-17 Corinna Vinschen <vinschen@redhat.com> - - * wow64.cc (wow64_revert_to_original_stack): Fix comment. - * wow64.h (wow64_respawn_process): Declare noreturn. - -2011-12-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (set_signal_mask): Remove useless debugging output. - - * fhandler.cc (fhandler_base::write): Ditto. - (fhandler_base_overlapped::close): Cancel any ongoing I/O before - closing. - * syscalls.cc (write): Default to always reporting all writes in strace - output via syscall_printf. - * wait.cc (wait4): Fix debugging output. Use standard syscall leaver - output. - -2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> - - Implement fhandler reference counting. - * cygheap.h (cygheap_fdmanip::release): Make virtual. - (cygheap_fdnew::~cygheap_fdnew): New destructor increments reference - count when fd has been allocated. - (cygheap_fdget::fh): New (old?) field. - (cygheap_fdget::cygheap_fdget): Increment reference count when we've - found an active fd. Set fh appropriately. - (cygheap_fdget::~cygheap_fdget): Decrement reference count when - appropriate. Delete fh if reference count goes to zero. - (cygheap_fdget::release): New function. Do more bookkeping on release. - * dtable.cc (dtable::release): Change from void to boolean return. - Only delete the fhandler when its reference count is <= 0 (this should - be a fairly unusual case). Return true if fhandler has been deleted. - (cygwin_attach_handle_to_fd): Increment reference count when fh is - assigned. - (dtable::init_std_file_from_handle): Ditto. - * dtable.h (dtable::release): Change return to boolean. - * fhandler.cc (fhandler_base::fhandler_base): Set new isclosed flag to - false. Set _refcnt to zero. - (fhandler_base::close): Simplify paranoid debugging output. Set new - isclosed() flag. - (fhandler_base_overlapped::wait_overlapped): Use isclosed() flag to - avoid querying the overlapped structure. - * fhandler.h (fhandler_base::_refcnt): New field. - (fhandler_base::refcnt): New function. - (fhandler_base::isclosed): Implement. - (fhandler_base::fhandler_base): Set isclosed to false. - - * syscalls.cc: Remove space after function before parentheses for - several strace printfs. - (dup): Add standard strace "leaver" code. - (dup2): Ditto. - (dup3): Ditto. - (remove): Ditto. - (getpid): Ditto. - (getppid): Ditto. - (lseek64): Fix strace debugging to correctly use %R. - - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Avoid sending - signals to other processes if we're debugging since it can cause a - deadlock with the calling debugger. - - * exceptions.cc (_cygtls::call_signal_handler): Add debugging-only - strace output. - -2011-12-16 Corinna Vinschen <vinschen@redhat.com> - - * dcrt0.cc (child_info_fork::alloc_stack): Correctly check if the - parent stack fits into the child stack. Align comment. - * wow64.cc (wow64_eval_expected_main_stack): New function to fetch - expected addresses of main thread stack from PE/COFF image header - values. - (wow64_test_for_64bit_parent): Fix comment. Check current stack - against real expected main thread stack addresses. - (wow64_revert_to_original_stack): Fix and add comments. Check memory - against real expected main thread stack addresses. Use orignal stack - if reserved area is >= 256K. - -2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> - - * gendef (sigdelayed): Remember to pop all of the saved registers. - (sigreturn): Add "leave" label. - -2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Fix - unresolved access of wores in successful situations. - -2011-12-16 Corinna Vinschen <vinschen@redhat.com> - - * Makefile.in (DLL_OFILES): Add wow64.o. - * dcrt0.cc (CYGWIN_GUARD): Drop execute permission for stack, it's - not used for stacks by the OS either. - (child_info_fork::alloc_stack_hard_way): Ditto. - (child_info_fork::alloc_stack): Don't alloc_stack_hard_way under WOW64 - if forked from a 64 bit parent. Set child's StackBase to parent's - StackBase. Add comments to explain why. - (wow64_respawn): Move to wow64.cc. - (wow64_started_from_native64): Move to wow64.cc. - (respawn_wow64_process): Move to wow64.cc. - (dll_crt0_0): Drop wow64_test_stack_marker and move stack test into - wow64_test_for_64bit_parent function. Don't return early if WOW64 - process has been started from native 64 bit process. - (_dll_crt0): Implement moving stack for WOW64 processes started from - native 64 bit process. - * wow64.cc: New file. - (wow64_has_64bit_parent): Rename from wow64_respawn. - (wow64_test_for_64bit_parent): Rename from wow64_started_from_native64. - Change comment. - (wow64_revert_to_original_stack): New function. - (wow64_respawn_process): Rename from respawn_wow64_process for symmetry. - * wow64.h: New file. - -2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (_cygtls::call_signal_handler): Fix debugging to not go - to console. - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Add temporary - kludge to work around problem of make closing an fhandle while it is - being read. - * gendef (sigdelayed): Don't call a function if sig has been cleared. - - * sigproc.h (cygwait): Simplify slightly. - -2011-12-14 Corinna Vinschen <vinschen@redhat.com> - - * autoload.cc (GetSystemWow64DirectoryW): Define. - (GetVolumePathNamesForVolumeNameW): Define. - * fhandler_process.cc (get_volume_path_names_for_volume_name): New - static function to workaround missing GetVolumePathNamesForVolumeNameW - function in Windows 2000. - (dos_drive_mappings::dos_drive_mappings): Call - get_volume_path_names_for_volume_name instead of - GetVolumePathNamesForVolumeNameW. - -2011-12-13 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dcrt0.cc (init_windows_system_directory): Record - system_wow64_directory information. - * exceptions.cc (_cygtls::inside_kernel): Modernize comment. Consider - executing a DLL from the Wow64 directory as being "in the kernel". - (_cygtls::call_signal_handler): For now, only deal with main_tls - signals if main_tls is known to be executing in the cygwin DLL. To - more closely emulate linux, consider the operation to be restartable if - not executing in the main thread. - * globals.cc (windows_system_directory): Remove NO_COPY. - (windows_system_directory_length): Ditto. - (system_wow64_directory): New variable. - (system_wow64_directory_length): Ditto. - - * select.cc (cygwin_select): Don't issue a EINTR on non-main threads - since that seems to be what Linux does. Add missing break to signal - case/switch. - (select_stuff::wait): Don't issue a EINTR on non-main threads since - that seems to be what Linux does. Remove now-unneeded accommodation - for WAIT_IO_COMPLETION. Add a comment. - * sigproc.h (cygwait): Ditto. Don't return if signal_received noticed - and it's not the main thread. - - * signal.cc (sigprocmask): Add standard syscall debug stuff. - * thread.cc (pthread_sigmask): Ditto. - -2011-12-13 Corinna Vinschen <vinschen@redhat.com> - - * netdb.cc (open_system_file): Avoid MS-DOS path warning. - -2011-12-13 Corinna Vinschen <vinschen@redhat.com> - - * path.cc (conv_path_list): Fix a condition. - (cygwin_conv_path): Revert WIN_A conversion to current locale codeset. - -2011-12-13 Corinna Vinschen <vinschen@redhat.com> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Call - file_get_fnoi instead of NtQueryInformationFile. - * path.cc (file_get_fnoi): New helper function to collect a - FILE_NETWORK_OPEN_INFORMATION block. - (symlink_info::check): Call file_get_fnoi rather than - NtQueryInformationFile to collect a FILE_NETWORK_OPEN_INFORMATION block. - * path.h (file_get_fnoi): Declare. - -2011-12-13 Dave Korn <dave.korn.cygwin@gmail.com> - - * times.cc (hires_ns::resolution): Don't return less than 1. - -2011-12-12 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygthread.h (cygthread::name): Very minor formatting tweak. - - * exceptions.cc (_cygtls::call_signal_handler): Add paranoid debugging - output. - - * sigproc.h (cygwait): Call signal handler when signal is detected and - loop as appropriate. - * fhandler.h (fhandler_base_overlapped::wait_return): Remove - overlapped_signal. - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove - restartable signal accommodations in light of cygwait improvements. - (fhandler_base_overlapped::raw_read): Remove now-obsolete signal loop - behavior. - (fhandler_base_overlapped::raw_write): Ditto. - * fhandler_console.cc (fhandler_console::read): Ditto. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - (fhandler_serial::raw_write): Ditto. - * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. - - * ioctl.cc (ioctl): Add standard syscall introducer and leaver debug - output. - -2011-12-12 Corinna Vinschen <vinschen@redhat.com> - - * fhandler_process.cc (dos_drive_mappings): Partially rewrite to - handle volumes mounted into juntion points correctly. - -2011-12-12 Corinna Vinschen <vinschen@redhat.com> - - * fhandler_process.cc (dos_drive_mappings::dos_drive_mappings): Fully - resolve symbolic links returned by QueryDosDeviceW. Explain why. - -2011-12-12 Corinna Vinschen <vinschen@redhat.com> - - * mount.cc (fs_info::update): Set has_buggy_reopen for Netapps as well. - -2011-12-12 Corinna Vinschen <vinschen@redhat.com> - Christopher Faylor <me.cygwin2011@cgf.cx> - - * dcrt0.cc (wow64_respawn): New static variable. - (wow64_started_from_native64): New function to check if a WOW64 - process got started from a native 64 bit process. - (respawn_wow64_process): New function to respawn process. - (dll_crt0_0): When started from a native parent, check if parent - is a 64 bit process. If so, return early. - (_dll_crt0): Respawn WOW64 process here if required. - * init.cc (respawn_wow64_process): Remove. - (dll_entry): Rename wow64_test_stack_marker to test_stack_marker. - Drop WOW64 test here. - -2011-12-11 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pipe.cc (fhandler_pipe::create): Use debug_printf to print debugging - info since this isn't a "syscall". - (pipe_worker): New function created from _pipe(). - (_pipe): Use pipe_worker to create a pipe. Use standard syscall strace - reporting on exit. - (pipe): Ditto. - (pipe2): Ditto. - -2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (select_stuff::wait): Very minor formatting fix. - (peek_windows): Report on HWND handle used in queries. - * select.h: Update copyright. - * sigproc.h (cygwait): Eliminate multi-argument variety since more - general implementation may cause odd problems in select. Also force to - always be inline. - -2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.h (cygwait): Delete duplicate va_start and add matching - va_end. - -2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.h (cygwait): Tweak test for cancellable event to make it a - little more clear. - -2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (ctrl_c_handler): YA in a series or reversions. Put - back _my_tls.remove along with a comment. - (sigpacket::process): Remove code which now causes a gdb deadlock. - * sigproc.cc (_cygtls::signal_exit): Signal debugger with signal number - earlier. - -2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dllfixdbg: Work around annoying gdb warning about missing - .gnu_debuglink. - -2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - Rename cygWFMO to cygwait throughout and use the magic of polymorphism - to "wait for stuff". - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use - simplified arg form of cygwait. - * fhandler_console.cc (fhandler_console::read): Ditto. - * fhandler_audio.cc (fhandler_dev_dsp::Audio_out::waitforspac): Ditto. - (fhandler_dev_dsp::Audio_in::waitfordata): Ditto. - * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - (fhandler_serial::raw_write): Ditto. - * select.cc (cygwin_select): Ditto. - * sigproc.h (cygwait): Rename from cygWFMO. Define two argument and - single argument forms of this function. - - * fhandler_tty.cc (fhandler_pty_slave::open): Use method to query if - tty is open. - (fhandler_pty_slave::read): Send SIGHUP when master is detected as - closed. - (fhandler_pty_common::close): Close input_available_event in callers - since master may need to signal it first. - (fhandler_pty_master::close): Lie and set input_available_event when - closing, then close input_available_event. - (fhandler_pty_slave::close): Close input_available_event explicitly - here. - * tty.h (tty::is_master_closed): Declare new method. - -2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (signal_exit): Revert reversion of 2011-12-04 change - since, otherwise, you see hangs when the signal pipe is closed. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (cygwin_select): Fifth time is the charm. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (cygwin_select): Make sure that 0 is returned when sel.wait - times out. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * include/sys/wait.h: Add in all c++ functions. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (select_stuff::wait): Temporarily disallow APCS. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * include/sys/wait.h: Ensure that C++ functions are only used when - using C++. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (cygwin_select): Make sure that poll is called when - appropriate. - -2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_dllcrt0): Don't try to initialize dll data if we're - dynamically loaded since fork() doesn't work in that scenario anyway. - (dll_dllcrt0_1): Don't accommodate dynamically loaded dlls. - * exceptions.cc (ctrl_c_handler): Don't lock the process; there's too - much risk of deadlock. - * sigproc.cc (_cygtls::remove_wq): Don't try to remove anything from - the waitq if there is obviously nothing there. - * strace.cc (strace::activate): Allow stracing dynamically loaded - cygwin1.dll. - -2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_termios.cc (tty_min::kill_pgrp): Don't send __SIGSETPGRP - to ourselves since presumably we are already initialized. - -2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (cygwin_select): Add common introducer and leaver debug - output. - (select_stuff::poll): Remove unneeded debugging. - -2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (ctrl_c_handler): Remove _my_tls.remove since it can - cause deadlocks during exec and will eventually be handled anyway. - -2011-12-07 Corinna Vinschen <vinschen@redhat.com> - - * spawn.cc (child_info_spawn::worker): Add CREATE_BREAKAWAY_FROM_JOB - to all spawned processes. Explain why. - -2011-12-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::wait): Fix stupid typo and actually - wait for the handle. - -2011-12-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (close_my_readsig): New function. - (_cygtls::signal_exit): Close my_readsig via close_my_readsig(), - avoiding communication with the signal pipe. - (wait_sig): Close my_readsig via close_my_readsig(). - -2011-12-05 Corinna Vinschen <vinschen@redhat.com> - - * mmap.cc (mlock): Replace LOCK_VM_IN_WSL with correct MAP_PROCESS. - (munlock): Ditto. - * ntdll.h: Rearrange to have all preprocessor definitions at the start - of the file. Add comments to each definition block. - (MAP_PROCESS): Rename from LOCK_VM_IN_WSL. - (MAP_SYSTEM): Rename from LOCK_VM_IN_RAM. - -2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.h (cygWFMO): Don't assume that cancellable event is always - available. - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::waitforspace): Use - cygWFMO instead of WaitForMultipleObjects. - (fhandler_dev_dsp::Audio_in::waitfordata): Ditto. - * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - (fhandler_serial::raw_write): Ditto. - * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. - * select.cc (cygwin_select): Ditto for degenerate case. - -2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.h (cygWFMO): Move inside "INSIDE_CYGWIN" #ifdef. - -2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (exception::handle): Drop abbreviation for "exception" - since I never remember what it stands for. - (sig_handle_tty_stop): Remove obsolete call to reset_signal_arrived. - (_cygtls::call_signal_handler): Rework to grab signal information from - _main_tls if none is set for _my_tls. Try harder to keep thread - locked. - (reset_signal_arrived): Delete. - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use new - cygWFMO call to wait for an event + standard cygwin stuff. Modify - debug output to acccomodate new function. - * fhandler_console.cc (fhandler_console::read): Replace - WaitForMultipleObjects with cygWFMO. - * fhandler_socket.cc (get_inet_addr): Add comment. - * gendef (_sigdelayed): Remove call to reset_signal_arrived. - * sigproc.cc (_cygtls::signal_exit): Don't close my_readsig here unless - we're in the signal thread. - (create_signal_arrived): Create signal_arrived as auto-reset so that only - one thread is woken when a signal arrives. - * sigproc.h (cygWFMO): New function. - (reset_signal_arrived): Delete declaration. - -2011-12-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * mmap.cc (mlock): Add standard syscall return value debugging output. - (munlock): Ditto. - (posix_madvise): Ditto. - - * signal.cc: Remove obsolete sigcatchers stuff throughout. - (sigaction_worker): Add function name parameter and use it to show - standard syscall return value debugging output. Also add fault - protection. - (sigaction): Accommodate extra argument to sigaction_worker. - (siginterrupt): Ditto. - * syscalls.cc (read): Remove obsolete sigcatchers stuff. - (readv): Ditto. - -2011-12-03 Corinna Vinschen <vinschen@redhat.com> - - * mmap.cc (mlock): Drop requesting SE_LOCK_MEMORY_PRIVILEGE. Drop - outdated comment. Call NtLockVirtualMemory with LOCK_VM_IN_WSL flag. - (munlock): Drop requesting SE_LOCK_MEMORY_PRIVILEGE. Call - NtUnlockVirtualMemory with LOCK_VM_IN_WSL flag. - -2011-12-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - Throughout, remove extra space after function name from debugging - output. - Throughout, change syscalls to report on return values using new %R - format option. - * smallprint.cc (__small_vsprintf): Add parsing for %R to report on - return values and possible errno from syscalls. - - * errno.cc (errmap): Add PRIVILEGE_NOT_HELD. - - * fhandler_tty.cc (fhandler_pty_master::setup): When creating a thread - use shorter name to reduce debuggging output. - * select.cc (start_thread_pipe): Ditto. - (start_thread_serial): Ditto. - (start_thread_socket): Ditto. - (start_thread_mailslot): Ditto. - * sigproc.cc (talktome): Ditto. - -2011-12-03 Corinna Vinschen <vinschen@redhat.com> - - * fhandler.cc (fhandler_base::open): Fix comment a bit more. - -2011-12-03 Corinna Vinschen <vinschen@redhat.com> - - * fhandler.cc (fhandler_base::open): Fix typos in comment. - -2011-12-02 Corinna Vinschen <vinschen@redhat.com> - - * path.cc (conv_path_list): Take cygwin_conv_path_t as third parameter. - Allow all types of CCP conversions. Accommodate throughout. - (cygwin_conv_path): Use current ANSI or OEM codepage for WIN_A - conversions, depending on current file API codepage setting. - (cygwin_conv_path_list): Allow all CCP conversion types. - * include/sys/cygwin.h (CCP_CONVTYPE_MASK): Add to cygwin_conv_path_t - enum for convenience. - -2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (get_proc_lock): Remove extra NULL check. Return false on - failure. - -2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sync.cc: Fix comment. - -2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_list::reserve_space): Use %p rather than %lx to show - reserved space. - -2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (remove_proc): Don't terminate the currently executing - thread. - -2011-11-28 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.cc (cygheap_fixup_in_child): Accommodate new HEAP_3* - classifications for cleanup-after-fork. - * cygheap_malloc.h (cygheap_types): Add HEAP_2_MAX, HEAP_3_FHANDLER. - * fhandler.h: Throughout, change clone to take a cmalloc id. - (fhandler_base::delete): Inline. - (fhandler_base_overlapped): Mark flush_async_io as a friend. - (fhandler_base_overlapped::asio_done): Declare new static member. - (fhandler_base_overlapped::asio_close_counter): Ditto. - (fhandler_base_overlapped::check_later): Declare new function. - (fhandler_base_overlapped::flush_all_async_io): Ditto. - * fhandler.cc (fhandler_base_overlapped::asio_done): Declare. - (fhandler_base_overlapped::asio_close_counter): Ditto. - (flush_async_io): Declare new thread function. - (fhandler_base_overlapped::flush_all_async_io): Declare new function. - (fhandler_base_overlapped::check_later): Ditto. - (fhandler_base_overlapped::close): Call check_later to close - nonblocking fd asynchronously. Assume that this completed - successfully. - * select.cc (pipe_data_available): Don't consider data to be - "available" if fd still has unflushed I/O. - * syscalls.cc (close_all_files): Call - fhandler_base_overlapped::flush_all_async_io to make sure that all - nonblocking pipe I/O has completed. - -2011-11-28 Corinna Vinschen <vinschen@redhat.com> - - * external.cc (fillout_pinfo): Store program name as POSIX path in - ep.progname_long. - -2011-11-28 Corinna Vinschen <vinschen@redhat.com> - - * pinfo.cc (pinfo::exit): Call TerminateProcess to avoid potential - busy loop in ntdll.dll when calling ExitProcess. Only call ExitProcess - as a fallback. - -2011-11-27 Christopher Faylor <me.cygwin2011@cgf.cx> - - * init.cc (dll_entry): Revert previous change since it caused - inexplicable fork problems. - -2011-11-26 Christopher Faylor <me.cygwin2011@cgf.cx> - - * init.cc (dll_entry): Don't bother calling through thread removal - cleanup if we are exiting. - -2011-11-26 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (stackdump): Make global. - (signal_exit): Move to sigproc.cc. - * sigproc.cc (signal_exit): Move here. Declare stackdump extern. Set - my_sendsig to indicate that signals are no longer available. - (my_readsig): Make Static again. - (sig_send): Interpret ERROR_BROKEN_PIPE as ESRCH. Remove special-case - EACCESS errno setting, just setting errno generally, even for "its_me" - case. - -2011-11-25 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (sigpacket::process): Move signal_exit processing - into... - (_cygtls::signal_exit): ...here. Close my_readsig and comment on why. - * pinfo.cc (pinfo::exit): Move sigproc_terminate earlier. Set exiting - flag in lock_process. - * sigproc.cc (my_readsig): Make global. - * sync.cc (muto::exiting_thread): Delete. - (muto::acquire): Delete #if 0'ed code. - * sync.h (muto::exiting_thread): Delete. - (set_exiting_thread): Ditto. - (lock_process::lock_process): Don't worry about setting the exiting - thread since it had no meaning. - -2011-11-24 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygthread.cc (cygthread::name): Default name to "main" if we are early - in the process of setting up the DLL and no name is known. - * dcrt0.cc (initial_env): Remove CYGWIN_SLEEP stuff. - (get_cygwin_startup_info): Activate strace here as appropriate. - (dll_crt0_0): Move get_cygwin_startup_info as early as possible to - avoid missing strace output. - * fork.cc (frok::child): Move debugging statement to point where ppid - will be set. - * pinfo.cc (pinfo::thisproc): Remove obsolete call to strace.hello. - Tweak debug output slightly. - * select.cc (select_stuff::wait): Allow APCS to be triggered while - waiting since we use them now. Report when that happens. - * sigproc.cc (child_info::child_info): Use strace.active() rather than - strace.attached(). - * spawn.cc (child_info_spawn::worker): Only write strace child pid - when we know it's a cygwin process. Accommodate change to write_child - argument list. - * strace.cc (strace::hello): Delete. Move functionality... - (strace::activate): ...to here. - (mypid): Just use raw GetCurrentProcessId () if myself isn't set. - (strace::write_childpid): Don't wait for subproc_ready. Remove arg - which was required for it. - * include/sys/strace.h (strace::hello): Delete. - (strace::write_childpid): Delete first argument. - -2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset for previous changes. - - * dcrt0.cc (get_cygwin_startup_info): Signal readiness when stracing - since strace::write_child relies on it. Use strace.activate to notify - strace process, passing in arg indicating whether we're forked. - * sigproc.cc (wait_sig): Accommodate new strace::activate argument. - * spawn.cc (child_info_spawn::worker): Oops. Previous suspended test - was actually correct. Revert and document. - * strace.cc (strace::activate): Send additional flag indicating whether - this is an attempt to activate a forked process. - (strace::hello): Report on windows pid. - * include/sys/strace.h (strace::strace): Make a dummy. - (strace::activate): Modify declaration to accept an argument. - (strace::write_childpid): Set regparm. - -2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pipe.cc (fhandler_pipe::create): Avoid derefencing a NULL pointer. - - * child_info.h (child_info): Reorganize some elements so that the ones - which are initialized in a constructor are all together. - * sigproc.cc (child_info::child_info): Initialize values via the - constructor rather than as C statements and make sure that flags is set - to zero initially. - - * spawn.cc (child_info_spawn::worker): Use iscygwin() test for - determining when to send strace info since it is more foolproof than - checking the suspend state. - -2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_pipe::create): Rename from the misnamed - "create_selectable". Change return to DWORD. - (fhandler_pty_common::pipesize): New constant. - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Reflect - create_selectable name change. - * miscfuncs.cc (CreatePipeOverlapped): Ditto. - * pipe.cc (fhandler_pipe::create): Ditto. - (fhandler_pipe::create): Rename from the misnamed "create_selectable". - Return DWORD. Only set pipe size to default when it is passed in as - zero. - * fhandler_tty.cc (fhandler_pty_master::setup): Ditto. Use - fhandler_pty_common::pipesize rather than a raw constant. - * tty.cc (tty::not_allocated): Ditto. - - * sigproc.cc (sigproc_init): Use fhandler_pipe::create to create the - signal pipe to get a more appropriate message based pipe. - -2011-11-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (remove_proc): Don't do busy loop when exiting since it - doesn't matter. - -2011-11-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (remove_proc): Don't do busy loop when execing since - thread could have been terminated prior to setting flag. - - * signal.cc (sigwaitinfo): Zero event before closing to signal other - threads that it is no longer available. - -2011-11-18 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (get_shared_parent_dir): Use global shared_parent_dir - instead of local dir variable and create handle not inheritable to - avoid accumulating stray handles in child processes. - (get_session_parent_dir): Ditto with session_parent_dir variable. - -2011-11-17 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (shared_info::create): Open global shared data section - non-inheritable to avoid accumulating stray handles in child processes. - -2011-11-15 Christopher Faylor <me.cygwin2011@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - (cygheap_exec_info::nchildren): Move from child_info_spawn. - (cygheap_exec_info::cchildren): Ditto. - (cygheap_exec_info::record_children): Declare new function. - (cygheap_exec_info::reattach_children): Ditto. - (cygheap_exec_info::alloc): Ditto. - (child_info_spawn::nchildren): Move to cygheap_exec_info. - (child_info_spawn::cchildren): Ditto. - * sigproc.cc (cygheap_exec_info::alloc): Define new function. - (child_info_spawn::cleanup): Accommodate move of children info to - cygheap_exec_info. - (cygheap_exec_info::record_children): Define new function. - (cygheap_exec_info::reattach_children): Ditto. - (child_info_spawn::record_children): Use - cygheap_exec_info function to accomplish this task. - (child_info_spawn::reattach_children): Ditto. - * spawn.cc (child_info_spawn::worker): Allocate moreinfo using - cygheap_exec_info::alloc. - - * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Use abort for the - error to avoid a retry. - -2011-11-14 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.cc (_pinfo::dup_proc_pipe): Fatalize a warning when debugging. - -2011-11-13 Christopher Faylor <me.cygwin2011@cgf.cx> - - Remove erroneously checked-in debugging statements. - * cygheap.cc (cygheap_fixup_in_child): Here. - * debug.cc (delete_handle): Here. - * sigproc.cc (child_info_spawn::cleanup): Here. - * spawn.cc (child_info_spawn::worker): Here. - -2011-11-13 Christopher Faylor <me.cygwin2011@cgf.cx> - - Throughout, change "sig %d" in strace output to "signal %d" for - consistency. - * assert.cc (__assert_func): Output assertion string to strace too. - * fork.cc (frok::parent): Report ASAP on forked pid in debugging output. - * pinfo.cc (pinfo::_pinfo_release): Define new function. - (pinfo::init): Use _pinfo_release() rather than release() to release - shared memory stuff. - (pinfo::wait): Shorten name of process waiting thread for more concise - debugging. - (pinfo::release): Use pinfo_release to release shared memory part of - struct. - * pinfo.h (pinfo::__pinfo_release): Declare. - -2011-11-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - Throughout use "have_execed" macro rather than "hExeced" global handle. - Throughout rename _PROC_* to _CH_*. - * child_info.h: Include "pinfo.h". - (child_info_types): Rename _PROC_* -> _CH_* to avoid confusion with - similarly named constants. - (_PROC_*): Delete unneeded aliases. - (PROC_*): Ditto. - (CURR_CHILD_INFO_MAGIC): Ditto. - (cchildren): Define using "pinfo_minimal". - (child_info::set_saw_ctrl_c): Move to - (child_info_spawn::set_saw_ctrl_c): Here. - (child_info_spawn::lock): New field. - (child_info_spawn::hExeced): Ditto. - (child_info_spawn::ev): Ditto. - (child_info_spawn::~child_info_spawn): Move to sigproc.cc. - (child_info_spawn::child_info_spawn): Ditto. - (child_info_spawn::cleanup): Declare new function. - (child_info_spawn::set_saw_ctrl_c): Move to this class. Set flag only - when execed and return true when we have set the flag. - (child_info_spawn::child_info_spawn::signal_myself_exited): New function. - (child_info_spawn::wait_for_myself): Ditto. - (child_info_spawn::has_execed_cygwin): Ditto. - (child_info_spawn::has_execed): Ditto. Replaces "hExeced" test. - (child_info_spawn::operator HANDLE&): New operator. - (child_info_spawn::worker): Define old "spawn_guts" as class member. - (ch_spawn): Declare. - (have_execed): Define. - (have_execed_cygwin): Ditto. - * cygheap.h: Update comment. - * dcrt0.cc (get_cygwin_startup_info): Use _CH_* enums. - (child_info_spawn::handle_spawn): Ditto. - (dll_crt0_0): Ditto. - (multiple_cygwin_problem): Ditto. - * exceptions.cc (chExeced): Delete obsolete declaration. - (ctrl_c_handler): Reference set_saw_ctrl_c via new ch_spawn global. - * globals.cc (hExeced): Delete. - * pinfo.cc (pinfo::thisproc): Refer to cygheap as ::cygheap for - consistency in handle naming when -DDEBUGGING. - (pinfo::init): Accommodate case where myself.h is known but h0 is - passed in. - (pinfo::pinfo): New constructor for setting up a pinfo passed in by - previous exec'or. - (pinfo::proc_waiter): Don't handle subprocess if we're in the process - of exiting due to an exec of a cygwin process. Don't close - rd_proc_pipe here. Close it when we actually are finished with the - process. Use new ch_spawn.signal_myself_exited function to let exec - stub know that subprocess has exited. - (pinfo::wait): Clarify debugging output. - (pinfo::release): Use "close_h" to close all handles to avoid races. - (winpids::add): Assume that elements of the array do not need to be - zeroed and are properly initialized or suffer problems on - pinfo::release. Don't close hProcess since release does that now. - * pinfo.h: Update comment. - (pinfo_minimal): Move some elements from pinfo here so that - child_info_spawn can use them. - (pinfo): Inherit from pinfo_minimal. - (pinfo::pinfo): Modify to accommodate new pinfo_minimal. - (pinfo::allow_remove): New function. - * sigproc.cc (proc_subproc): Use boolean values for true/false. - Implement PROC_EXEC_CLEANUP. - (proc_terminate): Set ppid = 1 since the procs list will only be - iterated when the process has not execed. Don't do any cleanup here - since it is now handled in pinfo::release. - (sigproc_init): Initialize sync_proc_subproc earlier. - (child_info::child_info): Assume that all important fields are properly - initialized and avoid memset(). - (child_info_spawn::child_info_spawn): Specifically test for execing and - then set up appropriate fields in the struct. - (child_info_spawn::cleanup): Define new function. - (child_info_spawn::record_children): Specifically test for being execed - here. Fill in pinfo_minimal part of children array. - (child_info_spawn::reattach_children): Use constructor to duplicate - information for previous exec'or. Add more debugging output. - (remove_proc): Force deletion of thread when exiting due to exec. Rely - on pinfo::cleanup in release. - * sigproc.h (PROC_EXEC_CLEANUP): New enum. - (PROC_DETACHED_CHILD): Delete. - * spawn.cc (chExeced): Delete. - (child_info_spawn::worker): Rename from spawn_guts. Use elements of - child_info_spawn throughout rather than ch.whatever. Use ::cygheap to - refer to global rather than element of child_info. Use - wait_for_myself() rather than waitpid(). Call - child_info_spawn::cleanup on function return. - (spawnve): Reflect movement of spawn_guts functionality into - child_info_spawn::worker. - * syscalls.cc (popen): Ditto. - * winsup.h (spawn_guts): Delete declaration. - -2011-11-08 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-gnu): Add ptsname_r. - -2011-11-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (__ptsname): New macro. - * dtable.cc (decode_tty): Use __ptsname to generate the slave pty name. - * fhandler_tty.cc (fhandler_pty_master::ptsname_r): Ditto. - * bsdlib.cc: Add needed includes for openpty() changes. - (openpty): Use __ptsname to generate the slave pty name. Close slave - fd when aslave == NULL. - -2011-11-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * include/cygwin/stdlib.h: Update copyright. - -2011-11-07 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygwin.din (ptsname_r): Export. - * fhandler.cc (fhandler_base::ptsname_r): Define. - * fhandler.h (fhandler_base::ptsname): Delete. - (fhandler_base::ptsname_r): Declare. - (fhandler_pty_master::ptsname_r): Declare. - * fhandler_tty.cc (fhandler_pty_master::ptsname): Delete. - (fhandler_pty_master::ptsname_r): New reentrant function derived from - previous ptsname. - * syscalls.cc (ptsname_r): Implement new function with functionality - similar to Linux. - (ptsname): Use ptsname_r () to fill out buf. - * include/cygwin/stdlib.h (ptsname_r): Declare. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 255 to - reflect export of ptsname_r. - - * pinfo.cc (pinfo::wait): Return bool rather than int. - * pinfo.h (info::wait): Ditto. - (pinfo::reattach): Define !defined(_SIGPROC_H) case for consistency. - * sigproc.cc (child_info_spawn::reattach_children): Use correct - dwProcessId rather than pid when duplicating handle. - -2011-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (CHUNK_SIZE): Drop NO_COPY. - -2011-11-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (check_dir_not_empty): Check surplus directory entries - by calling NtQueryAttributesFile. Make STATUS_DIRECTORY_NOT_EMPTY - return value dependent on its status code. Add long comment to explain. - (unlink_nt): Add comment to explain flaw in checking the sharing mode. - Set status to STATUS_SUCCESS instead of 0. Add a retry loop to setting - the delete disposition and trying to move a directory to bin to - workaround rare cases of lingering, already deleted subdirectory - entries. Add long comment to explain. - (rename): Set status to STATUS_SUCCESS instead of 0. - -2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION. - (child_info::proc_retry): Ditto. - -2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.cc (status_exit): Return complete error code. Handle - STATUS_ACCESS_VIOLATION correctly. - (pinfo::set_exit_code): Set self->exitcode directly from status_exit. - -2011-11-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.h (pinfo::reattach): Only set destroy to false when - proc_subproc succeeds. Return true for success. - * sigproc.cc (child_info_spawn::reattach_children): Try harder to clean - up on error by detecting reattach failures too. - -2011-11-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (child_info_spawn::reattach_children): Clean up handle - when can't open parent process or suffer handle leak. - -2011-11-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (child_info::sync): Report on exit code in strace output. - (child_info::proc_retry): Don't consider STATUS_ACCESS_VIOLATION as a - restartable event. - -2011-11-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (child_info_spawn::reattach_children): Avoid issuing an - error when we can't duplicate from "parent" since it is probably ok if - children of the previous owner of the pid disappear. - -2011-11-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (off_current): Define local in fhandler_base::raw_write. - Drop erroneous NO_COPY, add _RDATA to make R/O. - (off_append): Ditto. - * globals.cc (_RDATA): Move definition from here... - * winsup.h: ...to here. - -2011-10-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_pipe::create_selectable): Remove optional - argument, take an options argument for CreateNamedPipe/CreateFile. - Change handle arguments to expect pointers. - (fhandler_fifo::fifo_state): Delete. - (fhandler_fifo::dummy_client): Ditto. - (fhandler_fifo::open_nonserver): Ditto. - (fhandler_fifo::wait_state): Ditto. - (fhandler_fifo::raw_write): Ditto. - (fhandler_fifo::read_ready): New field. - (fhandler_fifo::write_ready): Ditto. - (fhandler_fifo::wait): Modify argument. - (fhandler_fifo::fifo_name): Add a new argument. - (fhandler_fifo::fixup_after_fork): New function. - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove - initialization of expunged elements. Initialize new handles to NULL. - (fhandler_fifo::open_nonserver): Delete. - (fnevent): New macro for creating a named event. - (fnpipe): New macro for creating a unique named pipe name. - (create_pipe): New macro for simplification of named pipe creation. - (fhandler_fifo::fifo_name): Use new argument when creating a shared - name. - (fhandler_fifo::open): Rewrite. Use events to synchronize. - (fhandler_fifo::wait): Rewrite to wait for new fifo events which are - supplied as a parameter. - (fhandler_fifo::raw_read): Rewrite to use handle mechanism to detect - client-side disconnect. - (fhandler_fifo::raw_write): Delete. - (fhandler_fifo::close): Remove accommodations for expunged fields. - Close event handles. - (fhandler_fifo::dup): Remove accommodations for expunged fields. - Duplicate event handles. - (fhandler_fifo::fixup_after_fork): New function. Perform fixups on - event handles. - (fhandler_fifo::set_close_on_exec): Remove accommodations for expunged - fields. Set inheritance for new handle fields. - * miscfuncs.cc (CreatePipeOverlapped): Accommodate changes in - fhandler_pipe::create_selectable. - * tty.cc (tty::not_allocated): Ditto. - * pipe.cc (fhandler_pipe::create): Ditto. - (fhandler_pipe::create_selectable): Accept an extra open_mode argument. - Pass arguments by reference and allow opening one end of the pipe at a - time. - - * sys/strace.h (debug_only_printf): Define new macro which calls - debug_printf only when DEBUGGING is defined. - -2011-10-28 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (sigpacket::process): Avoid a potential deadlock when - exiting due to a signal. - -2011-10-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (getgrouplist): Export. - * grp.cc (get_groups): New static function to run the core functionality - of initgroups and getgrouplist. - (initgroups32): Call get_groups and just create supplementary group - list in cygheap. Rename name of first argument to "user". Add an - assertion to test for a NULL user name. - (initgroups): Rename name of first argument to "user". - (getgrouplist): New function. - * posix.sgml (std-bsd): Add getgrouplist. - * include/cygwin/grp.h (getgrouplist): Declare. - * include/cygwin/version.h: Bump API minor number. - -2011-10-25 Christopher Faylor <me.cygwin2011@cgf.cx> - - * child_info.h (cchildren): New struct. - (child_info_spawn::nchildren): Rename from nprocs. - (child_info_spawn::children): Change type to cchildren for more - bookkeeping possibilities. - (child_info_spawn::child_info_spawn): Clear nchildren. - (child_info_spawn::record_children): Declare new function. - (child_info_spawn::reattach_children): Ditto. - * dcrt0.cc (child_info_spawn::handle_spawn): Call reattach_children to - gather list of processes we are potentially waiting for. - * pinfo.h (pinfo::pinfo): Make sure that rd_proc_pipe is always cleared. - (pinfo::reattach): New function. - * sigproc.cc: Move pinfo.h earlier so that it can be used in sigproc.h. - (get_proc_lock): Don't bother with a lock during DLL initialization. - (proc_subproc): Handle PROC_REATTACH_CHILD. - (proc_terminate): Orphan children only when we are not an execed - process or when the pid is about to be occupied by a non-cygwin - process. - (child_info_spawn::record_children): Define new function. - (child_info_spawn::reattach_children): Ditto. - * sigproc.h (procstuff): Define PROC_REATTACH_CHILD and renumber other - elements. - * spawn.cc (spawn_guts): Record any to-be-waited-for subprocesses if - about to exec a cygwin process. - - * sigproc.cc (sig_send): Fix harmless transposition of fifth and six - arguments to DuplicateHandle(). - (child_info::child_info): Ditto. - - * globals.cc (hExeced): Make NO_COPY. - -2011-10-25 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (hook_or_detect_cygwin): Take additional handle - to a file mapping as parameter. If this handle is not NULL, - create another file mapping for the IAT. - * spawn.cc (av::fixup): Only map the first 64K of an image and - keep the mapping handle to use as argument to hook_or_detect_cygwin. - * winsup.h (hook_or_detect_cygwin): Add mapping handle as default - parameter in declaration. - -2011-10-24 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Fix a bug which overwrites the NT status - value in case setting the delete disposition returns with - STATUS_DIRECTORY_NOT_EMPTY. - -2011-10-24 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (open_shared): Fix memory reservation of essential shared - memory regions. Drop delta computations since delta is always 0 in - non-relocated case. Add a comment. - -2011-10-23 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::read): Use consistent way for - testing ReadFile return. - * pipe.cc (fhandler_pipe::create_selectable): Open the write side of - the pipe in message-mode to force writing as "chunks". Explain why. - -2011-10-23 Christopher Faylor <me.cygwin2011@cgf.cx> - - * path.cc (path_conv::get_nt_native_path): Avoid dereferencing path - when it is NULL. - -2011-10-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc (dtable::delete_archetype): Improve debugging output. - (dtable::init_std_file_from_handle): Close console handle early, before - initialization. Build up openflags for passing to open_setup, just to - be safe. - (last_tty_dev): New variable. - (fh_last_tty_dev): New macro. - (fh_alloc): Try again to keep track of previously opened tty, this time - by just saving the device and using that to potentially open an - archetype. Avoid setting the "/dev/tty" name if the creation of the - fhandler failed. - (build_fh_pc): Remove unused second argument. Reorganize how and where - the name is set. Set last_tty_dev as appropriate. Avoid a NULL - dereference in a debug printf. - * dtable.h (build_fh_pc): Reflect removal of second parameter. - * fhandler.cc (fhandler_base::reset): Use new '<<' operator to copy pc - since it preserves any potentially previously set name. - (fhandler_base::set_name): Ditto. - * fhandler.h (fhandler_*::clone): Throughout use ccalloc to allocate - new fhandler, primarily to make sure that pc field is properly zeroed. - (fhandler_termios::last): Eliminate. - (fhandler_termios): Remove setting of last. - (fhandler_base::~fhandler_termios): Ditto. - * fhandler_console.cc (fhandler_console::open): Don't make decisions - about opening close-on-exec handles here since it makes no sense for - archetypes. - (fhandler_console::init): Assume that input handle has already been - opened. - * fhandler_termios.cc (fhandler_termios::last): Delete. - * path.h (path_conv::eq_worker): New function. Move bulk of operator = - here. - (operator <<): New function. - (operator =): Use eq_worker to perform old functionality. - - * child_info.h (NPROCS): Move here from sigproc.cc. - (child_info::nprocs): New field. Not used yet. - (child_info::children):: Ditto. - -2011-10-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Check invalid - success only on Samba shares. - * mount.cc (fs_info::update): Drop has_buggy_basic_info flag for - NcFsd. - * syscalls.cc (unlink_nt): Fix typo in comment. - -2011-10-21 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_ncfsd): New R/O unicode string. - * mount.cc (fs_info::update): Check for "NcFsd" FS. Set flags and - change comments accordingly. - (fs_names): Add entry for NcFsd FS. - * mount.h (enum fs_info_type): Add ncfsd. - (class fs_info): Add ncfsd flag and accessor methods. - * path.h (class path_conv): Add fs_is_ncfsd method. - * syscalls.cc (unlink_nt): Experimentally try delete-on-close on NcFsd - in STATUS_CANNOT_DELETE case. - -2011-10-20 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler*::copyto): Free path_conv strings first. - * path.h (cfree_and_null): Rename and expand from cfree_maybe. - (path_conv &operator =): Call free_strings rather than freeing strings - directly. - -2011-10-20 Christopher Faylor <me.cygwin2011@cgf.cx> - - Throughout change TTY_* to PTY_*, tty_* to pty_*, and ttym_* to ptmx_*. - * devices.cc: Regenerate. - * dtable.cc: (fh_alloc): Preserve /dev/tty name when that's what we - opened. - (build_fh_pc): Preserve any existing name. - * fhandler.cc (fhandler_base::open_with_arch): Ditto. - * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Force the - name to /dev/ptmx while preserving other pty master device information. - * path.h (cfree_maybe): New macro. - (path_conv::operator =): Free any allocated strings in target. - (path_conv::free_strings): Delete unused function. - - * sigproc.cc (proc_terminate): Remove previous accommodation for execed - processes since it didn't have the desired effect. Change comment to a - FIXME. - - * spawn.cc (chExeced): Mark NO_COPY. - (exe_suffixes): Ditto. - -2011-10-20 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Improve debug output. - (check_dir_not_empty): Take additional path_conv argument. Improve - debug output. Change syscall_printf to debug_printf. - (unlink_nt): Improve debug output. Change syscall_printf to - debug_printf. - (unlink): Change syscall_printf to debug_printf. - - * cygthread.h: Fix copyright dates. - -2011-10-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc: Extend two comments. Mention the name RtlpCurDirRef - for reference. - -2011-10-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Copy argv before passing to main(). - -2011-10-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (proc_terminate): Avoid setting ppid to 1 if we're execing. - -2011-10-15 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygerrno.h (__set_errno): Modify debugging output to make searching - strace logs easier. - - Throughout, change /dev/tty* to /dev/pty*. - Throughout, add flags argument to fhandler_*::dup methods. - * devices.in: Rename (temporarily?) /dev/ttyN to /dev/ptyN. Add - /dev/ptymN devices for pty masters. - * devices.cc: Regenerate. - * devices.h (MAX_CONSOLES): Set to max number supported by devices.in. - (fh_devices::FH_PTMX): Rename from FH_PTYM. - (device::operator int): Return by reference. - * dtable.cc (fh_alloc): Take pc as an argument rather than just the - device. This makes debugging easier since more information is - available. Actually implement handling for already-allocated pty - master devices. Make different decisions when generating fhandler for - not-opened devices. Add kludge to deal with opening /dev/tty. - (cnew_no_ctor): New macro. - (build_fh_pc): Make debugging output more verbose. Use new clone() - fhandler interface to duplicate archetypes. Reset last term opened. - (dtable::dup_worker): Use Use new clone() fhandler interface to - duplicate archetypes. Pass flags to child dup handler. - (dtable::dup3): Set O_NOCTTY flag if newfd is not stdin/stdout/stderr. - * fhandler.cc (fhandler_base::reset): Rename from operator =() and - reduce functionality and sense of copy direction. - (fhandler_base::open_with_arch): Use published interface to query - io_handle(). Use new copyto() fhandler method to copy from/to found - archetype. - * fhandler.h: Throughout, delete size(), add copyout, clone, and - fhandler_* (void *) methods. - (fhandler_base::reset): Rename from operator =(). - (fhandler_termios::is_dev_tty): Delete. - (fhandler_termios): change "protected" region to "private". - (fhandler_termios::is_dev_tty): Delete. - (fhandler_termios): Rearrange protected/public. - (fhandler_termios::fhandler_termios): Remember last fhandler_termios - "opened". - (fhandler_termios::~fhandler_termios): Forget last fhandler_termios - opened. - (ioctl): Rename from ioctl_termios. Take a void * argument. Reflect - argument change in pinfo::set_ctty. - (fhandler_console::dup): Declare new function. Set ctty here if - appropriate. - (fhandler_pty_master::from_master): Privatize. - (fhandler_pty_master::to_master): Ditto. - (fhandler_pty_master::dwProcessId): Ditto. - (fhandler_pty_master::fhandler_pty_master): Add an `int' argument. - (fhandler_pty_master::open_setup): Declare new function. - (fhandler_pty_master::~fhandler_pty_master): Declare new method. - (fhandler_nodevice): Remove commented out function declaration. - * fhandler_console.cc: Use get_ttyp() instead of tc() throughout. - (fhandler_console::dup): Define new function to set controlling ctty on - dup, as appropriate. - (fhandler_console::ioctl): Reflect ioctl_termios name change. - (fhandler_console::setup): Rename from get_tty_stuff. - (fhandler_console::open_setup): Reflect argument change in - pinfo::set_ctty. - (fhandler_console::fhandler_console): Set _tc here. - * fhandler_termios.cc (handler_termios::ioctl): Rename. Take a void * - arg like other ioctl functions. - * fhandler_tty.cc (fhandler_pty_slave::dup): Call myself->set_ctty to - potentially reset the controlling terminal. - (fhandler_pty_slave::ioctl): Reflect name/arg change for ioctl_termios. - (fhandler_pty_slave::fhandler_pty_slave): Take a "unit" argument. Call - setup() here so that we will know the unit number of this fhandler as - soon as possible. Set the unit as appropriate. - (handler_pty_master::open): Move most stuff to constructor and - open_setup. - (handler_pty_slave::open_setup): Reflect argument change in - pinfo::set_ctty. - (handler_pty_master::open_setup): Define new function. - (fhandler_pty_master::cleanup): Clear handles as a flag that the - destructor does not have to do "close" operations. - (fhandler_pty_master::close): Ditto. - (fhandler_pty_master::~fhandler_pty_master): Define new method. - (fhandler_pty_master::ioctl): Reflect name/arg change for - ioctl_termios. - (fhandler_pty_master::setup): Allocate tty here. Rely on handles being - returned from allocated test rather than opening them here. Avoid - setting _need_nl here since it is already zeroed in the constructor. - Set up device information with DEV_TTYM_MAJOR. - * path.h (path_conv &operator =): Take a const argument. - (path_conv::dup): Ditto. - (pathconv_arg::PC_OPEN): New enum. - (pathconv_arg::PC_CTTY): Ditto. - (path_types::PATH_CTTY): Ditto. - (path_types::PATH_OPEN): Ditto. - (path_conv::isopen): New method. - (path_conv::isctty_capable): Ditto. - * path.cc (path_conv::check): Set PATH_OPEN and PATH_CTTY as - appropriate. - * pipe.cc (fhandler_pipe::open): Use copyto to copy pipe handle. - * syscall.cc (open): Reinstate fd > 2 check to disallow resetting ctty - on non-std* handles. - * tty.cc (tty_list::allocate): Pass out handles for allocated tty. use - `not_allocated' to find unallocated ttys. Avoid keeping the lock since - the allocation of the tty should be sufficient to prevent multiple - access. - (tty::not_allocated): Clarify comment. Rename. Return handles when an - unused tty is found. Simply test for existing tty. - (tty::exists): Rewrite to use `not_allocated'. - * tty.h (NTTYS): Reset down to actual number supported by devices.in. - (tty::not_allocated): Declare new function. - (tty_list::allocate): Pass out read/write tty handles. Zero them when - not found. - * fhandler_proc.cc: Reflect name change from FH_PTYM -> FH_PTMX. - * pinfo.h (pinfo::set_ctty): Reduce/reorder arguments passed in. - * pinfo.cc (pinfo::set_ctty): Ditto. Just use tc() built into the - passed-in fhandler_termios pointer. Return true if ctty is assigned. - * syscalls.cc (open): Call build_fh_pc with PC_OPEN flag. Set PC_CTTY - if appropriate. - (stat_worker): Remove is_dev_tty () stuff. - -2011-10-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (dos_drive_mappings::fixup_if_match): Convert - native NT network paths into DOS UNC paths. - -2011-10-15 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_token_group_sidlist): Add CONSOLE LOGON SID on - systems supporting it. Never add SERVICE SID but keep code in for - future reference. Explain why. - (get_priv_list): Add cygpsid pointer parameter. Point it to the - mandatory integrity SID which matches account and privileges. - (create_token): Fetch mandatory integrity SID from call to - get_priv_list. - (lsaauth): Call get_priv_list with additional NULL pointer. Change - comment accordingly. - * sec_helper.cc (well_known_console_logon_sid): New static SID. - (cygpriv): Change to structure containing extra flag to store info - about required integrity level. - (privilege_luid): Accommodate changes to cygpriv. Return integrity - level in new high_integrity parameter. - (privilege_name): Accommodate changes to cygpriv. - (set_privilege): Drop trailing \n from debug output. - (set_cygwin_privileges): Don't set SE_CREATE_GLOBAL_PRIVILEGE anymore - since it's just not needed, but keep code in for future reference. - Change comment accordingly. - * security.h (well_known_console_logon_sid): Declare. - (privilege_luid): Align declaration to above change. - * wincap.h (wincaps::has_console_logon_sid): New element. - * wincap.cc: Implement above element throughout. - -2011-10-13 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (find_fast_cwd_pointer): Allow 'push crit-sect-addr' instead - of 'mov edi, crit-sect-addr; push edi' and set rcall accordingly. - -2011-10-13 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (copy_cwd_str): Move up in file to be accessible from - class fcwd_access_t. - (class fcwd_access_t): New class to consolidate and hide the details - of the various FAST_CWD implementations. Add implementation for - Windows 8 Developer Preview. - (fast_cwd_version): Make static private member of fcwd_access_t. - (fast_cwd_ptr): Change base type to fcwd_access_t. - (find_fast_cwd_pointer): Return fcwd_access_t**. - (find_fast_cwd): Ditto. Rip out all FAST_CWD implementations and use - fcwd_access_t methods instead. - (cwdstuff::override_win32_cwd): Ditto. - -2011-10-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::cursor_set): Disable forcing - y to the current winBottom position. Explain why. - -2011-10-11 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygwin.din: Remove some _tc* exports. Add tcgetsid(). - * dtable.cc (fh_alloc): Revert ill-advised setting of major/minor. Use - new is_dev_tty to remember that this device was opened as /dev/tty. - * fhandler.cc (fhandler_base::fstat): Remove leftover debugging - statement. - (fhandler_base::tcgetsid): New function. - * fhandler.h ((fhandler_base::tcgetsid): Declare new function. - (fhandler_base::is_dev_tty): Ditto. - (fhandler_termios): Rearrange protected/public. - (fhandler_termios::fhandler_termios): Remember last fhandler_termios - "opened". - (fhandler_termios::~fhandler_termios): Forget last fhandler_termios - opened. - (fhandler_termios::opened_as_dev_tty): Declare new field. - (fhandler_termios::is_dev_tty): Declare new function. - (fhandler_termios::tcgetsid): Ditto. - (fhandler_pty_common::use_archetype): Move here from subclass. - (fhandler_pty_slave::use_archetype): Move up. - (fhandler_pty_master::use_archetype): Ditto. - * fhandler_console.cc (fhandler_console::ioctl): Rename second argument - from `buf' to `arg' for consistency. Call ioctl_termios for common - fhandler_termios ioctl handling. - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Call ioctl_termios for - common fhandler_termios ioctl handling. - (fhandler_pty_master::ioctl): Ditto. - * fhandler_termios.cc (fhandler_termios::tcgetsid): Implement new - function. - (fhandler_termios::ioctl_termios): Ditto. Implements TIOCSCTTY - handling. - * syscalls.cc (stat_worker): Set /dev/tty device info when appropriate. - * termios.cc (tcgetpgrp): Avoid extraneous "isatty" check. - (tcgetsid): Implement new function. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 253. - * include/sys/termios.h (TIOCSCTTY): Define. - -2011-10-11 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc (fh_alloc): Don't parse /dev/tty if ctty is < 0. Reset - major/minor from the specific tty to those for /dev/tty. - -2011-10-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * syscalls.cc (open): Add temporary kludge to avoid assigning the - controlling tty on open unless the open is for stdin/stdout/stderr. - * tty.cc (tty_list::connect): Set ENXIO when can't find a tty. - -2011-10-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_process::closedir): Declare. - * fhandler_process.cc (fhandler_process::closedir): New function to - avoid a SEGV in fhandler_proc::closedir. - -2011-10-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::open): Clarify debugging output. - (fhandler_pty_slave::open): Change ENOENT to ENXIO when can't open a - tty. - -2011-10-07 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_console::tc_getpgid): New function. - * spawn.cc (spawn_guts): Add logic to put pure-windows processes "in - the background" when they are started that way. - -2011-10-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h (cygwin_getinfo_types): Define values - additionally as preprocessor symbols. - -2011-10-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Send __SIGSETPGRP - pseudo signal to process group instead of just calling - init_console_handler. - * sigproc.cc (wait_sig): Call init_console_handler here on __SIGSETPGRP - signal. - * sigproc.h (__SIGSETPGRP): Define. - -2011-10-06 Christian Franke <franke@computer.org> - - * include/cygwin/wait.h: Use new __wait_status_to_int() - macro to access status value in W*() status checks. - Fix status description. - * include/sys/wait.h: Allow `int' and `union wait' as - wait status parameter. Change __wait_status_to_int() - macro and wait () prototypes accordingly. Add inline - functions for C++. Remove extra `;'. - -2011-10-05 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (create_winenv): Rename from sync_winenv. Take - environment pointer as parameter and return pointer to corresponding - win32 environment block if != NULL. Otherwise just sync as before. - (cygwin_internal): Add CW_CVT_ENV_TO_WINENV case. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_ENV_TO_WINENV. - -2011-10-04 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (socketpair): Bind first socket to loopback only as well. - -2011-09-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * tty.cc (grantpt): Check for valid fd. - (unlockpt): Ditto. - -2011-09-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getsockopt): Drop erroneous double conversion of error - code returned by SOL_SOCKET/SO_ERROR. Fix error handling. - -2011-09-01 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: Regenerate. - -2011-09-01 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (gfpod_helper): Helper function to search DLL using - a given DLL name. Change default search path to allow /usr/bin. - (get_full_path_of_dll): Find DLLs even if the caller used a ".so" - suffix or a "lib" prefix for the DLL. - -2011-08-31 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (inode_t::unlock_and_remove_if_unused): Rename from - unlock_and_remove. - -2011-08-29 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (LOCK_OBJ_NAME_LEN): Change to accommodate extra lf_ver - field. - (class lockf_t): Add lf_ver field. - (lockf_t::lockf_t): Initialize lf_ver to 0. - (class inode_t): Change i_wait to i_cnt. Change comment to explain - change in usage. - (inode_t:use): Rename from wait. Make private. - (inode_t::unuse): Rename from unwait. Make private. - (inode_t::inuse): Rename from waiting. Make private. - (inode_t::notused): New public method to set use count to 0. - (inode_t::unlock_and_remove): New method to unlock node and to delete - it if it's unused in current process. - (fhandler_base::del_my_locks): Drop global list lock. Drop variable - no_locks_left. Simpify unlocking and removing node by just calling - unlock_and_remove. - (fixup_lockf_after_exec): Call notused method for each node. - (inode_t::get): Call use method. Lock node only if outside of list - lock. - (inode_t::get_all_locks_list): Accommodate additional lf_ver field - when creating lockf_t structure from object name. - (lockf_t::create_lock_obj_attr): Accommodate additional lf_ver field - when creating object name from lockf_t structure. Handle - STATUS_OBJECT_NAME_COLLISION gracefully in F_POSIX case as well. - Change comment accordingly. Increment lf_ver field rather than high - byte of lf_wid field. Simplify comment. - (fhandler_disk_file::lock): Always call unlock_and_remove rather than - just UNLOCK on node. - (lf_setlock): Move ret definition where it's used. Drop unneeded - tests for obj being not NULL. Only check for deadlock condition if the - lock we're trying to establish is a POSIX lock. Revamp object - collecting and wait code to cover all cases. Don't return with EDEADLK - if blocking process can't be opened for synchronization in F_POSIX case, - rather just wait like in F_FLOCK case. Change system_printf to - debug_printf in that case. Only run WaitForMultipleObjects with high - priority. Close obj and process handles prior to locking node. - -2011-08-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Fix typo in comment. - (fhandler_base::close): Move call to del_my_locks from here... - * fhandler_disk_file.cc (fhandler_disk_file::open): ...to here. - * flock.cc (struct lockfattr_t): New type. - (lockf_t::close_lock_obj): New method, use throughout. - (lockf_t::create_lock_obj_attr): New method. - (lockf_t::create_lock_obj): Use create_lock_obj_attr method. Handle - STATUS_OBJECT_NAME_COLLISION in F_FLOCK case gracefully. Add lengthy - comments to explain why and how. - (lockf_t::open_lock_obj): Use create_lock_obj_attr method. - (lockf_t::del_lock_obj): Call NtSetEvent rather than SetEvent for - symmetry. - (fhandler_disk_file::lock): Define n only where it's used. Call - need_fork_fixup only if call was successful. Handle EINTR and - ECANCELED return values from lf_setlock. - (lf_setlock): Drop WAIT_UNLOCKED and WAIT_PROC_EXITED. Don't wait - for event object handle count to become <= 1 in F_LOCK case. - Simplify WFMO return value handling. Don't handle signal and cancel - events here; just return with appropriate error code instead. - (lf_getblock): Ignore locks for which the handle can't be opened. - Use IsEventSignalled. - * ntdll.h (STATUS_INVALID_INFO_CLASS): Undef if defined elsewhere to - make sure the definition is casted to NTSTATUS. - (STATUS_INVALID_HANDLE): Define and ditto. - (STATUS_OBJECT_NAME_COLLISION): Define. - (NtSetEvent): Declare. - -2011-08-25 Rafal Zwierz <rzwierz@googlemail.com> - - * cygthread.cc (cygthread::simplestub): Notify that the thread has - detached also in freerange thread case. - -2011-08-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Never open files with - FILE_OVERWITE/FILE_OVERWRITE_IF. Set file size to 0 explicitely if - regular, existing file has been opened for writing with O_TRUNC flag - set. Explain why. - -2011-08-24 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::pthread): Drop setting parent_tls. Call - sigprocmask to copy parent thread signal mask into new parent_sigmask - member. - (pthread::thread_init_wrapper): Copy _my_tls.sigmask from new - parent_sigmask member. - * thread.h (class pthread): Drop parent_tls. Add parent_sigmask. - -2011-08-24 Christopher Faylor <me.cygwin2011@cgf.cx> - - * thread.cc (pthread::exit): Create dummy tls structure to hold - _main_tls contents if we've asked _main_tls to exit. - -2011-08-23 Corinna Vinschen <corinna@vinschen.de> - - * poll.cc (poll): Don't return prematurely if invalid fds have been - encountered. Enforce timeout set to 0 in case of invalid fds. Take - number of invalid fds into account when returning. - -2011-08-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::send_internal): Fix setting - nosignal flag. Convert ECONNABORTED on connection-oriented socket - to EPIPE, too. - -2011-08-21 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc (conv_start_chars): Remove unneeded section attribute. - -2011-08-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/paths.h (_PATH_MAILDIR): Define. - (_PATH_SHELLS): Define. - -2011-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_maps): Define page protection - shortcuts RO, X, and WC. Use in creating access flag string. Don't - set type flag to 's' for copy-on-write pages, as on Linux. - -2011-08-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * devices.h (fh_devices): Define DEV_MISC_MAJOR, DEV_MEM_MAJOR, - DEV_SOUND_MAJOR. Use throughout. - * fhandler_proc.cc (proc_tab): Add /proc/devices and /proc/misc - virtual files. - (format_proc_devices): New function. - (format_proc_misc): New function. - -2011-08-19 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc: Mark some const variables as static. - * environ.cc (conv_start_chars): Move to shared cygwin region and - initialize at compile time. - (match_first_char): New generic function for querying conv_start_chars. - (posify_maybe): Rename from posify. - (environ_init): Remove conv_envvars initialization. Don't check - conv_start_chars, just allow posify_maybe to make the decision. - * fhandler_console.cc (__vt100_conv): Fix formatting. Mark as const. - -2011-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Recognize backspace key - using the device independent key code, rather than the device dependent - scan code. - -2011-08-18 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Remove unneeded __stdcall decoration. - * init.cc: Reflect change to dll_crt0_0 in declaration. - -2011-08-18 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::get_debugger_info): Add missing braces. - (dtable::stdio_init): Fix incorrect negation of not_open(2) condition. - -2011-08-16 Pierre Humblet <Pierre.Humblet@ieee.org> - - * net.cc (gethostby_helper): Remove DEBUGGING code from and - streamline the second pass. - -2011-08-16 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (dlopen): Reimplement RTLD_NODELETE for Windows 2000 using - internal datastructures. Explain the code. - * ntdll.h (struct _LDR_DATA_TABLE_ENTRY): Define. - (struct _PEB_LDR_DATA): Define. - (struct _PEB): Change PVOID LoaderData to PPEB_LDR_DATA Ldr. - - * fhandler_process.cc (format_process_maps): Call NtQueryVirtualMemory - with valid return length pointer. Explain why. - -2011-08-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-08-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetModuleHandleExW): Define. - * dlfcn.cc: Throughout mark exported symbols as extern "C". - (dlopen): Unignore flags argument. Define ret to NULL. Fix typo in - comment. Support Glibc flags RTLD_NOLOAD and RTLD_NODELETE. - * include/dlfcn.h: Clean up comments. - (RTLD_NODELETE): Define. - (RTLD_NOLOAD): Define. - (RTLD_DEEPBIND): Define. - -2011-08-15 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (pipe): Just call _pipe with O_BINARY mode. Move code to - generate normalized pathnames from here... - (_pipe): ...to here. - -2011-08-13 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (CreatePipeOverlapped): New function. - (ReadPipeOverlapped): Ditto. - (WritePipeOverlapped): Ditto. - * miscfuncs.h: Declare new functions. - * pinfo.cc (commune_process): Call WritePipeOverlapped instead of - WriteFile. Set timeout to 1 sec. - (_pinfo::commune_request): Call ReadPipeOverlapped instead of ReadFile. - Set timeout to 0.5 secs. - * sigproc.cc (sig_send): Create pipe using CreatePipeOverlapped. - -2011-08-12 Christopher Faylor <me.cygwin2011@cgf.cx> - - * miscfuncs.cc (create_pipe): Delete obsolete function. - * miscfuncs.h (create_pipe): Delete define. - - * pipe.c (fhandler_pipe::create_selectable): Delete obsolete comment. - -2011-08-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (fhandler_proc::closedir): Don't free, but delete - instead. - -2011-08-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_proc::opendir): Declare. - (fhandler_proc::closedir): Declare. - * fhandler_proc.cc (fhandler_proc::opendir): New method. Fetch list - of active processes here once to avoid potential duplicates and store - in dir->__handle. - (fhandler_proc::closedir): New method. Free dir->__handle. - (fhandler_proc::readdir): Convert pinfo into a reference to the winpids - entry in dir->__handle. - -2011-08-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Don't allow to - access process info by using the Windows PID. - * fhandler_process.cc (fhandler_process::fstat): Ditto. - (fhandler_process::fill_filebuf): Ditto. - -2011-08-11 Corinna Vinschen <corinna@vinschen.de> - - * (winpids::add): Make sure to store always a Windows PID in - pidlist, even if pid is a Cygwin PID. - (winpids::enum_processes): Fetch Cygwin processes from listing of - shared cygwin object dir in the native NT namespace. Only if winpid - is true, fetch Windows processes using an additional call to - NtQuerySystemInformation. - -2011-08-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_status): Always print process name - even for zombies. - (get_mem_values): Fix loop fetching working set list to avoid out of - memory conditions. Return all mem values set to 0 for zombies. - * ntdll.h (STATUS_PROCESS_IS_TERMINATING): Define. - -2011-08-09 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (eval_initial_heap_size): New function fetching the heap - size from the LoaderFlags field in the PE/COFF header. - (heap_init): Call eval_initial_heap_size rather than - cygwin_shared->heap_chunk_size to fetch the initial heap size. - * shared.cc (shared_info::heap_chunk_size): Remove. - * shared_info.h (class shared_info): Drop heap_chunk member. - (CURR_SHARED_MAGIC): Update. - -2011-08-09 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_NOT_FOUND): Define. - * ntea.cc (read_ea): Return correct ENOTSUP rather than EOPNOTSUPP. - Handle STATUS_INVALID_DEVICE_REQUEST and STATUS_NOT_FOUND. Explain - why. Convert conditional to switch statement. - (write_ea): Return correct ENOTSUP rather than EOPNOTSUPP. Handle - STATUS_INVALID_DEVICE_REQUEST. Convert conditional to switch statement. - -2011-08-07 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Just return RLIM_INFINITY in a request for - RLIMIT_AS. - -2011-08-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_maps): Actually print info about - the application heap of the printed process, not of the current process. - -2011-08-04 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (socketpair): Release sb0 if there's no space left for sb1. - -2011-08-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (clock_nanosleep): Export. - * posix.sgml (std-notimpl): Move clock_nanosleep from here... - (std-susv4): ... to here. - (std-notes): Note limitations of clock_nanosleep. - * signal.cc (clock_nanosleep): Renamed from nanosleep, adding clock_id - and flags arguments and changing return values throughout. - Improve checks for illegal rqtp values. Add support for - CLOCK_MONOTONIC and TIMER_ABSTIME. - (nanosleep): Rewrite in terms of clock_nanosleep. - (sleep): Ditto. - (usleep): Ditto. - * thread.cc: Mark clock_nanosleep in list of cancellation points. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-08-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc: Use fabort in favor of api_fatal and fork_info->abort - where appropriate throughout. - (fabort): Define. - (dll_list::topsort): Don't print sorting information. Fix formatting. - (dll_list::topsort_visit): Fix formatting. - (dll_list::load_after_fork_impl): Perform comment fixups. - * sigproc.cc (child_info_fork::abort): (for now?) Always print cause of - fork failure. - * include/sys/strace.h (strace_vprintf): Remove _STRACE_NOTALL when - printing. We really do want to see this. - -2011-08-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygtls.h (struct _local_storage): Add cw_timer member. - * cygtls.cc (_cygtls::init_thread): Initialize locals.cw_timer. - (_cygtls::fixup_after_fork): Ditto. - * tlsoffsets.h: Regenerate. - * ntdll.h (enum _TIMER_INFORMATION_CLASS): Define. - (struct _TIMER_BASIC_INFORMATION): Define. - (NtQueryTimer): Declare function. - * thread.h (cancelable_wait): Change timeout argument to - PLARGE_INTEGER and provide NULL default. - (fast_mutex::lock): Adjust accordingly. - (pthread_cond::wait): Change timeout argument to PLARGE_INTEGER - and default to NULL. - * thread.cc (cancelable_wait): Change timeout argument to - PLARGE_INTEGER. Initialize _cygtls.locals.cw_timer if needed. - Use NT waitable timers for handling timeout. Return remaining time - to timeout argument if timeout was relative. - (pthread_cond::wait): Change timeout argument to PLARGE_INTEGER. - Adjust to change in cancelable_wait. - (pthread_mutex::lock): Adjust to change in cancelable_wait. - (pthread_spinlock::lock): Ditto. - (pthread::join): Ditto. - (__pthread_cond_dowait): Change waitlength argument to PLARGE_INTEGER. - Adjust to changes in cancelable_wait and pthread_cond::wait. - (pthread_cond_timedwait): Adjust to change in __pthread_cond_dowait. - (pthread_cond_wait): Ditto. - (semaphore::_timedwait): Adjust to change in cancelable_wait. - (semaphore::_wait): Ditto. - * exceptions.cc (handle_sigsuspend): Ditto. - * signal.cc (nanosleep): Ditto. - * wait.cc (wait4): Ditto. Fix copyright dates. - * times.cc (FACTOR, NSPERSEC): Move from here... - * hires.h (FACTOR, NSPERSEC): ...to here. - -2011-08-01 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (faccessat): Fix parens in flag expression when calling - build_fh_name. - - * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Fix typo in - comment. - * fhandler_socket.cc (fhandler_socket::bind): Ditto. - * path.cc (symlink_worker): Ditto. - -2011-07-31 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_list::load_after_fork_impl): Add a hint to an error - message. - -2011-07-31 Christopher Faylor <me.cygwin2011@cgf.cx> - - * sigproc.cc (pending_signals::pending): Define new function. - (sig_dispatch_pending): Avoid calling sig_send if there are no pending - signals. - -2011-07-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_mem): Remove dup method declaration. - * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Accommodate the - fact that the entire fhandler gets copied over to the child in - operator =. - * fhandler_floppy.cc (fhandler_dev_floppy::dup): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::dup): Ditto. - * fhandler_serial.cc (fhandler_serial::dup): Ditto. - * fhandler_socket.cc (fhandler_socket::dup): Ditto. - * fhandler_virtual.cc (fhandler_virtual::dup): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::dup): Ditto. Remove entirely. - -2011-07-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygthread.cc (cygthread::async_create): Define new function. - * cygthread.h (cygthread::create): Use correct regparm. - (cygthread::standalone): Delete from class and from all constructors. - (cygthread::cygthread): Use three only arguments for detached threads, - (cygthread::async_create): Declare. - and start the thread via QueueUserAPC/async_create. - * dcrt0.cc (dll_crt0_0): Remove handling for - wincap.has_buggy_thread_startup. - (dll_crt0_1): Ditto. - * wincap.cc: Ditto throughout. - * wincap.h: Ditto. - -2011-07-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_base_overlapped::size): Declare/define size() - function for consistency. - (fhandler_termios::size): Ditto. - (fhandler_pty_common::size): Ditto. - -2011-07-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (fhandler_registry::dup): Duplicate value_name. - -2011-07-29 Corinna Vinschen <corinna@vinschen.de> - - Throughout change "WinSock" to "Winsock" in comments. - * fhandler_socket.cc (fhandler_socket::sendmsg): Add missing call to - get_inet_addr to convert AF_LOCAL to AF_INET sockets. - * net.cc (cygwin_socket): Workaround UDP Winsock problem. Add comment - to explain why. - * select.cc: Include winsock2.h rather than winsock.h. - -2011-07-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Create path_conv - with PC_KEEP_HANDLE flag. - * path.h (path_conv::operator =): Duplicate UNICODE path as well. - * security.cc (check_file_access): Use path_conv handle if available. - * syscalls.cc (access): Create fhandler with PC_KEEP_HANDLE flag set. - (euidaccess): Ditto. - (faccessat): Ditto. - -2011-07-26 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Fix typo in comment. - * path.cc: Ditto. - -2011-07-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::ioctl): Fetch console events - using PeekConsoleInput and return only key down events in buf. - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Always return EINVAL - if PeekNamedPipe fails. - (fhandler_pty_master::ioctl): Ditto. - -2011-07-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Drop FIONBIO case. - Handle FIONREAD. - (fhandler_pty_master::ioctl): Ditto. Call fhandler_base::ioctl to - decode default condition. - * fhandler_console.cc (fhandler_console::ioctl): Handle FIONREAD. - -2011-07-21 Christopher Faylor <me.cygwin2011@cgf.cx> - Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc: Add #include for asm/socket.h for dealing with FIONREAD. - (fhandler_base::ioctl): Special-case errno for FIONREAD. - * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Rename parameter for - consistency. Call fhandler_base::ioctl to decode default condition. - * fhandler_serial.cc (fhandler_serial::ioctl): Ditto. - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Call - fhandler_base::ioctl to decode default condition. - * fhandler_windows.cc (fhandler_windows::ioctl): Ditto. - -2011-07-21 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (eval_start_address): Simplify test for large address - awareness of executable, which works for 32 and 64 bit systems. - Change comment accordingly. - -2011-07-21 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (eval_start_address): New static function to evaluate the - best start address for the application heap. - (heap_init): Call eval_start_address to fetch the start value for - start_address. Move preceeding comment to eval_start_address. - -2011-07-21 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (pthread_condattr_getclock): Export. - (pthread_condattr_setclock): Export. - * posix.sgml (std-notimpl): Move pthread_condattr_getclock and - pthread_condattr_setclock from here... - (std-susv4): ... to here. - * sysconf.cc (sca): Set _SC_CLOCK_SELECTION to _POSIX_CLOCK_SELECTION. - * thread.cc: (pthread_condattr::pthread_condattr): Initialize clock_id. - (pthread_cond::pthread_cond): Initialize clock_id. - (pthread_cond_timedwait): Use clock_gettime() instead of gettimeofday() - in order to support all allowed clocks. - (pthread_condattr_getclock): New function. - (pthread_condattr_setclock): New function. - * thread.h (class pthread_condattr): Add clock_id member. - (class pthread_cond): Ditto. - * include/pthread.h: Remove obsolete comment. - (pthread_condattr_getclock): Declare. - (pthread_condattr_setclock): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-07-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * sysconf.cc (sca): Return -1 for _SC_THREAD_ROBUST_PRIO_INHERIT, - _SC_THREAD_ROBUST_PRIO_PROTECT, and _SC_XOPEN_UUCP. - (SC_MAX): Redefine accordingly. - (csa): Return strings for _CS_POSIX_V7_THREADS_CFLAGS, - _CS_POSIX_V7_THREADS_LDFLAGS, and _CS_V7_ENV. - (CS_MAX): Redefine accordingly. - * include/limits.h (LONG_BIT): Define. - (WORD_BIT): Define. - -2011-07-18 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (heap_init): Change type of largest_found to PVOID. Start - querying memory at 0x20000000. Use largest_found pointer when trying - to allocate largest free memory area found. - -2011-07-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::input_tcsetattr): Revert to - setting ENABLE_PROCESSED_INPUT depending on ISIG and IGNBRK. - (fhandler_console::tcgetattr): Set ISIG depending on - ENABLE_PROCESSED_INPUT as well. - -2011-07-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc (fhandler_serial::raw_read): Handle non-blocking - case more thoroughly. - -2011-07-13 Christopher Faylor <me.cygwin2011@cgf.cx> - - * setup_handler (setup_handler): Change break to goto out, missed in - 2011-07-06 changes. - -2011-07-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Remove erroneous support - for TIOCLINUX for pty. Get rid of unneeded EINVAL handling in wake of - tty removal. Remove now-unneeded variable. - -2011-07-10 Corinna Vinschen <corinna@vinschen.de> - - * include/netdb.h (gethostbyname2): Declare. - -2011-07-09 Eric Blake <eblake@redhat.com> - - * signal.cc (handle_sigprocmask): Return error rather than setting - errno, for pthread_sigmask. - (sigprocmask): Adjust caller. - -2011-07-07 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (yield): Drop thread priority only once. - -2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Back out previous change - since it could theoretically cause a non-CTRL-C-able program if a - program has suffered memory corruption. - (setup_handler): Ditto. - -2011-07-06 Corinna Vinschen <corinna@vinschen.de> - - * sched.c (sched_yield): Just call SwitchToThread because yield now - potentially switches CPU. - -2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Don't check for spinning - here. - (setup_handler): Check for spinning here, assuming that it is - transitory and should not affect the retry loop. - -2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (CALL_HANDLER_RETRY_INNER): Rename to reflect different - functionality. - (CALL_HANDLER_RETRY_OUTER): New define. - (setup_handler): Add outer loop to signal handler to try harder to - deliver the signal. - * miscfuncs.cc (yield): Drop priority and use SleepEx() to force thread - rescheduling rather than relying on SwitchToThread(). - -2011-07-06 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (wait_sig): Fix debug output. - -2011-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::input_tcsetattr): Make - ENABLE_PROCESSED_INPUT flag only depending on value of IGNBRK. - (fhandler_console::tcgetattr): Don't set ISIG depending on - ENABLE_PROCESSED_INPUT, set IGNBRK instead. - -2011-07-05 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_sd): Fix comment. - -2011-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Never create files with WRITE_DAC - access. Explain why. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Improve debug - output. - -2011-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Don't open file with WRITE_DAC - access on remote filesystem. 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. - -2011-07-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.cc (tty_is_gone): Wrap warning at 80 characters. - -2011-07-04 Corinna Vinschen <corinna@vinschen.de> - - Throughout, open console handles with sharing for reading and writing. - * dcrt0.cc (insert_file): Open file with full sharing allowed. - * hookapi.cc (find_first_notloaded_dll): Ditto. - * spawn.cc (av::fixup): Ditto. - -2011-07-04 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Change test for console - device in call to fh->init to avoid conhost crash on W7. - -2011-07-04 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (environ_init): Reinstantiate on-the-fly CYGWIN variable - test and call to parse_options if found. - -2011-07-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base::open_with_arch): Call close_on_exec last - to avoid setting close_on_exec for archetype. - * fhandler_tty.cc (fhandler_pty_master::setup): Protect {from,to}_pty - handles. Use consistent naming in debug output. Use inheritable - handles and... - (fhandler_pty_master::fixup_after_fork): ...avoid duplicating handles - here. - (fhandler_pty_slave::open): Don't set close_on_exec flag here. - -2011-07-01 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc (cnew): Fix whitespace. - -2011-07-01 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/param.h (NGROUPS): Redefine as NGROUPS_MAX. - (MAXHOSTNAMELEN): Redefine with same value as MAX_HOSTNAME_LEN. Change - comment. - (MAXPATHLEN): Improve comment. - (MAXSYMLINKS): Define and add comment. - -2011-07-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Move NFS-specific code into the - code block handling FH_FS stuff. - -2011-06-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * dtable.cc (fh_oom): Remove. - (fh_calloc): Remove. - (cnew): Redefine to handle NULL returns from cmalloc. - (build_fh_name): Accommodate new definition of cnew. Remove unneeded - test for fh_oom. - (fh_alloc): Ditto. - -2011-06-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Add comment. - (fhandler_console::input_tcsetattr): Don't set ENABLE_PROCESSED_INPUT - if IGNBRK flag is set. - -2011-06-30 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (fh_oom): New static fhandler storage. - (fh_calloc): New static function. Add a comment to explain why this - is needed. - (cnew): Call fh_calloc as placement argument. - (build_fh_name): Check return code from cnew against address of - fh_oom to test for out of memory condition. - (fh_alloc): Ditto. - (build_fh_pc): Avoid a crash due to useing a NULL fhandler. - * pipe.cc (fhandler_pipe::create): Check if build_fh_dev returned a - valid pointer before using it. - -2011-06-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (heap_info::fill_if_match): Rename info to - note that this heap is a Windows heap. - (format_process_maps): Print info about application heap. - -2011-06-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Don't generate ^@ on - Ctrl+Alt+Space. - -2011-06-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Create pty pipes - non-inheritable. - -2011-06-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Fix crash in debug - output. - -2011-06-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_win32_path): Skip all slashes after recognizing - a ".." path component. Add comment. - -2011-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Drop local create_options variable. - Use options member instead. - * fhandler.h (class fhandler_base): Change type of access member to - ACCESS_MASK. Change get_access and set_access methods accordingly. - Add options member. Add get_options and set_options methods. - (class fhandler_disk_file): Add prw_handle. - (fhandler_disk_file::prw_open): Declare. - (fhandler_disk_file::close): Declare. - (fhandler_disk_file::dup): Declare. - (fhandler_disk_file::fixup_after_fork): Declare. - * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file): - Initialize prw_handle to NULL. - (fhandler_disk_file::close): Close prw_handle. - (fhandler_disk_file::dup): New method. - (fhandler_disk_file::fixup_after_fork): Set prw_handle to NULL since - prw_handle is not inherited. - (fhandler_disk_file::prw_open): New method. Add long comment to - explain current behaviour. - (fhandler_disk_file::pread): Revert previous change. Change to use - prw_handle if possible. - (fhandler_disk_file::pwrite): Change to use prw_handle if possible. - -2011-06-17 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Call strace.dll_info after call to pinfo_init. - * strace.cc (strace::hello): Drop printing DLL information here since - application info is not always available at this point. - (strace::dll_info): New method to print DLL info. - * include/sys/strace.h (strace::dll_info): Declare. - -2011-06-17 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (handle_to_fn): Accommodate name change of pty named pipes, - otherwise ptys are not recognized. - -2011-06-16 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_console.cc (fhandler_console::set_unit): Set - pc.file_attributes() to reflect existence. - * fhandler.h (fhandler_pty_common::fhandler_pty_common): Ditto. - * pinfo.cc (_pinfo::set_ctty): Output device numbers in hex. - -2011-06-15 Christopher Faylor <me.cygwin2011@cgf.cx> - - * errno.cc (EIO): Lowercase "o" representative string. - -2011-06-14 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.h (init_cygheap::ctty_on_hold): Remove conditionalized - variable. - * dcrt0.cc (do_exit): Remove code which handled CYGWIN=tty style ttys. - * devices.in: Remove "/dev/ttym". - * dtable.cc: Rename tty to pty where appropriate throughout. - (dtable::stdio_init): Use new t->is_console rather than using - now-deleted hwnd element in tty structure. - (dtable::init_std_file_from_handle): Remove code which handled - CYGWIN=tty style ttys. - (fh_alloc): Ditto. - * fhandler.h: Rename tty to pty where appropriate. - (fhandler_pty_common): Delete output_done_event, ioctl_request_event, - ioctl_done_event. - (fhandler_pty_master::setup): Delete argument. - (fhandler_tty_master): Delete. - (fhandler_union): Delete __tty_master. - * fhandler_console.cc (use_tty): Delete. - (fhandler_console::get_tty_stuff): Set is_console to true rather than - calling sethwnd. - (fhandler_console::send_winch_maybe): Remove CYGWIN=tty considerations. - (fhandler_console::input_tcsetattr): Ditto. - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Use new - t->is_console rather than using now-deleted hwnd element in tty - structure. - * fhandler_tty.cc: Rename tty to pty where appropriate throughout. - (tty_master): Delete. - (process_input): Ditto. - (process_output): Ditto. - (process_ioctl): Ditto. - (fhandler_tty_master::*): Ditto. - (fhandler_pty_master::process_slave_output): Remove CYGWIN=tty - considerations. - (fhandler_pty_slave::open): Ditto for *_done_event. - (fhandler_pty_slave::write): Ditto. - (fhandler_pty_slave::ioctl): Ditto. - (fhandler_pty_slave::fch_open_handles): Ditto. - (fhandler_pty_slave::fch_set_sd): Ditto. - (fhandler_pty_slave::fch_close_handles): Ditto. - (fhandler_pty_common::close): Ditto. - (fhandler_pty_master::setup): Ditto. Remove now-unneeded ispty - parameter. - (fhandler_pty_master::open): Reflect argument removal for - tty::allocate. - * select.cc: Rename tty to pty where appropriate throughout. - * sigproc.cc (proc_subproc): Remove CYGWIN=tty considerations. - * tty.cc (ttyslot): Accommodate CYGWIN=tty removal. - (tty_list::init_session): Ditto. - (tty_list::attach): Ditto. - (tty::create_master): Delete. - (tty_list::terminate): Ditto. - (tty_list::allocate): Delete "with_console" parameter. Remove - CYGWIN=tty considerations. - (tty::init): Set is_console = false. Use 'false' for was_opened since - it is a boolean. - * tty.h (*_{DONE,REQUEST}_EVENT): Delete. - (tty_min::is_console): Declare new field which replaces hwnd. - (tty_min::gethwnd): Delete. - (tty_min::sethwnd): Ditto. - (tty_list::allocate): Delete parameter. - (tty_list::terminate): Delete declaration. - * include/sys/cygwin.h (PID_USETTY): Redefine to PID_UNUSED1 and change - comment to reflect its availability. - -2011-06-13 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_tty_slave.cc (fhandler_tty_slave::fhandler_tty_slave): - Revert previous change since unit 0 is perfectly valid. - -2011-06-12 Christopher Faylor <me.cygwin2011@cgf.cx> - - Rename FH_BAD to FH_NADA throughout. - * devices.h (FH_ERROR): New value. - (iscons_dev): Extend to detect all the console device types. - * devices.in: Set aside storage for FH_ERROR. - * dtable.cc (dtable::init_std_file_from_handle): Use iscons_dev to - detect when device is a console. - (fh_alloc): Pass device to console constructor. - (build_fh_pc): Short circuit when we detect that the constructor saw an - error. - * fhandler.h (fhandler_console::fhandler_console): Accept fh_devices - parameter. - (get_tty_stuff): Change to void. - * fhandler_console (fhandler_console::set_unit): Set device to FH_ERROR - on attempt to access anything other than the current console. - (fhandler_console::get_tty_stuff): Change to void return. - (fhandler_console::open): Return EPERM on FH_ERROR device type. - (fhandler_console::fhandler_console): Set the device type appropriately - before calling get_tty_stuff and rely on that function to reset it if - necessary. - -2011-06-10 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.cc (create_upcaseenv): Delete. - (ucenv): Don't honor create_upcaseenv. - (environ_init): Remove early retrieval of CYGWIN environment variable. - Change comment to reflect new behavior. - -2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - (child_info::old_title): Delete. - (child_info::~child_info_spawn): Remove recording of old_title. - * dcrt0.cc (title_buf): Delete. - (child_info_spawn::handle_spawn): Remove recording of old_title. - (dll_crt0_1): Get rid of all title handling. - (do_exit): Ditto. - * environ.cc (known): Delete strip_title and title. - * fhandler_console.cc (fhandler_console::write): Remove recording of - old_title. - * globals.cc (exit_states): Remove ES_TITLE. - (display_title): Delete. - (strip_title_path): Delete. - (old_title): Delete. - * spawn.cc (spawn_guts): Remove old_title accommodation. - -2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.cc (envcache): Delete. - (known): Remove envcache. - (getwinenv): Don't honor envcache setting. - -2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.c: Move code earlier to allow: - (_addenv): Call parse_options() when CYGWIN environment variable is - being changed. - (parse_options): Change parameter to 'const'. - -2011-06-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.cc (tty_is_gone): Add missing space to message. - -2011-06-08 Christopher Faylor <me.cygwin2011@cgf.cx> - - * environ.cc (settings::set_process_state): Delete. - (tty_is_gone): New function. - (known): Change "tty" to call tty_is_gone(). Remove unneeded '&' from - beginning of function address. - (parse_options): Remove set_process_state handling. - * shared_info.h (CURR_USER_MAGIC): Reset. - (user_info::warned_notty): New member. - -2011-06-07 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_console.cc (fhandler_console::open_shared_console): - Semi-revert to using fixed location for console stuff. - * shared.cc (offsets): Ditto. Comment. - * shared_info (shared_locations): Re-add SH_SHARED_CONSOLE. - -2011-06-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_disk_file.cc (fhandler_disk_file::pread): Reset windows file - position pointer back to previous location after successful read. - -2011-06-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler_console.cc (fhandler_console::open_shared_console): Don't - zero handle to open_shared since it is supposed to be an input. - (enum_windows): Set handle input to open_shared to NULL since it does - not represent any previously opened shared region. - * shared.cc (open_shared): Tweak debugging output. - -2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * ntdll.h (FILE_PIPE_*): Define constants. - * select.cc (pipe_data_available): Detect closing state. - -2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.cc (_pinfo::set_ctty): Don't reset myself->{pgid,sid} if - terminal has no pgid or sid settings. - -2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Only raise - SIGPIPE when writing. - - * fhandler.h: Include "tty.h". - (fhandler_termios::_tc): Rename from tc. - (fhandler_termios::tc): New method. - (fhandler_termios::tcinit): Remove an argument. - (fhandler_termios::get_ttyp): Use method to retrieve value. - (fhandler_console::console_state): Move here. - (fhandler_console::dev_state): Delete. - (fhandler_console::shared_console_info): Define. - (fhandler_console::open_shared_console): Move this function under - fhandler_console umbrella. - (fhandler_console::tc): Define. Return static value. - (fhandler_console::focus_aware): Accommodate deletion of dev_state. - (fhandler_console): Add tty_list::get_cttyp as a friend. - * fhandler_console.cc (dev_state): Redefine as a pointer within - shared_console_info and change dev-> to dev. throughout. - (fhandler_console::shared_console_info): Move into fhandler_console. - (fhandler_console::open_shared_console): Move into fhandler_console - change argument to simple bool. - (enum_windows): Accommodate changes to console_state and - open_shared_console. - (console_unit::console_unit): Ditto. - (fhandler_console::get_tty_stuff): Accommodate change to dev_state. - (tty_list::get_cttyp): Accommodate change to - handler_console::shared_console_info. - (fhandler_console::read): Accommodate change from tc to tc (). - (fhandler_console::set_input_state): Ditto. - (fhandler_console::open): Accommodate tcinit argument change and change - from tc to tc(). - (fhandler_console::input_tcsetattr): Accomodate change from tc to tc(). - (fhandler_console::input_tcsetattr): Ditto. - (fhandler_console::write_normal): Ditto. - (fhandler_console::init): Ditto. - (fhandler_console::igncr_enabled): Ditto. - * fhandler_termios.cc (fhandler_termios::tcinit): Remove first argument. - Expect tc() to have been set up first. Use tc() rather than tc. - (fhandler_termios::tcsetpgrp): Accomodate change from tc to tc(). - (fhandler_termios::tcgetpgrp): Ditto. - (fhandler_termios::bg_check): Ditto. - (fhandler_termios::line_edit: Ditto. - (fhandler_tty_master::set_winsize): Ditto. - (fhandler_tty_slave::open): Ditto. - (fhandler_tty_slave::init): Ditto. - (fhandler_pty_master::write): Ditto. - (fhandler_pty_master::setup): Ditto. Accommodate change in arguments - to tcinit. - (fhandler_tty_slave::fch_open_handles): Set _tc directly. - (tty_min::is_orphaned_process_group): Don't assume that parent pid - exists. - * pinfo.cc (_pinfo::set_ctty): Reset myself->{pgid,sid} here if we were - started by a non-Cygwin process but the tty exists. - * shared_info.h (console_state): Delete from here. - * tty.h: Make multiple inclusion safe. - -2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> - - * exceptions.cc (ctrl_c_handler): Simplify test for no parent tty. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Return NULL if - ctty is not tty/console. Improve test for slave tty/pty device. - -2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> - - * external.cc (fillout_pinfo): Don't truncate ctty if it's < 0. - - * select.cc (pipe_data_available): Avoid printing debug info by default - or suffer very large strace files. - -2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (pipe_data_available): New function - uses - NtQueryInformationFile to return information about pipes. - (peek_pipe): Rewrite to use pipe_data_available for both read and write - tests. - -2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dtable.cc (dtable::select_write): Add missing argument to - debug_printf. - - * fhandler.cc (fhandler_base_overlapped::setup_overlapped): Explicitly - set io_pending to false. - (fhandler_base_overlapped::has_ongoing_io): Call GetOverlappedResult - to force completion of I/O. - (fhandler_base_overlapped::wait_overlapped): Rewrite to correctly deal - with nonblocking reads and to make more race proof. - (fhandler_base_overlapped::raw_write): Deal with new enum values. - (fhandler_base_overlapped::raw_read): Ditto. Don't deal with ongoing - I/O here since it makes no sense in the read context. - * fhandler.h (enum wait_return): Add overlapped_unknown, - overlapped_nonblocking_no_data. - * pipe.cc (pipe): Add debugging output. - -2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_list::append): Eliminate increment of unused tot - variable. - * dll_init.h (dll_list::tot): Delete. - (dll_list::populate_all_deps): Delete undefined function. - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Move EPIPE - handling under error condition. - -2011-05-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * dll_init.cc (reserve_upto): Remove. - (release_upto): Ditto. - (dll_list::reserve_space): New function to reserve space needed by - DLL_LOAD dlls early in the fork process. - (dll_list::load_after_fork): Rewrite to use recursion to - track reservations it makes while trying to make dlls land where they - belong. - (dll_list::load_after_fork_impl): New function used by load_after_fork. - (dll_list::alloc): Initialize image base field. - * dll_init.h (dll_list::prefered_base): New field. - (dll_list::reserve_space): Declare new function. - (dll_list::load_after_fork): Declare new function. - * fork.cc (frok::child): call dll_list::reserve_space early, so we can - retry if it fails. - -2011-05-30 Tor Perkins <cygwin@noid.net> - - * fhandler_termios.cc (fhandler_termios::bg_check): Do not return EIO - when a process group has no leader as this is allowed and does not - imply an orphaned process group. Add a test for orphaned process - groups. - (tty_min::is_orphaned_process_group): Define new function. - * tty.h (tty_min::is_orphaned_process_group): Define new function. - -2011-05-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * dll_init.cc (dll_list::find_by_modname): New function to search the - dll list for a module name only (no path). - (dll_list::alloc): Initialize newly-added members of struct dll. - (dll_list::append): New function to factor out the append operation - (used by dll_list::topsort). - (dll_list::populate_deps): New function to identify dll dependencies. - (dll_list::topsort): New function to sort the dll list topologically by - dependencies. - (dll_list::topsort_visit): New helper function for the above. - * dll_init.h (dll::ndeps): New class member. - (dll::deps): Ditto. - (dll::modname): Ditto. - (dll_list::find_by_modname): New function related to topsort. - (dll_list::populate_all_deps): Ditto. - (dll_list::populate_deps): Ditto. - (dll_list::topsort): Ditto. - (dll_list::topsort_visit): Ditto. - (dll_list::append): Ditto. - (pefile): New struct allowing simple introspection of dll images. - * fork.cc (fork): Topologically sort the dll list before forking - -2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Refresh. - (child_info::refresh_cygheap): New function. - * spawn.cc (spawn_guts): Call refresh_cygheap before creating a new - process to ensure that cygheap_max is up-to-date. - * fork.cc (frok::parent): Ditto. - -2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.cc (cygheap_dummy): Rename from cygheap_at_start. - (cygheap): Accommodate name change to cygheap_dummy. - (cygheap_init): Ditto. - (cygheap_fixup_in_child): Simplify slightly. - * fork.cc (fork): Add an advisory comment. - -2011-05-29 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_overlapped::wait_overlapped): Make sure that - I/O is cancelled on signal. - -2011-05-28 Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * dll_init.cc (dll_list::alloc): Initialize dll::image_size. - (reserve_at): Don't reserve space needed by the target dll if the - latter overlaps the free region to be blocked. - (dll_list::load_after_fork): Use new version of reserve_at. - * dll_init.h (dll::image_size): New member. - (pefile): New struct. - -2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> - Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * dll_init.c (dll_list::load_after_fork): Don't clear in_forkee here. - * fork.cc (frok::errmsg): Rename from 'error'. - (frok::error): New function. Handle conditional printing of error - messages. - (frok::parent): Record hchild handle for use by error function. Use - throughout. Use error function rather than setting error pointer - directly. - (fork): Clear is_forkee here. Accommodate rename of 'error' to - 'errmsg'. - * sigproc.cc (child_info::proc_retry): Detect EXITCODE_FORK_FAILED. - -2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (handler_base_overlapped::wait_overlapped): Rework to - attempt to properly set errno and bytes read for non-blocking case. - Change to just rely on res to indicate error conditions. - -2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Don't set - io_pending unless ReadFile has returned an error. (this is a partial fix, - accidentally checked in) - -2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> - - * autoload.cc: Call _api_fatal in asm. - * child_info.h: Redefine CURR_CHILD_INFO_MAGIC. - (child_info_fork::abort): Rename from handle_failure. Change - arguments. - * cygtls.h (_local_storage::ttybuf): New field. - * dcrt0.cc (vapi_fatal): Split api_fatal. Add "in forked process" to - message when appropriate. - (api_fatal): Use vapi_fatal. - * devices.h: Make multiple inclusion safe. - (fh_devices): Add FH_CONS* stuff. Reorder slightly. - (device): Eliminate anonymous union. Add more ways to access - minor/major. - (device::setunit): Accommodate no-longer-anonymous union. - (device::is_fs): Ditto. - (device::is_fs_special): Ditto. - (device::major): New function. - (device::minor): Ditto. - (device::is_device): New function. - (device::not_device): Ditto. - (device::operator int): New operator. - (device::operator fh_devices): Ditto. - (device::operator bool): Ditto. - (device::operator DWORD): Ditto. - (device::operator =): Ditto. - (isproc_dev): New function. - (isprocsys_dev): Ditto. - (iscons_dev): Ditto. - (istty_slave_dev): Ditto. - * devices.in: Add new "/dev/cons*" strings. Accommodate - no-longer-anonymous union throughout. - (BRACK): Use more precise method for initialization. - * devices.cc: Regenerate. - * dtable.cc (dtable::stdio_init): Use get_cttyp instead of get_tty. - (dtable::find_archetype): Use new DWORD operator in device to test - archetypes. - (dtable::init_std_file_from_handle): Use different method to initialize - 'dev'. Adapt to different ctty handling and accommodate /dev/cons*. - (fh_alloc): Accommodate no-longer-anonymous union. Adapt to new - /dev/cons*. - (build_fh_pc): Make debugging output more useful. - * exceptions.cc (ctrl_c_handler): Use get_cttyp instead of get_tty. - * external.cc (fillout_pinfo): Accommodate new cons* stuff. - * fhandler.cc (fhandler_base::read): Eliminate is_slow() test. - * fhandler.h (fhandler_base::*): Adapt to changes in device.h. - (fhandler_*::is_slow): Delete. - ( fhandler_proc::get_proc_fhandler): Return fh_devices type. - * fhandler_console.cc (open_shared_console): New function. - (console_unit): New class. - (console_unit::console_unit): New constructor. - (enum_windows): New function. Declare as friend to console_unit. - (fhandler_console::set_unit): New function. - (fhandler_console::get_tty_stuff): Call set_unit to set the unit number - and determine if initialization is needed. Eliminate flags parameter. - (tty_list::get_cttyp): Rename (sorta) from get_tty. Return pointer to - correct tty_min. - (fhandler_console::open): Adapt to elimination of argument to - get_tty_stuff. - (fhandler_console::output_tcsetattr): Properly detect error condition. - (fhandler_console::fixup_after_fork_exec): Adapt to get_tty_stuff() - setting tc automatically. - * fhandler_proc.cc: Use FH_BAD rather than 0 throughout where using - fh_devices enum. - (fhandler_proc::get_proc_fhandler): Return fh_devices. Adapt to - devices.h changes. - * fhandler_process.cc: Adapt to devices.h changes. Use FH_BAD rather - than 0 throughout where using fh_devices enum. - * fhandler_procnet.cc: Ditto. - * fhandler_procsys.cc: Ditto. - * fhandler_procsysvipc.cc: Ditto. - * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Ditto. - * fhandler_termios.cc (handler_termios::bg_check): Use tc->ttyname() - rather than assuming that we can construct a tty. - * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Just - return get_minor() of dev. - (fhandler_pty_master::process_slave_output): Add slightly more - debugging info. - (fhandler_tty_slave::fhandler_tty_slave): Change name from ntty to - unit. - (fhandler_pty_master::open): Ditto. - (fhandler_tty_slave::ioctl): Adapt to change which causes ctty to - represent a complete device. - (fhandler_tty_master::init_console): Add debugging for failure path. - (fhandler_pty_master::setup): Use get_unit() to retrieve unit number - rather than relying on raw ntty. - (fhandler_pty_master::setup): Ditto. - * fhandler_virtual.h (virt_tab_t): Redefine fhandler as fh_devices. - * fork.cc: Remove obsolete vfork stuff. - (frok::child): Don't assume that a ctty == 0 is valid. - * mount.cc (mount_info::conv_to_win32_path): Adapt to device struct - changes. - (mount_info::conv_to_win32_path): Ditto. - * path.cc (path_conv::check): Retrive major/minor numbers via a method - rather than accessing them directly from device. Rely on dev operators - to set/retrieve device information as required by device struct change. - * path.h (isproc_dev): Move to devices.h. - (isprocsys_dev): Ditto. - (isvirtual_dev): Ditto. - (path_conv:{isdevice,isfifo,isspecial,iscygdrive,issocket,get_devn,get_unitn}): - Use device methods to access/manipulate devices. - * pinfo.cc (pinfo::exit): Don't assume that ctty == 0 is valid. Use - iscons_dev to determine if a device is a console. - (_pinfo::_ctty): Use device::parse to generate tty/cons name. - (_pinfo::set_ctty): Don't assume that ctty == 0 is valid. Remove - redundant info from debugging. - * shared.cc (offsets): Remove console offset. - * shared_info.h (shared_locations): Ditto. - * syscalls.cc (umask): Use device methods to manipulate device - information. - (ctermid): Use device::parse to generate term device name. - * tlsoffsets.h: Regenerate. - * tty.cc (ttyslot): Return minor number of ctty since ctty now - represents a full device. - (tty::create_master): Set ctty to a complete device. - (tty_list::attach): Rework to detect new /dev/cons* stuff. - (tty_list::terminate): Adapt to changes to ctty. - (tty_list::init): Adapt to change to setntty - pass in device major - number. - (tty::exists): Use get_unit() to retrive tty unit number. - (tty::open_mutex): Ditto. - (tty::open_inuse): Ditto. - (tty::create_inuse): Ditto. - (tty::get_event): Ditto. - (tty_min::ttyname): Define new function. - * tty.h (tty_min::ntty): Redefine as fh_devices. - (tty::exists): Use get_unit() to retrive tty unit number. - (tty::open_mutex): Ditto. - (tty::open_inuse): Ditto. - (tty::create_inuse): Ditto. - (tty::get_event): Ditto. - (tty_min::ttyname): Declare new function. - (tty::getntty): Declare as const. - (tty_list::operator []): Assure that only minor part of argument is - used. - - * dll_init.cc (dll_list::alloc): Detect mismatch of data segments early - issuing an explicit error message if necessary. - * heap.cc (heap_init): Adapt to changes from fork->handle_failure to - fork->abort. - * pinfo.h (EXITCODE_FORK_FAILED): New enum. (from Ryan Johnson) - * sigproc.cc (child_info_fork::abort): Rename from handle_failure. - Change arguments to allow passing in a printf-like message. - * winsup.h (api_fatal): Delete macro definition. - (api_fatal): Redefine from __api_fatal. - (vapi_fatal): Declare new function. - * include/sys/strace.h (strace_vprintf): Define new macro. - - * ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemHandleInformation. - -2011-05-27 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (offsets): Reorder so that console_state is lowest in - memory. Explain why. - (open_shared): Accommodate reordering of offsets array. - * shared_info.h (shared_locations): Reorder SH_SHARED_CONSOLE after - SH_MYSELF. - -2011-05-26 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (MAX_MOUNTS): Raise to 64. - -2011-05-25 Eric Blake <eblake@redhat.com> - - * cygtls.h (strerror_r_buf): New buffer. - * errno.cc (strerror): Move guts... - (_strerror_r): ...to new function demanded by newlib. - (strerror_r): Don't clobber strerror buffer. - (_user_strerror): Drop unused declaration. - * tlsoffsets.h: Regenerate. - -2011-05-25 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (dll_entry): Reinstantiate wow64_test_stack_marker and - previous stack tests. - -2011-05-25 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Add missing <para>. - -2011-05-24 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::conv_to_win32_path): Remove unused code. - * mount.h (class mount_info): Remove sys_mount_table_counter member. - * shared_info.h (class shared_info): Ditto. - (CURR_SHARED_MAGIC): Update. - -2011-05-24 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.h (struct _pinfo): Reduce size of progname array slightly. - Explain why. - -2011-05-23 Eric Blake <eblake@redhat.com> - - * errno.cc (strerror): Print unknown errno as int. - (__xpg_strerror_r): Likewise, and don't clobber strerror buffer. - * cygtls.h (strerror_buf): Resize to allow '-'. - -2011-05-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (thread_info::fill_if_match): Reformat. - (format_process_maps): Ditto. Fetch pointer to procinfo structure - from mapped process. Print info about global shared Cygwin regions. - -2011-05-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (struct dos_drive_mappings): Use malloc/free - rather than cmalloc/cfree. Check return value from malloc before - using it. - (struct heap_info): Ditto. - (struct thread_info): Ditto. Rename from stack_info. Rename members - and local variables accordingly. - (thread_info::thread_info): Store stack and TEB addresses. - (thread_info::fill_if_match): Print "teb" if a TEB address has been - found. Special case for WOW64, explain why. - (format_process_maps): Fetch PEB address. Print MEM_RESERVE regions - with equal signs to distinguish them from PAGE_NOACCESS regions. Fix - printing of 'p' and 's' to differ between MEM_PRIVATE and MEM_MAPPED - pages, as on Linux. Print 'g' instead of 'p for PAGE_GUARD pages. - Print PEB and SharedUserData area if recognized. - -2011-05-20 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (CygwinCreateThread): Fix condition for adding the - guardsize to the stacksize. Fix accompanying comment. - -2011-05-20 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (CygwinCreateThread): Add accidentally missing comment. - -2011-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (struct heap_info): Change type of base and end - members to char *. Print "shared" rather than "share". - (struct stack_info): New class to fetch process stack information. - (format_process_maps): Initialize and check for stack information. - -2011-05-20 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (thread_wrapper): Remove statements added for debugging - purposes. - -2011-05-20 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - (class child_info_fork): Remove stacksize, add stackaddr and guardsize - members. - * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Partial rewrite - to regenerate the stack exactly as in the parent. - (child_info_fork::alloc_stack): Set stackaddr to 0, rather than - stacksize. - (dll_crt0_1): Check for stackaddr before changing the stack addresses - in the TEB. - * fork.cc (frok::child): Check for stackaddr here. - (frok::parent): Set ch.stackaddr and ch.guardsize if not called from - the main thread. - * init.cc (dll_entry): Replace pointer to NT_TIB with pointer to TEB. - Fix incorrectly changed address test before removing _my_tls. - Set StackLimit to NULL on Windows 2000. Explain why. - * miscfuncs.cc (struct thread_wrapper_arg): Store stackbase rather - than stacksize, store commitaddr, remove guardsize. Store all pointers - as char * for easier address arithmetic. - (thread_wrapper): Rewrite to remove OS stack before calling thread - function. Add lots of comments to explain what we do. - (CygwinCreateThread): Reserve our own stack in case we got no - application stack. Add comments. - * ntdll.h (struct _TEB): Extend defintion up to DeallocationStack - member. - * thread.cc (pthread_attr::pthread_attr): Use "(size_t) -1" - rather then 0xffffffff. - * wincap.h (wincaps::has_stack_size_param_is_a_reservation): New - element. - * wincap.cc: Implement above element throughout. - -2011-05-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * thread.cc: Mark psiginfo and psignal as available in list of - optional cancellation points. - -2011-05-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (__fpurge): Export. - * posix.sgml (std-solaris): Add __fpurge. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * posix.sgml (std-susv4): Remove chroot, futimes, hstrerror. - (std-deprec): Add chroot. - (std-bsd): Add futimes, hstrerror. - (std-notimpl): Add clock_nanosleep, nexttoward, nexttowardf. - Remove initstate, which is implemented and listed in std-susv4. - -2011-05-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (error): Export. - (error_at_line): Export. - (error_message_count): Export. - (error_one_per_line): Export. - (error_print_progname): Export. - * errno.cc (error_message_count): Define. - (error_one_per_line): Define. - (error_print_progname): Define. - (_verror): New static function. - (error): New function. - (error_at_line): New function. - * posix.sgml (std-gnu): Add error, error_at_line. - * include/error.h: New header. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (clock_getcpuclockid): Export. - (pthread_getcpuclockid): Export. - * hires.h (PID_TO_CLOCKID): New macro. - (CLOCKID_TO_PID): New macro. - (CLOCKID_IS_PROCESS): New macro. - (THREADID_TO_CLOCKID): New macro. - (CLOCKID_TO_THREADID): New macro. - (CLOCKID_IS_THREAD): New macro. - * ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadTimes. - * posix.sgml (std-notimpl): Add clock_getcpuclockid and - pthread_getcpuclockid from here... - (std-susv4): ... to here. - (std-notes): Remove limitations of clock_getres and clock_gettime. - Note limitation of timer_create to CLOCK_REALTIME. - * sysconf.cc (sca): Set _SC_CPUTIME to _POSIX_CPUTIME, and - _SC_THREAD_CPUTIME to _POSIX_THREAD_CPUTIME. - * thread.cc (pthread_getcpuclockid): New function. - * timer.cc (timer_create): Set errno to ENOTSUP for CPU-time clocks. - * times.cc (clock_gettime): Handle CLOCK_PROCESS_CPUTIME_ID and - CLOCK_THREAD_CPUTIME_ID. - (clock_getres): Ditto. - (clock_settime): Set errno to EPERM for CPU-time clocks. - (clock_getcpuclockid): New function. - * include/pthread.h (pthread_getcpuclockid): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-17 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (thread_wrapper): Remove unused _cygtls record. - * mmap.cc (is_mmapped_region): Avoid crash if no mmaps exist. - -2011-05-16 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (__getlogin_username): Remove. - * uinfo.cc (getlogin_r): Fetch username from cygheap. - (getlogin): Add static buffer username and fetch username from - getlogin_r. - -2011-05-16 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (struct _local_storage): Remove unused members rarg and - _localtime_buf. Remove username in favor of a global buffer. Reorder - slightly to keep the net.cc stuff together. - * globals.cc (__getlogin_username): New global char buffer. - * tlsoffsets.h: Regenerate. - * uinfo.cc (getlogin): Copy username into __getlogin_username. - -2011-05-16 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (heap_init): Rewrite initial heap allocation to use addresses - beyond 0x20000000. Explain why and how. - * shared.cc (shared_info::heap_slop_size): Remove. - * shared_info.h (class shared_info): Remove heap_slop_inited and - heap_slop members. Remove heap_slop_size declaration. - (CURR_SHARED_MAGIC): Update. - * wincap.cc: Throughout, drop heapslop. - * wincap.h (struct wincaps): Drop heapslop. - -2011-05-16 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Check if the - requested stack is application-provided within the user heap or an - mmapped region. If so, just use it. Add comment to explain why. - * miscfuncs.cc (thread_wrapper): If an application-provided stack - has been given, implement cygtls area at the stackbase. Fix comment. - * mmap.cc (is_mmapped_region): New function. - * winsup.h (is_mmapped_region): Declare. - -2011-05-15 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (thread_wrapper): Add comments to assembler code. - -2011-05-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (pthread_attr_getguardsize): Export. - (pthread_attr_setguardsize): Export. - (pthread_attr_setstack): Export. - (pthread_attr_setstackaddr): Export. - * init.cc (dll_entry): Remove wow64_test_stack_marker. Check for - unusual stack address by testing stack addresses from current TEB. - Check validity of _my_tls by testing if it's within the stack as - given in current TEB. - * miscfuncs.cc (struct thread_wrapper_arg): New structure used to - push all required information to thread_wrapper function. - (thread_wrapper): Wrapper function for actual thread function. - If an application stack has been given, change %ebp and %esp so that - the thread function runs on that stack. If the thread has been created - by CygwinCreateThread, set up the POSIX guard pages if necessary. - (CygwinCreateThread): New function. - * miscfuncs.h (CygwinCreateThread): Declare. - * ntdll.h (struct _TEB): Define all members up to Peb. - * posix.sgml (std-susv4): Move pthread_attr_getguardsize, - pthread_attr_setguardsize and pthread_attr_setstack here. - (std-deprec): Add pthread_attr_setstackaddr. - * sysconf.cc (sca): Set _SC_THREAD_ATTR_STACKADDR to - _POSIX_THREAD_ATTR_STACKADDR. - * thread.cc (pthread::precreate): Copy pthread_attr stackaddr and - guardsize members. - (pthread::create): Call CygwinCreateThread. - (pthread_attr::pthread_attr): Initialize guardsize. - (pthread_attr_setstack): New function. - (pthread_attr_setstackaddr): New function. - (pthread_attr_setguardsize): New function. - (pthread_attr_getguardsize): New function. - (pthread_getattr_np): Copy attr.guardsize. - * thread.h (pthread_attr): Add member guardsize. - * include/pthread.h (pthread_attr_getguardsize): Declare. - (pthread_attr_setguardsize): Declare. - * include/cygwin/version.h: Bump API minor number. - -2011-05-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (struct heap_info::heap): Convert base to - uintptr_t. Add heap_id, end, flags members. - (heap_info::heap_vm_chunks): Rename from heaps. - (heap_info::heap_info): Rearrange using RtlQueryProcessDebugInformation - to get information of heap virtual memory blocks. Store heap id and - flags, as well as end address of each block. - (heap_info::fill_if_match): Check incoming base address against full - address range of heap chunks. Convert flag values in extra heap - information. - (format_process_maps): Change order so that heap check is done before - MEM_MAPPED check since there are shareable heaps. - * ntdll.h (PDI_HEAP_BLOCKS): Define. - (HEAP_FLAG_NOSERIALIZE): Define. - (HEAP_FLAG_GROWABLE): Define. - (HEAP_FLAG_EXCEPTIONS): Define. - (HEAP_FLAG_NONDEFAULT): Define. - (HEAP_FLAG_SHAREABLE): Define. - (HEAP_FLAG_EXECUTABLE): Define. - (HEAP_FLAG_DEBUGGED): Define. - (struct _DEBUG_HEAP_ARRAY): Define. - (struct _DEBUG_HEAP_BLOCK): Define. - -2011-05-12 Corinna Vinschen <corinna@vinschen.de> - - Based on newlib patch to strptime by Peter Rosin <peda@lysator.liu.se>: - * libc/time/strptime.c (is_leap_year): New static function. - (first_day): Ditto. - (__strptime): Fill in tm_yday when all of tm_year, tm_mon and tm_mday - are updated. Fill in tm_mon, tm_mday and tm_wday when both of tm_year - and tm_yday are updated. - -2011-05-12 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * fhandler_proc.cc (format_proc_meminfo): Rewrite to use sysinfo(). - Support RAM and swap space larger than 4GB. - Remove output elements not found with modern Linux kernels. - (format_proc_swaps): Support paging files larger than 4GB. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Remove useless comment. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (EnumProcessModules): Remove. - * dlfcn.cc (dlopen): Make sure errno is set if an error occurs. - (dlsym): Rewrite using RtlQueryProcessDebugInformation instead of - EnumProcessModules. - * ntdll.h (struct _DEBUG_MODULE_ARRAY): Define. - (RtlCreateQueryDebugBuffer): Declare. - (RtlDestroyQueryDebugBuffer): Declare. - (RtlQueryProcessDebugInformation): Declare. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetModuleFileNameExW): Remove. - * autoload.cc (GetModuleInformation): Remove. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (QueryWorkingSet): Remove. - -2011-05-11 Ryan Johnson <ryan.johnson@cs.utoronto.ca> - - * fhandler_process.cc (format_process_maps): Rework to report - all mapped address space in a process (committed or reserved), - identifying the nature of the mapping (mapped file/image, heap, - shared memory) when possible. - (dos_drive_mappings): New helper classes. - (heap_info): Ditto. - * ntdll.h (struct _MEMORY_SECTION_NAME): Define. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetProcessMemoryInfo): Remove. - * resource.cc (fill_rusage): Call NtQueryInformationProcess rather than - GetProcessMemoryInfo to drop a psapi dependency. - -2011-05-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Rearrange for better readability. - Make waiting loop interruptible and cancelable. Check for SYSTEM DOS - flag before reading the file. Change return value to return 0 on - success, SOCKET_ERROR on failure. - (fhandler_socket::bind): Only set R/O DOS flag on filesystems not - supporting ACLs. - (fhandler_socket::connect): Accommodate changed return values from - get_inet_addr. Use SOCKET_ERROR instead of -1. - (fhandler_socket::sendto): Accommodate changed return values from - get_inet_addr. - * syslog.cc (connect_syslogd): Ditto. - -2011-05-10 Christian Franke <franke@computer.org> - - * security.cc (check_registry_access): Handle missing - security descriptor of HKEY_PERFORMANCE_DATA. - -2011-05-10 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: Regenerate. - -2011-05-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_uptime): Don't call GetSystemInfo. - Fetch CPU count from wincap. - (format_proc_stat): Ditto. - * globals.cc (system_info): Move to wincap. - * heap.cc (heap_init): Fetch page size from wincap. - * syscalls.cc (getpagesize): Fetch allocation granularity from wincap. - (getsystempagesize): Fetch page size from wincap. - * wincap.cc (wincap_2003): Default is_server to false. - (wincapc::init): Call GetSystemInfo here. Always set is_server value. - * wincap.h (class wincapc): Add system_info as private member. - (wincapc::cpu_count): New public method. - (wincapc::page_size): Ditto. - (wincapc::allocation_granularity): Ditto. - -2011-05-10 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (set_chunksize): Remove. - (parse_thing): Remove forkchunk entry. - * fork.cc (child_copy): Drop handling external chunksize setting. - * wincap.cc: Througout, drop chunksize. - (wincapc::set_chunksize): Remove. - * wincap.h (struct wincaps): Drop chunksize and declaration of - set_chunksize. - -2011-05-08 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * times.cc (settimeofday): Add EFAULT handler. - Set errno to EINVAL if tv.tv_nsec is invalid, and to EPERM if - SetSystemTime fails. Return -1 in case of failure, all for - compatibility with BSD and Linux. - (clock_settime): New function. - * cygwin.din (clock_settime): Export. - * posix.sgml (std-susv4): Add clock_settime. - Move clock_setres from here... - (std-deprec): ... to here. - (std-notes): Correct limitation of clock_setres to only CLOCK_REALTIME. - Add limitation of clock_settime to only CLOCK_REALTIME. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-07 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (get_registry_hive_path): Change system_printf to - debug_printf. - (load_registry_hive): Ditto. - -2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_base::close_with_arch): Make non-virtual. - (fhandler_base::open_fs): Move closer to it's close counterpart. - -2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base::dup): Avoid duping a handle when an - fhandler has an archetype. - * fhandler_console.cc (fhandler_console::invisible_console): Move to - the top. - (fhandler_console::set_close_on_exec): Don't set close-on-exec on - handle since it's an archetype and you don't know how many things could - be using it. - -2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.h (fhandler_dev_dsp): Cosmetic change. - - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Put back - Sleep(10) for tty_master case. - - * sigproc.cc (stopped_or_terminated): Don't consider a pid which has - been reaped to be terminated. - -2011-05-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * sysconf.cc (sysinfo): New function. - * cygwin.din (sysinfo): Export. - * posix.sgml (std-gnu): Add sysinfo. - * include/sys/sysinfo.h (struct sysinfo): Define. - (sysinfo): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-06 Corinna Vinschen <corinna@vinschen.de> - - * libc/minires-os-if.c (get_dns_info): Drop printing uninitialized - value of dwRetVal in debug output. - -2011-05-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::read): Declare. - (fhandler_socket::write): Declare. - * fhandler_procsys.cc (fhandler_procsys::read): Add FIXME comment. - (fhandler_procsys::write): Ditto. - * fhandler_socket.cc (fhandler_socket::read): New method. - (fhandler_socket::write): New method. - * syscalls.cc: Rearrange order of read/write functions. - (read): Call fhandler read method directly instead of just readv. - (readv): Remove EINTR loop. This is done in all affected fhandler's - now. - (write): Call fhandler write method directly instead of just writev. - Fix debug output. - -2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.cc (cygheap::close_ctty): Close ctty via close_with_arch(). - * debug.cc (close_handle): Call debugger on failure. - * devices.in (device::tty_to_real_device): Delete. - * devices.h (device::tty_to_real_device): Ditto. - * devices.cc: Regenerate. - * dtable.cc: Delete old ifdef'ed vfork code. - (dtable::release): Don't handle archetype here. - (dtable::init_std_file_from_handle): Consolidate console tests. - Generate major/minor for tty ASAP. Fix incorrect setting of DEV_TTYS* - for serial. - (fh_alloc): New function derived from build_fh_pc. Pass current tty - when building tty. - (build_pc_pc): Use fh_alloc to create. Set name from fh->dev if - appropriate. Generate an archetype or point to one here. - (dtable::dup_worker): Deal with archetypes. Rely on = operator copying - whole class rather than just fhandler_base. - (dtable::fixup_after_exec): Call close_with_arch to handle closing of - fhandlers with archetypes. - * fhandler.cc (fhandler_base::operator =): Call memcpy with fhandler's - size() rather than sizeof fhandler_base. - (fhandler_base::open_with_arch): New function. Handles opening of - fhandler's with archetypes, dealing with usecounts, etc. - (fhandler_base::close_with_arch): Ditto for close. - * fhandler.h: Many changes for archetypes. - (fhandler_base::set_name): Set both normalized path and regular path. - (fhandler_base::open_with_arch): New function. - (fhandler_base::open_setup): Ditto. - (fhandler_base::use_archetype): Ditto. - (fhandler_base::_archetype_usecount): Ditto. - (fhandler_*::size): Ditto. - (fhandler_dev_tape::open): Remove virtual decoration. - (fhandler_console::use_archetype): New function. Return true. - (fhandler_console::open_setup): New function. - (fhandler_console::dup): Delete. - (fhandler_tty_slave::fhandler_tty_slave): Redeclare to take an - argument. - (fhandler_tty_slave::use_archetype): New function. Return true. - (fhandler_tty_slave::cleanup): New function. - (fhandler_pty_master::use_archetype): New function. Return true. - (fhandler_pty_master::cleanup): New function. - (fhandler_pty_master::is_tty_master): New function. Return false. - (fhandler_tty_master::is_tty_master): New function. Return true. - (fhandler_dev_dsp::fhandler_dev_dsp): New function. Return true. - (report_tty_counts): Only report on archetype's usecount if there is - one. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Remove - handling of setsid, set_ctty, set_flags, and manage_console_count. - (fhandler_console::open_setup): New function. Implement functionality - removed from get_tty_stuff. - (fhandler_console::dup): Delete. - (fhandler_console::output_tcsetattr): Set errno on error. - (fhandler_console::fhandler_console): Set device early. - (fhandler_console::init): Use open_with_arch to open console handles. - (fhandler_console::fixup_after_fork_exec): Nuke most of the stuff for - dealing with console handles. - * fhandler_dsp.cc (fhandler_dev_dsp::open): Remove archetype handling. - (fhandler_dev_dsp::write): Ditto. - (fhandler_dev_dsp::read): Ditto. - (fhandler_dev_dsp::close): Ditto. - (fhandler_dev_dsp::dup): Ditto. - (fhandler_dev_dsp::ioctl): Ditto. - (fhandler_dev_dsp::fixup_after_fork): Ditto. - (fhandler_dev_dsp::fixup_after_exec): Ditto. - * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Add a - little more debugging. - (fhandler_tty_common::__release_output_mutex): Ditto. - (fhandler_pty_master::process_slave_output): Ditto. Don't do signal - handling or pthread_cancel handling in the tty master thread. - (process_output): Minor reorg. - (fhandler_tty_slave::fhandler_tty_slave): Set device based on new ntty - argument. - (fhandler_tty_slave::open): Remove archetype handling. Move some - processing into open_setup(). - (fhandler_tty_slave::open_setup): New function. - (fhandler_tty_slave::cleanup): New function. - (fhandler_tty_slave::close): Remove archetype handling. Move some - processing into cleanup(). - (fhandler_tty_slave::init): Rename argument from f to h. Open device - using open_with_arch(). Remove archetype handling. - (fhandler_pty_master::dup): Ditto. - (fhandler_pty_master::open): Ditto. - (fhandler_pty_master::close): Ditto. Move some handling to cleanup(). - (fhandler_pty_master::cleanup): New function. - (fhandler_tty_master::init_console): Give unique name to captive - console fhandler. - * pinfo.cc (_pinfo::set_ctty): Rename argument from arch to fh. - Eliminate archetype assumption. - * syscalls.cc (close_all_files): Use close_with_arch for closing. - (open): Use open_with_arch() rather than open(). - (close): Use close_with_arch() rather than close(). - -2011-05-05 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.h (class push_process_state): New class to push a process state - flag temporarily into myself->process_state. - * fhandler_console.cc (fhandler_console::read): Add push_process_state - handler. - (fhandler_console::write): Call bg_check from here. Add - push_process_state handler. - * fhandler_tty.cc (fhandler_tty_slave::write): Ditto. - (fhandler_tty_slave::read): Ditto. - (fhandler_pty_master::write): Ditto. - (fhandler_pty_master::read): Ditto. - * syscalls.cc (readv): Remove bg_check call and setting process state. - (writev): Ditto. - -2011-05-05 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (readv): Add myfault handler. Don't check repeatedly - open state of file handler. Streamline loop. - (writev): Add myfault handler. - -2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::raw_read): Rename from - read_overlapped. - (fhandler_base_overlapped::raw_e): Rename from write_overlapped. - * fhandler.h (fhandler_*::raw_read): Add reparm decoration. - (fhandler_*::raw_write): Ditto. - (fhandler_base_overlapped::raw_read): Rename from read_overlapped. - (fhandler_base_overlapped::raw_write): Rename from write_overlapped. - (fhandler_pipe::raw_read): Delete. - (fhandler_pipe::raw_write): Ditto. - (fhandler_mailslot::raw_read): Ditto. - * fhandler_fifo.cc (fhandler_fifo::raw_read): Reflect read_overlapped - -> raw_read rename. - (fhandler_fifo::raw_write): Ditto. - * fhandler_mailslot.cc (fhandler_mailslot::raw_read): Delete. - (fhandler_mailslot::raw_write): Reflect read_overlapped -> raw_read - rename. - * pipe.cc (fhandler_pipe::raw_read): Delete. - (fhandler_pipe::raw_write): Ditto. - -2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * fork.cc (fork): Clear PID_REAPED. - * pinfo.cc (pinfo_init): Ditto. - (pinfo::init): Check for PID_REAPED. - * sigproc.cc (stopped_or_terminated): Ditto. - -2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.cc (_pinfo::exists): Check for PID_REAPED. - -2011-05-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::pread): Correctly return - with errno set to EBADF if file open mode is incorrect. - (fhandler_disk_file::pwrite): Ditto. - -2011-05-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (is_at_eof): Drop static storage class. Drop err - parameter since we don't change the Win32 error here anymore. - (fhandler_base::raw_read): Accommodate change to is_at_eof. - - * fhandler_disk_file.cc (fhandler_disk_file::pread): In binary mode use - direct call to NtReadFile, rather than lseek/read. - (fhandler_disk_file::pwrite): In binary mode use direct call to - NtWriteFile, rather than lseek/write. - -2011-05-05 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Reset locale to "C" even when dynamically - loaded. - -2011-05-05 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * posix.sgml (std-notimpl): Remove bsd_signal, setcontext, and - swapcontext, marked obsolete in SUSv3 and not present in SUSv4. - -2011-05-05 Christian Franke <franke@computer.org> - - * fhandler_registry.cc (fhandler_registry::exists): Fix regression - in EACCES handling. - (fhandler_registry::open): Fix "%val" case. - -2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * signal.cc (_pinfo::kill): Return success on kill(0) only if pid - exists or is in PID_EXITED state. Report pid 0 when pid does not exist - rather than pid -1. Make debug output reflect actual function call. - * sigproc.cc (stopped_or_terminated): Set process state to reaped when - we've finished waiting for it. - * include/sys/cygwin.h (PID_REAPED): New enum. - -2011-05-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (psiginfo): Export. - (psignal): Export. - (sys_siglist): Export. - * posix.sgml (std-notimpl): Move psiginfo and psignal from here... - (std-susv4): ... to here. - (std-deprec): Add sys_siglist. - * strsig.cc (sys_siglist): New array. - (psiginfo): New function. - * include/cygwin/signal.h (sys_siglist): Declare. - (psiginfo): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_list::detach (dll_list::detach): Avoid doing anything with detach - during a failing fork. - -2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_global_dtors): Avoid calling destructors during - failing fork(). - -2011-05-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_base): Remove uninterruptible_io status - flag. - (fhandler_base::ready_for_read): Remove declaration. - (fhandler_socket::ready_for_read): Ditto. - (fhandler_pipe::ready_for_read): Ditto. - (fhandler_tty_master::is_slow): Remove. - * fhandler_console.cc (fhandler_console::open): Drop setting - uninterruptible_io. - * fhandler_serial.cc (fhandler_serial::open): Ditto. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Ditto. - (fhandler_tty_master::init_console): Ditto. - * pipe.cc (fhandler_pipe::fhandler_pipe): Ditto. - (fhandler_pipe::open): Ditto. - (_pipe): Ditto. - * select.cc (fhandler_pipe::ready_for_read): Remove. - (fhandler_base::ready_for_read): Remove. - * syscalls.cc (readv): Drop unneeded wait variable. Remove entire test - which might lead to calling ready_for_read. Remove now unused label - out. - -2011-05-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_mailslot): Move down in file and change - parent class to fhandler_base_overlapped. Remove declaration of - method write. Add declaraiotns for raw_read and raw_write. - * fhandler_mailslot.cc (fhandler_mailslot::fhandler_mailslot): Call - fhandler_base_overlapped constructor. - (fhandler_mailslot::fstat): Call fhandler_base_overlapped::fstat. - (fhandler_mailslot::open): Drop FILE_SYNCHRONOUS_IO_NONALERT flag from - call to NtOpenFile. - (fhandler_mailslot::raw_read): New method. - (fhandler_mailslot::raw_write): Ditto. Take over length algorithm from - former write method. - (fhandler_mailslot::write): Remove. - (fhandler_mailslot::ioctl): Call fhandler_base_overlapped::ioctl. - -2011-05-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_tape::_lock): Add bool parameter. - * fhandler_tape.cc (lock): Call _lock with false argument. - (_lock): Take bool cancelable parameter. Handle O_NONBLOCK. - Make cancelable if cancelabe parameter is true. - (fhandler_dev_tape::raw_read): Call _lock with true argument. - (fhandler_dev_tape::raw_write): Ditto. - -2011-05-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::Audio): Add fh member. - (fhandler_dev_dsp::Audio_out::Audio_out): Take pointer to encapsulating - fhandler_dev_dsp as parameter. - (fhandler_dev_dsp::Audio_in::Audio_in): Ditto. - (fhandler_dev_dsp::Audio::Audio): Take pointer to encapsulating - fhandler_dev_dsp as parameter and store in fh. - (fhandler_dev_dsp::Audio_out::write): Change return type to int and - return number of bytes written. Return -1 if waitforspace returns false - and no bytes have been written so far. - (fhandler_dev_dsp::Audio_out::waitforspace): Change return type to bool. - Handle O_NONBLOCK. Make waiting loop interruptible and cancelable. - Return false in any of these cases, otherwise true. - (fhandler_dev_dsp::Audio_in::read): Set returned nBytes to -1 if - waitfordata returns false and nothing has been read so far. - (fhandler_dev_dsp::Audio_in::waitfordata): Change return type to bool. - Handle O_NONBLOCK. Make waiting loop interruptible and cancelable. - Return false in any of these cases, otherwise true. - (fhandler_dev_dsp::write): Call Audio_out constructor with this as - parameter. - (fhandler_dev_dsp::read): Call Audio_in constructor with this as - parameter. - -2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * thread.h (pthread::static_cancel_self): Mark as noreturn. - (pthread::cancel_self): Ditto. - * thread.cc (pthread::cancel_self): Explicitly use pthread::exit to - avoid a "function returns" error. - -2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * pinfo.h (pinfo::pinfo): Set procinfo to NULL to avoid potential - cleanup of uninitialized garbage. (Suggested by Ryan Johnson) - -2011-05-03 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (cygwin_select): Make degenerate case cancelable. - (select_stuff::destroy): New inline method to delete memory taken - by select_stuff. - (select_stuff::~select_stuff): Call destroy. - (select_stuff::wait): Add case to allow canceling select. - * select.h (select_stuff::destroy): Declare. - * thread.cc: Mark poll, pselect and poll as cancelable. - -2011-05-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Make - cancelable. Remove test for main thread, always add signal_arrived - to waited objects. - -2011-05-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::read): Set WFMO timeout to 0 for - nonblocking case. Drop useless waiter variable. Rewrite wait for - input_available_event to use a switch statement. Handle timeout and - failure more gracefully. Make restartable and cancelable. Rewrite - wait for input_mutex to use WFMO and a switch statement. Handle - timeout and failure more gracefully. Make restartable and cancelable. - -2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> - - * signal.cc (_pinfo::kill): Avoid referencing 'pid' after ESRCH. - -2011-05-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (pthread_attr_getstack): Export. - (pthread_attr_getstackaddr): Export. - (pthread_getattr_np): Export. - * ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadBasicInformation. - (struct _THREAD_BASIC_INFORMATION): Define. - (NtQueryInformationThread): Declare. - * posix.sgml (std-susv4): Add pthread_attr_getstack. - (std-gnu): Add pthread_getattr_np. - (std-deprec): Add pthread_attr_getstackaddr. - (std-notimpl): Remove pthread_attr_[gs]etstackaddr, as they were - removed from SUSv4. - * thread.cc (pthread_attr::pthread_attr): Initialize stackaddr. - (pthread_attr_getstack): New function. - (pthread_attr_getstackaddr): New function. - (pthread_attr_setstacksize): Return EINVAL if passed size less than - PTHREAD_STACK_MIN, as required by POSIX. - (pthread_getattr_np): New function. - * thread.h (class pthread_attr): Add stackaddr member. - * include/pthread.h (pthread_attr_getstack): Declare. - (pthread_attr_getstackaddr): Declare unconditionally. - (pthread_attr_setstack): Declare inside false conditional for reference. - (pthread_getattr_np): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> - - * Makefile.in: Allow CFLAGS to be overridden from the environment. - -2011-05-02 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (cancelable_wait): Remove test for main thread. - * fhandler_fifo.cc (fhandler_fifo::open_nonserver): Ditto. - -2011-05-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (andler_pty_master::process_slave_output): Make - interruptible and cancelable. Fix nonblocking case. - -2011-05-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::read): Make restartable and - cancelable. - -2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> - - * strace.cc (strace::vprntf): Avoid closing unopened handle. - -2011-05-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * sysconf.cc (sca): Set _SC_SPIN_LOCKS to _POSIX_SPIN_LOCKS. - -2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> - - * dll_init.cc (dll_list::alloc): Reset 'p' in forked process. - - * select.cc (select_stuff::wait): Move cleanup() closer to WFMO to - minimize unavoidable (?) race. - -2011-05-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc (fhandler_serial::raw_read): Add restartability - after a signal. Add cancelability. - (fhandler_serial::raw_write): Wait for write to succeed if O_NONBLOCK - is not set. Add signal handling and cancelability. - -2011-05-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_windows.cc (fhandler_windows::read): Use - pthread::get_cancel_event to fetch thread's cancel event. - * flock.cc (lf_setlock): Ditto. - * posix_ipc.cc (ipc_cond_timedwait): Ditto. - * thread.cc (pthread::get_cancel_event): New static method. - * thread.h (pthread::get_cancel_event): Declare. - -2011-05-01 Corinna Vinschen <corinna@vinschen.de> - - * libc/minires-os-if.c (get_dns_info): Remove unnecessary test for - existence of DnsQuery_A. - -2011-05-01 Corinna Vinschen <corinna@vinschen.de> - - Throughout, use user32 UNICODE functions rather than ANSI functions. - * autoload.cc: Convert all definitions for ANSI user32 functions to - definitions for the corresponding UNICODE function. - (SendMessageA): Remove. - (SendNotifyMessageW): Define. - * fhandler.h (fhandler_windows::is_slow): Remove. - * fhandler_windows.cc (fhandler_windows::write): Use SendNotifyMessageW - call rather than SendMessage to make function always return immediately. - (fhandler_windows::read): Make function interruptible and a cancellation - point. Handle O_NONBLOCK. - * select.cc (peek_serial): Don't wait for signal_arrived here. - * window.cc (wininfo::winthread): Call CreateWindowExW directly rather - than CreateWindow wrapper. - -2011-05-01 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Drop setting uninterruptible_io to true. - -2011-05-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::is_slow): Remove. - -2011-04-30 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl64): Call pthread_testcancel. - * fhandler_socket.cc (fhandler_socket::connect): Ditto. - (fhandler_socket::accept4): Ditto. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::recvmsg): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Ditto. - * flock.cc (lf_setlock): Allow to cancel thread running blocking - file lock. Try to make code more readable. - (lockf): Call pthread_testcancel. - * mmap.cc (msync): Ditto. - * posix_ipc.cc (ipc_cond_timedwait): Call pthread::static_cancel_self - rather than pthread_testcancel. - * select.cc (cygwin_select): Call pthread_testcancel. - * syscalls.cc (pread): Ditto. - (pwrite): Ditto. - (readv): Ditto. - (writev): Ditto. - (open): Ditto. - (close): Ditto. - (fsync): Ditto. - * termios.cc (tcdrain): Ditto. - * thread.cc: Align list of cancellation points with above changes. - Mark not-implemented functions, too. - (cancelable_wait): Don't set unused object indices to WAIT_FAILED - since that could result in wrong behaviour. Set them to the invalid - value WAIT_TIMEOUT + 1 instead. - -2011-04-30 Corinna Vinschen <corinna@vinschen.de> - - * thread.h (class pthread): Add bool member canceled. - * thread.cc (pthread::pthread): Initialize canceled to false. - (pthread::cancel): Set canceled before setting cancel_event. - (pthread::testcancel): Check for canceled. Only wait for cancel_event - if canceled is true. Explain why. - (pthread::_fixup_after_fork): Set canceled to false. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Sort. Map ERROR_EXE_MACHINE_TYPE_MISMATCH to - ENOEXEC. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc: Update comment listing cancellation points per POSIX. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc: Add comment. - (EqualSid): Remove. - (CopySid): Remove. - (AddAccessAllowedAce): Remove. - (AddAccessDeniedAce): Remove. - (MakeSelfRelativeSD): Remove. - * flock.cc: Replace above functions throughout with their ntdll.dll - equivalent. - * sec_acl.cc: Ditto. - * sec_auth.cc: Ditto. - * sec_helper.cc: Ditto. - * security.cc: Ditto. - * security.h: Ditto. - (RtlEqualSid): Declare. Explain why. - (RtlCopySid): Ditto. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (AccessCheck): Remove. - (PrivilegeCheck): Remove. - (OpenThreadToken): Remove. - * fhandler_tty.cc: Replace above functions throughout with their - ntdll.dll equivalent. - * security.cc: Ditto. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (IsEventSignalled): New inline function. - * cygthread.cc (cygthread::terminate_thread): Use IsEventSignalled in - place of WaitForSingleObject on event with 0 timeout. - * fhandler.cc (fhandler_base_overlapped::has_ongoing_io): Ditto. - * fhandler_fifo.cc (fhandler_fifo::open_nonserver): Ditto. - (fhandler_fifo::wait): Ditto. - * fhandler_termios.cc (fhandler_termios::bg_check): Ditto. - * select.cc (verify_tty_slave): Ditto. - * thread.cc (pthread::testcancel): Ditto. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (GetTokenInformation): Remove. - (SetTokenInformation): Remove. - * grp.cc: Replace above functions throughout with their ntdll.dll - equivalent. - * sec_auth.cc: Ditto. - * syscalls.cc: Ditto. - * uinfo.cc: Ditto. - -2011-04-29 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_cond_timedwait): Only wait for pthread's - cancel_event if thread's cancelability isn't disabled. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (SetSecurityDescriptorDacl): Remove. - (SetSecurityDescriptorGroup): Remove. - (SetSecurityDescriptorOwner): Remove. - * pinfo.cc: Replace above functions throughout with their ntdll.dll - equivalent. - * sec_acl.cc: Ditto. - * sec_helper.cc: Ditto. - * security.cc: Ditto. - - * sec_helper.cc (__sec_user): Remove old comment. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_cond_timedwait): Also wait for pthread's - cancel_event, if any. Call pthread_testcancel if cancel_event has been - signalled. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_cond_timedwait): Remove pthread_testcancel calls. - (_mq_send): Add pthread_testcancel call at start of function. - (_mq_receive): Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (geterrno_from_nt_status): Declare. - * errno.cc (geterrno_from_nt_status): Define. - * flock.cc: Fix copyright dates. - * ntdll.h (enum _TIMER_TYPE): Define. - (PTIMER_APC_ROUTINE): Define. - (NtCancelTimer): Declare. - (NtCreateTimer): Declare. - (NtSetTimer): Declare. - * posix_ipc.cc (ipc_cond_timedwait): Rewrite to make interruptible and - restartable. Call pthread_testcancel in case of timeout to enable - pthread_cancel on waiting thread. Replace WFMO timeout with waiting - for a waitable timer. Explain why. Replace single call to WFMO with - two calls, one for the event, one for the mutex. Don't lock mutex in - case of error. - (ipc_cond_signal): Make void function. - (ipc_cond_close): Ditto. - (_mq_send): Immediately return -1 in case of error from - ipc_cond_timedwait. - (_mq_receive): Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (GetSecurityDescriptorDacl): Remove. - (GetSecurityDescriptorGroup): Remove. - (GetSecurityDescriptorOwner): Remove. - * sec_acl.cc: Replace above functions throughout with their ntdll.dll - equivalent. Remove redundant debug output. - * sec_auth.cc: Ditto. - * security.cc: Ditto. - * uinfo.cc: Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (InitializeAcl): Remove. - (AddAce): Remove. - (FindFirstFreeAce): Remove. - (GetAce): Remove. - (InitializeSecurityDescriptor): Remove. - (OpenProcessToken): Remove. - * dcrt0.cc: Replace above functions throughout with their ntdll.dll - equivalent. - * fhandler_tty.cc: Ditto. - * flock.cc: Ditto. - * pinfo.cc: Ditto. Drop unnecessary error handling. - * sec_acl.cc: Ditto. - * sec_auth.cc: Ditto. - * sec_helper.cc: Ditto. - * security.cc: Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (InitializeSid): Remove. - (EqualPrefixSid): Remove. - (GetLengthSid): Remove. - (GetSidSubAuthority): Remove. - (GetSidSubAuthorityCount): Remove. - (GetSidIdentifierAuthority): Remove. - * fhandler_disk_file.cc: Replace above functions throughout with their - ntdll.dll equivalent. - * sec_auth.cc: Ditto. - * sec_helper.cc: Ditto. - * security.cc: Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (AllocateLocallyUniqueId): Remove. - * fhandler_disk_file.cc (fhandler_base::open_fs): Replace call to - AllocateLocallyUniqueId with call to NtAllocateLocallyUniqueId; - * posix_ipc.cc (mq_open): Ditto. Drop error handling for that call. - (sem_open): Ditto. - -2011-04-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSecurityInfo): Remove. - * ntdll.h (RtlConvertToAutoInheritSecurityObject): Declare. - (RtlDeleteSecurityObject): Declare. - (RtlGetControlSecurityDescriptor): Declare. - (RtlLengthSecurityDescriptor): Declare. - * security.cc (file_mapping): New global variable. - (get_file_sd): Rewrite. Clean up code. Get rid of GetSecurityInfo - call. - (alloc_sd): Call RtlSetControlSecurityDescriptor to set - SE_DACL_PROTECTED flag. - (check_file_access): Remove mapping. Use file_mapping instead. - (check_registry_access): Rename mapping to reg_mapping. - * wincap.cc: Througout, drop use_get_sec_info_on_dirs, - * wincap.h (struct wincaps): Drop use_get_sec_info_on_dirs. - -2011-04-24 Corinna Vinschen <corinna@vinschen.de> - - * include/fenv.h: Add missing _FENV_H_ define. - -2011-04-23 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (reg_key::get_dword): Rename from get_int, use DWORD - rather than int type. Avoid compiler warning. - (reg_key::set_dword): Rename from set_int, use DWORD rather than int - type. Change return type to NTSTATUS. - (reg_key::get_string): Change return type to NTSTATUS. - (reg_key::set_string): Ditto. - * registry.h: Accommodate above changes. - * environ.cc (regopt): Test return value of reg_key::get_string as - NTSTATUS. - * sched.cc (sched_rr_get_interval): Change local int vars to DWORD. - Call reg_key::get_dword instead of reg_key::get_int. - * shared.cc (init_installation_root): Test return value of - reg_key::get_string as NTSTATUS. - (shared_info::heap_slop_size): Call reg_key::get_dword rather than - reg_key::get_int. - (shared_info::heap_chunk_size): Ditto. - * shared_info.h (CURR_SHARED_MAGIC): Update. - (class shared_info): Change heap_chunk and heap_slop to DWORD values. - -2011-04-21 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::init_thread): Drop setting locals.process_logmask. - * cygtls.cc (_cygtls::remove): Always free mallocated TLS storage on - thread exit. Drop freeing locals.process_ident. - * cygtls.h (struct _local_storage): Remove syslog-related members. - * syslog.cc (syslog_globals): New static storage for global syslog - settings. Use throughout instead of _my_tls.locals. - (openlog): Set new syslog_globals.process_ident value more carefully. - * tlsoffsets.h: Regenerate. - -2011-04-21 Thomas Stalder <cygwinml@gmail.com> - - * include/sys/poll.h: Include signal.h to get definition of sigset_t. - -2011-04-20 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.cc (init_cygheap::close_ctty): Avoid closing console-cttys - since they don't use archetypes and this will just result in double - frees. - * dll_init.cc (dll_list::protect): Define. - (dll_list::alloc): Guard list access. - (dll_list::detach): Ditto. - * dll_init.h (dll_list::protect): Declare new muto. - (dll_list::guard): Define/declare function to guard list access. - * fhandler_termios.cc (fhandler_termios::sigflush): Avoid SEGV in - pathological condition of get_ttyp() == NULL. - -2011-04-20 Christopher Faylor <me.cygwin2011@cgf.cx> - - * select.cc (serial_cleanup): Make sure that device_specific_pipe is - always deleted regardless of whether it has a unique thread associated - with it - (socket_cleanup): Ditto. - (mailslot_cleanup): Ditto. - -2011-04-20 Corinna Vinschen <corinna@vinschen.de> - - * devices.h: Renumber internal devices so that FH_PROCESS is part of - the /proc family of virtual devices. - (FH_PROC_MAX_MINOR): Define. - * path.h (isproc_dev): Use FH_PROC_MAX_MINOR rather than FH_PROC. - -2011-04-19 Peter Rosin <peda@lysator.liu.se> - - * select.cc (pipe_cleanup): Make sure that device_specific_pipe is - always deleted regardless of whether it has a unique thread associated - with it. - -2011-04-19 Jon TURNEY <jon.turney@dronecode.org.uk> - - * thread.cc (semaphore::init): We cannot reliably infer anything from - the existing contents of sem, so merely warn rather than return EBUSY - if it looks like we are reinitialising a semaphore. - -2011-04-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetConsoleWindow): Drop. - (GetSystemWindowsDirectoryW): Drop. - * fhandler_console.cc (beep): Call GetSystemWindowsDirectoryW instead of - GetWindowsDirectoryW. - * uinfo.cc (cygheap_user::env_systemroot): Call - GetSystemWindowsDirectoryW and convert to multibyte on the fly. - * winlean.h (GetWindowsDirectoryW): Redefine to something invalid. - Explain why. - -2011-04-19 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_IMPORTS): Drop advapi32.dll. - * autoload.cc: Enable autoloading advapi32 functions. - * environ.cc (regopt): Use wide char arguments in reg_key functions. - * fhandler_console.cc (beep): Ditto. Use WCHAR throughout. - * registry.cc (reg_key): Rewrite reg_key class to use native NT registry - functions. Use WCHAR string parameters throughout. Use PCWSTR rather - than const WCHAR. Drop multibyte char functionality. Drop unused - methods. - (get_registry_hive_path): Use RtlQueryRegistryValues to fetch path from - registry. - (load_registry_hive): Drop useless check for user hive being available. - Load hive using NtLoadKey. - * registry.h: Accommodate above changes. - * sched.cc (sched_rr_get_interval): Use wide char arguments in reg_key - functions. - * shared.cc (init_installation_root): Ditto. - (shared_info::init_obcaseinsensitive): Use RtlQueryRegistryValues to - fetch obcaseinsensitive value. - (shared_info::heap_slop_size): Use wide char arguments in reg_key - functions. - (shared_info::heap_chunk_size): Ditto. - * syscalls.cc (gethostid): Ditto. - * winsup.h (__WIDE): Define. - (_WIDE): Define. - * libc/minires-os-if.c (get_registry_dns_items): Don't fetch values - from registry. Just extract them from given UNICODE_STRING parameter. - (get_registry_dns): Fetch all registry values at once using - RtlQueryRegistryValues. - -2011-04-19 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_ipv4fromreg_ipcnt): Rearrange to fetch all registry - values at once using RtlQueryRegistryValues. - (get_ipv4fromreg): Ditto. - -2011-04-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (fhandler_registry::fstat): Use RegQueryInfoKeyW. - -2011-04-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (read_value): Remove definition. - (print): Simplify. - (format_proc_cpuinfo): Drop useless call to GetSystemInfo. Rearrange - to use Rtl registry functions. Rename dwOldThreadAffinityMask to - orig_affinity_mask. - -2011-04-18 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzload): Don't change global timezone information - when called from gmtime or gmtime_r. - (tzparse): Ditto. - -2011-04-18 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Always close sockevt handle. - -2011-04-18 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (ppoll): Export. - * poll.cc (ppoll): Implement. - * posix.sgml (std-gnu): Add ppoll. - * include/cygwin/version.h: Bump API minor number. - * include/sys/poll.h (ppoll): Declare. - -2011-04-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Handle the - FD_CLOSE event specially when called from accept. Explain why. - (fhandler_socket::shutdown): Fake success on not-connected socket and - trigger socket event if the read side of a socket is affected. Explain - why. - * poll.cc (poll): Check for saw_shutdown_read on sockets to generate - POLLHUP as well. - -2011-04-18 Corinna Vinschen <corinna@vinschen.de> - - * Fix various copyrights. - -2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * signal.cc (_pinfo::kill): Set this_process_state when process - exists. - -2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * signal.cc (_pinfo::kill): Return 0 when attempting to test for - existence of an existed process which has not yet been reaped. - -2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> - - * cygheap.h (init_cygheap::ctty): Use base class so that console can - join in the fun. - * dtable.cc (dtable::stdio_init): Remove special-case call to - set_console_ctty (). - * exceptions.cc (sigpacket::process): Conditionally flush terminal - input on certain signals. - * fhandler.h (fhandler_console::get_tty_stuff): Make non-static. - (fhandler_termios::get_ttyp): Move here. - (fhandler_termios::sigflush): Declare. - (fhandler_tty_common::get_ttyp): Delete. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Pass this as - "arch" argument. - (set_console_ctty): Delete. - (tty_list::get_tty): Just return pointer to shared console region, - delaying get_tty_stuff until open(). - (fhandler_console::init): Treat NULL handle as signifying that console - should be opened with O_NOCTTY flag. Rename handle argument to the - more common 'h'. - * fhandler_termios.cc (fhandler_termios::sigflush): Define. - * fhandler_tty.cc (handler_tty_master::init_console): Pass NULL as - first argument to fhandler_console::init. - * pinfo.cc (_pinfo::set_ctty): Change third parameter to - fhandler_termios *. Add extra debugging. - * pinfo.h (_pinfo::set_ctty): Change third parameter to - fhandler_termios *. - - * exceptions.cc (handle_sigsuspend): Don't special-case non-main threads. - -2011-04-15 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * thread.cc (pthread_setschedprio): New function. - * include/pthread.h (pthread_setschedprio): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * cygwin.din (pthread_setschedprio): Export. - * posix.sgml (std-notimpl) Move pthread_setschedprio from here... - (std-susv4) ...to here. - -2011-04-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * fhandler_proc.cc (proc_tab): Add /proc/swaps virtual file. - (format_proc_swaps): New function. - -2011-04-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * Makefile.in: Move srcdir definition before others which uses it. - -2011-04-06 Jon TURNEY <jon.turney@dronecode.org.uk> - - * dll_init.cc (reserve_at, release_at): New functions. - (load_after_fork): If the DLL was loaded higher than the required - address, assume that it loaded at it's base address and also reserve - memory there to force it to be relocated. - -2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/types.h: Move #include <sys/sysmacros.h> to - end of header so that it gets the dev_t typedef. - * include/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor, - gnu_dev_makedev): Prototype and define as inline functions. - (major, minor, makedev): Redefine in terms of gnu_dev_*. - -2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/types.h: Move multiple inclusion guards to - beginning and end of header. - -2011-04-04 Christopher Faylor <me.cygwin2011@cgf.cx> - - * Makefile.in: Move Makefile.common include earlier to fix problems - with relative ${srcdir} path which confuses make. - -2011-04-04 Corinna Vinschen <corinna@vinschen.de> - - Drop NT4 support. - * autoload.cc (DnsQuery_A): Fatal if not available. - (DnsRecordListFree): Ditto. - (DsGetDcNameW): Ditto. - (NetGetAnyDCName): Remove. - (NetGetDCName): Remove. - (EnumProcessModules): Fatal if not available. - (GetModuleFileNameExW): Ditto. - (GetModuleInformation): Ditto. - (GetProcessMemoryInfo): Ditto. - (QueryWorkingSet): Ditto. - (LsaRegisterLogonProcess): Ditto. - * fenv.cc (_feinitialise): Drop supports_sse condition. - * fhandler_disk_file.cc (path_conv::isgood_inode): Fix comment. - (fhandler_base::fstat_by_name): Drop has_fileid_dirinfo condition. - (fhandler_disk_file::opendir): Ditto. - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Fix comment. - * fhandler_proc.cc (format_proc_partitions): Drop NT4-only code. - * fhandler_process.cc (get_process_state): Ditto. - * kernel32.cc (GetWindowsDirectoryW): Remove. - (GetWindowsDirectoryA): Remove. - * miscfuncs.cc (nice_to_winprio): Drop NT4-only code. - * mount.cc (fs_info::update): Fix comments. - * net.cc (get_2k_ifs): Drop NT4-only code. - * sec_auth.cc (get_logon_server): Ditto. - (lsaauth): Drop NT4-specific error handling. - * security.cc (alloc_sd): Set SE_DACL_PROTECTED unconditionally. - * select.cc (select_stuff::wait): Always use MWMO_INPUTAVAILABLE. - (peek_windows): Drop NT4-only condition in call to PeekMessage. - * syscalls.cc (gethostid): Remove NT4-only workaround. - * wincap.cc: Througout, drop has_dacl_protect, - has_broken_if_oper_status, has_process_io_counters, - has_terminal_services, has_extended_priority_class, has_guid_volumes, - has_fileid_dirinfo, has_mwmo_inputavailable and supports_sse from - wincaps. - (wincap_nt4sp4): Remove. - (wincap_minimal): Set to wincap_2000. - (wincapc::init): Rely on availability of OSVERSIONINFOEX structure. - Treat error from GetVersionEx as fatal. Treat NT4 as fatal. - * wincap.h (struct wincaps): Drop has_dacl_protect, - has_broken_if_oper_status, has_process_io_counters, - has_terminal_services, has_extended_priority_class, has_guid_volumes, - has_fileid_dirinfo, has_mwmo_inputavailable and supports_sse flags - and methods. - * winlean.h (GetWindowsDirectoryW) Define as GetSystemWindowsDirectoryW. - (GetWindowsDirectoryA): Define as GetSystemWindowsDirectoryA. - -2011-04-04 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Fix a comment to - reflect the current state. - -2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * Makefile.in (fhandler_proc_CFLAGS): Define USERNAME, HOSTNAME, - and GCC_VERSION. - * fhandler_proc.cc (format_proc_version): Add build machine and GCC - version information as on Linux. - -2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Corinna Vinschen <corinna@vinschen.de> - - * devices.h (fh_devices): Define FH_PROC_MIN_MINOR. - Reorder major-0 devices so that all /proc directories fall - between FH_PROC and FH_PROC_MIN_MINOR. - * path.h (isproc_dev): Redefine accordingly. - -2011-04-04 Corinna Vinschen <corinna@vinschen.de> - - * cygserver_setpwd.h (setlsapwd): Add username parameter to declaration. - * external.cc (cygwin_internal): In the CW_SET_PRIV_KEY case, fetch - additional username parameter. - * setlsapwd.cc (setlsapwd): Add username parameter. Allow admin to - set the hidden password for other users. - -2011-04-04 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_groups): Mark well-known groups as well-known. - (get_user_local_groups): Ditto. - (verify_token): Drop useless label. - * sec_helper.cc (cygsid::get_sid): Check for well-known SID if - well_known isn't set. - * security.h (well_known_sid_type): New inline function. - -2011-04-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (FindFirstVolumeA): Remove. - (FindNextVolumeA): Remove. - (FindVolumeClose): Remove. - (GetVolumeNameForVolumeMountPointA): Remove. - * ntdll.h (NtFlushBuffersFile): Declare. - * syscalls.cc (sync_worker): Rewrite using native NT functions. - (sync): Ditto. - -2011-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Express length in WCHAR - size. - -2011-04-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetExtendedTcpTable): Remove. - (GetTcpTable): Remove. - (CharNextExA): Remove. - (FindWindowA): Remove. - (ShowWindowAsync): Remove. - * dcrt0.cc (disable_dep): Remove unused function. - (dll_crt0_0): Drop comment babbling about TS & DEP. - * fhandler_socket.cc (address_in_use): Remove unused function. - * wincap.cc: Throughout, drop ts_has_dep_problem from wincaps. - (wincapc::init): Drop code setting ts_has_dep_problem flag. - * wincap.h (struct wincaps): Drop ts_has_dep_problem flags and method. - -2011-04-01 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - Implement /proc/sysvipc/* - * devices.in (dev_procsysvipc_storage): Add. - * devices.cc: Regenerate. - * devices.h (fh_devices): Add FH_PROCSYSVIPC. - * dtable.cc (build_fh_pc): Add case FH_PROCSYSVIPC. - * fhandler.h (class fhandler_procsysvipc): Declare. - (fhandler_union): Add __procsysvipc. - * fhandler_proc.cc (proc_tab): Add sysvipc virt_directory. - * fhandler_procsysvipc.cc: New file. - * Makefile.in (DLL_OFILES): Add fhandler_procsysvipc.o. - * path.h (isproc_dev): Add FH_PROCSYSVIPC to conditional. - -2011-04-01 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add avapi32.o. - * advapi32.cc: New file. - * autoload.cc: Add block of remaining advapi32 functions used by - Cygwin. Keep commented out. Explain why. - -2011-04-01 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * fhandler_proc.cc (format_proc_loadavg): Add running/total - processes as fourth component of output. - * fhandler_process.cc (get_process_state): Make non-static. - Add FIXME about generating an 'O' flag. - -2011-04-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_random.cc (fhandler_dev_random::crypt_gen_random): - Use CryptAcquireContextW. - * ntdll.h (STATUS_PROCEDURE_NOT_FOUND): Define. - * sec_auth.cc (open_local_policy): Rename NTSTATUS variable ret to - status. Drop usage of LsaNtStatusToWinError. - (verify_token): Call NtQuerySecurityObject instead of - GetKernelObjectSecurity. - (create_token): Rename NTSTATUS variable ret to status. Rename ret2 to - sub_status. Drop usage of LsaNtStatusToWinError. In case LsaLogonUser - fails, report the sub_status as well. - -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. diff --git a/winsup/cygwin/ChangeLog-2012 b/winsup/cygwin/ChangeLog-2012 deleted file mode 100644 index 562c48c41..000000000 --- a/winsup/cygwin/ChangeLog-2012 +++ /dev/null @@ -1,3065 +0,0 @@ -2012-12-31 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.cc (wait_sig): Remove spurious extern. - -2012-12-31 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::dup3): Fix bounds checking for valid newfd. - * syscalls.cc (dup2): Ditto. - * winsup.h (events_terminate): Delete obsolete function declaration. - -2012-12-28 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000019. - * dcrt0.cc (do_exit): Just set exit_state to ES_EVENTS_TERMINATE and - nuke call to events_terminate which just set a superfluous flag. - * sigproc.cc (signal_exit_code): New variable. - (setup_signal_exit): Define new function. - (_cygtls::signal_exit): Remove accommodations for closing the signal - pipe handle. - (exit_thread): Just sleep if we're exiting. - (wait_sig): If signal_exit_code is set, just handle bookkeeping signals - and exit ReadFile loop if there is nothing more to process. Call - signal_exit at end if signal_exit_code is non-zero. - * sigproc.h (setup_signal_exit): Declare new function. - * exceptions.cc (sigpacket::process): Use setup_signal_exit to control - exiting due to a signal. - (exception::handle): Ditto. Query exit_state rather than defunct - exit_already to determine if we are exiting. - * globals.cc (ES_SIGNAL_EXIT): New enum. - * sync.h (lock_process::release): New function for explicitly unlocking - muto. - (lock_process::~lock_process): Use release method. - -2012-12-27 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fork.cc (child_info::prefork): Fix error message formatting. - -2012-12-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.h (select_stuff): Remove variable names from parameter - declarations. - (select_info): Ditto. - (select_record::dump_select_record): Declare new debugging-only - function. - (select_info): Zero all fields. - (select_pipe_info): Ditto. - (select_socket_info): Ditto. - (select_serial_info): Ditto. - (select_mailslot_info): Ditto. - * select.cc (select_record::dump_select_record): Define new - debugging-only function. - (select_stuff::test_and_set): Call dump_select_record when debugging. - - * thread.cc (pthread_mutex::unlock): Revert setting of tid to 0 since, - in this context, it is a number, not a pointer. - (pthread_spinlock::unlock): Ditto. - -2012-12-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.cc (exit_thread): undef ExitThread or suffer recursion. - Attempt to lock process prior to calling sig_send. - -2012-12-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - Revert the reversion and go with implementation described in - cgf-000017, with some modifications. - * init.cc (dll_entry): Revert previous change. - * miscfuncs.cc: Include sigproc.h for exit_thread declaration. - * winsup.h (ExitThread): Define as 'exit_thread' to ensure no - accidental use. - * sigproc.cc (exit_thread): New function. - (wait_sig): Handle __SIGTHREADEXIT case. Don't just block rather than - returning from this function. - * sigproc.h (__SIGTHREADEXIT): New enum. - (exit_thread): Declare. - * sync.cc (muto::release): Accept a tls command-line argument. - * sync.h (muto::release): Accept a tls command-line parameter. Default - to &_my_tls. - - * cygerrno.h (__set_errno): Define as extern so that no function code - is ever emitted. - * cygserver_ipc.h (cygserver_ipc.h): Ditto. - * miscfuncs.h (transform_chars): Ditto. - * path.h (has_attribute): Ditto. - * security.h (privilege_luid): Ditto. - * winsup.h (flush_file_buffers): Ditto. - -2012-12-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000018. - * init.cc (dll_entry): Grab process lock before exiting to ensure that - thread doesn't exit before parent if parent is exiting. - * _cygtls.cc (_cygtls::call2): Revert previous 2012-12-21 change. - * miscfuncs.cc (thread_wrapper): Ditto. - * thread.cc (pthread::exit): Ditto. - * sigproc.cc (exit_thread): Ditto. - (wait_sig): Ditto. - * sync.cc (muto::release): Ditto. - * sync.h (muto::release): Ditto. - * sigproc.h (__SIGTHREADEXIT): Delete enum. - (exit_thread): Delete declaration. - -2012-12-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000017. - * _cygtls.cc (_cygtls::call2): Use new exit_thread function in place of - ExitThread. - * miscfuncs.cc (thread_wrapper): Ditto. - * thread.cc (pthread::exit): Ditto. - (pthread_mutex::unlock): Set tid to NULL rather than 0. - (pthread_spinlock::unlock): Ditto. - * pinfo.cc (commune_process): Actually call lock_process constructor. - * sigproc.cc (exit_thread): New function. - (wait_sig): Handle __SIGTHREADEXIT case. Don't just block rather than - returning from this function. - * sigproc.h (__SIGTHREADEXIT): New enum. - (exit_thread): Declare. - * sync.cc (muto::release): Accept a tls command-line argument. - * sync.h (muto::release): Accept a tls command-line parameter. Default - to &_my_tls. - -2012-12-20 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (build_argv): Allow quoted filenames in @ expression. - -2012-12-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.h (select_stuff::select_stuff): Make default constructor - always zero everything while constructor with int arg just zeroes next. - * select.cc (select_stuff::test_and_set): Revert to using default - constructor. - -2012-12-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (select_stuff::wait): Add windows error number to error message. - -2012-12-18 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (select_stuff::test_and_set): Remove workaround and use - proper constructor. - -2012-12-18 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (select_stuff::test_and_set): Work around problem of new() - not returning zeroed memory. - -2012-12-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::write): Don't attempt to sparsify - an already sparse file. Drop check for FILE_SUPPORTS_SPARSE_FILES - flag. Explicitely set FILE_ATTRIBUTE_SPARSE_FILE attribute in - cached attributes. - (fhandler_base::lseek): Only set did_lseek if sparseness is supported. - * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Don't attempt - to sparsify an already sparse file. Explicitely set - FILE_ATTRIBUTE_SPARSE_FILE attribute in cached attributes. - * mount.cc (oopt): Add "sparse" flag. - (fillout_mntent): Ditto. - * path.h (enum path_types): Add PATH_SPARSE. - (path_conv::support_sparse): New method. - (path_conv::fs_flags): Constify. - (path_conv::fs_name_len): Ditto. - include/sys/mount.h: Replace unused MOUNT_MIXED flag with MOUNT_SPARSE. - -2012-12-10 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.h (sig_send): Accept tid as argument #3. Default to NULL. - * sigproc.cc (sig_send): Ditto. Pass tid to other sig_send. - (sigpending): Send current thread as arg #3. - -2012-12-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (sigpacket::process): Reorganize to avoid use of tls - before initialization. - - * fhandler_fifo.cc (fhandler_fifo::arm): Avoid improper printing of - integer as a string in debug output. - -2012-12-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.h (sigpacket): Remove parameter names from declarations. - (sigpacket::sigtls): Rename from 'tls'. - * exceptions.cc (sigpacket::process): Define local tls variable and - assign that to sigtls if appropriate. Clarify debugging output. - * sigproc.cc (sig_send): Accommodate tls -> sigtls rename. - (pending_signals::add): Ditto. - (wait_sig): Ditto. - -2012-12-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.h (_cygtls::get_signal_arrived): Add parameter to make - lock/unlock conditional. - * exceptions.cc (_cygtls::interrupt_setup): Don't get a lock when - setting signal_arrived since we already have one. - * gendef: Add some comments to make it easier to find functions. - -2012-12-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/wait.h (WAIT_ANY): Define. - (WAIT_MYPGRP): Define. - -2012-12-05 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (class child_info_spawn): Drop unused member lock. - (CURR_CHILD_INFO_MAGIC): Update. - * sigproc.cc (child_info_spawn::child_info_spawn): Drop setting lock. - -2012-12-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.h (_cygtls::will_wait_for_signal): Rename from - 'signal_waiting' to something more expressive. Reflect rename - throughout. - (_cygtls::get_signal_arrived): Rename from create_signal_arrived. Move - lock here. - (_cygtls::set_signal_arrived): Use get_signal_arrived. - * exceptions.cc (_cygtls::interrupt_setup): Use get_signal_arrived. - * tlsoffsets.h: Regenerate. - -2012-11-30 Christopher Faylor <me.cygwin2012@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Make detection of '/c' case - insensitive when looking for cmd.exe command line. - -2012-11-26 Christopher Faylor <me.cygwin2012@cgf.cx> - - * configure.ac: Rename from configure.in. - * configure.in: Delete. - * configure: Regenerate. - -2012-11-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc: Drop Mingw.org considerations. - * fhandler_serial.cc: Ditto. - * fhandler_socket.cc: Ditto. - * fhandler_tape.cc: Ditto. - * fhandler_tty.cc: Ditto. - * net.cc: Ditto. - * ntdll.h: Ditto. - * sched.cc: Ditto. - * sec_helper.cc: Ditto. - -2012-11-23 Christopher Faylor <me.cygwin2012@cgf.cx> - - * configure.in: Remove unneeded ALLOC substitution. - * configure: Regenerate. - * aclocal.m4: Ditto. - -2012-11-23 Christopher Faylor <me.cygwin2012@cgf.cx> - - * configure.in: Add previously-missed AC_NO_EXECUTABLES. - * configure: Regenerate. - * aclocal.m4: Ditto. - -2012-11-23 Christopher Faylor <me.cygwin2012@cgf.cx> - - * Makefile.in: Use explicit path to mkdir. - -2012-11-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (select): Don't return -1 when we've timed out after - looping. - -2012-11-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * Makefile.in: Revamp for new configury. - (datarootdir): Add variable setting. - (winver_stamp): Accommodate changes to mkvers.sh setting. - (libc.a): Fix race when libm.a might not have been built yet. - * configure.in: Revamp for new configury. - * aclocal.m4: Regenerate. - * configure: Ditto. - * autogen.sh: New script. - * mkvers.sh: Find include directives via CFLAGS and friends rather than - assuming that w32api lives nearby. - -2012-11-21 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * termios.cc (cfsetspeed): New function. - * cygwin.din (cfsetspeed): Export. - * posix.sgml (std-bsd): Add cfsetspeed. - * include/sys/termios.h (cfsetspeed): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * include/mntent.h: Only include paths.h when building for Cygwin. - Add comment to explain why. - -2012-11-11 Corinna Vinschen <corinna@vinschen.de> - - * winbase.h: Semi-reinstantiate to workaround lack inline assembler - implementation of InterlockedCompareExchange for i686 in Mingw64 - headers. - * pinfo.cc (pinfo::init): Remove unused variable mapaddr. - -2012-11-08 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (proc_subproc): Delete unused variable child. - -2012-11-08 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_termios.cc (fhandler_termios::line_edit): Don't do special - character handling when stopped by CTRL-S. - * fhandler_tty.cc (bytes_available): Add arguments to debug_only_printf - call. - * sigproc.cc (proc_subproc): Simplify some if logic. - -2012-11-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/sys/termios.h (CBRK): Define as alias of CEOL. - (CREPRINT): Define as alias of CRPRNT. - (CDISCARD): Define as alias of CFLUSH. - (TTYDEF_*): Define. - -2012-10-31 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/param.h: Include stddef.h to define NULL. - -2012-10-31 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Fix using - wrong value in condition. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h: Add missing defines for CW_ALLOC_DRIVE_MAP, - CW_MAP_DRIVE_MAP and CW_FREE_DRIVE_MAP. - -2012-10-27 Kai Tietz <ktietz@redhat.com> - - * dcrt0.cc (quoted): Renamed strechr to strchrnul. - * environ.cc (environ_init): Likewise. - * sec_acl.cc (aclfromtext32): Likewise. - * sec_auth.cc (extract_nt_dom_user): Likewise. - * uinfo.cc (pwdgrp::next_str): Likewise. - * string.h (strechr): Likewise. - -2012-10-26 Kai Tietz <ktietz@redhat.com> - - * string.h (strechr): Replace assembler by - C code. - (ascii_strcasematch): Likewise. - (ascii_strncasematch): Likwise. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (closedir): Fix syscall_printf. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/signal.h (sigset_t): Define here. - -2012-10-24 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * Makefile.in (DLL_IMPORTS): Use system import libraries for - kernel32 and ntdll instead of from in-tree w32api. - (cygwin0.dll): Remove rule dependency on DLL_IMPORTS, as they - are no longer built in-tree. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.h (List_insert): Cast first parameter in - InterlockedCompareExchangePointer call to avoid compiler warnings. - (List_remove): Ditto. - -2012-10-22 Corinna Vinschen <corinna@vinschen.de> - - * winbase.h: Remove. - -2012-10-22 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - -2012-10-21 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 18. - -2012-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Remove lloffset. - Use offset directly. Add shortcut for lseek(fd, 0, SEEK_CUR) case. - (fhandler_dev_floppy::ioctl): Drop wrong RDSETBLK case. - * fhandler_raw.cc (fhandler_dev_raw::ioctl): Revamp RDSETBLK code. - -2012-10-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::write): Fix potential exit from - loop with write mutex held. Delete redundant mutex release. Clear tty - error once we've grabbed it. - -2012-10-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Drop gratuitous - initializing from previous patch. - -2012-10-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::open): Fix comment. - -2012-10-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::write): DWORD -> BOOL. - -2012-10-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_raw): Add members devbufalloc and - devbufalign. - (class fhandler_dev_floppy): Remove member bytes_per_sector; - * fhandler_floppy.cc (bytes_per_sector): Define as devbufalign. - (fhandler_dev_floppy::open): Set devbufalign to a multiple of the - sector size and handle devbuf allocation and alignment in !O_DIRECT - case here. Change comment accordingly. - Call FSCTL_ALLOW_EXTENDED_DASD_IO for partitions as well. - (fhandler_dev_floppy::raw_write): Fix comment. Rewrite and fix - writing behaviour when application uses read and lseek. - (fhandler_dev_floppy::lseek): Use rounddown macro. Call - SetFilePointerEx rather than the old SetFilePointer. - (fhandler_dev_floppy::ioctl): Reformat switch. Call - IOCTL_DISK_UPDATE_PROPERTIES rather than IOCTL_DISK_UPDATE_DRIVE_SIZE - in BLKRRPART case. Support BLKIOMIN, BLKIOOPT, BLKPBSZGET and - BLKALIGNOFF. - * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Initialize - all devbuf-related members. - (fhandler_dev_raw::~fhandler_dev_raw): Delete devbufalloc rather than - devbuf. - (fhandler_dev_raw::open): Drop allocating devbuf. - (fhandler_dev_raw::dup): Allocate devbufalloc and set devbuf to support - new sector-aligned devbuf handling. - (fhandler_dev_raw::fixup_after_exec): Ditto. - * fhandler_tape.cc (fhandler_dev_tape::open): Ditto, set devbufalign - to 1. - * include/cygwin/fs.h (BLKIOMIN): Define. - (BLKIOOPT): Define. - (BLKALIGNOFF): Define. - (BLKPBSZGET): Define. - -2012-10-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_raw.cc (fhandler_dev_raw::open): Allow O_EXCL flag, as on - Linux. - -2012-10-11 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_termios.cc (fhandler_termios::line_edit): Don't manipulate - output_mutex on CTRL-S/CTRL-Q to avoid a deadlock. - * fhandler_tty.cc (fhandler_pty_slave::write): Loop when output_stopped - is detected before acquiring output_mutex. Acquire output_mutex in the - loop for each write. - * tty.h: Remove some obsolete defines. - (tty_min::output_stopped): Make 'bool'. - -2012-10-10 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in.h (struct in_addr): Guard with s_addr to avoid - potential collision with Win32 headers. - -2012-10-09 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h (child_info_spawn::has_execed): Remove unneeded - synchronization. - -2012-10-09 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc: Remove unneeded assert.h. - -2012-09-17 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (pinfo::init): Detect potential race where short block has - been retrieved but PID_EXECED flag is not set. - -2012-09-13 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygthread.cc (cygthread::stub): Remove old, unnecessary, FIXMEd code. - * spawn.cc (child_info_spawn::worker): Avoid calling close_all_files() - twice. - -2012-09-02 Jin-woo Ye <jojelino@gmail.com> - Corinna Vinschen <corinna@vinschen.de> - - * pseudo-reloc.cc (auto_protect_for): New function. - (__write_memory): Call auto_protect_for to handle page protection. - (do_pseudo_reloc): Call auto_protect_for to restore old page protection. - -2012-08-26 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (pinfo::init): Remove assertion. - -2012-08-23 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (_pinfo::exists): Don't consider a process with no state to - exist. - -2012-08-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * net.cc (get_adapters_addresses): Drop FIXME part of comment. - -2012-08-17 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000016. - * cygtls.h (_cygtls::push): Inline. - (_cygtls::interrupt_now): Change signal number argument to siginfo_t - argument. - (_cygtls::interrupt_setup): Ditto. - (_cygtls::set_siginfo): Delete declaration. - (_cygtls::reset_signal_arrived): Don't reset signal_arrived signal. - Just reset flag. - * exceptions.cc (_cygtls::interrupt_now): Reflect argument changes. - Pass si to interrupt_setup. - (_cygtls::interrupt_setup): Reflect argument changes. Fill out tls - infodata here using passed-in si. Use si.si_signo instead of sig. - (sigpacket::setup_handler): Move this function into sigpacket class. - Use si field from the class as appropriate. - (sigpacket::process): Don't call tls->set_siginfo here since - setup_handler could fail. Eliminate now-unneeded sig argument. - * sigproc.h (sigpacket::setup_handler): Move setup_handler to this - class. - -2012-08-17 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (sig_handle_tty_stop): Clear tls sig field. - (sigpacket::process): When continuing, set tls->sig before arming - signal_arrived. - -2012-08-17 Thomas Wolff <towo@towo.net> - - * fhandler_clipboard.cc (fhandler_dev_clipboard::read): Use - read-ahead buffer for reading Windows clipboard if caller's - buffer is too small for complete characters. - * include/limits.h: Remove outdated TODO comment. - -2012-08-16 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.cc (_cygtls::operator HANDLE): Reverse '?' test stupidity. - -2012-08-16 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygheap.cc (init_cygheap::find_tls): Don't consider unitialized - threads. - * cygtls.cc (_cygtls::operator HANDLE): Return NULL when tid is not - set. - * exceptions.cc (setup_handler): Don't try to suspend a thread if it - has no handle. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - Rename cancelable_wait -> cygwait throughout. - * DevNotes: Add entry cgf-000015. - * cygwait.h (cygwait): Don't allow an optional PLARGE_INTEGER - argument. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.h (_cygtls::create_signal_arrived): New function. - (_cygtls::set_signal_arrived): Lock creation of signal_arrived. - * cygwait.cc (cancelable_wait): Ignore signal_arrived event if _my_tls - 'sig' element does not exist. - * exceptions.cc (_cygtls::interrupt_setup): Create signal_arrived if - recipient thread has not created it. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * gendef: Tighten up whitespace detection. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * gendef: Delete unneeded read from <IN> which ate an arbitrary line - from cygwin.din. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (sigdelayed): Move declaration to sigproc.h. - * sigproc.h (sigdelayed): Make symbol globally available. - * gendef (sigdelayed): Specifically zero incyg and stacklock. - * signal.cc (sigwaitinfo): Lock _my_tls and try harder to clean up - signal information. - -2012-08-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (_pinfo::exists): Don't consider an execed process to exist. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * gmon.c (_mcleanup): Fix scope bug when using gmon_out array. - -2012-08-14 Christopher Faylor <me.cygwin2012@cgf.cx> - - * errno.cc (errmap): Keep sorted. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (semaphore::_fixup_after_fork): Fix Win32 error output in - api_fatal call. - -2012-08-14 Christopher Faylor <me.cygwin2012@cgf.cx> - - * errno.cc (errmap): Keep sorted. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_names): Add missing ReFS entry. Change comment. - * mount.h (enum fs_info_type): Add comment. - -2012-08-13 Christopher Faylor <me.cygwin2012@cgf.cx> - - * errno.cc (errmap): Map ERROR_SXS_CANT_GEN_ACTCTX to ELIBBAD. - -2012-08-09 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000014. - * cygheap.cc (tls_sentry): Move here, rename from 'sentry' in cygtls.cc - (tls_sentry::lock): Ditto. - (nthreads): Move from cygtls.cc - (THREADLIST_CHUNK): Ditto. - (cygheap_init): Call init_tls_list(). - (init_cygheap::init_tls_list): Define new function. - (init_cygheap::add_tls): Ditto. - (init_cygheap::remove_tls): Ditto. - (init_cygheap::find_tls): Ditto. Semi-resurrect from - _cygtls::find_tls. - * cygheap.h (init_cygheap::init_tls_list): Declare new function. - (init_cygheap::add_tls): Ditto. - (init_cygheap::remove_tls): Ditto. - (init_cygheap::find_tls): Ditto. - * cygtls.cc (sentry): Delete. - (sentry::lock): Ditto. - (nthreads): Ditto. - (THREADLIST_CHUNK): Ditto. - (_cygtls::init): Delete definition. - (_cygtls::init_thread): Call cygheap->add_tls() to add thread to global - list. - (_cygtls::remove): cygheap->remove_tls() to remove thread from global - list. - * cygtls.h (_cygtls::init): Delete declaration. - * dcrt0.cc (dll_crt0_0): Delete call to _cygtls::init(). - * exceptions.cc (sigpacket::process): When no thread is specified, try - to find one via cygheap->find_tls. - -2012-08-08 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/wait.h (_wait): Define when building newlib. - -2012-08-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * signal.cc (sigwaitinfo): Change cw_sig to the correct cw_sig_eintr. - -2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (sigdelayed): Simplify declaration. - (_cygtls::call_signal_handler): Fix test for when to pop signal stack. - Only do it exactly when what is on the stack is a no-op. - -2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Put back a minor variation of - Corinna's test for detecting a background process when starting a - non-cygwin process. - -2012-08-01 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h (MSG_BCAST): Define. - (MSG_MCAST): Define. - -2012-08-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_socket::recv_internal): Add bool parameter. - Add regparm attribute. - * fhandler_socket.cc (fhandler_socket::read): Call recv_internal with - second parameter set to false. - (fhandler_socket::readv): Ditto. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::recv_internal): Convert use_recvmsg from local - variable to parameter. Use as request for using WSARecvMsg. Only - fail if WSARecvMsg can't be loaded and wsamsg->Control.len > 0, - otherwise use WSARecv{From}. Restrict dwFlags to MSG_PEEK when using - WSARecvMsg. - (fhandler_socket::recvmsg): Prefer using WSARecvMsg. Change priority - of tests for not using WSARecvMsg. Call recv_internal with second - parameter set accordingly. - -2012-08-01 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Semi-revert patch from 2012-07-01, assuming the previous - patch to etc::dir_changed fixes the underlying issue. - -2012-07-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (etc::dir_changed): Revert muto changes since function is - called under lock condition anyway. - -2012-07-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (etc::dir_changed): Change `io' to a static NO_COPY - variable. Explain why. Add a muto to guard overwriting the changed_h - handle by multiple concurrent threads. - * path.h (class etc): Drop unused changed_h member. - -2012-07-30 Christopher Faylor <me.cygwin2012@cgf.cx> - - * winlean.h: Define constant which will be needed eventually. Remove - hack in favor of another hack. - * lib/crt0.h: Use "winlean.h". - -2012-07-30 Christopher Faylor <me.cygwin2012@cgf.cx> - - * winlean.h: Add temporary define. - * winsup.h: Remove ancient debugging defines. - -2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.cc (cancelable_wait): Add some debugging-only output. - * exceptions.cc (sig_handle_tty_stop): Make sure that incyg is cleared - when exiting if we have no parent process. Only wait for signal_arrived. - (sigpacket::process): Make continue_now a bool. Delay sending - signal_arrived until the end. Make code more defensive to avoid - calling signal handler when stopped. Only set signal_arrived when - stopped. - * sigproc.cc (sig_hold): Rename from sigCONT. Make static. - (sig_send): Accommodate sigCONT -> sig_hold rename. - (wait_sig): Ditto. - * sigproc.h (sigCONT): Delete declaration. - - * fhandler_console.cc (fhandler_console::write): Use new '%0c' facility - to print characters. Change to paranoid to avoid excessive strace - output. - * fhandler_tty.cc (fhandler_pty_master::accept_input): Make frequent - strace printf "paranoid" to help cut down on strace output size. - - * signal.cc (sigsuspend): Add standard syscall strace output. - (sigpause): Ditto. - (pause): Ditto. - -2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.h (_cygtls::reset_signal_arrived): New function. - (set_signal_arrived::~set_signal_arrived): Use reset_signal_arrived to - reset state. - * exceptions.cc (sig_handle_tty_stop): Use WAIT_SIGNALED rather than - assume we know the return from cancelable_wait. - (_cygtls::interrupt_setup): Modify to allow calling when executing in - non-cygwin code via sigdelayed. Always reset signal_arrived. - * gendef: Throughout use start_offset rather than the completely wrong - sizeof__cygtls. - (_sigdelayed): Rewrite to avoid duplication when calling the signal - handler. - (sigreturn): Delete. - * gentls_offsets: Define start_offset rather than sizeof__cygtls. - * tlsoffsets.h: Regenerate. - -2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_termios.cc (fhandler_termios::line_edit): Use special case - '%0c' handling to print non-printable characters using hex notation. - * smallprint.cc (__small_vsprintf): Semi-reimplement printing of - non-printable characters in hex but only when padding is specified. - - * dcrt0.cc (dll_crt0_0): Remove tty_list initialization. - * shared.cc (memory_init): Initialize tty_list here. - - * path.cc (path_conv::check): Remove unneeded parentheses from if - check. - -2012-07-28 Corinna Vinschen <corinna@vinschen.de> - - * include/inttypes.h: Add x86_64 target considerations throughout. - Define macros in C++ according to C99 requirements. - * include/stdint.h: Ditto. - -2012-07-25 Christopher Faylor <me.cygwin2012@cgf.cx> - - * signal.cc (clock_nanosleep): Force return on signal rather than - letting cancelable_wait loop on signal. - -2012-07-25 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (enum bin_status): Add dir_not_empty. - (try_to_bin): Call NtQueryInformationFile(FileInternalInformation) - with exact buffer size. Explain why. - Ditto for NtSetInformationFile(FileRenameInformation). - Handle race-condition which might lead to renaming a non-empty - directory. - (unlink_nt): Rearrange and partially rephrase comments related to the - STATUS_SHARING_VIOLATION case. Fix condition under which a dir is - tested for being non-empty. Handle dir_not_empty return code from - try_to_bin. Gracefully handle disappearing directory in rm -r - workaround. Fix typo in comment. - -2012-07-24 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Drop memset call since it can result in - a race condition. Drop all considerations for pre-Windows 2000 systems - since Cygwin won't start on them anyway. - -2012-07-23 Christopher Faylor <me.cygwin2012@cgf.cx> - - Change "set_thread_waiting" to "set_signal_arrived" throughout. - -2012-07-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000013. - * cygserver_ipc.h (ipc_set_proc_info): Use _cygtls::ipc_set_proc_info - to set per-thread signal arrived value. - * cygthread.cc (cygthread::detach): Use per-thread signal_arrived via - set_thread_waiting. - * fork.cc (_cygtls::fixup_after_fork): Clear signal_arrived. - (_cygtls::remove): Close any signal_arrived handle when thread exists. - (_cygtls::find_tls): Remove unneeded function. - * cygtls.h: Update copyright. - (class _cygtls): Reorganize to help avoid rebuilding newlib when - structure changes. - (_cygtls::event): Delete. - (_cygtls::threadkill): Ditto. - (_cygtls::signal_waiting): Declare new bool. - (_cygtls::find_tls): Delete declaration. - (_cygtls::set_threadkill): Ditto. - (_cygtls::reset_threadkill): Ditto. - (_cygtls::set_signal_arrived): Declare new function. - (class set_thread_waiting): Declare new class. - * cygwait.cc (cw_nowait_storage): Define. - (cygwait): Set per-thread signal_arrived via set_thread_waiting. Don't - special-case _main_tls. - * cygwait.h (cw_nowait): Define. - (cw_infinite): Ditto. - (cygwait): Redefine pathological wait-only case. - * dcrt0.cc (dll_crt0_0): Remove call to now-defunct events_init(). - (dll_crt0_1): Remove call to now-defunct create_signal_arrived(). - * exceptions.cc: Reflect set_signal_mask() argument reordering - throughout. Remove signal mask synchronization throughout. - (events_init): Delete definition. - (mask_sync): Delete now-unneeded mask synchronization. - (set_signal_mask): Reverse order of arguments to "standard" to, from - layout. Rename "newmask" argument to "setmask". Remove debugging. - (sig_handle_tty_stop): Use cancelable_wait rather than WFMO. - (_cygtls::interrupt_setup): Don't treat "threadkill" events specially. - Conditionally set signal_arrived depending on whether the thread has - created it or not. - (sigpacket::process): Reorganize to reflect thread-specific sending of - signals which is more in line with the way it was actually supposed to - work. - * fhandler_socket.cc (get_inet_addr): Use cancelable_wait rather than - IsEventSignalled to avoid potential race. - (fhandler_socket::wait_for_events): Set signal_arrived event using - set_thread_waiting(). - (fhandler_socket::close): Use cygwait for the case of just - waiting 10 ms for a signal. - * fhandler_tape.cc (fhandler_dev_tape::_lock): Use cancelable_wait - rather than WFMO. Redo switch/case tests accordingly. - * fhandler_termios.cc (fhandler_termios::bg_check): Use cygwait for - case of just waiting 0 ms for a potential signal. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Use - cancelable_wait rather than WFSO. - * fhandler_windows.cc (fhandler_windows::read): Set per-thread - signal_arrived via set_thread_waiting(). - * flock.cc (lf_setlock): Ditto. - * select.cc (pselect): Ditto. Set per-thread signal_arrived using - set_thread_waiting(). - * gendef: Don't special case handling of _cygtls::sig for threads. - * gentls_offsets: Use #pragma once in tlsoffsets.h. - * ntdll.h: Use #pragma once. - * poll.cc: Reflect set_signal_mask() argument reordering. - * posix_ipc.cc (ipc_mutex_lock): Use cancelable_wait rather than WFMO. - (ipc_cond_timedwait): Set perl-thread signal arrived using - set_thread_waiting(). - * security.h: Use #pragma once. - * signal.cc (abort): Reflect set_signal_mask() argument reordering. - (clock_nanosleep): Ditto. Change call to cancelable_wait to properly - specify handling of cancel and interrupt. - (sigwaitinfo): Remove handling of per-thread event in favor of - per-thread signal_arrived. Use cancelable_wait rather than WFSO. - * sigproc.cc (signal_arrived): Delete definition. - (create_signal_arrived): Ditto. - * sigproc.h (signal_arrived): Delete declaration. - (set_signal_mask): Avoid defining as a "C" function. Don't - conditionally declare. - (create_signal_arrived): Delete declaration. - * syscalls.cc (rename): Use cygwait() rather than WFSO. - * thread.h (fast_mutex::lock): Use cw_infinite rather than LARGE_NULL. - * wait.cc (wait4): Ditto. - * thread.cc (pthread_mutex::lock): Ditto. - (pthread::join): Ditto. - (semaphore::_wait): Ditto. - (pthread_kill): Remove set_threadkill() accommodation. - * tlsoffsets.h: Regenerate. - -2012-07-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 17. - -2012-07-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * mount.cc (getmntent_r): Remove unused but set variable. - -2012-07-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (getmntent_r): Export. - * mount.cc (getmntent_r): New function. - * posix.sgml (std-gnu): Add getmntent_r. - * include/mntent.h (getmntent_r): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2012-07-12 Corinna Vinschen <corinna@vinschen.de> - - * winlean.h: Make sure certain Windows macros are undefined again. - Add comment to explain why. - * winsup.h: Include winlean.h from C sources as well. - * libc/minires-os-if.c: Drop including ntdef.h. - -2012-07-12 Corinna Vinschen <corinna@vinschen.de> - - * pseudo-reloc.cc: Drop including wchar.h and ntdef.h. - (__report_error): Define module as WCHAR. - * advapi.cc: Drop including wchar.h. - * kernel32.cc: Ditto. - -2012-07-11 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (well_known_dlls): Add ole32.dll and wbemprox.dll. - -2012-07-09 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc (.rdata): Revert patch from 2012-07-06. - -2012-07-09 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (getpass): Make check for closed stream more reliable. - Check if setting tty attributes worked and only revert to old state - if so. - -2012-07-09 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in, configure.in, mkvers.sh: Revert accidental checkin from - 2012-07-06. - -2012-07-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * Makefile.in: Change mingw_lib (temporarily?) back to w32api_lib. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * winlean.h (__STRALIGN_H_): Drop definition. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procnet.cc: Fix copyright. - * syslog.cc: Ditto. - * libc/minires-os-if.c: Ditto. - * libc/minires.h: Ditto. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - In terms of network related functionality, rely on Winsock definitions - as much as possible: - * dtable.cc: Drop including sys/socket.h. - * fhandler_procnet.cc: Change includes accordingly. - * fhandler_socket.cc: Ditto. - (fhandler_socket::listen): Avoid gcc error message initializing sin6. - (LPFN_WSARECVMSG): Only define when building against w32api headers. - * net.cc: Change includes accordingly. Define USE_SYS_TYPES_FD_SET - and __WSA_ERR_MACROS_DEFINED. Define _INC_NETIOAPI temporarily and - explain why. - (struct _IP_ADAPTER_UNICAST_ADDRESS_LH): Only define when building - against w32api headers. - (struct _IP_ADAPTER_ADDRESSES_LH): Ditto. - (SIO_GET_INTERFACE_LIST): Ditto. - (ws_freeaddrinfo): Rename from freeaddrinfo so as not to collide with - Winsock declaration. Change througout. - (ws_getaddrinfo): Ditto. - (ws_getnameinfo): Ditto. - * select.cc: Include netdb.h after defining USE_SYS_TYPES_FD_SET. - * syslog.cc: Drop including netinet/in.h. Define USE_SYS_TYPES_FD_SET - and include ws2tcpip.h. - * include/netdb.h (struct addrinfo): Don't define when building Cygwin. - * include/cygwin/if.h: Don't declare if_xxx functions when building - Cygwin. - * include/cygwin/in.h: Disable most definitions when building Cygwin. - * include/cygwin/socket.h: Disable sockaddr and sockaddr_storage - definitions when building Cygwin. Same for MCAST_INCLUDE/MCAST_EXCLUDE. - * libc/inet_addr.c: Don't define __INSIDE_CYGWIN__ nor - __INSIDE_CYGWIN_NET__. - * libc/inet_network.c: Ditto. - * libc/minires.h: Drop redundant inclusion of netdb.h. Define - __INSIDE_CYGWIN_NET__ only before including netdb.h and resolver - headers. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * winbase.h: Throughout use LONG rather than long type to prepare for - 64 bit. - (InterlockedCompareExchangePointer): Define. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (RegOpenUserClassesRoot): Only define when - building against w32api headers. - (RegOpenCurrentUser): Ditto. - * fhandler_tty.cc (GetNamedPipeClientProcessId): Ditto. - * ntdll.h (enum _PROCESSINFOCLASS): Add ProcessImageFileName. - (RtlInitAnsiString): Declare. - (RtlUnicodeStringToAnsiSize): Declare. - * sched.cc (GetForegroundWindow): Ditto. - * sec_helper.cc (SECURITY_NT_NON_UNIQUE): Define as - SECURITY_NT_NON_UNIQUE_RID when building against w32api headers. - (cygsid::get_sid): Use SECURITY_NT_NON_UNIQUE rather than - SECURITY_NT_NON_UNIQUE_RID. - (__sec_user): Use PISECURITY_DESCRIPTOR rather than PSECURITY_DESCRIPTOR - to allow valid pointer arithmetic. - (_recycler_sd): Ditto. - (_everyone_sd): Ditto. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (_ADVAPI32_): Drop definition. - * kernel32.cc (_KERNEL32_): Ditto. - * winlean.h: Add definitions required to use Mingw64 headers. - (FILE_SHARE_VALID_FLAGS): Drop definition. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (_WIN32_WINNT): Define. Explain why. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * libc/rcmd.cc: Don't undef __INSIDE_CYGWIN_NET__. - -2012-07-06 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc (.rdata): Include all sections starting with .rdata. - (.debug_pubtypes): Make sure section is loaded at the end like all other - debug sections. - -2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dcrt0.cc (build_argv): Guard against NULL pointer dereference found - by Clang. - -2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (setup_handler): Remove unneeded assignment found by - Clang. - -2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * hookapi.cc (find_first_notloaded_dll): Remove unused assignment of - importRVASize found by Clang. - -2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_slave::read): Remove duplicate - assignment to bytes_in_pipe found by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (exception::handle): Use error_code in klog, as - intended. Found by Clang. - -2012-07-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_clipboard): Remove member eof. - * fhandler_clipboard.cc: Throughout remove handling of eof member. - (fhandler_dev_clipboard::write): Handle EOF condition immediately, - rather than pushing it erroneously to the next read call. Rearrange - code. Fix bug in CF_UNICODETEXT case which potentially dropped single - bytes at the end of the buffer. Add comment. - * strfuncs.cc (sys_cp_wcstombs): Allow returning non-NUL-terminated - buffer if dst != NULL and len == (size_t) -1. Extend leading comment - to explain what's returned in more detail. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_virtual.cc (fhandler_virtual::opendir): Eliminate duplicate - assignment found by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_registry.cc (fhandler_registry::open): Handle missing EROFS - error condition pointed to by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (_pinfo::commune_request): Eliminate unneeded assignment - found by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * external.cc (fillout_pinfo): Return NULL rather than 0. - (exit_process): Guard against NULL pointer dereference found by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * mount.cc (mount_info::conv_to_win32_path): Eliminate unneeded - assignment found by Clang. - -2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * path.cc (symlink_info::check): Remove unneeded/unused variable found - by Clang. - -2012-07-02 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::alloc): Take long UNC paths into account. - -2012-07-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * Makefile.in: Add some more optimization flags for cygwait, malloc and - path. Explain why -fomit-frame-pointer doesn't work right for passwd.o - and path.o. Add -static to link command line for cygwin0.dll. - - * fhandler_disk_file.cc (fhandler_disk_file::facl): Reorganize slightly - to silence compiler warning when compiling with -fstack-check. - * net.cc (inet_ntop6): Initialize structure members to silence compiler - warning when compiling with -fstack-check. - - * pseudo-reloc.cc (_pei386_runtime_relocator): Make this a C function. - Detect NULL u. - * winsup.h (_pei386_runtime_relocator): Declare this as extern "C". - * lib/_cygwin_crt0_common.cc (_pei386_runtime_relocator): Call with - NULL argument. - - * signal.cc (sigaction_worker): Eliminate last argument. Let callers - report their own strace info. Regparmize. - (sigaction): Reflect sigaction_worker changes. - (siginterrupt): Ditto. - - * exceptions.cc: Update copyright. - -2012-07-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * path.cc: Perform some whitespace fixups throughout. - -2012-06-28 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (_KERNEL32_): Define. Explain why. - (CreateFileMappingW): Drop undocumented flProtect flags. - -2012-06-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc: Fix includes for IOCTL codes to support Mingw64. - * fhandler_tape.cc: Ditto. - * flock.cc (allow_others_to_sync): Use PISECURITY_DESCRIPTOR since - PSECURITY_DESCRIPTOR is supposed to be the opaque type. - * ntdll.h: Remove CreateDisposition flags again, now that they are - defined in Mingw64's ntdef.h. Ditto for Create/Open flags. - -2012-06-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (RtlUnwind): Align declaration with MSDN. - * ntdll.h: Define CreateDisposition Flags. Add comments. - * winlean.h: Define FILE_SHARE_VALID_FLAGS if using Mingw64 headers. - -2012-06-27 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.h (cancelable_wait): Make extern to avoid always including. - * select.cc (allocfd_set): Try to make a little more efficient. - (cygwin_select): Break into two functions to avoid what seems to be a - strange compiler problem with alloca and sel constructor. - (select): New function. Always honor return from call_signal_handler. - (select_stuff::wait): Always honor return from call_signal_handler. - * select.h (select_stuff::select_stuff): Use NULL to initialize - pointers rather than 0. - -2012-06-27 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::handle): Cast exception code to NTSTATUS - for comparison. - * ntdll.h: Drop defining NT status codes in favor of including - ntstatus.h. - -2012-06-27 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (WritePipeOverlapped): Define second parameter LPCVOID, - rather than PCVOID. - * miscfuncs.h (WritePipeOverlapped): Ditto. - -2012-06-27 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (_ADVAPI32_): Define. Explain why. - (ImpersonateNamedPipeClient): Add missing WINAPI. - * ntdll.h (STATUS_INVALID_PARAMETER): Only define if it isn't already. - (STATUS_DLL_NOT_FOUND): Ditto. - (STATUS_ENTRYPOINT_NOT_FOUND): Ditto. - (enum _EVENT_TYPE): Guard against redefinition since it's already - defined in Mingw64's ntdef.h. - (enum _TIMER_TYPE): Ditto. - (enum _SECTION_INHERIT): Define if using Mingw64 headers since it's - missing in Mingw64's ntdef.h. - * winlean.h (__STRALIGN_H_): Define before including windows.h. - -2012-06-26 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (GetLastError): Drop redundant definition. - -2012-06-25 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.cc (cancelable_wait): Make sure that timer is cancelled - before cancelling thread. - -2012-06-25 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.h (cancelable_wait): Need to force time to negative to - indicate relative time. - -2012-06-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (realpath): Fix comment. - -2012-06-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (realpath): Call mount_info::conv_to_posix_path rather than - mount_info::cygdrive_posix_path to convert DOS paths to POSIX paths. - Add comment to explain why that's necessary at all. - -2012-06-18 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.h (LARGE_NULL): Define. - (cancelable_wait): Define variant which accepts DWORD time argument. - (cygwait): Use cancelable_wait with DWORD argument. - (cygwait): Use cancelable_wait with DWORD argument and cw_sig_eintr for - timeout-only case. - * exceptions.cc (handle_sigsuspend): Use LARGE_NULL as second argument - to distinguish between cancelable_wait variants. - * thread.cc (pthread_mutex::lock): Ditto. - (pthread::join): Ditto. - (semaphore::_timedwait): Ditto. - * thread.h (fast_mutex::lock): Ditto. - * wait.cc (wait4): Ditto. - -2012-06-18 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygwait.cc (cancelable_wait): Mimic old cygwait behavior more closely - wrt handling of call_signal_handler. - * cygwait.h (WAIT_CANCELED): Move here and redefine. - (WAIT_SIGNALED): Ditto. - * thread.h (WAIT_CANCELED): Delete. - (WAIT_SIGNALED): Ditto. - -2012-06-18 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_installation_root): Rearrange code - creating valid native NT installation_root path. Only strip last - backslash from path if the result is a valid NT path. Explain why. - -2012-06-17 Christopher Faylor <me.cygwin2012@cgf.cx> - - Add '#include "cygwait.h"' throughout, where appropriate. - * DevNotes: Add entry cgf-000012. - * Makefile.in (DLL_OFILES): Add cygwait.o. - * sigproc.h: Remove cygwait definitions. - * cygwait.h: New file. Define/declare Cygwin waitfor functions. - * cygwait.cc: Ditto. - * exceptions.cc: Include cygwait.h. - (handle_sigsuspend): Accommodate change in cancelable_wait arguments. - (sigpacket::process): Display thread tls in debugging output. - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use symbolic - names for signal and cancel return. - * fhandler_console.cc (fhandler_console::read): Ditto. - (fhandler_dev_dsp::Audio_out::waitforspace): Ditto. - fhandler_dev_dsp::Audio_in::waitfordata): Ditto. - * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. - * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. - * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. - * select.cc (cygwin_select): Ditto. - * wait.cc (wait4): Ditto. - * thread.cc (cancelable_wait): Move definition to cygwait.h. - (pthread_cond::wait): Accommodate change in cancelable_wait arguments. - (pthread_mutex::lock): Ditto. - (pthread_spinlock::lock): Ditto. - (pthread::join): Ditto. - (pthread::thread_init_wrapper): Display tls in debugging output. - (semaphore::_timedwait): Ditto. - * thread.h (cw_sig_wait): Move to cygwait.h. - (cw_cancel_action): Delete. - (cancelable_wait): Move declaration to cygwait.h. - -2012-06-11 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * regex/regcomp.c (p_ere): Allow vertical-line following - left-parenthesis in ERE, as in glibc. - -2012-06-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/sys/elf_common.h (R_386_16): Define. - (R_386_PC16): Define. - (R_386_8): Define. - (R_386_PC8): Define. - -2012-06-09 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (cygwin_select): Remove select_timeout test. - (select_stuff::wait): Return select_set_zero on timeout. - (thread_socket): Report timeout when debugging. - -2012-06-05 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/elf.h: Update from FreeBSD. - * include/machine/elf.h: New header, from FreeBSD. - * include/sys/elf.h: Ditto. - * include/sys/elf32.h: Update from FreeBSD. - * include/sys/elf64.h: Ditto. - * include/sys/elf_common.h: Ditto. - (R_IA64_*): Define Linux-style names as aliases to R_IA_64_*. - (R_SH_*): Define, based on sh-4 psABI. - (R_390_*): Define, based on s390x psABI. - * include/sys/elf_generic.h: Ditto. - -2012-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::link ): Translate - STATUS_NOT_SUPPORTED to EPERM as well. - -2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::dup3): Only return with lock set when O_EXCL flag - is passed in. - * syscalls.cc (dup_finish): Pass O_EXCL in flags to dtable::dup3. - -2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000011. - * fhandler.h (fhandler_base::refcnt): Delete. - (fhandler_base::inc_refcnt): New function. - (fhandler_base::dec_refcnt): New function. - * cygheap.h (cygheap_fdnew::~cygheap_fdnew): Accommodate split of - refcnt to inc_refcnt/dec_refcnt. - (cygheap_fdget::cygheap_fdget): Ditto. - (cygheap_fdget::~cygheap_fdget::cygheap_fdget): Ditto. - * dtable.cc (dtable::release): Ditto. - (cygwin_attach_handle_to_fd): Ditto. - (dtable::init_std_file_from_handle): Ditto. - (dtable::dup3): On success, return with fdtab locked. - * dtable.h (dtable): Add dup_finish as a friend. - * syscalls.cc (dup_finish): Define new function. Increment refcnt - while fdtab is locked. - (dup2): Use common dup_finish() to perform dup operation. - (dup3): Ditto. - -2012-06-03 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_refs): New R/O unicode string. - * mount.cc (fs_info::update): Recognize ReFS. - * mount.h (enum fs_info_type): Add refs. - (class fs_info): Add refs flag and accessor methods. - * ntdll.h (RtlAddAccessAllowedAceEx): Declare. - (RtlAddAccessDeniedAceEx): Declare. - * path.h (path_conv::fs_is_refs): Define. - * sec_helper.cc (_recycler_sd): New function to create security - descriptors suitable for the recycler bin starting with Vista. - * security.cc (add_access_allowed_ace): Use RtlAddAccessAllowedAceEx - and drop code to set AceFlags explicitely. - (add_access_denied_ace): Use RtlAddAccessDeniedAceEx and drop code to - set AceFlags explicitely. - * security.h (_recycler_sd): Declare. - (recycler_sd): Define. - * syscalls.cc (desktop_ini): Change formatting. - (desktop_ini_ext): Define third line of recycler desktop.ini file - since Vista, - (try_to_bin): Handle ReFS just like NTFS. Write Vista and later - Recycler in all uppercase, just like shell32 does when recreating it. - Fix comments to include ReFS. Don't implicitely reuse object - attributes from earlier NtOpenFile call, rather recreate it for safety. - Use recycler_sd call when creating security descriptor for Recycler - dirs and files on Vista and later. Write third line of desktop.ini - when on Vista and later. - -2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * winbase.h: Add missing copyright date. - -2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (cygwin_select): Make sure that we only return -1 as an - error return. - (select_stuff::wait): Semi-revert to previous method for filling out - w4. - -2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * select.cc (cygwin_select): Add some comments. - (select_stuff::wait): Ditto. - -2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000010. - * select.cc (set_handle_or_return_if_not_open): Remove unneeded final - backslash from definition. - (cygwin_select): Reorganize to incorporate outer retry loop. Move - remaining time recalculation here for retry case. Use - select_stuff::wait_states for loop control. - (select_stuff::cleanup): Avoid unneeded initialization. - (select_stuff::wait): Modify definition to return - select_stuff::wait_states. Eliminate is_cancelable. Don't inspect - element 1 of an array if it is a cancel handle. Remove loop. Rely on - being called from enclosing loop in cygwin_select. Remove time - recalculation when restarting. Try harder to always return from the - bottom. - * select.h (select_stuff::wait_state): New enum. - (select_stuff::wait): Modify declaration to return - select_stuff::wait_states. - -2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (setup_handler): Make debugging output a little more - verbose. - -2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygtls.h (_cygtls::protect_linked_list): Delete unused field. - -2012-05-30 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (find_first_notloaded_dll): Extend comment. Fix usage of - mapped memory. Shorten static library name buffer to MAX_PATH. Use - strlcpy to copy library name to buffer. Only Unmap "map" if it has been - Mapped before. - * pinfo.cc (status_exit): Drop unneeded declaration of - find_first_notloaded_dll in favor of the declaration in winsup.h. - -2012-05-30 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc: Remove temporary newlib workaround, now that newlib - handles thread cancellation by itself. - (class __cygwin_lock_handler): Remove. - (__cygwin_lock_cleanup): Remove. - (__cygwin_lock_lock): Revert newlib workaround, - (__cygwin_lock_trylock): Ditto. - (__cygwin_lock_unlock): Ditto. - (pthread::pop_cleanup_handler): Ditto. - -2012-05-29 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (select_stuff::wait): Temporarily disable restarting - entirely. - -2012-05-29 Corinna Vinschen <corinna@vinschen.de> - - * security.h (cygsidlist::+=): Correctly copy well_known_sid info from - source cygsid. - -2012-05-25 Corinna Vinschen <corinna@vinschen.de> - - * registry.cc (reg_key::build_reg): Fix typo in debug output. - -2012-05-25 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (select_stuff::wait): When not returning after receiving - a signal, recalculate timeout. Apply temporary fix to avoid crashes - after calling the signal handler. Explain. - -2012-05-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc (fhandler_serial::raw_read): Check for - ERROR_OPERATION_ABORTED rather than ERROR_IO_INCOMPLETE after CancelIo. - -2012-05-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc (fhandler_serial::raw_read): Just call ReadFile - directly in case of non-blocking I/O and handle result gracefully. - -2012-05-24 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (__cygwin_lock_lock): Replace null thread check with test - for cygwin_finished_initializing to handle process startup. - (__cygwin_lock_trylock): Ditto. - (__cygwin_lock_unlock): Ditto. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (__cygwin_lock_lock): Take null thread at process startup - into account. - (__cygwin_lock_trylock): Ditto. - (__cygwin_lock_unlock): Ditto. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::cancel): Re-allow asynchronous cancellation from - Cygwin code since it looks like the problem is Windows only. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc: Add a temporary workaround to help Cygwin along while - newlib doesn't install cleanup handlers. Explain the problem. - (class __cygwin_lock_handler): New class. - (__cygwin_lock_cleanup): New function. - (__cygwin_lock_lock): Push __cygwin_lock_cleanup thread cleanup - handler. - (__cygwin_lock_trylock): Ditto. - (__cygwin_lock_unlock): Pop thread cleanup handler. - (pthread::pop_cleanup_handler): Temporarily allow cleanup function to - destroy cleanup handler so we can pop in another function than we - pushed in. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::cancel): Only allow asynchronous cancellation - if the thread is not executing Cygwin or Windows code. Explain why. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::precreate): Make sure mutex is recursive. - Explain why. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::pop_cleanup_handler): Move setting the cancelstate - to PTHREAD_CANCEL_DISABLE from here... - (pthread::pop_all_cleanup_handlers): ...to here, otherwise any explicit - call to pthread_cleanup_pop disables cancellation for this thread. - -2012-05-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (refcnt): Add i interlocked. Explain why. - * winbase.h (ilockadd): New function. - (InterlockedAdd): Define as ilockadd. - -2012-05-22 Corinna Vinschen <corinna@vinschen.de> - - * devices.in: Fix native name of /dev/kmem. - * devices.cc: Regenerate. - * dtable.cc (fh_alloc): Don't forget FH_KMEM. - * fhandler_mem.cc (fhandler_dev_mem::open): Set errno to EACCES rather - than ENOENT on systems not granting access to physical memory from - user space. - -2012-05-22 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::cancel): Set thread's cancel_event in - PTHREAD_CANCEL_ASYNCHRONOUS case, too. Explain why. - -2012-05-21 Corinna Vinschen <corinna@vinschen.de> - - * strace.cc (strace::activate): Move printing heap size from here... - * heap.cc (heap_init_info): ...to here. Explain why. Print heap - size in hex and decimal. - -2012-05-21 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_recvfrom): Don't shortcircuit if len == 0. Add comment - to explain why. - (cygwin_recv): Ditto. - (cygwin_recvmsg): Ditto. - -2012-05-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::isgood_inode): Rearrange, take - Samba versions >= 3.5.4 into account, add comments. - -2012-05-16 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000009. - * smallprint.cc (__small_vsprintf): Always treat '%c' and '%C' as - characters. Don't decode them if they are > 127. - (__small_vswprintf): Ditto. - -2012-05-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000008. - * fhandler_tty.cc (bytes_available): Simplify by returning the number - of bytes available in the message unless that is zero. - -2012-05-14 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - -2012-05-14 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000007. - * child_info.h (child_info_spawn::parent_winpid): Declare new field. - (child_info_spawn::get_parent_handle): Declare new function. - * dcrt0.cc (child_info_spawn::get_parent_handle): Define new function. - (child_info_spawn::handle_spawn): Recreate parent handle if possible - when dynamically loaded. Don't mess with parent handle if it's NULL. - * spawn.cc (child_info_spawn::worker): Set parent_winpid appropriately. - -2012-05-12 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000006. - * thread.cc (pthread::pop_cleanup_handler): Set cancel state to - disabled to avoid recursively waiting for cancel. - -2012-05-12 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000005. - * fhandler.h (PIPE_ADD_PID): Redefine to something we actually DON'T - use. - * pipe.cc (fhandler_pipe::create): Avoid clearing all open_mode bits - when checking for PIPE_ADD_PID. Properly keep track of len so that - passed in name is not overwritten. - -2012-05-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (memrchr): Export. - * posix.sgml (std-gnu): Add memrchr. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2012-05-10 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 16. - -2012-05-08 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000004. - * pinfo.cc (pinfo::init): Reuse shared memory if the state is marked - with PID_REAPED. - * spawn.cc (child_info_spawn::worker): Don't duplicate myself_pinfo - into non-cygwin child. - - * fork.cc (frok::parent): Improve error output. - -2012-05-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000003. - * cygheap.h (init_cygheap::pid_handle): Delete. - * dcrt0.cc (child_info_spawn::handle_spawn): Keep parent open if we - have execed. - * pinfo.cc (pinfo::thisproc): Remove pid_handle manipulations. - (pinfo::init): Don't consider a reaped process to be available. - * spawn.cc (child_info_spawn::worker): Remove pid_handle manipulations. - Make wr_proc_pipe and parent noninheritable when starting a program - which doesn't use the Cygwin DLL. Conditionally reset wr_proc_pipe to - inheritable if CreateProcess fails. Inject wr_proc_pipe handle into - non-Cygwin process. Consider a non-cygwin process to be 'synced'. - -2012-05-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: Add entry cgf-000002. - * fhandler_tty.cc (bytes_available): Revert to previous Oct-2011 - behavior where a dummy buffer is used to determine how many bytes will - be read. - (fhandler_pty_master::ioctl): Correct coercion in assignment. - -2012-05-03 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_adapters_addresses): Only create thread on affected - systems. Change comment acordingly. - * wincap.h (wincaps::has_gaa_largeaddress_bug): New element. - * wincap.cc: Implement above element throughout. - (wincap_8): New globale wincaps to support Windows 8. - (wincapc::init): Take Windows 8 into account. Set new - has_gaa_largeaddress_bug member to false on 32 bit systems. - -2012-05-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * DevNotes: New file. Add entry cgf-000001. - * sigproc.cc (proc_terminate): Don't set parent pid of child to 1 if - we've execed since the execed process is still considered the parent. - - * child_info.h: Bump copyright. - -2012-05-02 Corinna Vinschen <corinna@vinschen.de> - - * fenv.cc (fesetround): Fix test for valid input parameter. - (fesetprec): Ditto. - -2012-04-30 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (PIPE_ADD_PID): Define new flag. - * pipe.cc (fhandler_pipe::create): Don't indiscriminately add process - id to every pipe since some pipe names (fifo, tty) don't need it. - * sigproc.cc (sigproc_init): Pass PIPE_ADD_PID to fhandler_pipe::create - to ensure that pid is always part of sigwait pipe name. - -2012-04-28 Christopher Faylor <me.cygwin2012@cgf.cx> - - * environ.cc (struct parse_thing): Add "pipe_byte" option. - * globals.cc (pipe_byte): Declare. - * pipe.cc (fhandler_pipe::create): Use current process id in pipe name - rather than pid for simple name collision avoidance. Do this only once - to avoid extra overhead when a busy pipe is found. Honor pipe_byte to - create non-message pipes if set. - * sigproc.cc (sigproc_init): Use a specific name for the signal pipe. - -2012-04-27 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (find_fast_cwd_pointer): Fix for W8 CP 32 bit. - -2012-04-25 Thomas Wolff <towo@towo.net> - - * fhandler.h (class dev_console): Add member ext_mouse_mode5. - * fhandler_console.cc (fhandler_console::read): Implement extended - mouse mode 1005 (xterm, mintty). - Fix actual mouse reporting for large coordinates. - -2012-04-24 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 15. - -2012-04-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (ALT_PRESSED): Define earlier, never undefine. - (CTRL_PRESSED): Ditto. - (fhandler_console::read): Simplify expressions testing for pressed ALT - or CTRL modifier keys. - (get_nonascii_key): Ditto. - -2012-04-24 Thomas Wolff <towo@towo.net> - - * fhandler.h (class dev_console): Add members ext_mouse_mode6 and - ext_mouse_mode15. - * fhandler_console.cc (fhandler_console::read): Implement extended - mouse modes 1015 (urxvt, mintty, xterm) and 1006 (xterm). Recognize, - but don't implement extended mouse mode 1005 (xterm, mintty). - Support mouse coordinates greater than 222 (each axis). Fix formatting. - (fhandler_console::char_command): Initialize enhanced mouse reporting - modes. - -2012-04-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (fh_alloc): Only disallow opening of nonexistent on-disk - device. - * path.cc (path_conv::check): Remove PATH_KEPT_HANDLE setting. - * path.h (path_types): Remove PATH_KEPT_HANDLE. - (path_conv::kept_handle): Delete now-unneeded function. - -2012-04-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (fh_alloc): Keep fh which was flagged as error if it is for - an on-disk device and we were stating it. - * path.cc (path_conv::check): Set PATH_KEPT_HANDLE. - * path.h (path_types): Add PATH_KEPT_HANDLE. - (path_conv::kept_handle): Implement. - -2012-04-18 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (fhandler_base::nohandle): Revert to standard - implementation. - * dtable.cc (dtable::fixup_after_exec): Specifically reject releasing - nohandle() type fhandlers rather than relying on contents of io_handle. - (dtable::fixup_after_fork): Ditto. - * fhandler_termios.cc: Add includes necessary for definitions of - have_execed and have_execed_cygwin. - (fhandler_termios::sigflush): Don't flush console input when we've - started a non-Cygwin process. - -2012-04-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * wincap.h: Rename assitant to assistant throughout. - * wincap.cc: Ditto. - * devices.in (exists_console): Use fhandler_console::exists () rather - than raw test. - * devices.cc: Regenerate. - * fhandler.h (fhandler_console::exists): Define new function. - * fhandler_console.cc (fhandler_console::need_invisible): Use - fhandler_console::exists () rather than raw test. - * spawn.cc: Rename assitant to assistant throughout. - (child_info_spawn::worker): Simplify test for when to start a - non-Cygwin process in its own process group. Just do it whenever we - start a non-Cygwin process. - -2012-04-12 Christopher Faylor <me.cygwin2012@cgf.cx> - - * devices.in (exists_console): Allow /dev/con{sole,in,out} to be - referenced if a console exists. - * devices.cc: Regenerate. - * fhandler_console.cc (fhandler_console::set_unit): Ditto. - -2012-04-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fhandler_base::stat_fixup): Fix inode numbers of - non-device files in virtual fileysystems. - -2012-04-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (cygwin_attach_handle_to_fd): Defend against NULL return - from build_fh_*. - (dtable::init_std_file_from_handle): Ditto. - * mmap.cc (mmap_record::alloc_fh): Ditto. - * path.cc (path_conv::check): Ditto. - -2012-04-06 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (fhandler_base::nohandle): Implement "by hand" rather than - through macro. Set io_handle to INVALID_HANDLE_VALUE when setting flag - to true. - -2012-04-06 Christopher Faylor <me.cygwin2012@cgf.cx> - - * path.c (path_conv::check): Avoid directly referencing fields of the - dev structure when it can be easily avoided. - -2012-04-05 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 14. - -2012-04-05 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pwdgrp::read_passwd): Fix pretty_ls entry typo contain - the required number of colons. - -2012-04-04 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (fhandler_pty_common::bytes_available): Declare new - function. - (fhandler_pty_master::flush_to_slave): Ditto. - * fhandler_tty.cc (bytes_available): Define new function. - (fhandler_pty_common::bytes_available): Ditto. - (handler_pty_master::flush_to_slave): Ditto. - (fhandler_pty_master::process_slave_output): Call flush_to_slave () - here. Use bytes_available () rather than PeekNamedPipe. Clean up - sloppy logic. - (fhandler_pty_slave::read): Use bytes_available () rather than - PeekNamedPipe. - (fhandler_pty_slave::ioctl): Ditto. - (fhandler_pty_master::ioctl): Ditto. - (fhandler_pty_master::cleanup): Remove ancient #if 0. - * select.cc (peek_pipe): Call flush_to_slave whenever we're checking - for a pty master. - -2012-04-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_nodevice.cc (fhandler_nodevice::open): Convert EROFS to - ENOENT if non-existent file got opened for reading only. Explain why. - * path.cc (path_conv::check): Stick to ENOENT if file has been opened - for informational purposes only. Add to comment. - -2012-04-04 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Convert device type to FH_FS for - non-existent files on /dev, unless /dev itself doesn't exist on disk. - Add comment to explain why. - -2012-04-04 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (rvadelta): Compute max_size using SizeOfRawData rather - than VirtualSize. - -2012-04-04 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (_getpass_close_fd): New static pthread cleanup handler. - (getpass): Rework to use /dev/tty in the first place. Install - _getpass_close_fd as pthread cleanup handler. Flush prompt explicitely. - Lock input and switch off signal input handling when reading password. - -2012-04-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 13. - -2012-04-03 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fhandler_base::stat_fixup): Replace string comparison - with new device::is_dev_resident() call. - -2012-04-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * devices.h (lives_in_dev): New field. - (dev_on_fs): Set bit size. - (is_dev_resident): Define new method. - * devices.in: Use different method for labelling requested name for dev - storage: prefix it with a ='. Use an actual ':' to denote an internal - device. - (exists_console): Avoid repeated test. - (exists_ntdev_silent): Rename from the less-descriptive exists_ntdevs. - (dev_dev_storage): Delete unneeded define. - * gendevices: Add a flag to each line denoting whether the device lives - in /dev space. - (generate): Handle special ":" case here for internal devices. Parse - =something_dev as requiring a storage location. Tack the rest of the - line back onto the reformulated "$rest". - * devices.cc: Regenerate. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (device::get_device): New method. - * fhandler_dev.cc (fhandler_dev::readdir): Set st_ino to device number. - * syscalls.cc (fhandler_base::stat_fixup): Ditto. Fix link count for - CD-ROM devices. Fix typo in comment. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::stat_fixup): Rename from - fhandler_base::set_ino_and_dev. - * syscalls.cc (fhandler_base::stat_fixup): Ditto. Accommodate name - change throughout. Fixup link count of console devices. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (FH_CYGDRIVE): Define as DEV_VIRTFS_MAJOR class device. - (DEV_CYGDRIVE_MAJOR): Remove. - (iscygdrive_dev): Define. - * dtable.cc (fh_alloc): Accommodate above change. - * path.cc (path_conv::check): Use iscygdrive_dev to check for cygdrive. - * syscalls.cc (fhandler_base::set_ino_and_dev): Drop check for - DEV_CYGDRIVE_MAJOR from conditional. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (FH_DEV): Define as DEV_VIRTFS_MAJOR class device. - (DEV_DEV_MAJOR): Remove. - * dtable.cc (fh_alloc): Accommodate above change. - * syscalls.cc (set_ino_and_dev): Drop check for DEV_DEV_MAJOR from - conditional. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::set_ino_and_dev): Declare. - * syscalls.cc (fhandler_base::set_ino_and_dev): New method to set - st_ino, st_dev, and st_rdev for devices in a single spot. - (fstat64): Call fhandler_base::set_ino_and_dev instead of setting - st_ino, st_dev, and st_rdev here. - (stat_worker): Ditto. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev::open): Declare. - (fhandler_dev::close): Declare. - (fhandler_dev::fstat): Declare. - (fhandler_dev::fstatvfs): Declare. - (fhandler_cygdrive::fstatvfs): Declare. - * fhandler_dev.cc (fhandler_dev::open): New method. - (fhandler_dev::close): Ditto. - (fhandler_dev::fstat): Ditto. - (fhandler_dev::fstatvfs): Ditto. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't fill - st_rdev. - (fhandler_cygdrive::fstatvfs): New method. - * path.h (path_conv::fs_got_fs): New method. - * mount.h (fs_info::got_fs): Change type to bool, make public. - -2012-04-02 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fillout_mntent): Use "none" rather than 0 when checking - FS type. - -2012-04-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::fixup_close): Define new function. - (dtable::fixup_after_exec): Use fixup_close() and detect when it was - not possible to open an inherited file handle. - (dtable::fixup_after_fork): Defensively close any file handles which - were not, for some reason, inheritable. - * dtable.h: Make #pragma once. - (dtable::fixup_close): Declare new function. - * fhandler_console.cc (fhandler_console::set_unit): Set I/O handles to - NULL when this function fails. - -2012-04-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dev.cc (fhandler_dev::readdir): Fix formatting. Simplify - code. Use device::type() to fetch dirent compatible device type. - Add comment. - -2012-03-31 Christopher Faylor <me.cygwin2012@cgf.cx> - - * devices.h (device::exists_func): Redefine field. - (device::dev_on_fs): Remove unneeded bit field. Just make a normal - boolean. - (device::exists): Redefine function. - * devices.in: Move previous functions earlier since they are now only - defined static. Rename some functions due to an as-yet unresolved bug - in gendevices. Rename posix part of internal-only devices with a - double-slash. gendevices will eventuall translate that to a ":". - (device::parse): Rework to use dev pointer and dev_storage_end. - * devices.cc: Regenerate. - * gendevices: Translate "// to ": after shilka processing. - -2012-03-31 Corinna Vinschen <corinna@vinschen.de> - - * devices.cc: Regenerate. - * devices.h (device::exists_func): New member function pointer, - replacing noexpose. - (device::expose): Remove. - (device::exists_never): Declare. - (device::exists_ptys): Declare. - (device::exists_cons): Declare. - (device::exists_console): Declare. - (device::exists_nt_dev): Declare. - (device::exists): Declare. - * devices.in (dev_storage): Replace former noexpose values with - pointers to matching exists_XXX method. - (device::exists_never): New method. - (device::exists_ptys): New method. - (device::exists_cons): New method. - (device::exists_console): New method. - (device::exists_nt_dev): New method. - (device::exists): New method. - * fhandler_dev.cc (fhandler_dev::readdir): Replace call to - device::expose with call to device::exists and drop all further - existence filtering since it's done in device::exists now. - * path.cc (path_conv::check): Replace call to device::expose with call - to device::exists. - -2012-03-30 Christopher Faylor <me.cygwin2012@cgf.cx> - - * devices.cc: Regenerate. - * devices.h (device::noexpose): New field. - (device::dev_on_fs): Make a bit field. - (get_major): Use proper type for declaration. - (expose): New field. - (ext_dev_storage): Delete declaration. - (dev_storage_size): Ditto. - (dev_storage): New declaration. - (dev_storage_end): Ditto. - * devices.in: Mark /dev/ptym*, /dev/com*, /dev/pipe, /dev/fifo, and - "/dev" as "no expose". - * fhandler.h (fhandler_dev::lastrealpos): Delete declaration. - (fhandler_dev::devidx): Declare new field. - * fhandler_disk_file.cc: Move fhandler_dev functions into - fhandler_dev.cc. - * fhandler_dev.cc: Add includes needed for functions moved from - fhandler_disk_file.cc. - (dev_storage_scan_start): Define place to start listing devices. - (dev_storage_size): Define size of array to scan. - (fhandler_dev::fhandler_dev): Move here from fhandler_disk_file.cc. - (fhandler_dev::opendir): Ditto. - (fhandler_dev::readdir): Just check devidx for non-NULL to determine - when to go to disk for /dev content. Use dev_storage rather than - ext_dev_storage. Iterate over dev_storage using devidx pointer. Use - accessor functions rather than raw references to the device struct. - Only increment dir->__d_position when we are actually going to be - returning something. Add debug_printf for exit. - (fhandler_dev::rewinddir): Set devidx as appropriate depending on - whether there's a /dev on disk or not. - * gendevices: Don't mark dev_storage static but do put it in the _RDATA - section. - * path.cc (path_conv::check): Use new "device::expose()" function to - decide to forbid programs from referencing internal device types. - -2012-03-30 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Change description of flock restrictions. - -2012-03-30 Corinna Vinschen <corinna@vinschen.de> - - * devices.h (DEV_TTY_MAJOR): Define, use throughout where appropriate. - (DEV_VIRTFS_MAJOR): Ditto. - * fhandler_dev.cc (fhandler_dev::readdir): Add comments. Tweak tests - for invisible devices. Don't print comX devices, only ttySX. Drop - requirement to call stat64. - -2012-03-29 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add fhandler_dev.o. - * devices.h (DEV_DEV_MAJOR): Define. - (FH_DEV): Redefine in terms of DEV_DEV_MAJOR. - (ext_dev_storage): Declare. - (dev_storage_size): Declare. - (dev_dev_storage): Declare. - (dev_dev): Define. - (isdev_dev): Define. - * devices.in (dev_dev_storage): Activate. - (ext_dev_storage): Define as externally available pointer to - dev_storage. - (dev_storage_size): Define to contain number of dev_storage elements. - * dir.cc (rmdir): Handle /dev as always not empty. - * dtable.cc (fh_alloc): Handle DEV_DEV_MAJOR. - * fhandler.h (fhandler_dev): New class, derived from fhandler_disk_file. - (fhandler_union): Add fhandler_dev member. - * fhandler_disk_file.cc (class __DIR_mounts): Handle /dev directory - to make sure it always exists. - * fhandler_dev.cc: New file implementing /dev. - * globals.cc (ro_u_dev): New R/O unicode string. - * path.cc (path_conv::check): Handle FH_DEV device. - -2012-03-29 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_console.cc (fhandler_console::set_unit): Don't succeed - unless we are opening a console actually associated with this process. - -2012-03-29 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (acl32): Fix potential crash if build_fh_name returns NULL. - -2012-03-29 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (ctrl_c_handler): Don't generate a SIGINT if we've - execed a non-cygwin process. Let the Windows process deal with it - itself. - -2012-03-28 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.cc (proc_terminate): Avoid releasing myself. - -2012-03-28 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (clock_setres): Set minperiod to period. - -2012-03-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (process_tab): Add entry for mountinfo. - (format_process_mountstuff): New function, derived from - format_process_mounts. Only open another user's user_info shared - memory area if the process is owned by another user. Actually - access the opened shared user_info to get the right mount table. - For other users, don't print remote cygdrive mount points. Print - mountinfo or mounts output depending on the bool mountinfo argument. - (format_process_mounts): Just call format_process_mountstuff with - mountinfo set to false. - (format_process_mountinfo): Ditto with mountinfo set to true. - -2012-03-27 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (clock_setres): Revert previous change. - -2012-03-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_clipboard): Add fstat method. - * fhandler_clipboard.cc (cygcb_t): New type for Cygwin-specific - clipboard format. - (set_clipboard): Use new clipboard format to allow setting a timestamp. - (fhandler_dev_clipboard::fstat): New method. Read modification and - access timestamp as well as length from clipboard data. - (fhandler_dev_clipboard::read): Use new clipboard format. - -2012-03-26 Corinna Vinschen <corinna@vinschen.de> - - * hires.h (hires_ms::dmsecs): Drop unused method. - * times.cc (JITTER): Remove. - (gtod): Revert to process-local variable. - (hires_ms::nsecs): Just return system time to disallow discrepancy with - the OS. - (hires_ms::resolution): Return coarsest timer value from OS. Add - comment to explain why. - (clock_setres): Ditto. - -2012-03-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h: Reset magic number. - -2012-03-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h (child_info::postfork): Define new function. - * fork.cc (frok::parent): Call postfork to do all of the manipulation - required prior to calling pinfo::remember. - * pinfo.h (pinfo::set_rd_proc_pipe): Just set pinfo's rd_proc_pipe. - Don't bother setting it to NULL. - * sigproc.cc (child_info_spawn::wait_for_myself): Call postfork to set - up myself for waiting. - * spawn.cc (child_info_spawn::worker): Avoid now-unnecessary global - lock. Consistently test mode rather than chtype when making - wr_proc_pipe decisions. Call postfork() to set up stuff prior to - pinfo::remember. - -2012-03-21 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (well_known_dlls): Add advapi32.dll. - -2012-03-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h: Reset magic number. - (child_info_spawn::wait_for_myself): Move function to sigproc.cc. - * pinfo.cc (is_toplevel_proc): Delete unneeded variable. - * sigproc.cc (child_info_spawn::wait_for_myself): Move function from - header to here. Do all setup required to properly wait for top-level - execed process to exit. - * spawn.cc (child_info_spawn::worker): Attempt to properly handle - _P_DETACH. Set wr_proc_pipe if top-level process even when execing. - Just call wait_for_myself() to... wait for myself. Don't call cleanup - twice. - -2012-03-21 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (proc_waiter): Remove debugging. - -2012-03-20 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (set_std_handle): Call SetStdHandle with NULL if fd is - closed. - (dtable::release): "Close" standard handle if appropriate. - * dcrt0.cc (dll_crt0_0): Fix minor switch formatting problem. - * fork.cc (frok::parent): Make minor comment indentation change. - -2012-03-20 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (lseek): Fix debug output. - -2012-03-20 Christian Franke <franke@computer.org> - - * ntdll.h (SharedUserData): Add volatile qualifier. This fixes a - possible infinite loop in hires_ms::timeGetTime_ns. - -2012-03-20 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h: Fix definitions of MCAST_INCLUDE and - MCAST_EXCLUDE. - -2012-03-20 Christopher Faylor <me.cygwin2012@cgf.cx> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. - (child_info::rd_proc_pipe): Declare new field. - (child_info::wr_proc_pipe): Ditto. - (child_info::prefork): Declare new function, derived from previous - pinfo version. - * dcrt0.cc (child_info_fork::handle_fork): Close previous wr_proc_pipe - when appropriate and assign new one from passed-in child_info block. - (child_info_spawn::handle_spawn): Assign our wr_proc_pipe handle from - passed-in child_info block. - * fork.cc (child_info::prefork): Define new function. - (frok::child): Clear rd_proc_pipe and wr_proc_pipe so they will not be - closed by the child_info destructor. - (frok::parent): Use child_info prefork handling, outside of retry loop. - Set rd_proc_pipe in child's pinfo after successful CreateProcess. - Eliminate postfork call. - * globals.cc (my_wr_proc_pipe): Define/declare new variable. - * pinfo.cc (pinfo::pending_rd_proc_pipe): Delete. - (pinfo::pending_wr_proc_pipe): Ditto. - (pinfo::prefork): Ditto. - (pinfo::postfork): Ditto. - (pinfo::postexec): Ditto. - (pinfo::wait): Assume that rd_proc_pipe is set up correctly prior to - call. - (_pinfo::alert_parent): Replace "wr_proc_pipe" with "my_wr_proc_pipe". - * pinfo.h (_pinfo::_wr_proc_pipe): Delete declaration. - (_pinfo::set_rd_proc_pipe): Define new function. - (pinfo::pending_rd_proc_pipe): Delete declaration. - (pinfo::pending_wr_proc_pipe): Ditto. - (pinfo::prefork): Ditto. - (pinfo::postfork): Ditto. - (pinfo::postexec): Ditto. - (pinfo::wr_proc_pipe): Ditto. - * sigproc.cc (child_info::child_info): Clear rd_proc_pipe and - wr_proc_pipe. - (child_info::cleanup): Close rd_proc_pipe and - wr_proc_pipe if necessary. - (child_info_fork::child_info_fork): Set forker_finished to NULL by - default. - (child_info_spawn::child_info_spawn): Use my_wr_proc_pipe rather than - myself->wr_proc_pipe. - (child_info::sync): Ditto. - (child_info_spawn::cleanup): Call child_info::cleanup. - * spawn.cc (child_info_spawn::worker): Remove call to myself.prefork(). - Set wr_proc_pipe when execing or set up new rd_proc_pipe/wr_proc_pipe - via child_info::prefork when spawning. Remove call to pinfo::postexec. - Set rd_proc_pipe in child pinfo when spawning. Use my_wr_proc_pipe - rather than myself->wr_proc_pipe. Remove call to postfork. - -2012-03-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (pinfo_init): Cosmetic change: unset "destroy" for myself. - (pinfo::wait): Change some comments. - (pinfo::prefork): Move a comment. - (pinfo::postfork): Set pending_*_pipe variables to NULL if closed. - (pinfo::postexec): Use right name when closing handle. - (_pinfo::alert_parent): Ditto. - * sigproc.h (hold_everything): Remove debugging label. - -2012-03-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygserver_ipc.h: Include sigproc.h for signal_arrived declaration. - -2012-03-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygprops.h: Use #pragma once. - * mkglobals_h: Ditto for generated globals.h file. - * globals.cc: Use specific NO_GLOBALS_H flag to control inclusion of - globals.h. - * winsup.h: Honor NO_GLOBALS_H to control inclusion of globals.h. Make - clear_procimptoken extern inline so that it is only defined when - needed. - -2012-03-19 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (cancelable_wait): Don't malloc tbi, just make it a struct - on the stack to avoid memory leak. - -2012-03-19 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (pinfo::wait): Handle case where prefork was not called - prior to calling wait(). This is the case when we are reabsorbing - processes after being execed. - -2012-03-16 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fork.cc (lock_signals): Move to sigproc.h. - (lock_pthread): Ditto. - (hold_everything): Ditto. - (frok::parent): Call myself.prefork() just before calling - CreateProcess. Call myself.postfork () on function exit. - * pinfo.cc (pinfo::pending_rd_proc_pipe): Define. - (pinfo::pending_wr_proc_pipe): Ditto. - (_pinfo::dup_proc_pipe): Delete. - (pinfo::wait): Move pipe creation into pinfo::prefork. Set pipe - variables from pending_*. - (_pinfo::sync_proc_pipe): Delete. - (_pinfo::proc_pipe_owner): Ditto. - (pinfo::prefork): Define new function. - (pinfo::postfork): Ditto. - (pinfo::postexec): Ditto. - (_pinfo::alert_parent): Remove obsolete call to sync_proc_pipe. - (_pinfo::dup_proc_pipe): Delete declaration. - (_pinfo::sync_proc_pipe): Ditto. - (pinfo::pending_rd_proc_pipe): Declare. - (pinfo::pending_wr_proc_pipe): Ditto. - (pinfo::prefork): Declare new function. - (pinfo::postfork): Ditto. - (pinfo::postexec): Ditto. - (pinfo::wr_proc_pipe): Define new wrapper function. - * sigproc.h: Include "sync.h". Move locking functions from fork to - here. - * spawn.cc (child_info_spawn::worker): Delete now-unneeded requirement - to record orig_wr_proc_pipe. Call hold_everything prior to doing - anything. Call myself.prefork() if spawning. Replace wr_proc_pipe - synchronization with call to myself.postexec(). Call myself.postfork() - if not execing. - * sync.h: Replace #ifdef wrapper with "#pragma once". - -2012-03-13 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (hook_or_detect_cygwin): Change condition when to use - importRVAMaxSize or importRVASize for the mapping size. Make sure - to map never more than the section size. Change comments accordingly. - -2012-03-13 Corinna Vinschen <corinna@vinschen.de> - - * include/netdb.h (h_errno): Add self-referencing macro and comment. - -2012-03-12 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (wait_return): Add overlapped_nullread. - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Detect - zero-byte read as a special case. - (fhandler_base_overlapped::raw_read): Keep looping when zero-byte read - detected without EOF. - (fhandler_base_overlapped::raw_write): Quiet gcc warning by adding - overlapped_nullread to switch statement even though it will never - actually be hit. - -2012-03-10 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (fh_alloc): Treat pc.dev as unsigned. - * fhandler_console.cc (fhandler_console::set_unit): Use lock always to - avoid races between competing cygwin processes running on the console. - -2012-03-09 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (find_first_notloaded_dll): Fix a compiler warning. - -2012-03-09 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (rvadelta): Add parameter to return maximum available - size from start of import RVA table to end of section. - (find_first_notloaded_dll): Take big executables into account. Use - offset and size computation as in hook_or_detect_cygwin, just simpler. - (hook_or_detect_cygwin): Return NULL rather than false througout. - Change computation of required mapping size to take non-gcc compilers - into account. Explain the differences and what we do against them. - Don't alloca buf if fn is NULL. Never use buf if fn is NULL. - -2012-03-08 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (call_gaa): New thread function to call GetAdaptersAddresses. - (get_adapters_addresses): Call call_gaa. If necessary, call it as - child thread. Explain why that's necessary. - -2012-03-08 Václav Zeman <vhaisman@gmail.com> - - * path.cc (readlink): Avoid calling strlen() twice. - -2012-03-07 Corinna Vinschen <corinna@vinschen.de> - - * Throughout, replace usage of w32api's min with MIN from sys/param.h. - -2012-03-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (_pinfo::dup_proc_pipe): Reorganize to provide more - information for failing condition. - (pinfo::wait): Pass name of function to dup_proc_pipe. Eliminate error - check for dup_proc_pipe since it never actually returned an error. - * pinfo.h (_pinfo::dup_proc_pipe): Add an argument. - * spawn.cc (child_info_spawn::worker): Pass name of function to - dup_proc_pipe. - -2012-03-07 Corinna Vinschen <corinna@vinschen.de> - - * glob.cc (MAXPATHLEN): Reinstantiate with a value of 8192. - -2012-03-05 Denis Excoffier <cygwin@Denis-Excoffier.org> - - * pinfo.cc (_pinfo::dup_proc_pipe): Fix order of arguments in debug - output. - -2012-03-05 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (dll_entry): Move wincap.init call back from here... - * dcrt0.cc (dll_crt0_0): ...to here. - -2012-03-05 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (enum fcwd_version_t): Move here from path.cc. - (class fcwd_access_t): Ditto. Only declare methods. - (class cwdstuff): Move fast_cwd_ptr and fast_cwd_version from shared - DLL section here. - * path.cc: Keep fcwd_access_t method definitions. - (fcwd_access_t::fast_cwd_version): New method. - (find_fast_cwd_pointer): Change comment. Mention test on W8CP. - (cwdstuff::init): Initialize fast_cwd_ptr and fast_cwd_version. - -2012-03-05 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::operator[]): Extend comment a bit more to - explain previous patch. - -2012-03-04 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::alloc): Compare linked DLLs by basename only. - Explain why. Add code to check if a DLL with the same basename but - different path is the same DLL. Bail out if not. - (in_load_after_fork): New static NO_COPY bool to allow to differ - between linked and loaded DLL at fork. - (dll_list::load_after_fork): Set in_load_after_fork accordingly. - (dll_dllcrt0_1): Don't treat DLL as linked if in_load_after_fork is set. - Drop test for in_forkee. - -2012-03-04 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc: Revert pathname changes from 2012-02-08. - (dll_list::operator[]): Add long comment to explain the misery. - (dll_list::alloc): Skip long pathname prefix potentially returned by - GetModuleFileNameW. - * dll_init.h (dll_list::find_by_modname): Add back declaration. - -2012-03-04 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc: Bump copyright date. - -2012-03-03 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler_console.cc (fhandler_console::dup): Only set ctty when we - haven't specifically called setsid. - * fhandler_tty.cc (fhandler_pty_slave::dup): Ditto. Also add comment - documenting research into rxvt problem. - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Don't check - specifically for myself->ctty == -1. Test for > 0 as that is the - correct test. - (fhandler_termios::sigflush): Ditto. - -2012-03-02 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Reorder conditional expression to - check for DACL presence first, since otherwise dacl pointer value is - undefined. Add comment. - -2012-03-02 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Use RtlGetDaclSecurityDescriptor - rather than accessing the SECURITY_DESCRIPTOR structure directly. - Take no DACL and NULL DACL into account. - -2012-03-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::input_tcsetattr): Revert - previous patch. - (fhandler_console::open_setup): Install Ctrl-C handler here, if this - console is the controlling tty and the process hasn't been started by - a Cygwin process. - -2012-03-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc (fhandler_console::input_tcsetattr): Set the - state of the Ctrl-C handler depending on the setting of - ENABLE_PROCESSED_INPUT. - -2012-02-28 Eric Blake <eblake@redhat.com> - - * include/sys/termios.h (tcgetsid): Fix return type. - * termios.cc (tcgetsid): Likewise. - * fhandler_termios.cc (fhandler_termios::tcgetsid): Likewise. - * fhandler.h (fhandler_base): Likewise. - * fhandler.cc (fhandler_base::tcgetsid): Likewise. - -2012-02-28 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (well_known_dlls): Add shlwapi.dll. - -2012-02-27 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (dll_cmp): New comparison function for bsearch. - (well_known_dlls): New array containing well-known DLLs. - (_cygtls::call2): Add code for BLODA detection. - * net.cc (fdsock): Ditto. - -2012-02-26 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (enum settings): Add setbool. Rename justset to setdword - to avoid future problems. - (struct parse_thing): Change all justset to setbool for bool variables. - (parse_options): Add a case for setbool setting for bool variables - since justset (now setdword) always writes a DWORD value, thus - overwriting adjacent memory locations. - * external.cc (cygwin_internal): Drop extern declaration. - -2012-02-26 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (dos_file_warning): Drop declaration. - (ignore_case_with_glob): Ditto. - (allow_winsymlinks): Ditto. - (reset_com): Move definition to globals.cc. - (struct parse_thing): Add "detect_bloda" option. - * fhandler_serial.cc (fhandler_serial::open): Drop (incorrect) - declaration of reset_com. - * globals.cc (ignore_case_with_glob): Move definition into C++-only - block. - (dos_file_warning): Define. - (allow_winsymlinks): Define. - (reset_com): Define. - (detect_bloda): Define. - * path.cc (dos_file_warning): Drop definition here. - (allow_winsymlinks): Drop definition here. - -2012-02-26 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (LOCK_DIR_NAME_FMT): Define. - (LOCK_DIR_NAME_LEN): Define. - (LOCK_DIR_NAME_DEV_OFF): Define. - (LOCK_DIR_NAME_INO_OFF): Define. - (LOCK_OBJ_NAME_FMT): Define. Add comment. - (class lockf_t): Use bitsize-explicit types. Declare from_obj_name, - (class inode_t): Make use, unuse and inuse methods public. Add a - lock argument to get method declaration. - (inode_t::get): Add lock argument. Only lock node if lock arg is true. - (inode_t::inode_t): Use LOCK_DIR_NAME_FMT as format string. - (lockf_t::from_obj_name): New method to generate lockf_t content from - lock event object basename. - (inode_t::get_all_locks_list): Just call from_obj_name here and copy - result into final lockf_t. - (create_lock_obj_attr): Use LOCK_OBJ_NAME_FMT as format string. - (create_lock_in_parent): New thread function to create lockf_t - structure in parent process. - (delete_lock_in_parent): New thread function to reap stale BSD locks in - parent process. - (lockf_t::create_lock_obj): Try to duplicate lock object handle into - parent process and call create_lock_in_parent as parent remote thread. - (lockf_t::del_lock_obj): Call delete_lock_in_parent as parent remote - thread. - (fhandler_disk_file::lock): Add lock arg to inode_t::get call. - -2012-02-25 Christopher Faylor <me.cygwin2012@cgf.cx> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 12. - -2012-02-21 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (scandirat): Export. - * posix.sgml (std-gnu): Add scandirat. - * syscalls.cc (scandirat): New function. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/dirent.h (scandirat): Declare. - -2012-02-21 Corinna Vinschen <corinna@vinschen.de> - - Based on an idea from Nick Lowe <nick.lowe@gmail.com>: - * shared.cc (shared_info::init_obcaseinsensitive): Check actual state - of case sensitivity on post-Windows 2000 systems. - * wincap.h (wincaps::kernel_is_always_casesensitive): New element. - * wincap.cc: Implement above element throughout. - -2012-02-20 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (inode_t::del_my_locks): Drop useless counter lc. Close - lock object handle explicitely in case of called during fork. Add - comment to explain why. - * fork.cc (frok::child): Drop declaration of fixup_lockf_after_fork. - -2012-02-17 Corinna Vinschen <corinna@vinschen.de> - - * timer.cc (getitimer): Don't create another local ret variable in - timer_gettime calling branch. Simplify conditional since timer_gettime - always returns 0 or -1 anyway. - -2012-02-17 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (struct _PEB): Add EnvironmentUpdateCount member. - * spawn.cc (child_info_spawn::worker): Speed up job recognition. Expand - comment to explain every little detail and so we never forget. - * wincap.h (wincaps::has_program_compatibility_assitant): New element. - * wincap.cc: Implement above element throughout. - -2012-02-17 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (get_disk_type): Drop unneeded toupper call. Convert case - constants to wide chars. - -2012-02-16 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NetUseGetInfo): Define. - * fhandler_disk_file.cc (fhandler_cygdrive::opendir): Rename flptst - to drive. Call new get_disk_type function rather than is_floppy and - check SMB drives with the NetUseGetInfo function. Explain why. - * mount.cc (get_disk_type): New function to evaluate disk type from - native NT device name. - (is_floppy): Remove. - * mount.h (enum disk_type): Define. - (get_disk_type): Declare. - * path.h (is_floppy): Drop declaration. - -2012-02-15 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc: Revert change from 2012-02-13 which used the - Windows-provided stack rather than an own stack created in - CygwinCreateThread. - (struct thread_wrapper_arg): Rename commitsize to stacklimit. - (CygwinCreateThread): Rename commitsize to real_stacklimit. - -2012-02-15 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Use tmp_pathbuf for - name. - (handle_to_fn): Ditto for device. Fix size in QueryDosDeviceW call. - -2012-02-15 Christopher Faylor <me.cygwin2012@cgf.cx> - - * smallprint.cc (tmpbuf): Declare new class holding a static buffer, - protected by a lock. - (__small_vsprintf): Use tmpbuf to hold large buffer. - (__small_vswprintf): Ditto. - -2012-02-15 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lf_setlock): Add timeout variable and set before calling - WFMO. Drop debug output if process is not available. Set timeout to - 0 instead. Document timeout 0 in WFMO comment. - (lf_getblock): Drop invalid F_POSIX lock type shortcut. Only return - overlap if event is not signalled. Fix comment. - -2012-02-14 Christopher Faylor <me.cygwin2012@cgf.cx> - - * pinfo.cc (_pinfo::set_ctty): Revert 2012-02-07 change to skip - function if tty in question == our ctty. - - * syscalls.cc (setsid): Avoid two function calls. - - * dtable.cc (dtable::dup_worker): Remove debugging. - - * init.cc (search_for): Calculate for every new process rather than - using shared value. - (threadfunc_ix): Fill in for every new process rather than sing shared - value. - -2012-02-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Don't bother to - set st_nlink correctly, just set it to 1 to avoid potential network - timeouts. - -2012-02-14 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lf_setlock): Don't close waited lock object handle before - we own the node lock. Fix comment. - -2012-02-14 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_installation_root): Convert function - init_installation_root into a cygheap method. - * cygheap.h (struct init_cygheap): Move installation_root, - installation_key, and installation_key_buf from shared - .cygwin_dll_common DLL section to cygheap. Declare new method - init_installation_root. - * dtable.cc (handle_to_fn): Accommodate the move of installation strings - to the cygheap. - * external.cc (cygwin_internal): Ditto. - * fhandler_console.cc (fhandler_console::open_shared_console): Ditto. - * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Ditto. - * fhandler_tty.cc: Ditto, throughout. - * mount.cc (mount_info::init): Ditto. - * pipe.cc (fhandler_pipe::create): Ditto. - * shared.cc: Ditto, throughout. - (installation_root): Remove. - (installation_key): Move to cygheap. - (installation_key_buf): Ditto. - (installation_root_inited): Remove. - (SPIN_WAIT): Remove. - (init_installation_root): Move to cygheap. - (memory_init): Call cygheap->init_installation_root right after - cygheap->user.init. Drop call of init_installation_root function. - * shared_info.h (init_installation_root): Drop declaration. - (installation_root): Ditto. - (installation_key): Ditto. - * uinfo.cc (pwdgrp::load): Accommodate the move of installation strings - to the cygheap. - -2012-02-14 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc: Drop including unused headers. - -2012-02-13 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (struct thread_wrapper_arg): Convert char * to PBYTE. - Change related casts throughout. - (thread_wrapper): Only do the thread change if the application provided - the stack. Otherwise, just use the Windows-provided stack. Set up - POSIX guardpage here, if necessary. Move related comment from - CygwinCreateThread here. - (CygwinCreateThread): Never allocate and set up own stack here. Just - compute stack size to reserve and use value in CreateThread call if - stack hasn't been provided by the application. - -2012-02-13 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (clean): Remove non-existent regexp dir. - - * collate.h: New header. - (__collate_range_cmp): Declare. - (__collate_load_error): Define. - * glob.cc: Pull in latest version from FreeBSD. Simplify and reduce - Cygwin-specific changes. - * regex/regcomp.c: Include collate.h on Cygwin as well. - (__collate_range_cmp): Move from here... - * nlsfuncs.cc (__collate_range_cmp): ...to here. - - * miscfuncs.cc (thread_wrapper): Fix typo in comment. - (CygwinCreateThread): Take dead zone of Windows stack into account. - Change the way how the stack is commited and how to handle guardpages. - Explain how and why. - * thread.h (PTHREAD_DEFAULT_STACKSIZE): Change definition. Explain why. - -2012-02-12 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/pthread.h: Include time.h as required by POSIX. - -2012-02-12 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exception.h (stackdump): Declare. - * exceptions.cc (stackdump): Rework to perform all operations needed - for a stackdump and to avoid recursion. - (exception::handle): Use simplified stackdump interface. - * sigproc.cc (signal::exit): Ditto. Delete now, uneeded declaration. - -2012-02-11 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (DEFAULT_STACKSIZE): Remove. - (CygwinCreateThread): Simplify code by assuming that now stack-related - input values are undefined. Set stack protection to PAGE_READWRITE, - as is default on Windows. Add lengthy comment to explain POSIX - guardpage. - * thread.cc (pthread_attr::pthread_attr): Initialize stacksize as - PTHREAD_DEFAULT_STACKSIZE. Initialize guardsize as - PTHREAD_DEFAULT_GUARDSIZE. - * thread.h (PTHREAD_DEFAULT_STACKSIZE): Define. Add comment to explain. - (PTHREAD_DEFAULT_GUARDSIZE): Define. - -2012-02-10 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (DEFAULT_STACKSIZE): Set to 1 Megs. Drop comment about - RLIMIT_STACK. - - * registry.cc (get_registry_hive_path): Expect the user hive path to - be never longer than MAX_PATH. Don't prepend native NT path prefix - here. Add comment. - (load_registry_hive): Prepend native NT path prefix here. Additionally - try to load user's classes hive. - * uinfo.cc (cygheap_user::env_userprofile): Reduce size of - userprofile_env_buf to MAX_PATH. Add comment. - -2012-02-10 Christopher Faylor <me.cygwin2012@cgf.cx> - - * syscalls.cc (setsid): On second thought, in the spirit of keeping - things kludgy, set ctty to -2 here as a special flag, and... - (open): ...only eschew setting O_NOCTTY when that case is detected. - -2012-02-10 Christopher Faylor <me.cygwin2012@cgf.cx> - - * syscalls.cc (open): Semi-revert (?) to allowing open of a tty to - become controlling tty if there is no controlling tty. - -2012-02-09 Christopher Faylor <me.cygwin2012@cgf.cx> - - * exceptions.cc (setup_handler): Reduce system_printf to sigproc_printf - since it is for a transient situation which will undoubtedly be - handled. - -2012-02-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::write): Set - bytes_to_write to 0 in case it fits into the buffer, otherwise suffer - early EOF in caller. - -2012-02-09 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.h (struct dll): Re-add modname. - * dll_init.cc: Throughout, use modname where it was used before. - (dll_list::operator[]): Use modname. Move comment from dll_list::alloc - here and remove hint about GetModuleBaseNameW. - (dll_list::alloc): Store full path in name, pointer to basename in - modname. Search dll using modname. - -2012-02-08 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::init_std_file_from_handle): Reinstate opening tty - handles with O_RDWR permissions. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (__pthread_cond_wait_init): New static function replacing - __pthread_cond_dowait. Only check and potentially initialize cond and - mutex, drop call to (*cond)->wait. - (pthread_cond_timedwait): Replace call to __pthread_cond_dowait with - separate calls to __pthread_cond_wait_init and (*cond)->wait to be - able to initialize cond before accessing its clock_id member. - (pthread_cond_wait): Ditto (more or less). - -2012-02-08 Christian Franke <franke@computer.org> - - * include/sys/wait.h: Remove C++ inline functions for `union wait'. - For C++ use `void *' as __wait_status_ptr_t instead. This is less type - safe but fixes compile error on `wait(NULL)'. Remove extra `;'. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (child_info_fork::abort): Call TerminateProcess rather - than ExitProcess. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::env_userprofile): Simplify since network - drives are not supported here. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::env_userprofile): Convert native - userprofile path returned from get_registry_hive_path to Win32 path. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc: Throughout, drop usage of modname in favor of name. - (dll_list::find_by_modname): Remove. - (dll_list::alloc): Only store module basename in name. Add comment to - explain why. Simplify address check. Fix formatting in comment. - * dll_init.h (struct dll): Drop modname and find_by_modname. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::alloc): Add DLL name to fabort output. Fix - fabort string in case of bss start. - -2012-02-08 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/sysmacros.h: Include sys/types.h. - -2012-02-07 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::create_root_entry): Fix format specifier in - api_fatal message. - -2012-02-07 Corinna Vinschen <corinna@vinschen.de> - - * include/process.h: Move here from include/cygwin subdir. - * exec.cc: Change include of process.h to reflect the fact that it's - now back in include. - * spawn.cc: Ditto. - * syscalls.cc: Ditto. - -2012-02-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygheap.cc (init_cygheap::manage_console_count): Delete. - * cygheap.h (init_cygheap::manage_console_count): Ditto. - (init_cygheap::console_count): Ditto. - * fhandler.h (fhandler_console::has_a): Ditto. - (fhandler_console::free_console): Declare new function. - * fhandler_console.cc (fhandler_console::free_console): Define new - function. - (fhandler_console::open_setup): Delete call to manage_console_count. - (fhandler_console::close): Ditto. Replace with call to free_console(). - * fhandler_tty.cc (fhandler_pty_slave::open): Delete call to - manage_console_count. - (fhandler_pty_slave::cleanup): Ditto. - (fhandler_pty_slave::close): Call fhandler_console::free_console() if - this is our controlling tty. - * pinfo.cc (_pinfo::set_ctty): Skip function if tty in question == our - ctty. Delete call to manage_console_count. - - * syscalls.cc (close_all_files): Avoid locking and avoid setting errno - when iterating over fds. - -2012-02-07 Christopher Faylor <me.cygwin2012@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 11. - -2012-02-03 Václav Zeman <vhaisman@gmail.com> - - * grp.cc (pwdgrp::parse_group): Convert grp from macro to reference. - * passwd.cc (pwdgrp::parse_passwd): Ditto for res. - -2012-02-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * syscalls.cc (close_all_files): Use cygheap_fdget to manipulate - fhandler. Use debug_only_printf. - -2012-02-02 Corinna Vinschen <corinna@vinschen.de> - - Fix memory and handle leaks due to fdopendir: - * dir.cc (closedir): Call global close instead of just releasing the - fhandler. - * fhandler_disk_file.cc (fhandler_disk_file::closedir): Don't close - fhandler handle here, rely on global closedir doing the right thing. - * fhandler_registry.cc (fhandler_registry::readdir): Also delete - d_hash when closing registry key. - (fhandler_registry::rewinddir): Ditto. - - Avoid infinite recursion in VirtualStore under UAC: - * fhandler_registry.cc (VIRT_CLASSES_KEY_PREFIX): Define. - (VIRT_CLASSES_KEY_SUFFIX): Ditto. - (VIRT_CLASSES_KEY): Ditto. - (VIRT_CLASSES_LINKTGT): Ditto. - (fhandler_registry::exists): Return virt_symlink as file type if - this is a Classes key under the VirtualStore. - (fhandler_registry::fstat): Handle virt_symlink. - (fhandler_registry::readdir): Return DT_LNK as d_type if this is a - Classes key under the VirtualStore. - (fhandler_registry::fill_filebuf): Handle Classes symlink. - - Handle user impersonation in /proc/registry access: - * autoload.cc (RegOpenUserClassesRoot): Define. - (RegOpenCurrentUser): Define. - * fhandler_registry.cc (RegOpenUserClassesRoot): Declare function - missing in w32api. - (RegOpenCurrentUser): Ditto. - (fetch_hkey): New function. - (fhandler_registry::open): Call fetch_hkey to get root registry key. - (open_key): Ditto. - -2012-02-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fcntl.cc (fcntl64): Add introductory debug statement. Call dup3 - directly via dtable method to avoid over-incrementing refcnt. - -2012-02-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::dup_worker): Add comment explaining why refcnt - isn't incremented here. - (dtable::dup3): Simplify slightly. Add comment. - * syscalls.cc (dup3): Increment refcnt here, similarly to dup2. - -2012-02-01 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.cc (fhandler_base_overlapped::has_ongoing_io): Don't block - GetOverlappedResult since previous IsEventSignalled will have reset the - handle. - * select.cc (cygwin_select): Remove space before parentheses in syscall - debugging output. - (pipe_data_available): Streamline if block. - -2012-01-31 Christopher Faylor <me.cygwin2012@cgf.cx> - - * syscalls.cc (dup3): Fix debug typo. - - * fhandler.cc (flush_async_io): Assume only called for writer. Call - GetOverlappedResult directly rather than kludging call to - has_ongoing_io. - (fhandler_base_overlapped::close): Only start flush thread when closing - write handle. Only cancel I/O when reading. - -2012-01-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Fix order (DATA first). - -2012-01-27 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (is_dos_path): New macro to recognize drive letter and UNC - DOS paths. - (globify): Call is_dos_path instead of isdrive. - -2012-01-26 Christopher Faylor <me.cygwin2012@cgf.cx> - - * sigproc.cc (child_info::retry_count): Default to 1. - -2012-01-23 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (gethostid): Simplify. Just fetch MachineGuid and - create hash from there. - -2012-01-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * fhandler.h (fhandler_fifo::arm): Declare new function. - * fhandler_fifo.cc (fhandler_fifo::arm): Define new function. - (fhandler_fifo::open): Fix handling of RDWR pipes to avoid opening a - second handle. Use arm() function to set events. - (fhandler_fifo::raw_read): Correctly go into "connect again logic" when - we detect another writer is available. Use arm() function to set event. - * pipe.cc (fhandler_pipe::create): Add more detail to debugging output. - -2012-01-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygheap.h (cygheap_fdmanip::release): Simplify. - * dtable.cc (dtable::release): Make void again. Skip not_open check - since it is guaranteed to be open. Don't bother deleting here since - actual deletion will be handled in cygheap_fdget::~cygheap_fdget. - * dtable.h (dtable::release): Make void again. - * syscalls.cc (dup2): Bump fhandler use count on successful dup. - -2012-01-22 Christopher Faylor <me.cygwin2012@cgf.cx> - - * cygheap.h (cygheap_fdget::~cygheap_fdget): Simplify now that refcnt - reports reference count changes itself. - * fhandler.cc (fhandler_base::reset): Set _refcnt to 0. - * fhandler.h (fhandler_base::refcnt): Report refcnt when debugging. - - * select.cc (cygwin_select): Set return_on_signal to indicate when - select should be interrupted. - (select_stuff::wait): Keep looping unless return_on_signal is set. - * select.h (select_stuff::return_on_signal): New variable. - (select_stuff::select_stuff): Zero return_on_signal. - -2012-01-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_registry::opendir): Declare. - * fhandler_registry.cc (fhandler_registry::opendir): New function. - -2012-01-13 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/config.h (_GLIBC_EXTENSION): Define. - -2012-01-11 Christopher Faylor <me.cygwin2012@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Delete debugging. - -2012-01-11 Christopher Faylor <me.cygwin2012@cgf.cx> - - Update copyright on all files checked in so far this year. - * fhandler.h: Use #pragma once rather than ifdef guards. - (fhandler_console::tc_getpgid): Return our pgid if we have never opened - a console. - * fork.cc: Rearrange includes to accommodate fhandler.h use of pinfo.h. - * sigproc.cc: Ditto. - * spawn.cc: Ditto. - (child_info_spawn::worker): Query myself->pgid rather than calling - expensive function. - * thread.h: Use #pragma once rather than ifdef guards. - * pinfo.h: Use #pragma once rather than ifdef guards. - (pinfo::remember): Don't define if sigproc.h has not been included. - (pinfo::reattach): Ditto. - * sigproc.h: Use #pragma once rather than ifdef guards. Use different - test to see if pinfo.h has been included. - -2012-01-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/process.h: Move here from newlib. - * exec.cc: Change include of process.h to reflect the fact that it's - now in the include/cygwin subfolder. - * spawn.cc: Ditto. - * syscalls.cc: Ditto. - -2012-01-09 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (thread_wrapper): Make sure stack is 16 byte aligned - to make gcc-3 compiled pthread applications happy. - -2012-01-08 Christopher Faylor <me.cygwin2012@cgf.cx> - - * dtable.cc (dtable::stdio_init): Always initialize console when we - have one. - * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Use a better - method to print tty name for debugging. - (fhandler_termios::bg_check): Ditto. - * pinfo.cc (_pinfo::set_ctty): Remove leftover debugging stuff. - Simplify behavior when setting tty's sid and pgid to avoid overwriting - previously set values. - - * spawn.cc (ch_spawn): Cosmetic change. - -2012-01-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (pthread_sigqueue): Export. - * posix.sgml (std-gnu): Add pthread_sigqueue. - * thread.cc (pthread_sigqueue): New function. - * thread.h (pthread_sigqueue): New function. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2012-01-02 Christopher Faylor <me.cygwin2012@cgf.cx> - - * path.cc (get_current_dir_name): Avoid memory leak. Don't return PWD - contents if directory doesn't actually exist. - -2012-01-01 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin.din (get_current_dir_name): Export. - * path.cc (get_current_dir_name): New function. - * posix.sgml (std-gnu): Add get_current_dir_name. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. diff --git a/winsup/cygwin/ChangeLog-2013 b/winsup/cygwin/ChangeLog-2013 deleted file mode 100644 index 574984e3c..000000000 --- a/winsup/cygwin/ChangeLog-2013 +++ /dev/null @@ -1,2078 +0,0 @@ -2013-12-31 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler_console.cc (region_split): New function. - (delta): Ditto. - (ReadConsoleOutputWrapper): Ditto. - (fhandler_console::char_command): Use ReadConsoleOutputWrapper to avoid - OOM condition from ReadConsoleOutputW. Add more debugging. - -2013-12-22 Christopher Faylor <me.cygwin2013@cgf.cx> - - * strace.cc (strace::vsprntf): Fix potential (if unlikely) use of - uninitialized variable. - -2013-12-18 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Remove NtSetTimerResolution. - * pinfo.cc (pinfo::init): Increase wait interval when waiting for - procinfo to stabilize. - -2013-12-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * autoload.cc (timeBeginPeriod): Delete. - * dcrt0.cc (dll_crt0_1): Use NtSetTimerResolution rather than - timeBeginPeriod. - -2013-12-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * autoload.cc (timeBeginPeriod): Autoload. - * dcrt0.cc (dll_crt0_1): Use timeBeginPeriod to set default resolution - to 1 ms. - * pinfo.cc (pinfo::thisproc): Set ppid for redirected _pinfo blocks too. - (pinfo::init): Avoid using VirtualQuery. Just rely on the assumption that - procinfo will be populated. - * pinfo.h (_pinfo::ppid): Move into redirected block. - -2013-12-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * external.cc (fillout_pinfo): Remove nonsensical loop. - * fork.cc (frok::parent): When initializing pinfo for child new PID_NEW - flag + actual defined constant rather than raw number. Don't set - start_time here. - * pinfo.cc (pinfo::thisproc): Use PID_NEW when initializing pinfo. - Avoid checking h for NULL multiple times. Don't set start_time here. - (pinfo_init): Aways set ppid last. Tweak strace output. - (pinfo::init): Handle new PID_NEW flag. Wait for shared memory to - contain useful information. Set start_time if PID_NEW. - (_onreturn:h): Define as HANDLE rather than HANDLE *. - (_onreturn::~onreturn): Accommodate h definition change. - (_onreturn::no_close_handle): Rename from no_close_p_handle. Take a - pinfo arg and set hProcess to h before zeroing. - (winpids::add): Don't open a handle to our own process. Change logic - associated with when a handle gets closed. Accommodate no_close_handle - changes. - (winpids::enum_processes): Simplify process enumeration loop. - (winpids::set): Eliminate ill-considered malloc locking. - * sigproc.cc (proc_subproc): Always set ppid last. - -2013-12-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (sig_send): Set PIPE_NOWAIT for pipes which are not us. - -2013-12-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler.h (fhandler_pty_master::~fhandler_pty_master): Delete. - * fhandler_tty.cc (fhandler_pty_master::~fhandler_pty_master): Ditto. - -2013-12-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (NT_TRANSACTIONAL_ERROR): Define. - (stop_transaction): Take "trans" HANDLE by reference and set it to - NULL after closing it. - (unlink_nt): If NtOpenFile fails due to a transactional error, stop - transaction and retry NtOpenFile. Simplify check for having to call - stop_transaction. - (rename): If NtOpenFile fails due to a transactional error, stop - transaction and retry NtOpenFile in both affected cases. Simplify check - for having to call stop_transaction and add comment from unlink_nt. - -2013-12-11 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Fix formatting. - -2013-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_clipboard): Add private member - cygnativeformat. Declare private method set_clipboard. - * fhandler_clipboard.cc (cygnativeformat): Convert static variable to - fhandler_dev_clipboard member. - (fhandler_dev_clipboard::set_clipboard): Convert from static function - to fhandler_dev_clipboard method. - -2013-12-09 Christopher Faylor <me.cygwin2013@cgf.cx> - - * globals.cc (hntdll): Define/declare. - * exceptions.cc (inside_kernel): Don't call GetModuleFileName if we - know we're in ntdll. - * sigproc.cc (wait_sig): Initialize hntdll. - -2013-12-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/stdlib.h (initstate, random, setstate, srandom): - Harden _XOPEN_SOURCE guard against applications defining _XOPEN_SOURCE - with empty value. - -2013-12-08 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 28. - -2013-12-07 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_native): Workaround Windows 8.1 bug: Drop long path - prefix from symlink target path. Add comment to explain why. - -2013-12-06 Christopher Faylor <me.cygwin2013@cgf.cx> - - * syscalls.cc (dup): Use cygheap_fdnew properly. - -2013-12-05 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygheap.h (cygheap_fdnew): Avoid setting errno directly since it will - have been set by a previous function. - * dtable.h (dtable::extend): Accept second size_t argument. - * dtable.cc (dtable::extend): Accept second "min" argument which allows - checking for OPEN_MAX_MAX boundary conditions. - (dtable_init): Accommodate second argument to dtable::extend. - (dtable::find_unused_handle): Ditto. - * syscalls.cc (setdtablesize): Ditto. - (dup): Return any error passed by cygheap_fdnew() directly. - (getdtablesize): Just return dtable size directly. - -2013-12-04 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dtable.cc (dtable::find_unused_handle): When extending, always make - sure that there is a NOFILE_INCR chunk following the free fd. - -2013-12-03 Christopher Faylor <me.cygwin2013@cgf.cx> - - * select.cc (select): Add workaround for, as yet undebugged, - pathological case. - -2013-12-01 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dtable.cc (dtable::find_unused_handle): Break out of the right loop. - -2013-12-01 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dtable.cc (dtable::find_unused_handle): Fix off-by-one error. Always - exit through the bottom. - (cygwin_attach_handle_to_fd): Make sure that fd tab is locked for the - duration of this function. - * dtable.h (dtable::lock): Make public. - (dtable::unlock): Ditto. - (dtable): Remove friends. - -2013-12-01 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::extend): Change local variable new_size to size_t - as well. - - * thread.cc: Fix comment. - -2013-11-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dtable.h (dtable::first_fd_for_open): Change declaration to size_t. - (dtable::extend): Change parameter to size_t. - (dtable::find_unused_handle): Ditto. - * dtable.cc: Remove now-unused header. - (dtable::extend): Remove pointless test. Change parameter to size_t. - (dtable::find_unused_handle): Rework to avoid MAX calculation in - extend() call. Change parameter to size_t. - -2013-11-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dtable.cc (build_fh_pc): When creating an archetype, use native name - rather than unix name if name doesn't exist. - -2013-11-29 Christopher Faylor <me.cygwin2013@cgf.cx> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 27. - -2013-11-29 Jon TURNEY <jon.turney@dronecode.org.uk> - - * include/cygwin/stdlib.h (initstate, random, setstate, srandom): - Prototype if not __STRICT_ANSI__ or _XOPEN_SOURCE is defined - appropriately. - -2013-11-28 Alexey Pavlov <alexpux@gmail.com> - - * include/glob.h: Fix invalid use of 'restrict' error. - -2013-11-27 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Enhance debug output in case reopen fails. - -2013-11-27 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Drop fh_dup, reuse tmp_fh instead. - -2013-11-27 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (try_to_bin): Take additional parameter to get file open - flags. If the file to move to the bin has been opened casesensitive, - reopen it caseinsensitive. Explain why. Revert the default name of - the Vista-and-later recycler to mixed case for readability. - (unlink_nt): Call try_to_bin with file open flags as evaluated. - -2013-11-26 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (wcscoll): Add "__restrict" to definition. - (wcsxfrm): Ditto. - -2013-11-26 Corinna Vinschen <corinna@vinschen.de> - - * common.din: Export posix_spawn[...] functions. - * exec.cc (execve): Add EXPORT_ALIAS _execve. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * posix.sgml (std-susv4): Add posix_spawn[...] here. - (std-notimpl): Drop here. - -2013-11-26 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (strcoll): Add "__restrict" to definition. - (strxfrm): Ditto. - -2013-11-25 Corinna Vinschen <corinna@vinschen.de> - - Throughout, keep function definitions and declarations in sync with - newlib in terms of C99 "restrict" keyword. - -2013-11-24 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc: Include sys/param.h for MAX definition. - -2013-11-24 Corinna Vinschen <corinna@vinschen.de> - - Throughout, drop unnecessary explicit includes of windows header files - included by default. - * winlean.h: Add long comment to explain why we have to define certain - symbols. - (_NORMALIZE_): Define. - (_WINNLS_): Drop definition and subsequent undef. - (_WINNETWK_): Ditto. - (_WINSVC_): Ditto. - -2013-11-23 Eric Blake <eblake@redhat.com> - - dup2: fix off-by-one crash - * dtable.cc (dup3): Fix off-by-one. - (find_unused_handle): Reduce time spent expanding during dup. - * syscalls.cc (setdtablesize): Report error on invalid value. - -2013-11-20 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/stdlib.h (realpath): Drop declaration. It's declared - in newlib's stdlib.h now. - -2013-11-19 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (RtlGetVersion): Declare. - * wincap.cc (wincapc::init): Rather than GetVersionEx, call - RtlGetVersion which is not crippled by missing Windows 8.1 manifest. - * wincap.h (wincapc): Change type of version to RTL_OSVERSIONINFOEXW. - Align formatting of all class members. - -2013-11-19 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Revert previous change. It's not working. - -2013-11-19 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getaddrinfo): Fix a comment. Only memset whints if - hints is NULL. Add a comment and set whints.ai_family explicitely to - AF_UNSPEC to follow glibc man page closely. Check flags against whints - for locality. - -2013-11-19 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincapc::init): Fix dwMinorVersion for Windows 8.1 and - Server 2012. Explain why this is necessary. - -2013-11-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (IdnToAscii): Define. - (IdnToUnicode): Define. - (FreeAddrInfoW): Define. - (GetAddrInfoW): Define. - (GetNameInfoW): Define. - * net.cc: Drop W. Richard STEVENS libgai implementation. - (cygwin_freeaddrinfo): Move code from ipv4_freeaddrinfo here. Move - definition up in file to avoid forward declaration in ga_duplist. - (ga_dup): Take addrinfoW as input. Add parameters to get IDN flags - and to set error value. Handle IDN flags and especially AI_CANONIDN. - Convert input wchar_t ai_canonname string to multibyte for output. - (ga_duplist): Add parameters to get IDN flags and to set error value - and propagate to ga_dup. Call cygwin_freeaddrinfo. - (gai_errmap): Add comments. Align error strings to GLibc. Add - EAI_IDN_ENCODE entry. - (get_ipv6_funcs): Remove. - (load_ipv6_guard): Remove. - (ipv6_inited): Remove. - (load_ipv6): Remove. - (load_ipv6_funcs): Remove. - (cygwin_getaddrinfo): Drop calling load_ipv6. Handle AI_IDN* flags. - Convert input strings to wchar_t and call GetAddrInfoW/FreeAddrInfoW. - In case hints is NULL, set default ai_flags explicitely to - AI_V4MAPPED | AI_ADDRCONFIG, as documented for Glibc. Only add AI_ALL - if AI_ADDRCONFIG is not given. Unconditionally add Windows-specific - AI_DISABLE_IDN_ENCODING to ai_flags to make IDN behaviour compatible - to Glibc even on Windows 8 and later. - (cygwin_getnameinfo): Drop calling load_ipv6. Handle NI_IDN* flags. - Call GetNameInfoW and convert returned strings from wchar_t to - multibyte. - * include/netdb.h: Add comments to describe flags and error values. - (AI_*): Define all flags using hex values for clearness. - (AI_IDN): Define. - (AI_CANONIDN): Define. - (AI_IDN_ALLOW_UNASSIGNED): Define. - (AI_IDN_USE_STD3_ASCII_RULES): Define. - (NI_*): Define all flags using hex values for clearness. - (NI_IDN): Define. - (NI_IDN_ALLOW_UNASSIGNED): Define. - (NI_IDN_USE_STD3_ASCII_RULES): Define. - (EAI_IDN_ENCODE): Define. - -2013-11-06 Christopher Faylor <me.cygwin2013@cgf.cx> - - * configure.ac: Detect windows headers/libs after we've figured out the - C compiler. - * configure: Regenerate. - * aclocal.m4: Regenerate. - -2013-10-30 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_cygdrive_storage): Revert mapping to \Device\Null. - (dev_storage): Ditto for /dev. - * devices.cc: Regenerate. - * fhandler.cc (fhandler_base::open_null): New method to open a fake - \Device\Null handler. - (fhandler_base::open): Fix formatting. Change O_ACCMODE test to a - switch statement. Simplify a test which still tested for a now unused - create_disposition. - * fhandler.h (fhandler_base::open_null): Declare. - (fhandler_netdrive::close): Declare. - * fhandler_dev.cc (fhandler_dev::open): Open fake \Device\Null handle - by just calling new open_null method. - * fhandler_disk_file.cc (fhandler_cygdrive::open): Ditto. - * fhandler_netdrive.cc (fhandler_netdrive::open): Call open_null - rather than setting nohandle. - (fhandler_netdrive::close): New method. - * fhandler_registry.cc (fetch_hkey): Fix token in RegOpenUserClassesRoot - call. Create valid key for HKEY_CURRENT_CONFIG by mapping to real key - HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current. - (fhandler_registry::open): Set nohandle only when using pseudo registry - handle. - * fhandler_virtual.cc (fhandler_virtual::opendir): Call open rather - than just setting nohandle here. - * fhandler_virtual::fstatvfs): Set ST_RDONLY fs flag. - * globals.cc (ro_u_null): New readonly UNICODE_STRING for \Device\Null. - * path.h (path_conv::set_path): Revert previous change caring for - wide_path. - -2013-10-30 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_cygdrive_storage): Map to \Device\Null. - (dev_storage): Map /dev and /dev/windows to \Device\Null. - * devices.cc: Regenerate. - * dir.cc (opendir): Create unique id. Explain why. - * fhandler.h (fhandler_dev::get_dev): Implement inline. - (fhandler_cygdrive::close): Drop declaration. - (fhandler_cygdrive::get_dev): Implement inline. - (fhandler_windows::get_hwnd): Ditto. - (fhandler_windows::set_close_on_exec): Drop declaration. - (fhandler_windows::fixup_after_fork): Ditto. - * fhandler_dev.cc (fhandler_dev::open): Call fhandler_disk_file::open - without O_CREAT flag. Explain why. Create \Device\Null handle if - /dev/ doesn't actually exist. - (fhandler_dev::close): Drop nohandle case. - (fhandler_dev::fstatvfs): Drop nohandle check. Test for fs_got_fs - instead. Set ST_RDONLY fs flag for simulated /dev. - (fhandler_dev::opendir): If /dev doesn't exist, call open() to create - fake \Device\Null handle. Don't set nohandle. Set dir_exists - correctly. - (fhandler_dev::rewinddir): Call fhandler_disk_file::rewinddir only if - /dev is a real directory. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): If called for - the cygdrive dir, call open() to create fake \Device\Null handle. - Only attach __DIR_mounts buffer to dir if not called for cygdrive dir. - Don't set nohandle. - (fhandler_cygdrive::open): Create \Device\Null handle. - (fhandler_cygdrive::close): Remove. - (fhandler_cygdrive::fstatvfs): Set ST_RDONLY fs flag. - * fhandler_windows.cc (fhandler_windows::open): Create \Device\Null - handle. - (fhandler_windows::read): Don't add io_handle to WFMO handle array. - Change subsequent test for return value accordingly. Fix test for - "message arrived". - (fhandler_windows::set_close_on_exec): Remove. - (fhandler_windows::fixup_after_fork): Remove. - * path.h (path_conv::set_path): Make sure wide_path is NULL when - setting a new path. - * select.cc (peek_windows): Use correct hWnd value, not io_handle. - (fhandler_windows::select_read): Don't use io_handle as wait object. - (fhandler_windows::select_write): Ditto. - (fhandler_windows::select_except): Ditto. - -2013-10-27 Corinna Vinschen <corinna@vinschen.de> - - * exception.h: Fold in content of include/exceptions.h. - * include/exceptions.h: Remove. - -2013-10-26 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_storage): Map /dev/dsp to \Device\Null. - * devices.cc: Regenerate. - * fhandler_dsp.cc (fhandler_dev_dsp::open): Call fhandler_base::open. - (fhandler_dev_dsp::close): Call fhandler_base::close. - (fhandler_dev_dsp::fixup_after_fork): Call - fhandler_base::fixup_after_fork. - - * fhandler_raw.cc (fhandler_dev_raw::fixup_after_fork): Call - fhandler_base::fixup_after_fork. - -2013-10-26 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (_exception_list): Drop redefinition for x86_64. - * include/exceptions.h: Disable content for x86_64 since it's not - using frame based exception handling anymore. - -2013-10-25 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (fhandler_base::lock): Only refuse to lock nohandle and - old-style console devices when called to perform BSD flock locking. - Add a FIXME to comment and align description. - - * ntdll.h (THREADINFOCLASS): Following MSDN, rename throughout from - THREAD_INFORMATION_CLASS. - -2013-10-25 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_storage): Map /dev/clipboard to \Device\Null. - * devices.cc: Regenerate. - * fhandler.h (fhandler_dev_clipboard::open): Drop declaration. - * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Drop call to - open. Set private members to 0 and call fhandler_base::dup. - (fhandler_dev_clipboard::open): Remove so that default - fhandler_base::open is used to open \Device\Null. - (set_clipboard): Drop gratuitios call to RegisterClipboardFormatW. - (fhandler_dev_clipboard::close): Call fhandler_base::close from here. - -2013-10-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_fs): Fix comment. - -2013-10-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_clipboard.cc (fhandler_dev_clipboard::open): Drop gratuitios - handling of membuffer. It's NULL anyway. - (fhandler_dev_clipboard::lseek): Set membuffer to NULL after freeing - it to avoid subsequent crashes when accessing invalid pointer. - -2013-10-25 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_storage): Map /dev/random and /dev/urandom to - \Device\Null. - * devices.cc: Regenerate. - * fhandler.h (fhandler_dev_random::open): Drop declaration. - (fhandler_dev_random::close): Ditto. - (fhandler_dev_random::crypt_gen_random): Convert to static method. - * fhandler_random.cc (fhandler_dev_random::open): Remove so that default - fhandler_base::open is used to open \Device\Null. - (fhandler_dev_random::close): Ditto. - * fhandler_socket.cc (entropy_source): Delete. - (fhandler_socket::af_local_set_secret): Remove entropy_source code and - call fhandler_dev_random::crypt_gen_random directly instead. - -2013-10-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_dev_zero::lseek): Convert to inline method. - (class fhandler_dev_random): Drop dummy_offset. - (fhandler_dev_random::lseek): Convert to inline method. - (fhandler_dev_dsp::lseek): Ditto. - * fhandler_dsp.cc (fhandler_dev_dsp::lseek): Drop here. - * fhandler_random.cc (fhandler_dev_random::open): Drop setting - dummy_offset. - (fhandler_dev_random::lseek): Drop here. - * fhandler_tape.cc (fhandler_dev_tape::lseek): Make no-op, but keep - old code for reference. - * fhandler_zero.cc (fhandler_dev_zero::lseek): Drop here. - -2013-10-24 Christopher Faylor <me.cygwin2013@cgf.cx> - - * external.cc (fillout_pinfo): If start_time is 0, wait a while before - returning the pinfo structure. - - * fhandler.cc (fhandler_base::open_setup): Convert from inline. - * fhandler.h (fhandler_base::open_setup): Declare. - * fhandler_console.cc (fhandler_console::open_setup): Always call - fhandler_base::open_setup. - * fhandler_tty.cc (fhandler_pty_slave::open_setup): Ditto. - (fhandler_pty_master::open_setup): Ditto. - -2013-10-24 Corinna Vinschen <corinna@vinschen.de> - - * devices.in (dev_storage): Map /dev/zero and /dev/full to \Device\Null. - * devices.cc: Regenerate. - * dtable.h (struct dtable): Make fhandler_base friend, rather - than fhandler_disk_file. - * fhandler.cc (fhandler_base::open_with_arch): Create unique id. - (fhandler_base::cleanup): Call del_my_locks. - (fhandler_base::fcntl): Handle F_GETLK, F_SETLK and F_SETLKW. - * fhandler.h (fhandler_base::get_dev): Return real device number. - (fhandler_base::set_unique_id): New inline method. - (fhandler_disk_file::lock): Drop declaration. - (fhandler_disk_file::get_dev): New method, return pc.fs_serial_number. - (fhandler_dev_zero::open): Drop declaration. - * fhandler_disk_file.cc (fhandler_disk_file::close): Move - del_my_locks call to fhandler_base::open_with_arch. - (fhandler_disk_file::fcntl): Move handling of locking commands to - fhandler_base::fcntl. - (fhandler_base::open_fs): Drop call to NtAllocateLocallyUniqueId. - * fhandler_zero.cc (fhandler_dev_zero::open): Remove so that default - fhandler_base::open is used to open \Device\Null. - * flock.cc (fixup_lockf_after_exec): Finding a single fhandler is - enough here. - (fhandler_base::lock): Replace fhandler_disk_file::lock. Refuse to lock - nohandle devices. Handle read/write test using POSIX flags. Explain - why. Never fail on SEEK_CUR or SEEK_END, rather assume position 0, - just as Linux. - * net.cc (fdsock): Create unique id. - -2013-10-23 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (_READ_WRITE_BUFSIZE_TYPE): Define. - -2013-10-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fstat): Drop FH_FULL case to align - /dev/full permissions to Linux. - -2013-10-22 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler.h (fhandler_base::cleanup): Mark as extern rather than - inline. - * fhandler_base.cc (fhandler_base::cleanup): Define. - * fhandler_tty.cc (fhandler_pty_slave::cleanup): Call fhandler_base::cleanup. - (fhandler_pty_master::cleanup): Ditto. - -2013-10-18 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler_termios.cc (tty_min::kill_pgrp): Don't send a signal to - myself if this process is exiting. - -2013-10-18 Christopher Faylor <me.cygwin2013@cgf.cx> - - * tty.cc (tty_list::allocate): Set sid to 0 rather than -1 since -1 is - an error condition. - -2013-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_ctty): Fix random content of - /proc/$PID/ctty if the process has no controlling tty. Set to just - "\n" instead. - -2013-10-15 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CryptAcquireContextW): Remove. - (CryptGenRandom): Remove. - (CryptReleaseContext): Remove. - (SystemFunction036): Define. Add comment to explain that this is - actually the RtlGenRandom function. - * fhandler.h (class fhandler_dev_random): Drop crypt_prov member. - (fhandler_dev_random::fhandler_dev_random): Define inline. - (fhandler_dev_random::dup): Drop declaration. - * fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Remove - here. - (fhandler_dev_random::crypt_gen_random): Use RtlGenRandom to drop - dependency to old Crypto API. - (fhandler_dev_random::read): Implement an enhanced version of reading - random bytes from RtlGenRandom for the sake of a better /dev/random - emulation. - (fhandler_dev_random::close): Just return 0 since crypt_prov doesn't - exisyt anymore. - (fhandler_dev_random::dup): Drop entirely for the same reason. - -2013-10-15 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (mmap64): Convert pagesize from DWORD to size_t to avoid - a rounding error for allocations beyond 4 Gigs. - -2013-10-05 Christopher Faylor <me.cygwin2013@cgf.cx> - - * ntdll.h: Guard against new header files. - -2013-09-25 Christopher Faylor <me.cygwin2013@cgf.cx> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 26. - -2013-09-25 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.h (hold_everything::ischild): Declare as reference. - (hold_everything::hold_everything): Store address of caller's notion of - "ischild". - -2013-09-25 Christopher Faylor <me.cygwin2013@cgf.cx> - Paul Kunysch <paul.kunysch@emsys.de> - - * thread.cc (semaphore::_getvalue): Set *sval as appropriate. Set - errno and return -1 on error. - -2013-08-31 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Belatedly bump - to 25. - -2013-08-31 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (RAISEHEAP_SIZE): New definition. - (user_heap_info::sbrk): Make failed commit an error condition again. - Only reserve RAISEHEAP_SIZE sized chunk for further heap reservations - by default. - -2013-08-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygheap.h (user_heap_info::sbrk): Declare new function. - (user_heap_info::init): Ditto. - * heap.cc (user_heap_info::init): Rename from heap_init(). Avoid - explictly using cygheap->user_heap. - (sbrk): Use user_heap_info method via cygheap->user_heap. - (user_heap_info::sbrk): Renamed from sbrk(). Eliminate explicit use of - cygheap->user_heap. Change some pointer arithmetic to use (char *) for - consistency. - * shared.cc (shared_info::initialize): Change heap_init call to - cygheap->user_heap.init. - -2013-08-30 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (sbrk): Add a FIXME comment to VirtualFree call. Fix memory - reservation and commit strategy when more memory is requested than - available on the heap. Release newly reserved memory if commiting - it fails. Add more comments to explain what we do. - -2013-08-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::open): Handle bus reset gracefully - after opening the device. - -2013-08-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (pending_signals::add): Properly maintain linked list. - (wait_sig): Use already calculated 'next' element when signal is - blocked. - -2013-08-26 Corinna Vinschen <corinna@vinschen.de> - - * mtinfo.h (class mtinfo_part): Change type of block numbers to int64_t. - (mtinfo_part::initialize): Ditto for nblock parameter in declaration. - (class mtinfo_drive): Change type of block number to int64_t. Change - all parameters indicating a block number to int64_t in method - declarations. - * fhandler_tape.cc (mtinfo_part::initialize): Ditto in definition. - (mtinfo_drive::get_pos): Ditto. Replace low and high with a - ULARGE_INTEGER and use it's components in call to GetTapePosition. - Store full value in block. - (mtinfo_drive::_set_pos): Change type of count parameter to int64_t. - Change call to SetTapePosition accordingly. - (mtinfo_drive::set_pos): Change type of count parameter to int64_t. - Change local variables holding block numbers accordingly. - (mtinfo_drive::get_status): Don't bail out early if fetching media - parameters fails. - (mtinfo_drive::ioctl): Add explicit cast matching receiving type in - MTTELL and MTIOCPOS calls. - -2013-08-23 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lockf_t::from_obj_name): Fix test for valid pid. - -2013-08-23 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (child_info_spawn): Revert previous change. Always set - lpReserved2. - -2013-08-23 Christopher Faylor <me.cygwin2013@cgf.cx> - - * child_info.h (PROC_MAGIC_GENERIC): Define differently for x86 vs. - x86_64. - -2013-08-23 Corinna Vinschen <corinna@vinschen.de> - - * path.h (enum path_types): Drop definition of PATH_64BITEXEC. - (path_conv::iscygexec32): Drop unused inline function. - (path_conv::iscygexec64): Ditto. - (path_conv::set_cygexec): Remove unnecessary setting of PATH_64BITEXEC. - * spawn.cc (child_info_spawn::worker): Disable setting of - STARTUPINFOW::lpReserved2 and STARTUPINFOW::cbReserved2 for non-Cygwin - child processes. Explain why. - -2013-08-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::create_partitions): Allow partitioning - of drives supporting select partitions. - (mtinfo_drive::get_status): Fill in current partition and number of - partitions on tape into mt_resid. - * include/cygwin/mtio.h (struct mtget): Align mt_resid comment to - aforementioned change. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2013-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::create_partitions): Fix long-standing - bug disabling creation of two partitions on drives supporting initiator - partitions. - (mtinfo_drive::set_blocksize): Update media information after setting - blocksize succeeded. - (mtinfo_drive::get_status): Fetch fresh media information. - -2013-08-19 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: Regenerate. - * nlsfuncs.cc (__get_lcid_from_locale): Update list of Script-only - locales to Windows 8. - (__set_charset_from_locale): Take locales added with Windows 8 and 8.1 - into account. - -2013-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (mtinfo_drive::set_pos): Remove unneeded linebreak. - (mtinfo_drive::get_status): Drop using get_ll when it's not required. - -2013-08-14 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h (struct per_process): Add posix_memalign. Reduce - size of unused2 accordingly. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Initialize - u->posix_memalign with address of posix_memalign. - * malloc_wrapper.cc (posix_memalign): Call user-provided posix_memalign - rather than just returning ENOSYS. - * globals.cc (__cygwin_user_data): Initialize posix_memalign member. - -2013-08-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 24. - -2013-08-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::open_fs): Fix indentation. - -2013-07-31 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler_tty.cc: Revert accidental checkin. - * update-copyright: Ditto. - -2013-07-31 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygheap.cc (cmalloc): Use size_t for size field. - (cmalloc_abort): Ditto. - (crealloc): Ditto. - (crealloc_abort): Ditto. - (ccalloc): Ditto. - (ccalloc_abort): Ditto. - * cygheap_malloc.h (HEAP_USER): Add. - (cmalloc): Use size_t for size field in declaration. - (cmalloc_abort): Ditto. - (crealloc): Ditto. - (crealloc_abort): Ditto. - (ccalloc): Ditto. - (ccalloc_abort): Ditto. - -2013-07-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Don't check existence of / or // dir - in parent dir check. - -2013-07-26 Christopher Faylor <me.cygwin2013@cgf.cx> - - * environ.cc (tty_is_gone): Delete. - (known): Delete tty, add wincmdln. - * globals.cc: Reorganize list of environment bools, remove explicit = - false for slight load time optimization. - (wincmdln): New global. - * spawn.cc (child_info_spawn::worker): Honor wincmdln. - -2013-07-23 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (struct _SEMAPHORE_BASIC_INFORMATION): Define. - (enum _SEMAPHORE_INFORMATION_CLASS): Define. - (NtQuerySemaphore): Declare. - * thread.h (class semaphore): Add member startvalue. - (semaphore::fixup_before_fork): New inline method. - (semaphore::_fixup_before_fork): Declare. - * thread.cc (MTinterface::fixup_before_fork): Additionally call - semaphore::fixup_before_fork. - (semaphore::semaphore): Set currentvalue to -1. Set startvalue to - incoming initializer value. - (semaphore::_getvalue): Just query semaphore using NtQuerySemaphore - rather then using WFSO/Release. - (semaphore::_post): Drop setting currentvalue. It's not thread-safe. - (semaphore::_trywait): Ditto. - (semaphore::_timedwait): Ditto. - (semaphore::_wait): Ditto. - (semaphore::_fixup_before_fork): New method, setting currentvalue from - actual windows semaphore right before fork. - (semaphore::_fixup_after_fork): Drop kludge from 2013-07-10. Drop - FIXME comment. - -2013-07-23 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (well_known_dlls): Add kernelbase.dll. - -2013-07-22 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 23. - -2013-07-21 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (wgetnext): Add a kludge to be more glibc compatible. - Add comment to explain. - -2013-07-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (signal_exit): Remove comment. Use - __builtin_frame_address. - -2013-07-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (signal_exit): Nope. Nevermind. Dump core - unconditionally. - -2013-07-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (signal_exit): Add a FIXME comment. - -2013-07-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (signal_exit): Only dump core when it's a "kernel" - signal. Only use RtlCaptureContext on x86_64. It doesn't seem to do - what's expected on x86. - -2013-07-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Reinstate using temp buffer for - wide character command-line storage. Use wcs method to convert command - line. - * winf.h (lb_wcs): Delete. - (linebuf::wcs): Implement new single-argument method. - -2013-07-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * lib/libcmain.c (main): Don't point to last quoted character if the - only thing in the buffer is the program name. - -2013-07-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * common.din: Export GetCommandLine{A,W}. - * kernel32.cc: Add includes needed for GetCommandLine functions. - (ucmd): New function. - (cygwin_GetCommandLineW): Ditto. - (cygwin_GetCommandLineA): Ditto. - * spawn.cc (child_info_spawn::worker): Rename one_line -> cmd. Use - lb_wcs macro to generate a wide character version of the line buffer. - Remove duplicate printing of command line. Don't access members of - linebuf directly. - * winf.h: Use pragma once. - (linebuf): Make storage private. - (linebuf::operator size_t): New operator. Return size of buf. - (linebuf::operator wchar_t): New operator. - (linebuf::wcs): New function. - (lb_wcs): New macro. - * include/cygwin/version.h: Bump API minor number to 268. - - * strfuncs.cc: Clarify descriptive file comment. - -2013-07-19 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Close cw_timer handle, thus avoiding - handle leak. - -2013-07-19 Jon TURNEY <jon.turney@dronecode.org.uk> - - * cygserver_ipc.h (ipc_retval::ipc_retval): Take ssize_t as argument - to make sure entire ipc_retval union is initialized on all supported - platforms. - -2013-07-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Start checking path before ".." at - dst, rather than at dst_start, otherwise suffer loss of one leading - slash in case of UNC paths. - -2013-07-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * winsup.h (cygbench): Fix declaration to match definition. - * dcrt0.cc (initial_env): Remove unused variable. - -2013-07-15 Corinna Vinschen <corinna@vinschen.de> - - Remove /dev/mem, /dev/kmem, /dev/port support. - * Makefile.in (DLL_OFILES): Drop fhandler_mem.o. - (fhandler_mem_CFLAGS): Remove rule. - * devices.in (enum fh_devices): Remove FH_MEM, FH_KMEM and FH_PORT. - * devices.cc: Regenerate. - * dtable.cc (fh_alloc): Drop handling for FH_MEM, FH_KMEM and FH_PORT. - * fhandler.h (class fhandler_dev_mem): Remove. - * fhandler_mem.cc: Remove file. - * globals.cc (ro_u_pmem): Remove. - * mmap.cc (fhandler_dev_mem::mmap): Remove. - (fhandler_dev_mem::munmap): Remove. - (fhandler_dev_mem::fixup_mmap_after_fork): Remove. - -2013-07-15 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 22. - -2013-07-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_native): Fix common prefix search. Enhance comment. - -2013-07-11 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Drop unused code. - -2013-07-10 Christopher Faylor <me.cygwin2013@cgf.cx> - - * gentlsoffsets: Clean up a little. - - * thread.cc (semaphore::_fixup_after_fork): Report on potential problem - parameter. Make sure that currentvalue is never zero. - (semaphore::init): Make cosmetic change. - -2013-07-10 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in (.text.*): Fold into .text on all platforms. - (.eh_frame): Add section. - * environ.cc (my_findenv): Drop __stdcall attribute. - (getearly): Ditto. - (findenv_func): Drop cast. - -2013-07-03 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler.cc (fhandler_base::close_with_arch): Make sure that the - archetype is deleted when close_with_arch is referenced *via* the - archetype. - -2013-06-28 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (find_fast_cwd_pointer): Use gas syntax for assembler - description in all comments. Make algorithm work on Windows 8.1 - Preview. - -2013-06-27 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::alloc_stack): Fix a comparison to avoid - taking 4K more stack in forked child. - * fork.cc (frok::parent): Print child exit code in hex if sync failed. - -2013-06-24 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * common.din (rawmemchr): Export. - * posix.sgml (std-gnu): Add rawmemchr. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2013-06-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cygwin_conv_path): Handle NULL "from" path gracefully. - * path.sgml (func-cygwin-conv-path): Document returning EINVAL if - "from" is NULL. - -2013-06-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * winf.h (av::unshift): Make __reg2. - -2013-06-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Eliminate call to newargv.set() - in favor of conglomerated newargv.setup(). Let newargv.setup() decide - when to call dup_all(). Only set argc and argv for cygwin processes. - (av::setup): Rename from av::fixup. Accept argc and argv parameters. - Fill out argv and argc here. Duplicate whole argv structure when this - is a Cygwin executable. - * winf.cc (linebuf::fromargv): Don't bother duplicating argv elements - since they will never be used. - * winf.h (av::set): Delete. - (av::setup): Rename from av::fixup. Add two parameters. - (av::replace0_maybe): Assign calloced to 1 rather than 'true' for - clarity. - (av::dup_maybe): Delete. - (av::dup_all): Set calloced to show that we have duplicated all of the - arguments in the list. - -2013-06-18 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__collate_range_cmp): Convert input to wchar_t and call - wcscoll since all calling functions are using wide chars. Explain in - preceeding comment. - -2013-06-18 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (child_info_spawn::worker): Eliminate wascygexec. - -2013-06-18 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dcrt0.cc (child_info_fork::alloc_stack): Don't subtract 4096 from - stack pointer since getstack() already does that. - -2013-06-18 Corinna Vinschen <corinna@vinschen.de> - - * gmon.c: Drop gratuitous inclusion of strings.h. Remove __MINGW32__ - around definition of bzero. - -2013-06-18 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (VPATH): Drop CONFIG_DIR. - (EXTRA_DLL_OFILES): Remove. - (DLL_OFILES): Remove EXTRA_DLL_OFILES. - (ASFLAGS): Define as -D_WIN64 on x86_64. - (GMON_OFILES): Add mcountFunc.o. - ($(srcdir)/$(TLSOFFSETS_H)): Use target_cpu rather than CONFIG_DIR. - * configure.ac (CONFIG_DIR): Remove definition. - * configure: Regenerate. - * gcrt0.c: Use latest version from Mingw-w64 project. - * gmon.c: Ditto. - * gmon.h: Ditto. - * mcount.c: Ditto. - * mcountFunc.S: Ditto, new file. - * profil.c: Ditto. - * profil.h: Ditto. - * config: Remove entire directory. - -2013-06-17 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cnt_bs): New inline function. - (symlink_native): Fix creating relative native symlink. - -2013-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_clipboard.cc (fhandler_dev_clipboard::read): Fix buffer - read access overrun when pos > 0. - -2013-06-17 Corinna Vinschen <corinna@vinschen.de> - - * times.cc (GetSystemTimePreciseAsFileTime): Add comment to declaration. - (__to_clock_t): Remove a debug_printf. - (times): Align syscall_printf to debug output of other system calls. - -2013-06-14 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetSystemTimePreciseAsFileTime): Define. - * times.cc (GetSystemTimePreciseAsFileTime): Temporarily declare here - to workaround missing definition in 32 bit w32api headers. - (get_system_time): New always inline function to call either - GetSystemTimePreciseAsFileTime or GetSystemTimeAsFileTime on a per OS - basis. Call throughout instead of GetSystemTimeAsFileTime. - * wincap.h (wincaps::has_precise_system_time): New element. - * wincap.cc: Implement above element throughout. - -2013-06-14 Corinna Vinschen <corinna@vinschen.de> - - Streamline time/times functionality. Remove last remains of former - Windows 9x compatibility. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop now unneeded - casts in calls to_timestruc_t. - (fhandler_base::utimens_fs): Ditto for timespec_to_filetime. - * fhandler_proc.cc (format_proc_stat): Ditto for to_time_t. - * hires.h (class hires_ms): Remove unused member initime_ns. - Remove declarations for timeGetTime_ns and prime. - (hires_ms::uptime): Remove. - * posix_ipc.cc (ipc_cond_timedwait): Ditto for timespec_to_filetime. - * fhandler_registry.cc (fhandler_registry::fstat): Add cast. - * resource.cc (fill_rusage): Call NtQueryInformationProcess rather than - GetProcessTimes to deal with LARGE_INTEGER rather than FILETIME. - * times.cc: Simplify time handling. Throughout, use LARGE_INTEGER - rather than FILETIME to simplify computations. Throughout use - {u}int64_t rather than {unsigned} long long. Drop unneeded casts since - NSPERSEC is 64 bit anyway. - (systime_ns): Remove. - (times): Call NtQuerySystemInformation to fetch boot time. Call - NtQueryInformationProcess rather than GetProcessTimes to deal with - LARGE_INTEGER rather than FILETIME. Call GetSystemTimeAsFileTime. - (totimeval): Use constant 1000000 as in other functions. - (time_t_to_filetime): Remove. - (to_time_t): Change return type to time_t. - (time_as_timestruc_t): Rename filetime to systime. - (time): Ditto. Add cast. - (hires_ns::nsecs): Fix return type cast. - (hires_ms::timeGetTime_ns): Remove. - (hires_ns::prime): Remove. - (hires_ms::nsecs): Drop call to prime. Call GetSystemTimeAsFileTime - directly. Subtract FACTOR here since it's the only function needing - to do so. - (minperiod): Cosmetically change to ULONG. - (hires_ns::resolution): Fix return type cast. - (hires_ms::resolution): Simplify, rely on NtQueryTimerResolution. - * winsup.h: Align time related prototypes to above changes. - -2013-06-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (gen_old_if_name): New function to generate short interface - names for old pre-1.7 applications. - (get_ifs): Call gen_old_if_name for said old applications. - -2013-06-13 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (fcntl, flock, lockf): Point to implementation notes. - -2013-06-12 Fedin Pavel <p.fedin@samsung.com> - - * path.cc (normalize_posix_path): Fix long-standing problem which - allows to access files via ".." using an invalid POSIX path. - -2013-06-11 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc (FileDescription): Remove (R). - -2013-06-10 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_groups): Don't handle ERROR_ACCESS_DENIED as - error. Explain why. - -2013-06-08 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (try_to_debug): Don't use yield() when waiting for - another process. - (sigpacket::setup_handler): Fix long-standing problem where loop could - exit with lock held. - -2013-06-08 Christopher Faylor <me.cygwin2013@cgf.cx> - - * miscfuncs.cc (yield): Revert (after researching) to calling Sleep - with 0. We don't want to actually sleep when calling this function. - -2013-06-08 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygwait.cc (cygwait): Remove lock around sig retrieval since this - code is essentially guarded by thread-specific signal_arrived. - * exceptions.cc (_cygtls::handle_SIGCONT): Simplify. Eliminate - lock/unlock since code is guarded by signal_arrived. - -2013-06-07 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc (LegalCopyright): Belatedly bump to 2013. - -2013-06-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (_cygtls::handle_SIGCONT): Reinstate previous behavior - but make sure that yield() isn't called when signal stack is locked. - -2013-06-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (exception::handle): Add comment explaining si_addr - behavior. - -2013-06-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * DevNotes: Add entry cgf-000023. - * sigproc.cc (exit_thread): Remove now-unneeded sleep code. - -2013-06-07 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 21. - -2013-06-07 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Fix typo. - -2013-06-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::pread): Skip to non-atomic - code if mandatory locking is used on this descriptor. Explain why. - (fhandler_disk_file::pwrite): Ditto. - * posix.sgml (std-notes): Extend description of file locking. - -2013-06-06 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::handle_SIGCONT): Simplify loop waiting for - sig_handle_tty_stop to wake up. Make sure to unlock before calling - yield to avoid starvation of sig_handle_tty_stop. Add comments. - * miscfuncs.cc (yield): Explain why yield should never be called under - _cygtls::lock conditions. Call SleepEx with 1ms timeout. Explain why. - -2013-06-05 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 20. - -2013-06-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::lock): Move to flock.cc. - (fhandler_base::fixup_after_exec): Reset mandatory_locking. - * fhandler.h (class fhandler_base): Add mandatory_locking status flag. - Add mandatory_locking accessor methods. Accommodate change throughout. - (fhandler_base::mand_lock): Declare. - (class fhandler_disk_file): Drop in favor of new status flag. - * (fhandler_disk_file::fcntl): Call need_fork_fixup if mandatory_locking - flag gets set. - * flock.cc (fhandler_base::lock): Define here. - (flock): Handle mandatory_locking. - (lockf): Ditto. - (fhandler_base::mand_lock): Define. - -2013-06-03 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (exit_thread): Allow to exit the thread while running - global dtors. Explain why. - -2013-06-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CancelSynchronousIo): Define. - * fcntl.cc (fcntl64): Drop handling of locking commands. - * fhandler.h (class fhandler_disk_file): Add mandatory_locking. - (fhandler_disk_file::fcntl): Declare. - (fhandler_disk_file::mand_lock): Declare. - * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file): - Initialize mandatory_locking. - (fhandler_disk_file::fcntl): New method. Handle F_LCK_MANDATORY and - locking commands. - (fhandler_disk_file::dup): Duplicate mandatory_locking. Fix a bug - when duplicating prw_handle failed. - (fhandler_disk_file::fixup_after_fork): Reset mandatory_locking. - * flock.cc (fhandler_disk_file::lock): Add comment. - (struct lock_parms): New struct to pass parameters to blocking_lock_thr - thread function. - (blocking_lock_thr): New thread function. - (fhandler_disk_file::mand_lock): New methof implementing mandatory - locking with Windows semantics. - * ntdll.h (NtLockFile): Declare. - (NtUnlockFile): Declare. - * include/fcntl.h: Fix a comment. - (F_LCK_MANDATORY): Define. Add lengthy comment to explain. - -2013-06-02 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::handle): Resurrect accidentally lost - patch from 2009-07-22: Set si_addr according to POSIX for SIGSEGV. - -2013-05-31 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/socket.h: Move SHUT_xx definitions from here... - * include/cygwin/socket.h: ...to here. - -2013-05-31 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/if.h: Include cygwin/socket.h rather than sys/socket.h - to avoid circular dependency resulting in bogus compile time warnings. - -2013-05-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::read): Just call - fhandler_base::raw_read from here. Drop comment. - (fhandler_procsys::write): Drop comment. - -2013-05-27 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::topsort): Fix early-return condition to - accommodate process with all runtime loaded DLLs already dlclosed - at fork time. - * gendef (_sigfe_maybe): Fix code handling early return if we don't - have a tls, broken on 2013-05-21. - -2013-05-24 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DEFS): Unused, remove. - (COMPILE.cc): Move -mno-use-libstdc-wrappers flag from here... - ($(TEST_DLL_NAME)): ...to here since it's a link time flag. - -2013-05-24 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo::status_exit): Enhance comment. - -2013-05-24 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (win_env::add_cache): Set the Windows environment variable - using wide chars to make sure native chars don't get scrambled. - * environ.h (build_env): Fix formatting in declaration. - * pinfo.cc (pinfo::status_exit): Handle STATUS_NO_MEMORY. Explain why. - -2013-05-24 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (frok::parent): Always set CREATE_UNICODE_ENVIRONMENT flag. - Explain why. - -2013-05-23 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (frok::parent): Call CreateProcessW with command line set - to the parent command line. Change comment to explain why. - -2013-05-23 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Fix datatype of - stacksize to SIZE_T. Cast to SIZE_T in pointer arithmetic. Slightly - enhance output in case of a fatal error. - * fork.cc (frok::parent): Always set ch.stackaddr to DeallocationStack - value of current thread to help stack reservation in - child_info_fork::alloc_stack_hard_way along. Simplify subsequent code - storing stack values in ch. Print guardsize in hex, too. - -2013-05-23 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (set_winsymlinks): Handle "winsymlinks:nativestrict" - option. On pre-Vista warn the user if the "winsymlinks:native*" option - is set. - * globals.cc (enum winsym_t): Add WSYM_nativestrict. - * path.cc (symlink_native): Don't create native symlink if target - does not exist. Explain why. Improve comments. - (symlink_worker): Change AFS symlink handling to WSYM_nativestrict. - Handle WSYM_nativestrict throughout. Change condition for bail out - to wsym_type == WSYM_nativestrict. Add comment. Fix formatting. - * shared_info.h (CURR_USER_MAGIC): Change to reflect change in - class user_info. - (class user_info): Add member warned_nonativesyms. - -2013-05-22 Corinna Vinschen <corinna@vinschen.de> - - * spinlock.h (ULONG): Replace LONG operator with ULONG to accommodate - the fact that CURR_SHARED_MAGIC and USER_SHARED_MAGIC are unsigned - values. - * shared.cc (shared_info::initialize): Drop explicit cast here. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add arc4random.o. - * common.din: Export arc4random, arc4random_addrandom, arc4random_buf, - arc4random_stir and arc4random_uniform. - * mktemp.cc (arc4random): Remove static replacement function. - * posix.sgml (std-bsd): Add arc4random functions. - * include/cygwin/stdlib.h: Declare arc4random functions. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * libc/arc4random.cc: New file implementing arc4random functions taken - from FreeBSD. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (__isthreaded): New global variable. Explain what it's - used for. - * miscfuncs.cc (thread_wrapper): Set __isthreaded to 1 here. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_dev_random): Change type of pseudo to - uint32_t to make sure it's 32 bit on all supported platforms. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - x86_64 only: - * gendef (_sigfe_maybe): Drop pushing %r12, use %r10 instead since we - don't call yield anymore. - (_sigfe): Ditto. - (_sigbe): Ditto. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - * libc/base64.c: New file. - * Makefile.in (DLL_OFILES): Add base64.o. - * common.din: Export __b64_ntop and __b64_pton. - * posix.sgml (std-bsd): Add __b64_ntop and __b64_pton. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2013-05-21 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (open): Only return ENOTDIR if file exists. - -2013-05-16 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (sig_hold): Delete. - (sigheld): Delete. - (sig_send): Eliminate special-case __SIGHOLD handling. - (wait_sig): Just flag when signals are on hold and add them to the - queue rather than stalling the wait_sig loop. Clear the flag when - __SIGNOHOLD is specified. - -2013-05-14 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (devices_CFLAGS): Drop -Os. - -2013-05-14 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (localtime_CFLAGS): Define as -fwrapv since localtime - code requires int overflows to be fully defined. - * localtime.cc: Align a bit more to upstream code. - -2013-05-14 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (get_groups): Convert to void function. - (initgroups32): Accommodate the aforementioned change. - (getgrouplist): Ditto. - -2013-05-14 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (get_groups): Never return error. Always create a group list, - even if it's empty. - -2013-05-13 Christopher Faylor <me.cygwin2013@cgf.cx> - - * include/cygwin/version.h: Bump api minor number to reflect previous - change. - -2013-05-13 Christopher Faylor <me.cygwin2013@cgf.cx> - - * i686.din: Remove _strtold. - * x86_64.din: Move strtold definition... - * common.din: ...to here. - -2013-05-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_common::__acquire_output_mutex): Never - wait an INFINITE amount of time. Instead default to 1/10 second. - (fhandler_pty_slave::open): Just default to INFINITE wait rather than - (now) waiting longer than other similar calls. - -2013-05-03 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (ILLEGAL_SIG_FUNC_PTR): New define. - (system_call_handle): Rename from system_call_cleanup. - (is_system_call): New convenience method. - (system_call_handle::system_call_handle): Use ILLEGAL_SIG_FUNC_PTR - rather than cast. Call sig_send here rather than in caller. - Initialize oldint. - (system_call_handle::arm): New function pulled from constructor. - (~system_call_handle::system_call_handle): Use is_system_call(). - (child_info_spawn::worker): Use system_call_handle to set up for system - call early. Use arm call prior to waiting for child to properly set up - signal handling. Move comment closer to code it is commenting on. - -2013-05-01 Christopher Faylor <me.cygwin2013@cgf.cx> - - * resource.cc (setrlimit): Use consistent commenting style. Return - EINVAL when rlim_cur > rlim_max. - -2013-04-30 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - Throughout, (mainly in fhandler*) fix remaining gcc 4.7 mismatch - warnings between regparm definitions and declarations. - * smallprint.cc (__small_vswprintf): Conditionalize declaration and - setting of l_opt for only x86_64. - * spawn.cc (child_info_spawn::worker): Remove unused 'pid' variable. - * thread.cc (verifyable_object_isvalid): Temporarily define as - non-inline with gcc 4.7+, regardless of target. - -2013-04-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * gendef: Fix sigfe.s typo. - -2013-04-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (system_call_cleanup): Rename from pthread_cleanup. Extend - functionality. - (system_call_cleanup::system_call_cleanup): Set up signals like - system() requires. Unblock previously-blocked signal handling. - (system_call_cleanup::~system_call_cleanup): Restore signal handling - after system(). - (child_info_spawn::worker): Put signals on hold and use - system_call_cleanup class to set and restore signals rather than doing - it prior to to running the program. Remove the ill-conceived - pthread_cleanup stuff. - -2013-04-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (cygwin_exception::dumpstack): Guard against wild - pointer dereference. - (CYG_EXC_CONTINUE_EXECUTION): Define based on standard Windows - definition. - (CYG_EXC_CONTINUE_SEARCH): Ditto. - (exception::handle): Move andreas detection earlier. Make comment - clearer. - (signal_exit): Set core-dumped flag. - -2013-04-30 Christopher Faylor <me.cygwin2013@cgf.cx> - - * i686.din: New file. - * x86_64.din: New file. - * common.din: New file. - * cygwin.din: Delete. - * cygwin64.din: Delete. - * gendef: Rework to take options rather than using positional - parameters. Accept multiple files as input. - * Makefile.in: Rework to allow multiple .din files as input to gendef. - * configure.in: Change names of .din files to be expressively target - specific. - * aclocal.m4: Regenerate. - * configure: Ditto. - -2013-04-29 Christopher Faylor <me.cygwin2013@cgf.cx> - - * autoload.cc (CreateSymbolicLinkW): Rename from CreateSymbolicLink. - -2013-04-26 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl): Define as export alias for fcntl64 on x86_64. - -2013-04-24 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateSymbolicLink): Define. - * environ.cc (set_winsymlinks): Set allow_winsymlinks. - (parse_thing): Change "winsymlinks" to set by function. - * globals.cc (enum winsym_t): Define. - (allow_winsymlinks): Define as winsym_t. - (ro_u_afs): New R/O Unicode string. - * mount.cc (fs_info::update): Fix comment. Handle AFS. - (fs_names): Add "afs". - * mount.h (enum fs_info_type): Add afs. - (class fs_info): Implement afs. - * path.cc (symlink): Drop third parameter in call to symlink_worker. - (symlink_nfs): New function. - (symlink_native): New function. - (symlink_worker): Drop third argument. Handle native symlink type by - calling symlink_native. Move code to handle NFS to symlink_nfs. Fix - formatting. Slightly restructure code. - * path.h (class path_conv): Add fs_is_afs method. - (symlink_worker): Declare here. - * security.h: Define privilege constants as unsigned int instead of as - unsigned long. - * syscalls.cc (mknod_worker): Set third parameter in symlink_worker - call to WSYM_lnk. - * winsup.h (symlink_worker): Drop declaration here. - -2013-04-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din (_setjmp): Export. - (_longjmp): Export. - -2013-04-23 Corinna Vinschen <corinna@vinschen.de> - - * Merge in cygwin-64bit-branch. See ChangeLog.64bit for details. - -2013-04-22 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/queue.h: Delete in favor of more complete newlib file. - -2013-04-22 Corinna Vinschen <corinna@vinschen.de> - - Adapt to changes in newlib's sys/cdefs.h: - * include/sys/sysinfo.h (struct sysinfo): Rename __unused member to __f. - * libc/fts.c (__FBSDID): Drop definition. - * regex/regexec.c (__unused): Drop definition. - -2013-04-22 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 19. - -2013-04-16 Corinna Vinschen <corinna@vinschen.de> - - * glob.cc: Include winsup.h before anything else. - -2013-04-12 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Drop PC_KEEP_HANDLE flag for - unrecognized reparse points as well. Reorganize code and comments - handling reparse points for better readability. - -2013-04-11 Corinna Vinschen <corinna@vinschen.de> - - * hires.h (hires_ns::nsecs): Declare with bool parameter. - * times.cc (hires_ns::nsecs): Take bool parameter. If set to true, - don't use prime value (== return system wide absolute value). - -2013-04-08 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygtls.h (_cygtls::reset_signal_arrived): Actually reset the - signal_arrived event. - (_cygtls::handle_SIGCONT): Declare new function. - * cygwait.cc (is_cw_sig_handle): Delete. - (is_cw_sig_cont): New convenience define. - (cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT. - * cygwait.h (cw_wait_mask): Add cw_sig_cont. - * exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region. Use - cw_sig_cont param for cygwait. Don't zero signal here outside of lock. - (sigpacket::setup_handler): Don't check for in_forkee since we will now - never get here in that state. - (_cygtls::handle_SIGCONT): Define new function. - (sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT. - Nuke continue_now handling. Allow SIGKILL to kill a suspended process. - Delete a couple of now-unneeded labels. - (_cygtls::call_signal_handler): Reorganize setting of incyg within - lock. - * sigproc.cc (pending_signals): Simplify. - (pending_signals::clear): New method. - (_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it - exists to avoid handle leaks. - (sig_clear): Simplify by just calling sigq.clear(). - (sig_dispatch_pending): Always call sigq.pending even in signal thread - to force another loop in wait_sig. - (sig_send): Remove a "goto out" just before out: label. - (pending_signals::add): Simplify. - (pending_signals::del): Delete. - (pending_signals::next): Delete. - (wait_sig): Define variable q to be the start of the signal queue. - Just iterate through sigq queue, deleting processed or zeroed signals. - Only set clearwait when the current signal is SIGCHLD. - * sigproc.h: Add a comment about an unused enum. - -2013-04-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Handle abstract AF_LOCAL socket. - (fhandler_socket::recv_internal): Create abstract socket name for - AF_LOCAL datagram sockets. Explain why we do that. - -2013-04-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygheap.cc (init_cygheap::find_tls): Add a comment. - * dcrt0.cc (parent_sigmask): Delete. - (dll_crt0_1): Use spawn_info->moreinfo->sigmask rather than saved - parent signal mask. - * thread.cc (pthread::thread_init_wrapper): Add comment stressing the - importance of maintaining ordering of statements. - -2013-04-05 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (is_mmapped_region): Call LIST_UNLOCK on premature return. - -2013-04-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_loadavg): Raise too small buffer size - to avoid overwriting unrelated cygheap memory. - -2013-04-03 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (class suffix_scan): Add member namelen. - (suffix_scan::name_len): New method. - (suffix_scan::has): Store namelen since we have it already anyway. - Add a bit of explanation and a FIXME to comment. - (suffix_scan::next): Never attach extra .lnk suffix if resulting - filename length exceeds NAME_LEN. - (symlink_info::check): Bail out immediately with ENAMETOOLONG if - filename length exceeds NAME_LEN. - -2013-03-31 Christopher Faylor <me.cygwin2013@cgf.cx> - - * child_info.h (cygheap_exec_info::sigmask): Declare new field. - * cygheap.cc (init_cygheap::find_tls): Rename threadlist_ix -> ix. - Only take one pass through thread list, looking for eligible threads to - signal. Set a new param indicating that function has found a sigwait* - mask. - * cygheap.h (init_cygheap::find_tls): Reflect new parameter. - * dcrt0.cc (parent_sigmask): New variable. - (child_info_spawn::handle_spawn): Save parent's signal mask here. - (dll_crt0_1): Restore parent's signal mask to tls sigmask as - appropriate. Call sig_dispatch_pending to flush signal queue when we - can finally do something with signals. - * exceptions.cc (sigpacket::process): Avoid attempting to handle - signals if we haven't finished initializing. Rely on the fact that - find_tls will do mask checking and don't do it again. Delete ill-named - 'dummy' variable. - * sigproc.cc (cygheap_exec_info::alloc): Save calling thread's signal - mask in new sigmask field. - (wait_sig): Try to debug when WFSO fails and DEBUGGING is defined. - * thread.cc (pthread::set_tls_self_pointer): Make this a true automatic - method rather than inexplicably relying on a thread parameter. - (pthread::thread_init_wrapper): Accommodate set_tls_self_pointer change - to non-static. Initialize sigmask before setting tid or suffer signal - races. - * thread.h (pthread::set_tls_self_pointer): Make non-static, delete - parameter. - -2013-03-29 Corinna Vinschen <corinna@vinschen.de> - - * cygthread.cc (cygthread::terminate_thread): Only try to free - thread stack on systems not freeing it by themselves. - * wincap.h (wincaps::terminate_thread_frees_stack): New element. - * wincap.cc: Implement above element throughout. - -2013-03-29 Christopher Faylor <me.cygwin2013@cgf.cx> - - * pinfo.h (pinfo::status_exit): Rename from former static function in - pinfo.cc. - (pinfo::operator == (char *)): Remove unused operator. - * pinfo.cc (pinfo::status_exit): Move this function info pinfo class. - Use progname from the pinfo rather than myself. Be defensive when - inspecting procinfo. - -2013-03-29 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (wait_sig): Avoid uninitialized use of nb when retrying. - Consolidate two error messages into one. - -2013-03-28 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (pending_signals::retry): Declare new element. - (pending_signals::pending): Force an additional loop through wait_sig - by setting retry whenever this function is called. - (wait_sig): Reorganize to wait for SIGHOLD at bottom. Always add - signal to pending queue and work on whole queue rather than just the - one signal. Loop when sigq.retry is set. Fix long-broken check for - SIGCHLD after queued signals. - -2013-03-28 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (exception::handle): Generalize comment. - -2013-03-09 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygtls.h (_cygtls::signal_debugger): Change argument type. - (_cygtls::copy_context): Delete declaration. - * exceptions.cc (exception::handle): Don't call copy_context() here. - Move signal_handler call earlier and always call it. - (_cygtls::copy_context): Delete definition. - (_cygtls::signal_debugger): Move copy_context logic here. Suspend - thread receiving signal before gathering context information. - -2013-03-08 Christopher Faylor <me.cygwin2013@cgf.cx> - - * spawn.cc (child_info_spawn::worker): Save and restore my_wr_proc_pipe - around non-execing operations to avoid handle leak seen in - http://cygwin.com/ml/cygwin/2013-03/msg00152.html . - -2013-03-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/un.h (UNIX_PATH_MAX): Rename from UNIX_PATH_LEN to - follow Linux. - * fhandler_socket.cc: Change UNIX_PATH_LEN to UNIX_PATH_MAX throughout. - (fhandler_socket::recv_internal): Don't return prematurely in case of - successful return. For AF_LOCAL sockets, overwrite returned AF_INET - name with AF_LOCAL name. - -2013-03-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Fix check for AF_LOCAL - filename length to allow non-NUL terminated strings within namelen - bytes. Copy over sun_path to local array sun_path to have a - NUL-terminated string for subsequent function calls. Move path_conv - check before OS bind call to not bind the socket before being sure - the file doesn't exist. Add and fix comments. - -2013-03-06 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_names): Add trailing NULL element to avoid potential - SEGV in format_proc_filesystems. - -2013-03-01 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (exception::handle): Eliminate buggy recursed variable; - just check if we're exiting. - -2013-02-26 Corinna Vinschen <corinna@vinschen.de> - - * include/pthread.h (pthread_atfork): Add missing declaration. - -2013-02-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/error.h (error_message_count): Declare as dllimport. - (error_one_per_line): Ditto. - (error_print_progname): Ditto. - -2013-02-08 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - (class child_info_fork): Drop extraneous semicolon. - -2013-02-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Fix error code for - empty filename. - -2013-02-04 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Fix length check of - AF_LOCAL filename so it never accesses memory beyond namelen. Also - make sure filename is NUL-terminated. - -2013-01-31 Christopher Faylor <me.cygwin2013@cgf.cx> - - * DevNotes: Add entry cgf-000022. - * cygtls.h (_cygtls::func): Define as a sa_sigaction style function. - * exceptions.cc (sig_handle_tty_stop): Ditto. - (_cygtls::interrupt_setup): Fix coercion to accommodate 'func' change. - (ctrl_c_handler): Use tty kill_pgrp to send a signal. - (sigpacket::process): Don't process sigflush here. - (_cygtls::call_signal_handler): Reorganize to avoid a race. Always - call sa_sigaction style function. - * fhandler_termios.cc (is_flush_sig): Define new function. - (tty_min::kill_pgrp): Handle tty flush when signal detected. - (fhandler_termios::bg_check): Be slightly more paranoid about checking - for valid tty. - (fhandler_termios::sigflush): Don't flush unless tty owner. - * fhandler_tty.cc (fhandler_pty_slave::ioctl): Use tty kill_pgrp to - send signal. - (fhandler_pty_master::ioctl): Ditto. - * signal.cc (killsys): Delete definition. - * sigproc.h (killsys): Delete declaration. - * include/cygwin/signal.h (siginfo_t): Simplify union/struct nesting - slightly. Implement mechanism to allow cygwin data passing. - -2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx> - - * miscfuncs.cc (__import_address): Check if malloc field points - directly at 'malloc'. - -2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx> - - * miscfuncs.cc (__import_address): On second thought, the chance that - this pointer could be NULL is very low so don't bother checking for it. - -2013-01-23 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (exception::handle): Make attempt to recursively dump - stack fatal. - -2013-01-22 Christopher Faylor <me.cygwin2013@cgf.cx> - - * miscfuncs.cc (__import_address): Avoid NULL explicitly. - -2013-01-22 Christopher Faylor <me.cygwin2013@cgf.cx> - - * miscfuncs.cc (__import_address): Avoid treating random instructions - as import jump. - * malloc_wrapper.cc (malloc_init): Remove comment about 64-bit. - -2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Comment assumption. - * exceptions.cc (sigpacket::setup_handler): Avoid sending signals - during fork processing. - -2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any - signals (presumably exiting signals) which may have come in while we - are in the process of setting up. - -2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx> - - * update-copyright: Recognize configure.ac scripts too. - -2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygerrno.h (__reg3): Define. - * cygmalloc.h (__reg3): Ditto. - -2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygerrno.h: Conditionally define __regN for cygserver. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * malloc_wrapper.cc (malloc_init): Re-add inadvertently dropped comment - which explains what's going on with the use_internal calculation. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - Throughout, update copyrights to reflect dates which correspond to - main-branch checkins. Regularize copyright format. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - Throughout, change __attribute__ ((regparm (N))) to just __regN. - Throughout, (mainly in fhandler*) start fixing gcc 4.7.2 mismatch - between regparm definitions and declarations. - * gendef: Define some functions to take @ declaration to accommodate - _regN defines which use __stdcall. - * gentls_offsets: Define __regN macros as empty. - * autoload.cc (wsock_init): Remove unneeded regparm attribute. - * winsup.h (__reg1): Define. - (__reg2): Define. - (__reg3): Define. - - * advapi32.cc (DuplicateTokenEx): Coerce some initializers to avoid - warnings from gcc 4.7.2. - * exceptions.cc (status_info): Declare struct to use NTSTATUS. - (cygwin_exception::dump_exception): Coerce e->ExceptionCode to - NTSTATUS. - * fhandler_clipboard.cc (cygnativeformat): Redefine as UINT to avoid - gcc 4.7.2 warnings. - (fhandler_dev_clipboard::read): Ditto. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * update-copyright (update_maybe): Accommodate perl-style copyright - comments. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * update-copyright: Silently skip nonexistent files. Display filename - on update. Don't update non-Red Hat copyrights. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * update-copyright: Update standard copyright information based on cvs - log and current sandbox status. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * malloc_wrapper.cc: Change 'use_internal_malloc' to 'use_internal' - throughout. - (export_malloc_called): Delete. - (internal_malloc_determined): New variable. - (malloc_init): Control calculation of internal/external malloc based on - 'internal_malloc_determined'. Use import_address() to determine if - malloc in user_data is ours or not. - * miscfuncs.cc (thread_wrapper): Make static. - (__import_address): Define new function. - * miscfuncs.h (import_address): New define. - (__import_address): Declare new function. - -2013-01-20 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (sig_dispatch_pending): Add correct regparm attributes to - match declaration. - (pid_exists): Ditto. - (proc_subproc): Ditto. - (sig_clear): Ditto. - (sig_send): Ditto. - (checkstate): Ditto. - -2013-01-19 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Remove ill-conceived NFS workaround from - 2013-01-10 for self-inflicted NFS server problem. - -2013-01-19 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (ctrl_c_handler): Remove special-case handler for - "cygwin_finished_initializing". - * sigproc.cc (exit_thread): Undefine ExitThread earlier to avoid - recursion on error return. - -2013-01-18 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY. - -2013-01-18 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc (handler_disk_file::msync): Add call to FlushFileBuffers - to implement MS_SYNC. - -2013-01-17 Christopher Faylor <me.cygwin2013@cgf.cx> - - * mmap.cc (handler_disk_file::msync): Retry up to 99 times if - FlushViewOFile fails with ERROR_LOCK_VIOLATION. - -2013-01-16 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (no_signals_available): Finally remove this macro - entirely. - (exit_thread): Ensure process lock is released on error exit. - (sig_send): Simplify "its_me" test. Remove no_signals_available tests. - -2013-01-16 Christopher Faylor <me.cygwin2013@cgf.cx> - - * pthread.cc (pthread_exit): Add kludge to accommodate noreturn attribute. - -2013-01-14 Antti Kantee <pooka@iki.fi> - - * include/pthread.h (pthread_exit): Mark as "noreturn". - -2013-01-14 Christopher Faylor <me.cygwin2013@cgf.cx> - - * exceptions.cc (signal_exit): Move captive process termination... - (_cygtls::interrupt_setup): ...into here. - (sigpacket::process): Simplify setting of handler when have_execed. - (_cygtls::interrupt_setup): Don't call proc_subproc when we've execed. - * globals.cc (exit_states): Delete unneeded ES_EXEC_EXIT. - * pinfo.cc (pinfo::exit): Change debugging output. Call proc_terminate - rather than the now-obsolete sigproc_terminate. Don't set exit_state - to ES_EXEC_EXIT. Set exit_state to ES_FINAL later. - * sigproc.cc (sigproc_terminate): Delete function. - (wait_sig): Don't call proc_subproc if have_execed. - * sigproc.h (sigproc_terminate): Delete declaration. - * sync.h (lock_process::lock_process): Don't set exit_state to - ES_PROCESS_LOCKED. - (lock_process::operator LONG): Define. - -2013-01-11 Christopher Faylor <me.cygwin2013@cgf.cx> - - * DevNotes: Add entry cgf-000021. - * select.cc (select): Unconditionally return when a signal is detected. - (select_stuff::wait): Ditto. - -2013-01-11 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Drop handling paths > 32757 chars, emit EINVAL - instead, thus simplifying code allocating and filling pfri. Drop size - and use constant expression in NtSetInformationFile call. Add comments. - Drop redundant test for fs_serial_number and change comment accordingly. - -2013-01-11 Thomas Wolff <towo@towo.net> - - * fhandler.h (class dev_console): Flag for expanded control sequence. - * fhandler_console.cc (char_command): Supporting cursor style modes. - -2013-01-10 Corinna Vinschen <corinna@vinschen.de> - - * path.h (path_conv::fs_type): New method. - * syscalls.cc (rename): Check for cross-device situation before - touching anything. Explain why. Workaround NFS bug in call to - NtSetInformationFile(FileRenameInformation). - -2013-01-09 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h: Fix copyright. - * exceptions.cc: Drop comment explaining removed variable. - -2013-01-09 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (main_thread_sinit): New inline function. Fix and explain - a stdio initialization issue. - (dll_crt0_1): Call main_thread_sinit rather than __sinit. - -2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * thread.cc (pthread_rwlock::lookup_reader): Remove parameter: always - assume that we're looking for the current thread. - (pthread_rwlock::tryrdlock): Eliminate self variable. Accommodate - change in lookup_reader(). - (pthread_rwlock::unlock): Ditto. - (pthread_rwlock::rdlock): Ditto. Move add_reader call after writer - tests to more closely mimic old behavior. - (pthread_rwlock::wrlock): Accommodate change in lookup_reader(). - * thread.h ((pthread_rwlock::lookup_reader): Eliminate argument. - -2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx> - - * thread.cc (pthread_rwlock::add_reader): Perform new operation here - and return pointer to allocated RWLOCK_READER structure. - (pthread_rwlock::rdlock): Reorganize to reflect new add_reader - functionality. - (pthread_rwlock::tryrdlock): Ditto. Remove unneeded call to - lookup_reader(). - * thread.h (pthread_rwlock::RWLOCK_READER::RWLOCK_READER): New - constructor. - (pthread_rwlock::add_reader): Reflect new functionality. - -2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx> - - * globals.cc (exit_states): Renumber so that ES_EXIT_STARTING is first, - as intended. - * sigproc.cc (wait_sig): Only stop accepting signals after - exit_state > ES_EXIT_STARTING. - -2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (exit_thread): Set thread signal mask so that no signals - are sent to an exiting thread. - -2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx> - - * sigproc.cc (no_signals_available): Remove exit_state test since - signals are available in a limited fashion when exiting. - (sig_dispatch_pending): Ditto. - (sig_send): Ditto. - (exit_thread): Rearrange to avoid an unnecessary DuplicateProcess when - exiting. - (wait_sig): Allow special signals when exiting. - -2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx> - - * DevNotes: Add entry cgf-000020, relating to previous checkin. - -2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx> - - * cygtls.h (_cygtls::signal_exit): Delete from class. - * exception.h (cygwin_exception): New class. - (cygwin_exception::dumpstack): Declare new function. - (cygwin_exception::context): Ditto. - (cygwin_exception::dump_exception): Ditto. - * exceptions.cc (cygwin_exception::dump_exception): Move into - cygwin_exception class. Accommodate new variable names. - (cygwin_exception::dumpstack): Ditto stackdump -> dumpstack. - (exception::handle): Move andreas processing earlier. Defer signal - processing decisions to the signal thread where they belong. Pass - exception information to sig_send via new siginfo_t si_cyg field. - (ctrl_c_handler): Wait for SIGHUP signal to be processed since it could - cause a process exit and we don't want races with thread exit lock. - (signal_exit): Move back here from sigproc.cc. Modify arguments and - remove from sigpacket class. Decide when to dump core based on signal - type. - (sigpacket::process): Handle exiting signals in context of threads - rather than in the signal thread. Signal debugger on non-Windows - signals. Remove setup_signal_exit call. - * sigproc.cc (no_signals_available): Remove argument. - (signal_exit_code): Delete. - (close_my_readsig): Ditto. - (_cygtls::signal_exit): Move to exceptions.cc. - (sigproc_terminate): Don't attempt to terminate signal thread. - (setup_signal_exit): Delete. - (exit_thread): Use new si_cyg entry in siginfo_t. - (sig_send): Just use empty initializer for si. Accommodate change in - no_signals_available argument. - (wait_sig): Remove attempt to "go asynchronous" on process exit. - Delete __SIGEXIT handling. Don't ever exit. - * sigproc.h: Remove __SIGEXIT from signal enum. Renumber. - * include/cygwin/signal.h (siginfo_t): Add si_cyg entry. diff --git a/winsup/cygwin/ChangeLog-2014 b/winsup/cygwin/ChangeLog-2014 deleted file mode 100644 index 7feccf499..000000000 --- a/winsup/cygwin/ChangeLog-2014 +++ /dev/null @@ -1,2745 +0,0 @@ -2014-12-18 Yaakov Selkowitz <yselkowitz@cygwin.com> - - * common.din (__fbufsize, __flbf, __fpending, __freadable, __freading, - __fsetlocking, __fwritable, __fwriting, clearerr_unlocked, - feof_unlocked, ferror_unlocked, fflush_unlocked, fgetc_unlocked, - fgets_unlocked, fgetwc_unlocked, fgetws_unlocked, fileno_unlocked, - fputc_unlocked, fputs_unlocked, fputwc_unlocked, fputws_unlocked, - fread_unlocked, fwrite_unlocked, getwc_unlocked, getwchar_unlocked, - putwc_unlocked, putwchar_unlocked): Export. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-12-16 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (find_fast_cwd): Point to problem reporting web site rather - than to mailing list. - -2014-12-16 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (warn_msdos): Slightly reformat. - (find_fast_cwd): Change warning message to urge an update before - reporting the problem. - -2014-12-10 Corinna Vinschen <corinna@vinschen.de> - - * winver.rc (LegalCopyright): Fix belatedly (uh-oh). - -2014-12-08 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (regopt): Remove function. - (environ_init): Drop undocumented feature to read application-specific - environment variables from the registry. - * include/cygwin/version.h (CYGWIN_INFO_PROGRAM_OPTIONS_NAME): Remove. - -2014-12-05 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (build_env): Remove loquacious debug statements. - -2014-12-05 Yaakov Selkowitz <yselkowitz@cygwin.com> - - * common.din (__bsd_qsort_r): Add. - (qsort_r): Add. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (create_lock_in_parent): Make lf_obj handle inheritable. - Explain why. - (lockf_t::create_lock_obj): Use FALSE, rather than 0 for BOOL argument. - (lockf_t::del_lock_obj): Check if NtSetEvent succeeded and print system - message if not. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (fetch_windows_home): New function fetching Windows-compliant - home directory. Include longish comment to explain what we're doing. - (cygheap_pwdgrp::get_home): Take additional sid parameter. In - NSS_SCHEME_WINDOWS case, call fetch_windows_home to create home - directory. - (pwdgrp::fetch_account_from_windows): Call cygheap_pwdgrp::get_home - with additional sid argument. - * cygheap.h (cygheap_pwdgrp::get_home): Align declaration to above - change. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::ontherange): Fix order of fallbacks creating - HOMEDRIVE/HOMEPATH values to be Windows-compliant. Add comments. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateProfile): Import. - (LoadUserProfileW): Import. - * registry.cc (get_registry_hive_path): Move to sec_auth.cc. - (load_registry_hive): Remove. - * registry.h (get_registry_hive_path): Drop declaration. - (load_registry_hive): Ditto. - * sec_auth.cc (get_user_profile_directory): Moved from registry.cc and - renamed. Take third parameter with buffer length. - (load_user_profile): New function taking over for load_registry_hive. - Use official functions to load profile. If profile is missing, create - it on Vista and later. - * security.h (get_user_profile_directory): Declare. - (load_user_profile): Declare. - * syscalls.cc (seteuid32): Replace call to load_registry_hive with call - to load_user_profile. - * uinfo.cc (cygheap_user::env_userprofile): Replace call to - get_registry_hive_path with call to get_user_profile_directory. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (fetch_from_description): Make static. - (fetch_from_path): Ditto. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateEnvironmentBlock): Import. - (DestroyEnvironmentBlock): Import. - * environ.cc (env_compare): New static bsearch comparison function. - (build_env): Add parameter taking a user token. If token is non-NULL, - fetch user's default Windows environment and merge it into the resulting - environment. Explain what we do in preceeding comment. - * environ,h (build_env): Align prototype to above change. - * external.cc (create_winenv): Call build_env with NULL token. - * spawn.cc (child_info_spawn::worker): When spawning new process under - another user account, call build_env with new token to allow merging - user's default Windows environment. - * winlean.h (_USERENV_): Define to override dllimport. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (child_info_spawn::worker): Fix formatting. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (str2lsa): Remove. - (str2buf2lsa): Remove. - (lsaauth): Call RtlInitAnsiString instead of str2lsa and str2buf2lsa. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_installation_root): Fix typo in - comment. - -2014-12-02 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (IdnToAscii): Use simpler, equivalent LoadDLLfuncEx. - (IdnToUnicode): Ditto. - -2014-12-01 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincap_minimal): Remove. - (wincaps): Drop has_physical_mem_access. - (wincap_10): New global wincaps to support Windows 10. - (wincapc::init): Use wincap_10 for version >= 6.4 and as default. - * wincap.h (wincaps::has_physical_mem_access): remove. - -2014-11-28 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_tls_list): Accommodate threadlist - having a new type threadlist_t *. Convert commented out code into an - #if 0. Create thread mutex. Explain why. - (init_cygheap::remove_tls): Drop timeout value. Always wait infinitely - for tls_sentry. Return mutex HANDLE of just deleted threadlist entry. - (init_cygheap::find_tls): New implementation taking tls pointer as - search parameter. Return threadlist_t *. - (init_cygheap::find_tls): Return threadlist_t *. Define ix as auto - variable. Drop exception handling since crash must be made impossible - due to correct synchronization. Return with locked mutex. - * cygheap.h (struct threadlist_t): Define. - (struct init_cygheap): Convert threadlist to threadlist_t type. - (init_cygheap::remove_tls): Align declaration to above change. - (init_cygheap::find_tls): Ditto. - (init_cygheap::unlock_tls): Define. - * cygtls.cc (_cygtls::remove): Unlock and close mutex when finishing. - * exceptions.cc (sigpacket::process): Lock _cygtls area of thread before - accessing it. - * fhandler_termios.cc (fhandler_termios::bg_check): Ditto. - * sigproc.cc (sig_send): Ditto. - * thread.cc (pthread::exit): Ditto. Add comment. - (pthread::cancel): Ditto. - -2014-11-28 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::find_tls): Add comment. - * cygtls.cc (well_known_dlls): Rephrase comment. - (bloda_detect): New function. - (_cygtls::call2): Call init_thread and bloda_detect for non-pthread - threads only. - (_cygtls::remove): Move remove_tls and remove_wq calls up to run first. - * miscfuncs.cc (struct pthread_wrapper_arg): Rename from struct - thread_wrapper_arg. - (pthread_wrapper): Rename from thread_wrapper and drop "static". Fix - comment. Drop call to _cygtls::remove. Call api_fatal rather than - ExitThread. Explain why. - * miscfuncs.h (pthread_wrapper): Declare pthread_wrapper. - * thread.cc (pthread::exit): Add a FIXME comment. Call _cygtls::remove - before calling ExitThread. - -2014-11-27 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::init): Take bool argument and allow to - initialize mount table in two steps, system and user, depending on - bool value. - * mount.h (class mount_info): Align declaration of init function to - above change. - * shared.cc (user_info::initialize): Initialize mount table in two - steps to allow internal_getpwsid to create valid POSIX paths from - DOS paths given in AD. Add comments. - * uinfo.cc (cygheap_pwdgrp::get_home): Allow DOS paths in - NSS_SCHEME_FREEATTR attributes. - (cygheap_pwdgrp::get_shell): Ditto. - -2014-11-27 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::find_tls): Allow to keep loop going after - access to threadlist[ix] faulted. In case of an exception, remove - threadlist[ix] from threadlist only. Add comment. - -2014-11-26 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (install): Add install-ldif target. - (install-ldif): New target to install cygwin.ldif. - * cygheap.h (class cygheap_pwdgrp): Rename pfx_t to nss_pfx_t. Add - PFX to enum value. Add nss_scheme_method enum and nss_scheme_t - structure. Add home_scheme, shell_scheme and gecos_scheme members. - (NSS_SCHEME_MAX): Define. - (cygheap_pwdgrp::get_home): Declare. - (cygheap_pwdgrp::get_shell): Declare. - (cygheap_pwdgrp::get_gecos): Declare. - * cygwin.ldif: New file. - * ldap.cc (std_user_attr): New array, just defining the standard - attributes. - (group_attr): Add cygwinUnixGid. - (user_attr): Convert to macro pointing to cygheap->pg.ldap_user_attr. - (cygheap_pwdgrp::init_ldap_user_attr): New method. - (cyg_ldap::fetch_ad_account): Call cygheap_pwdgrp::init_ldap_user_attr - if user_attr initialization is required. Fix comment. - (cyg_ldap::get_string_attribute): Implement taking attribute name - as argument. - * ldap.h: Drop unused macros. - (cyg_ldap::get_gecos): Remove. - (cyg_ldap::get_home): Remove. - (cyg_ldap::get_shell): Remove. - (cyg_ldap::get_string_attribute): Declare name argument variant public. - * uinfo.cc (cygheap_user::ontherange): Fix indentation. - (cygheap_pwdgrp::init): Initialize new home_scheme, shell_scheme and - gecos_scheme members. Align comment. - (NSS_NCMP): Define comparison macro. - (NSS_CMP): Ditto. - (cygheap_pwdgrp::nss_init_line): Use aforementioned macros throughout. - Fix comment handling. Add db_home, db_shell and db_gecos handling. - (fetch_from_description): New function to fetch XML-style attributes - from (description) string. - (fetch_from_path): New function to evaluate path string with wildcards. - (cygheap_pwdgrp::get_home): New methods to fetch pw_dir value. - (cygheap_pwdgrp::get_shell): Ditto for pw_shell. - (cygheap_pwdgrp::get_gecos): Ditto for pw_gecos. - (colon_to_semicolon): Move up. - (pwdgrp::fetch_account_from_windows): Convert home, shell, gecos - variables to char*. Drop statement breaking extended group info. - Fetch home, shell and gecos values using new methods. Use - fetch_from_description calls to fetch UNIX id and primary groups from - SAM comment field. Accommodate uxid being a char* now. Accommodate - the fact that extended info is malloc'ed, rather then alloca'ed. - Create linebuf content as multibyte string. Create line buffer by - just calling cstrdup. - -2014-11-25 Corinna Vinschen <corinna@vinschen.de> - - * include/fcntl.h: Move all open flags (except O_NDELAY) to newlib's - sys/_default_fcntl.h. - -2014-11-25 Corinna Vinschen <corinna@vinschen.de> - - * binmode.c (cygwin_premain0): Don't use underscore'd variants of the - open flags. - * textmode.c (cygwin_premain0): Ditto. - -2014-11-21 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (dll_entry): Revert previous patch. This requires another - solution. - * miscfuncs.cc (thread_wrapper): Ditto. - * sigproc.cc (exit_thread): Disable sending a signal for synchronization - with process exit. Explain why. Keep code in for later inspection, - should the problem show up again. - (sig_send): Use "tls", rather than "tid" as name for _cygtls arg. - -2014-11-20 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (dll_entry): Call _my_tls.remove with INFINITE wait period - to avoid SEGVs and subsequent hangs in _cygtls::find_tls. - * miscfuncs.cc (thread_wrapper): Ditto. - -2014-11-20 Iuliu Rus <rus.iuliu@gmail.com> - - * net.cc (fdsock): Change default values for socket buffers on 32 bit - to fix performance on 10Gb networks. - -2014-11-17 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow fetching of - NT SERVICE accounts by name. Always prepend domain to NT SERVICE - accounts. Add U-domain\username string to pw_gecos for predefined - builtin accounts as well. - -2014-11-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_termios.cc (fhandler_termios::line_edit): Fix fatal typo in - bytes_read pointer checks. - -2014-11-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_termios::line_edit): Add parameter to return - written bytes. - * fhandler_termios.cc (fhandler_termios::tcinit): Fix formatting. - (fhandler_termios::line_edit): Return bytes actually written. Write - in 32 byte chunks in non-canonical mode to reduce number of WriteFile - calls. Don't just eat unwritten bytes in case of an error condition. - Especially, don't report them back to the caller as written. - * fhandler_tty.cc (fhandler_pty_slave::read): Disable code reducing - the number of bytes read from the pipe to vmin. Add comment. - (fhandler_pty_master::write): Convert ret to ssize_t type. Just call - line_edit once, not in a loop once for each byte. Return bytes written - as returned by line_edit. - -2014-11-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 34. - -2014-11-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_pwdgrp): Remove constants NSS_FILES and NSS_DB. - Use NSS_SRC_FILES and NSS_SRC_DB throughout instead. - (cygheap_pwdgrp::nss_pwd_src): New inline method. - (cygheap_pwdgrp::nss_grp_src): Ditto. - * external.cc (cygwin_internal): Add CW_GETNSS_PWD_SRC and - CW_GETNSS_GRP_SRC cases. - * uinfo.cc: Use NSS_SRC_FILES and NSS_SRC_DB throughout. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GETNSS_PWD_SRC - and CW_GETNSS_GRP_SRC. - (NSS_SRC_FILES): Define. - (NSS_SRC_DB): Define. - -2014-11-07 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (cygwin__cxa_atexit): Fetch correct DSO handle value - by searching dll list. Explain why. - -2014-11-06 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (cygwin_atexit): Change preceeding comment to reflect - API version numbers. - * external.cc (cygwin_internal): disable setting cxx_malloc on 64 bit. - Add CW_FIXED_ATEXIT case. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_FIXED_ATEXIT. - * lib/atexit.c (atexit): Test running Cygwin version by checking - return value of cygwin_internal (CW_FIXED_ATEXIT). - -2014-11-05 Corinna Vinschen <corinna@vinschen.de> - - * lib/atexit.c (atexit): Check for being linked into the executable. - If so, call __cxa_atexit with NULL DSO handle. Explain why. - * lib/dso_handle.c: New file providing fallback __dso_handle. - -2014-11-05 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (NEW_FUNCTIONS): Add atexit to be not exported. - * lib/atexit.c (atexit): New, statically linkable version of atexit. - * dcrt0.cc (cygwin_atexit): Add comment to mark this function as old - entry point. Indiscriminately check for DSO of function pointer for - all functions, if checking for DSO of return address fails on x86_64. - Change comment accordingly. - -2014-11-05 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (NEW_FUNCTIONS): Define target-independent. Add target - dependent stuff afterwards. Globally define timezone and all xdr - symbols as non-exported from libcygwin.a. - -2014-11-03 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc: Fix formatting. - -2014-10-30 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::ontherange): Don't mention /etc/passwd. - -2014-10-29 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_installation_root): Create content of - installation_dir as non-prefixed path, if possible. - -2014-10-29 Corinna Vinschen <corinna@vinschen.de> - - * common.din (__cxa_atexit): Define as cygwin__cxa_atexit. - * dcrt0.cc (cygwin__cxa_atexit): New function. Explain what we do. - -2014-10-28 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (dos_file_warning): Set to false by default. - * path.cc (warn_msdos): Make static. Drop test for dos_file_warning. - (path_conv::check): Check for dos_file_warning here to avoid a function - call in the default case. - -2014-10-27 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (cygwin_atexit): Add workaround for broken atexit calls - in __gcc_register_frame of DLLs built with gcc-4.8.3-3. - -2014-10-27 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (dlopen): Drop patch accommodating SetDllDiretory from - 2014-10-14. - -2014-10-27 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_fixup_in_child): Drop call to set_dll_dir. - (init_cygheap::init_installation_root): Set installation_dir_len. - (setup_cygheap): Drop call to set_dll_dir. - * cygheap.h (struct init_cygheap): Add installation_dir_len member. - (init_cygheap::set_dll_dir): Remove. - * environ.cc (win_env::add_cache): Use stpcpy for speed. - (posify_maybe): Use tmp_pathbuf buffer instead of stack. - (raise_envblock): New function to resize Windows environment block. - (build_env): Fix indentation. Call raise_envblock function. Check if - $PATH exists and is non-empty. If not, add PATH variable with Cygwin - installation directory as content to Windows environment. Explain why. - - * uinfo.cc (cygheap_pwdgrp::_nss_init): Fill UNICODE_STRING members - on the fly. Drop call to RtlInitUnicodeString. - (pwdgrp::check_file): Ditto. - -2014-10-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::af_local_connect): Drop - setting connect_state to connect_credxchg. - (fhandler_socket::af_local_accept): Ditto. - (fhandler_socket::recv_internal): Drop ill-advised connect_state check. - Add comment so as not to repeat the exercise. - * fhandler.h (enum conn_state): Drop now unneeded connect_credxchg - state. - -2014-10-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cygdrive): Fix symlink path if cygdrive - is "/". - -2014-10-24 Corinna Vinschen <corinna@vinschen.de> - - * gendef (sigdelayed): 64 bit only: Fix seh_pushreg statements in - prologue. - -2014-10-24 Kai Tietz <corinna@vinschen.de> - Corinna Vinschen <corinna@vinschen.de> - - * gendef (sigdelayed): 64 bit only: Push CPU flags before aligning - stack to avoid changing flag values. - -2014-10-22 Yaakov Selkowitz <yselkowi@redhat.com> - - * common.din (stime): Export. - * times.cc (stime): New function. - * include/cygwin/time.h (stime): Declare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-10-21 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_groups): Remove experimental exception handler - added 2014-09-05. - (get_user_local_groups): Ditto. - -2014-10-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_serial.cc: Revert debug code accidentally checked in on - 2014-08-18. - -2014-10-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Set error from status code if opening - the parent directory failed, but keep special case for root dirs. - -2014-10-17 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_fixup_in_child): Call set_dll_dir. - (init_cygheap::init_installation_root): Just memmove contents of - installation_root instead of calling GetModuleFileNameW again. - Copy installation_root to installation_dir before stripping of - "bin" dir. Don't call SetDllDirectory here. Explain what we do. - (setup_cygheap): New function taking over initial cygheap setup - from memory_init. Additionally call set_dll_dir. - * cygheap.h (struct init_cygheap): Add installation_dir member. - (init_cygheap::set_dll_dir): Define. - (setup_cygheap): Declare. - * dcrt0.cc: Throughout drop parameter from memory_init call. - (dll_crt0_0): Call setup_cygheap prior to memory_init. - * dlfcn.cc (dlopen): Change comment to point to the right function. - * shared.cc (memory_init): Drop parameter. Drop cygheap setup. - * shared_info.h (memory_init): Change declaration accordingly. - -2014-10-17 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (__try): Define __l_endtry as block-local label in 32 bit - case as well. - -2014-10-17 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add quotactl.o. - * common.din (quotactl): Export. - * ntdll.h: Define FILE_FS_CONTROL_INFORMATION::FileSystemControlFlags - flag values. - (struct _FILE_FS_CONTROL_INFORMATION): Define. - (struct _FILE_GET_QUOTA_INFORMATION): Define. - (typedef struct _FILE_QUOTA_INFORMATION): Define. - (NtQueryObject): Use PVOID rather than VOID*. - (NtQueryVolumeInformationFile): Ditto. - (NtQueryQuotaInformationFile): Declare. - (NtSetQuotaInformationFile): Declare. - (NtSetVolumeInformationFile): Declare. - * quotactl.cc: New file implementing quotactl(). - * include/sys/mount.h (BLOCK_SIZE): Define. - (BLOCK_SIZE_BITS): Define. - * include/sys/quota.h: New header. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-10-16 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Rearrange with one file per line. - -2014-10-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Extend output to print - the windows mount points the device is mounted on. - -2014-10-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::connect): Don't change state - on WSAEALREADY error. Change comment accordingly. - -2014-10-14 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (init_cygheap::init_installation_root): Install Cygwin's - installation dir as DLL search path, instead of ".". - * cygheap.h (class cwdstuff): Add parameter names in function - declarations for readability. - (cwdstuff::get): Add inline implementation fetching the CWD as wide char - string. - * dlfcn.cc (dlopen): Add searching for dependent DLLs in DLL - installation dir or CWD, if all else failed. - Add comment to explain scenarios this is accommodating. - -2014-10-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::connect): Init connect_state to - connect_pending only on unconnected socket. Set connect_state to - connected on WSAEISCONN error. Set connect_state to connect_failed - on any other error except WSAEWOULDBLOCK if connect is still pending. - Add lots of comment to explain why all of the above. - -2014-10-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_setsockopt): Drop redundant test for AF_LOCAL and - SOCK_STREAM in SO_PEERCRED case, as in the original patch. - -2014-10-12 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (gfpod_helper): Only check for POSIX dir separator, same as - in get_full_path_of_dll. - -2014-10-12 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (set_dl_error): Drop useless __stdcall. - (check_path_access): Ditto. Drop FE_CWD from call to find_exec. - (gfpod_helper): Call path_conv::check for all paths containing a dir - separator to more closely follow the Linux search algorithm. - (get_full_path_of_dll): Drop useless __stdcall. - (dlopen): Simplify RTLD_NOLOAD case by calling GetModuleHandleEx - instead of GetModuleHandle/LoadLibrary. - -2014-10-11 Christian Franke <franke@computer.org> - - Add setsockopt(sd, SOL_SOCKET, SO_PEERCRED, NULL, 0) to disable - initial handshake on AF_LOCAL sockets. - * fhandler.h (class fhandler_socket): Add no_getpeereid status flag. - (fhandler_socket::af_local_set_no_getpeereid): New prototype. - * fhandler_socket.cc (fhandler_socket::af_local_connect): Skip handshake - if no_getpeereid is set. Add debug output. - (fhandler_socket::af_local_accept): Likewise. - (fhandler_socket::af_local_set_no_getpeereid): New function. - (fhandler_socket::af_local_copy): Copy no_getpeereid. - (fhandler_socket::getpeereid): Fail if no_getpeereid is set. - * net.cc (cygwin_setsockopt): Add SO_PEERCRED for AF_LOCAL/SOCK_STREAM - sockets. Add comment to explain why we need it. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-10-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::af_local_connect): Drop outdated - comment. - (fhandler_socket::evaluate_events): Only set connect_state and call - af_local_connect if connect_state is connect_pending. Explain why. - Drop redundant test for socket family and type. - (fhandler_socket::connect): Extend comment. - -2014-10-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Handle - connect_state and af_local_connect connect call here, once, independent - of FD_CONNECT being requested. Add comment to explain why. - (fhandler_socket::connect): Drop connect_state handling and calling - af_local_connect. Move remaining AF_LOCAL stuff prior to calling - ::connect and explain why. Simplify error case. - * poll.cc (poll): Handle connect state independently of POLLOUT being - requested for the descriptor to allow setting POLLIN if connect failed. - Add comment. - * select.cc (set_bits): Drop connect_state and AF_LOCAL handling here. - -2014-10-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Slightly - rearrange code. Rephrase a comment. - -2014-10-10 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (dlopen): Disable old 32 bit code on 64 bit. - * dcrt0.cc (check_sanity_and_sync): Ditto. - * dll_init.cc (dll_dllcrt0_1): Fix typo in comment. - -2014-10-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::readdir): Just test - ObjectTypeName for object types rather than calling lstat to avoid - performance hit. - * globals.cc (ro_u_natdir): Define. - (ro_u_natsyml): Define. - (ro_u_natdev): Define. - -2014-10-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Set d_type - for virtual directories. - -2014-10-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (fhandler_proc::readdir): Set dirent d_type. - * fhandler_process.cc (fhandler_process::readdir): Ditto. - * fhandler_procnet.cc (fhandler_procnet::readdir): Ditto. - * fhandler_procsys.cc (fhandler_procsys::readdir): Ditto. - * fhandler_procsysvipc.cc (fhandler_procsysvipc::readdir): Ditto. - * fhandler_virtual.h (virt_ftype_to_dtype): Define new inline function - to generate dirent d_type from virtual_ftype_t. - -2014-10-08 Corinna Vinschen <corinna@vinschen.de> - - * common.din (ffsl): Export. - (ffsll): Export. - * syscalls.cc (ffs): Implement using GCC intrinsic. - (ffsl): Ditto. - (ffsll): Ditto. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2014-10-08 Christian Franke <franke@computer.org> - - * syscalls.cc (ffs): Fix crash of ffs (0x80000000) on 64 bit. - -2014-10-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_statm): Fix output of dirty - pages. Add linefeed. - -2014-09-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (proc_tab): Add entry for cygdrive symlink. - (format_proc_cygdrive): New function to implement /proc/cygdrive. - -2014-09-05 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (class exception): Remove unnecessary #ifdef. - * uinfo.cc (client_request_pwdgrp::client_request_pwdgrp): Fix length - counter to include trailing NUL. - - * sec_auth.cc (get_user_groups): Add experimental exception handler. - (get_user_local_groups): Ditto. - -2014-09-05 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Handle APPLICATION - PACKAGE AUTHORITY SIDs. - * winlean.h (DNLEN): Raise to 31. Explain why. - -2014-09-03 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (aclcheck32): Check for required default entries as well. - Enable check for missing CLASS_OBJ entries, now that setfacl creates - them. - -2014-09-02 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (aclsort32): Set errno to EINVAL if aclcheck32 failed. - -2014-08-31 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Disallow user accounts - as groups. Add comment. - -2014-08-31 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_pwdgrp::init): Fix comment. Rearrange code for - style. - (cygheap_pwdgrp::nss_init_line): Disable db_prefix and db_separator - settings. Add comment. - (pwdgrp::fetch_account_from_windows): Drop outdated comment. Fix code - fetching primary group gid of group setting in SAM description field. - Change comment accordingly. - -2014-08-31 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Disallow creating an - entry for "NULL SID". - -2014-08-31 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Add comment. Handle NULL ACE for SUID, SGID, - and VTX bits. Create owner, group, other and NULL entries in the same - way and in the same order as alloc_sd. - (getacl): Skip NULL ACE. - -2014-08-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::facl): Drop CLASS_OBJ entry. - * fhandler_disk_file.cc (fhandler_disk_file::facl): Ditto in noacl case. - * sec_acl.cc (getacl): Compute useful fake CLASS_OBJ and DEF_CLASS_OBJ - permission bits based on how these values are generated on Linux. - Add comments to explain what the code is doing. - * security.cc (get_attribute_from_acl): Compute group permission based - on the actual primary group permissions and all secondary user and group - ACCESS_ALLOWED_ACEs to emulate Linux' behaviour more closely. - (check_access): Fix typos im comment. - * include/cygwin/acl.h (MIN_ACL_ENTRIES): Redefine as 3. - -2014-08-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Try the - FileFsSizeInformation information class on filesystems choking on - FileFsFullSizeInformation (I see you Netapp!) - -2014-08-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_pty_slave::fch_open_handles): Add bool parameter - to declaration. - * fhandler_tty.cc (fhandler_pty_slave::fch_open_handles): Add bool - parameter "chown". Only request WRITE_OWNER access when opening pty - synchronization objects if "chown" is set. - (fhandler_pty_slave::fchmod): Call fch_open_handles with new bool - parameter set to false. - (fhandler_pty_slave::fchown): Call fch_open_handles with new bool - parameter set to true. - * kernel32.cc (CreateFileMappingW): Fix default standard rights for - file mappings from READ_CONTROL to STANDARD_RIGHTS_REQUIRED to allow - changing the DACL (fixes "access denied" error in pinfo::set_acl). - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Change debug - output to print mode bits in octal. - * security.cc (alloc_sd): Ditto. - (set_file_attribute): Ditto. - -2014-08-27 Corinna Vinschen <corinna@vinschen.de> - - * ntea.cc (read_ea): Change left-over return to __leave. Fix - condition to close handle. Call NtClose rather than CloseHandle. - (write_ea): Fix condition to close handle. Call NtClose rather than - CloseHandle. - * security.cc (get_file_sd): Call pc.init_reopen_attr if a valid - incoming handle was given, pc.get_object_attr otherwise. - (set_file_sd): Ditto. - -2014-08-26 Corinna Vinschen <corinna@vinschen.de> - - * path.h (path_conv::init_reopen_attr): Change from void to returning - POBJECT_ATTRIBUTES. Take OBJECT_ATTRIBUTES reference as argument, not - pointer. - * fhandler_disk_file.cc: Throughout accommodate above change. - * syscalls.cc: Ditto. - * ntea.cc (read_ea): Don't set hdl to NULL if it's already NULL. Set - attr with pc.init_reopen_attr before trying to reopen file. - (write_ea): Ditto. - * security.cc (get_file_sd): Use pc.init_reopen_attr rather than - pc.get_object_attr when trying to reopen file. - (set_file_sd): Ditto. - -2014-08-25 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (san::leave/x86_64): Implement. - * cygtls.h (class tls_pathbuf): Move counter variables into a union. - Add 64 bit element _counters covering both counter variables to - optimize save and restore operations. - (class san/x86_64): Only store single 64 bit value. - (san::san/x86_64): Implement. - (san::leave/x86_64): Only declare here, as returns_twice function. - Explain why. - (class san/i686): Change type of _c_cnt and _w_cnt to uint32_t. - (__try/x86_64): Move definition of __sebastian after the first memory - barrier. Drop __sebastian.setup call. - -2014-08-25 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Revert previous patch. - * cygtls.h (struct _local_storage): Move pathbufs back here. - (class san/x86_64): Revert class. Save and restore pathbufs counters - only. - (class san/i686): Revert saving and restoring pathbufs counters. - (__try/x86_64): Add a san variable and call it's setup method. - (__except/x86_64): Call san::leave to restore pathbufs counters. - * gendef (_sigbe): Revert previous change. - * thread.cc (verifyable_object_state): Remove gcc 4.7 workaround in - forward declaration as well. - * tls_pbuf.cc (tls_pbuf): Revert previous change. - * tls_pbuf.h (class tmp_pathbuf): Accommodate reverting pathbufs to - locals structure. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Regenerate. - -2014-08-21 Corinna Vinschen <corinna@vinschen.de> - - * Throughout, use __try/__except/__endtry blocks, rather than myfault - handler. - * cygtls.cc (_cygtls::remove): Accommodate the fact that pathbufs - has been moved from _local_storage to _cygtls. - * cygtls.h (class tls_pathbuf): Add comment to hint to gendef usage - of counters. Change type of counters to uint32_t for clarity. - Remove _cygtls as friend class. - (struct _local_storage): Move pathbufs from here... - (struct _cygtls): ...to here, allowing to access it from _sigbe. - (class san): Only define on 32 bit. Remove errno, _c_cnt and _w_cnt - members. - (san::setup): Drop parameter. Don't initialize removed members. - (san::leave): Don't set removed members. - (class myfault): Only define on 32 bit. - (myfault::faulted): Only keep implementation not taking any parameter. - Drop argument in call to sebastian.setup. - (__try/__leave/__except/__endtry): Implement to support real SEH. For - now stick to SJLJ on 32 bit. - * dcrt0.cc (dll_crt0_0): Drop 64 bit call to - exception::install_myfault_handler. - * exception.h (exception_handler): Define with EXCEPTION_DISPOSITION - as return type. - (PDISPATCHER_CONTEXT): Define as void * on 32 bit. Define as pointer - to _DISPATCHER_CONTEXT on 64 bit. - (class exception): Define separately for 32 and 64 bit. - (exception::myfault): Add handler for myfault SEH handling on 64 bit. - (exception::exception): Fix mangled method name to account for change - in type of last parameter. - (exception::install_myfault_handler): Remove. - * exceptions.cc (exception::myfault_handle): Remove. - (exception::myfault): New SEH handler for 64 bit. - * gendef (_sigbe): Set tls_pathbuf counters to 0 explicitely when - returning to the caller. - * ntdll.h: Move a comment to a better place. - (struct _SCOPE_TABLE): Define on 64 bit. - * thread.cc (verifyable_object_isvalid): Remove gcc 4.7 workaround. - * tls_pbuf.cc (tls_pbuf): Fix to accommodate new place of pathbufs. - (tls_pathbuf::destroy): Change type of loop variables to uint32_t. - * tls_pbuf.h (class tmp_pathbuf): Change type of buffer counters to - uint32_t. Accommodate new place of pathbufs. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Regenerate. - -2014-08-21 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (__import_address): Cover the first dereference to imp - under the fault handler. - -2014-08-21 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (if_freenameindex): Don't catch a SEGV from free to fail - loudly on double free. - -2014-08-21 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (rmdir): Don't skip deleting fh in the ENOTEMPTY case. - -2014-08-20 Corinna Vinschen <corinna@vinschen.de> - - * tls_pbuf.h (tmp_pathbuf::tmp_pathbuf): Convert to inline method. - (tmp_pathbuf::~tmp_pathbuf): Ditto. - * tls_pbuf.cc (tmp_pathbuf::tmp_pathbuf): Remove here. - (tmp_pathbuf::~tmp_pathbuf): Ditto. - -2014-08-19 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (dirfd): Per POSIX, return EINVAL on invalid directory stream. - (telldir): Per POSIX, return -1 and set errno to EBADF, rather than - just returning 0, on invalid directory stream. - * signal.cc (sigwaitinfo): Return -1, not EFAULT, when SEGV was catched. - -2014-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (enum conn_state): Add "connect_credxchg" state. - (class fhandler_socket): Grant another bit to connect_state flag. - * fhandler_socket.cc (fhandler_socket::af_local_connect): Rearrange - variable definition. Set connect_state to connect_credxchg. - (fhandler_socket::af_local_accept): Ditto. - (fhandler_socket::recv_internal): Accept connect_credxchg on connection - oriented AF_LOCAL sockets as well to allow the credential exchange. - Extend comment to explain. - -2014-08-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Replace WNet[...]A with WNet[...]W imports. - * dcrt0.cc (initial_env): Drop strlwr calls. Call strcasestr instead. - * fhandler_netdrive.cc: Throughout, convert to calling WNet UNICODE - functions. Use tmp_pathbuf rather than alloca. Replace call to - strlwr with call to RtlDowncaseUnicodeString. - -2014-08-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_serial::is_tty): Reinstantiate. - -2014-08-18 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (strlwr): Rename from cygwin_strlwr. Drop __stdcall - decoration. - (strupr): Rename from cygwin_strupr. Drop __stdcall decoration. - * string.h (strlwr): Remove override macro. Simply declare. - (strupr): Ditto. - -2014-08-18 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Mention that console - handles are kernel objects since Windows 8. - * fhandler.h (enum conn_state): Add "listener" state. - (class fhandler_socket): Drop listener status flag. - (fhandler_socket::lseek): Return -1 and errno ESPIPE. - (fhandler_serial::lseek): Ditto. - (fhandler_serial::is_tty): Remove. - * fhandler_socket.cc (fhandler_socket::listen): Set connect_state to - listener. Add comment. - (fhandler_socket::accept4): Explicitely check if the socket is listening - and fail with EINVAL, if not. Explain why we have to do that. - (fhandler_socket::recv_internal): Explicitely check if the socket is - connected if it's a stream socket. Explain why we have to do that. - (fhandler_socket::getpeereid): Drop now redundant test. - -2014-08-15 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (_GNU_SOURCE): Define. Explain why. - * configure.ac: Convert to new AC_INIT style. - * configure: Regenerate. - -2014-08-15 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (seterrno): Define as (always) inline function. - * errno.cc (seterrno): Remove. - -2014-08-14 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.sgml: Remove. - * dtable.sgml: Move into ../doc/misc-funcs.xml. - * external.sgml: Ditto. - * stackdump.sgml: Ditto. - -2014-08-14 Corinna Vinschen <corinna@vinschen.de> - - * security.sgml: Move to ../doc dir and rename to logon-funcs.xml. - -2014-08-14 Corinna Vinschen <corinna@vinschen.de> - - * path.sgml: Move to ../doc dir and rename to path.xml. - * posix.sgml: Move to ../doc dir and rename to posix.xml. - -2014-08-14 Corinna Vinschen <corinna@vinschen.de> - - * dlmalloc.c: Remove unused file. - * dlmalloc.h: Ditto. - * malloc.cc: Update to Doug Lea's malloc version 2.8.6. - -2014-08-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 33. - (CYGWIN_VERSION_API_MINOR): Bump to reflect intermediate 1.7.32 release. - -2014-08-11 Corinna Vinschen <corinna@vinschen.de> - - * cpuid.h: Add missing copyright header. Fix formatting. Use uint32_t - instead of unsigned throughout. Change functions to static inline and - always inline. - (cpuid): Add parameter to set ecx, allowing to request extended CPUID - info. - * fhandler_proc.cc (format_proc_cpuinfo): Use uint32_t instead of - unsigned throughout. Add fake decimal places to MHz info. Handle more - feature flags. - * fhandler_random.cc (fhandler_dev_random::write): Allow up to 4K - input to add entropy. - * syscalls.cc: Drop including cpuid.h. - -2014-08-07 Yaakov Selkowitz <yselkowi@redhat.com> - - * common.din (__cxa_finalize): Export. - * dcrt0.cc (cygwin_atexit): Use d->handle with __cxa_atexit. - * dll_init.cc (dll_list::detach): Use d->handle with __cxa_finalize. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Use 274 for - __cxa_finalize as well. - -2014-08-04 Anthony Heading <anthony@ajrh.net> - - * include/sys/file.h: Add extern "C". - -2014-08-04 Corinna Vinschen <corinna@vinschen.de> - - * common.din (__cxa_atexit): Export. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump to 274. - -2014-08-04 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop "plus_prepended" - as naming style. Drop enum name_style_t, use a boolean - "fully_qualified_name" value instead. Rework function to drop - "plus_prepended" handling througout and default to "name only" style - as replacement. - -2014-07-31 Eric Blake <eblake@redhat.com> - - * include/pthread.h: Decorate attribute names with __, for - namespace safety. - * include/cygwin/core_dump.h: Likewise. - * include/cygwin/cygwin_dll.h: Likewise. - * include/sys/cygwin.h: Likewise. - * include/sys/strace.h: Likewise. - -2014-07-30 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Fix comment. - -2014-07-29 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cygheap_domain_info): Remove lowest_tdo_posix_offset. - * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): Return UINT32_MAX - in case of error. - * security.h (PRIMARY_POSIX_OFFSET): Define. - (NOACCESS_POSIX_OFFSET): Define. - (UNUSABLE_POSIX_OFFSET): Define. - * uinfo.cc (cygheap_domain_info::init): Drop initializing - lowest_tdo_posix_offset. - (pwdgrp::fetch_account_from_file): Set PosixOffset to either - UNUSABLE_POSIX_OFFSET or NOACCESS_POSIX_OFFSET in case we don't get a - sensible offset from AD. Explain why. Drop setting ch - lowest_tdo_posix_offset. - (pwdgrp::fetch_account_from_windows): Replace constant 0x100000 with - PRIMARY_POSIX_OFFSET throughout. - -2014-07-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::send_internal): Fix value of - out_len when tweaking the last buffer so out_len is correct in a - subsequent if expression. - -2014-07-21 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::init_mainthread): Initialize thread mutex to - type PTHREAD_MUTEX_RECURSIVE, just as for any other thread. - -2014-07-21 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 32. - -2014-07-21 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc: Fix typo in comment. - -2014-07-16 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::create): Handle stackaddr as upper bound address. - Add comment. - (pthread_attr_setstack): Store upper bound address in stackaddr. - Explain why. - (pthread_attr_getstack): Handle stackaddr as upper bound address. - Add comment. - (pthread_attr_setstackaddr): Add comment. - (pthread_attr_getstackaddr): Add comment. - (pthread_attr_getstacksize): Return default stacksize if stacksize has - not been set by the application, just as on Linux. Add comment. - (pthread_getattr_np): Store upper bound address in stackaddr. Explain - why. - * include/pthread.h: Remove outdated comment. - (pthread_attr_getstackaddr): Mark as deprecated, as on Linux. - (pthread_attr_setstackaddr): Ditto. - -2014-07-15 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.cc (sigproc_init): Set aside more buffer space for signal - pipes. - (sig_send): Retry WriteFiles which fail when there is no error but - packbytes have not been sent. - -2014-07-15 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.cc (send_sig): Don't report an error if WriteFile succeeds. - -2014-07-14 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.cc (send_sig): Fix bad format in diagnostic output. - -2014-07-14 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_domain_info::init): Correctly set - lowest_tdo_posix_offset to UNIX_POSIX_OFFSET. - (fetch_posix_offset): Redesign to fake a POSIX offset in all cases - where we can't fetch a non-0 POSIX offset from our primary domain. - -2014-07-14 Yaakov Selkowitz <yselkowitz@cygwin.com> - - * thread.cc (pthread_mutex::pthread_mutex): Change default type - to PTHREAD_MUTEX_NORMAL. - (pthread_mutex::unlock): Return EPERM if the mutex has no owner and - the mutex type is PTHREAD_MUTEX_ERRORCHECK, as on Linux. - (pthread_mutexattr::pthread_mutexattr): Ditto. - (pthread_mutex_unlock): Do not fail if mutex is a normal mutex - initializer. - * include/pthread.h (PTHREAD_MUTEX_INITIALIZER): Redefine as - PTHREAD_NORMAL_MUTEX_INITIALIZER_NP. - -2014-07-09 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::create): Use PTHREAD_DEFAULT_STACKSIZE stacksize - if attr.stacksize is 0. - (pthread_attr::pthread_attr): Initialize stacksize to 0 to align more - closely to Linux. - (pthread_attr_getstack): Fix incorrect stackaddr computation. Return - stackaddr just like pthread_attr_getstackaddr. Remove slightly off - comment. - (pthread_attr_getstackaddr): Remove slightly off comment. - (pthread_getattr_np): Return stackaddr and stacksize based on the full - allocated stackarea. - -2014-07-09 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::myfault_handle): Rephrase comment. - -2014-07-09 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::myfault_handle): Fix typo in comment. - -2014-07-07 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::myfault_handle): Disable handling - STATUS_STACK_OVERFLOW. Explain why. - -2014-07-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::send_internal): Improve loop to - write streams in chunks of wmem() bytes to raise performance when - writing small buffers. Rename variables and add comments to help - understanding the code in years to come. - -2014-07-07 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pg_ent::enumerate_ad): Revert to simply skipping a domain - if opening the connection to the domain fails. - -2014-07-07 Pierre Humblet <Pierre.Humblet@ieee.org> - Corinna Vinschen <corinna@vinschen.de> - - * libc/minires.c (minires_dprintf): Change "Minires" to "Resolv" to - differ from external minres lib. - (res_nquerydomain): Fix off-by-one in domain concatenation. Add debug - output. - -2014-07-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add debug - output. - -2014-06-25 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Fix order of SERVICE_REQUEST_TIMEOUT. - -2014-06-25 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Handle Windows error codes ERROR_CANCELLED, - ERROR_CONNECTION_REFUSED, ERROR_DEV_NOT_EXIST, ERROR_DS_GENERIC_ERROR, - ERROR_NOT_ENOUGH_QUOTA, ERROR_SERVICE_REQUEST_TIMEOUT, ERROR_TIMEOUT, - ERROR_UNEXP_NET_ERR. - * ldap.cc (cyg_ldap::map_ldaperr_to_errno): Drop explicit LDAP_TIMEOUT - handling. - -2014-06-25 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (cyg_ldap::map_ldaperr_to_errno): Explicitely map LDAP_TIMEOUT - to EIO. - -2014-06-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (ldap_search_sW): Replace ldap_search_stW. - (LdapMapErrorToWin32): Import. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Accommodate - change to cyg_ldap::open. - * ldap.cc (CYG_LDAP_TIMEOUT): Remove. - (CYG_LDAP_ENUM_TIMEOUT): Remove. - (def_tv): Remove. - (enum_tv): Remove. - (cyg_ldap::map_ldaperr_to_errno): New method to map LDAP error codes to - POSIX errno codes. Explicitly map LDAP_NO_RESULTS_RETURNED to ENMFILE. - (cyg_ldap::wait): Ditto. - (struct cyg_ldap_init): New struct. - (cyg_ldap::connect_ssl): Return ULONG. Drop setting LDAP_OPT_TIMELIMIT. - Add call to ldap_search_sW to fetch root DSE. - (cyg_ldap::connect_non_ssl): Ditto. - (ldap_init_thr): New static thread function. - (cyg_ldap::connect): New method to call connect_ssl/connect_non_ssl in - an interruptible cygthread. - (struct cyg_ldap_search): New struct. - (cyg_ldap::search_s): New method to perform generic synchronous search. - (ldap_search_thr): New static thread function. - (cyg_ldap::search): New method to call search_s in an interruptible - cygthread. - (struct cyg_ldap_next_page): New struct. - (cyg_ldap::next_page_s): New method to perform generic synchronous - paged search. - (ldap_next_page_thr): New static thread function. - (cyg_ldap::next_page): New method to call next_page_s in an - interruptible cygthread. - (cyg_ldap::open): Return POSIX errno. Call connect method. - (cyg_ldap::fetch_ad_account): Call search method rather than - ldap_search_stW. - (cyg_ldap::enumerate_ad_accounts): Return POSIX errno. Use infinite - timeout in call to ldap_search_init_pageW. - (cyg_ldap::next_account): Return POSIX errno. Call next_page method - rather than ldap_get_next_page_s. - (cyg_ldap::fetch_posix_offset_for_domain): Call search method rather - than ldap_search_stW. - (cyg_ldap::fetch_unix_sid_from_ad): Ditto. - (cyg_ldap::fetch_unix_name_from_rfc2307): Ditto. - * ldap.h (class cyg_ldap): Accommodate aforementioned changes. - * passwd.cc (pg_ent::enumerate_ad): Ditto. Break search if one of - cyg_ldap::enumerate_ad_accounts or cldap.next_account returns with - an error code other than ENMFILE. - * sec_helper.cc (cygpsid::get_id): Accommodate change to cyg_ldap::open. - * uinfo.cc (fetch_posix_offset): Ditto. - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Initialize err (CID 60111). - * strace.cc (strace::activate): Fix potential buffer overrun (CID 59938) - * syscalls.cc (popen): Close parent pipe descriptor via fclosing fp on - error to avoid resource leak (CID 59981). - * thread.cc (pthread::exit): Avoid accessing cygtls member after - deleting "this" (CID 60217). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * select.cc (start_thread_socket): Delete si on early return in case of - an error (CID 59967). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (computematchjumps): Free local memory in case of - error (CID 59975). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Define dir in the outermost scope to avoid - accessing out-of-scope value (CID 60027). Always initialize attr to - upath (CID 60113). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * malloc_wrapper.cc (mallinfo): Initialize m if external malloc is used, - too (CID 60120). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzload): Fix leaking memory (CID 60001). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (try_to_debug): Free environment pointer when not used - anymore (CID 59968). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getaddrinfo): Fix value of hint->ai_addrlen on 64 bit. - Explain why. - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (regopt): Allocate small local buffer to avoid copying - twice. Fixes resource leak (CID 60012). Add comment. - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (dll_list::alloc): Fix buffer overrun (CID 59940). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (insert_file): Fix resource leaks (CIDs 59987, 59988). - -2014-06-23 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (CYG_LDAP_TIMEOUT): Set to 5 secs. - (CYG_LDAP_ENUM_TIMEOUT): New timeout value for enumeration only. Set - to 60 secs. - (CYG_LDAP_ENUM_PAGESIZE): Define as number of entries per single - search page. Set to 100. Use throughout. - (def_tv): Rename from tv. Use throughout. - (enum_tv): New variable. Use in call to ldap_get_next_page_s. - -2014-06-17 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (CYG_LDAP_TIMEOUT): Define as timeout value. Set to 30 secs - for now. Use throughout. - * uinfo.cc (colon_to_semicolon): New local function. - (pwdgrp::fetch_account_from_windows): Convert all colons in AD gecos - entry to semicolons. - -2014-06-17 David Stacey <drstacey@tiscali.co.uk> - - * libc/rexec.cc (cygwin_rexec): Make ahostbuf static to avoid returning - an out-of-scope address. - -2014-06-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Call - WSASetLastError after setsockopt. Explain why. - -2014-06-16 Denis Excoffier <cygwin@Denis-Excoffier.org> - - * grp.cc (getgrouplist): Fix setting ngroups to make sure to return - the right value. - -2014-06-05 Christopher Faylor <me.cygwin2014@cgf.cx> - - * timer.cc (timer_tracker::cancel): Demote api_fatal to system_printf, - printing more details about odd failure condition. - -2014-05-23 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (ldap_memfreeW): Remove. - (ldap_msgfree): Import. - * ldap.cc: Throughout, use ldap_msgfree to free LDAPMessage memory, - rather than ldap_memfreeW. - (cyg_ldap::next_account): Immediately abandon search when quiting from - search. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (ldap_abandon): Remove. - (ldap_count_entries): Import. - (ldap_get_next_page_s): Import. - (ldap_result): Remove. - (ldap_searchW): Remove. - (ldap_search_abandon_page): Import. - (ldap_search_init_pageW): Import. - * ldap.cc (cyg_ldap::close): Use ldap_search_abandon_page to abandon - search. Reset srch_id, srch_msg and srch_entry. - (cyg_ldap::enumerate_ad_accounts): Use paged search to overcome server - side search result set restriction. - (cyg_ldap::next_account): Ditto. - * ldap.h (class cyg_ldap): Add members srch_id, srch_msg and srch_entry. - Remove member msg_id. - (cyg_ldap::cyg_ldap): Change initialization accordingly. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_server_groups): Call get_user_local_groups only if - get_logon_server succeeded. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (cyg_ldap::fetch_ad_account): Take additional domain string - parameter. Convert into likely rootDSE string if not NULL, and use in - subsequent call to ldap_search_stW. Add comment to explain that this - is not the exactly correct solution. - * ldap.h (cyg_ldap::fetch_ad_account): Change prototype accordingly. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Always use loc_ldap - in call to fetch_posix_offset to make sure we're fetchoinmg the posix - offsets from *our* domain controller. Only set domain variable to - non-NULL if the account is from a trusted domain. Use domain in call - to cyg_ldap::fetch_ad_account. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * gmon.h: Pull in profile.h. Explain why. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Fix potential SEGV - referencing NULL pointer. - -2014-05-22 Corinna Vinschen <corinna@vinschen.de> - - * libc/bsdlib.cc (forkpty): Close master and slave if fork fails to - avoid resource leak (CID 59997). - * libc/fts.c: Update to FreeBSD version 1.39 (CID 59947). - * libc/minires.c (minires_get_search): Fix out-of-bounds read from - words array (CID 59937). - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (delete_lock_in_parent): Use LIST_FOREACH_SAFE to avoid - dereferencing freed pointer (CID 60224). - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsysvipc.cc (format_procsysvipc_msg): Rearrange code to - avoid resource leakage (CID 60002). Don't use tmp_pathbuf, explain why. - Fix indentation. - (format_procsysvipc_sem): Ditto. - (format_procsysvipc_shm): Ditto (CID 60003). - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (get_mem_values): Rearrange code slightly to - avoid resource leakage (CID 59973). - (format_process_stat): Drop temporary variable wcmd and avoid - string copy without length check (CID 60050). - (format_process_status): Ditto (CID 60051). - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_swaps): Use tmp_pathbuf for filename, - rather than allocating and forgetting to free (CID 59982). - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Fix floppy - drive handling broken with 1.7.19. - -2014-05-20 Corinna Vinschen <corinna@vinschen.de> - - * scandir.cc (scandir): Assume namelist is always valid, per POSIX. - (CID 60021). - * sec_auth.cc (cygwin_logon_user): Securely erase password copy. - (lsaprivkeyauth): Avoid trying to dereference data if no key is stored - in the registry (CID 60122). Securely erase passwords after usage. - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * pseudo-reloc.cc (__report_error): Raise size of module name buffer to - PATH_MAX. Fix length in call to GetModuleFileNameW (CID 59947). - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (call_gaa): Fix setting pa_ret pointer in case of an error - from GetAdaptersAddresses (CID 60218). - (get_ifs): Add missing braces in AF_INET6 case which broke netmask - computation. Break out of loop if prefix gets <= 0 (CID 59939). - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 31. - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (handle_to_fn): Fix length parameter in call to - QueryDosDeviceW (CID 59936). - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (pinfo_basic::pinfo_basic): Fix size of progname array in - call to GetModuleFileNameW (CID 59935). - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * smallprintf.cc (__small_vsprintf): Add missing break in 'C' case. - -2014-05-19 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (try_to_debug): Fix size of dbg_cmd (CID 59929). - -2014-05-18 David Stacey <drstacey@tiscali.co.uk> - - * syscalls.cc (getusershell): Fix buffer overrun (Coverity ID 59932). - -2014-05-15 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Use local name buffer instead of - allocated one in CW_CYGNAME_FROM_WINNAME. - -2014-05-15 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump to 273. - -2014-05-15 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Implement CW_CYGNAME_FROM_WINNAME. - Add lengthy comment to explain what we do and why. - * include/sys/cygwin.h (cygwin_getinfo_types): Add - CW_CYGNAME_FROM_WINNAME. - -2014-05-14 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_server_groups): Call get_logon_server only for - non-builtin accounts. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Check incoming - account name for validity in terms of the current name prefixing rules - and refuse invalid names. - -2014-05-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Handle the different - ideas of u_long between Winsock and Cygwin applications on x86_64. - Add long comment. - -2014-05-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * signal.cc (sigprocmask): Fix strace output to include "how". - - * fhandler_console.cc (dev_console::save_restore): Only save current - dwEnd line rather than the one after that. - -2014-05-08 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::init): Fix formatting in debug output. - (struct cyg_USER_INFO_24): Define temporarily. Explain why. - (pwdgrp::fetch_account_from_windows): Handle sane primary group - setting for Microsoft Accounts. Explain why. - * wincap.h (wincaps::has_microsoft_accounts): New element. - * wincap.cc: Implement above element throughout. - -2014-05-08 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (gr_ent::enumerate_caches): Fix copy/paste bug introducing - an endless loop. - -2014-05-07 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pwdgrp::parse_passwd): Fix an off by one computing the - buffer len. Add comment. - * uinfo.cc (internal_getlogin): Fix typo in comment. - -2014-05-07 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Tweak SID<->uid - conversion to cover S-1-5-113, S-1-5-114, and S-1-5-1000 groups. - -2014-05-07 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (pwdgrp::parse_group): Set grp.len. Drop generating any - gr_mem entries. - (getgrgid_r): Don't try to copy gr_mem entries. Always set gr_mem - to an empty list. - (getgrnam_r): Ditto. - (app_gr): New static struct to store group data propagated to the - calling application via getgrgid/getgrnam. - (getgr_cp): Fill app_gr and return pointer to app_gr.g. - (getgrgid32): Call getgr_cp. - (getgrnam32): Ditto. - * passwd.cc (pwdgrp::parse_passwd): Set res.len. - (app_pw): New static struct to store passwd data propagated to the - calling application via getpwuid/getpwnam. - (getpw_cp): Fill app_pw and return pointer to app_pw.p. - (getpwuid32): Cal getpw_cp. - (getpwnam): Ditto. - * pwdgrp.h (struct pg_pwd): Add len member. - (struct pg_grp): Ditto. - -2014-05-06 Corinna Vinschen <corinna@vinschen.de> - - * security.h (MAX_SUBAUTH_CNT): Drop. Use SID_MAX_SUB_AUTHORITIES - instead throughout. - (MAX_SID_LEN): Drop. Use SECURITY_MAX_SID_SIZE instead throughout. - -2014-05-06 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Drop unused cygsid variable. - * sec_helper.cc (cygpsid::pstring): Use sid_sub_auth_count macro. - (cygsid::get_sid): Use MAX_SUBAUTH_CNT rather than wrong constant 8. - Don't call memcpy to copy subauthorities into SID, use assignment. - (cygsid::getfromstr): Use MAX_SUBAUTH_CNT rather than wrong constant 8. - * security.h (MAX_SUBAUTH_CNT): New definition. Set to 11 to cover - Microsoft Accounts. - (MAX_SID_LEN): Define in terms of SID member sizes and MAX_SUBAUTH_CNT. - (DBGSID): Use MAX_SUBAUTH_CNT to define size of SubAuthority array. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Handle Micosoft - Accounts. Handle them as well known group. Compare domain names - case-insensitive. - * winlean.h (PIPE_REJECT_REMOTE_CLIENTS): Drop temporary definition - since Mingw64 catched up. - (DNLEN): Redefine as 16. Explain why. - -2014-05-05 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getsockopt): Rearrange code slightly and handle - TCP_NODELAY just like SO_KEEPALIVE and SO_DONTROUTE. - -2014-05-03 Christopher Faylor <me.cygwin2014@cgf.cx> - - * spawn.cc (av::setup): Eat trailing whitespace on #! script. - -2014-05-02 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_dsp.cc (ioctl): Use _ioctl for recursive call. - -2014-04-26 Christopher Faylor <me.cygwin2014@cgf.cx> - - * DevNotes: Add entry cgf-000026. - * fhandler.h (fhandler_console::save_top): Save top of screen - coordinates. - * fhandler_console.cc (dev::save_restore): Record top of screen - coordinates. Clear entire buffer when restoring saved buffer and try - to position the cursor on the save relative place on the screen. - -2014-04-25 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (NT_TRANSACTIONAL_ERROR): Cover all status codes up to - STATUS_TRANSACTION_NOT_ENLISTED. - -2014-04-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: On x86_64, define u_long as __ms_u_long before - including the windows headers. Explain why. - (get_inet_addr): Convert ANY address to LOOPBACK address. Explain why. - (fhandler_socket::evaluate_events): Forcibly set SO_ERROR socket option - in case a connection attempt failed. Explain why. - (fhandler_socket::ioctl): Drop x86_64 re-definition of u_long here. - * fhandler_procnet.cc: On x86_64, define u_long as __ms_u_long before - including the windows headers. Explain why. - * net.cc: Ditto. - -2014-04-23 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (check_iovec): Allow 0 as valid iovcnt value. - -2014-04-22 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (user_attr): Remove "uid" attribute. - * ldap.h (LDAP_USER_NAME_ATTR): Remove. Change other attribute index - values as required. - (cyg_ldap::get_user_name): Remove inline function. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Remove code to handle - Cygwin username different from Windows username. - (pwdgrp::add_account_from_cygserver): Remove unnecessary cast. - -2014-04-18 Corinna Vinschen <corinna@vinschen.de> - - * winf.cc (linebuf::fromargv): Temporarily revert patch from 2014-01-24. - -2014-04-18 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (TP_NUM_C_BUFS): Raise to 50 to allow SYMLOOP_MAX recursions - path_conv <-> normalize_posix_path, plus a bit of buffer. - (TP_NUM_W_BUFS): Ditto. - (class san): Change type of _c_cnt and _w_cnt to unsigned. - * path.cc (normalize_posix_path): Guard recursion into path_conv - against tmp_pathbuf overflow. Generate normalized path in call to - path_conv. If the path is valid, replace dst with the normalized_path - from path_conv call. Add comment to explain why we're doing this. - * tls_pbuf.cc (tls_pathbuf::destroy): Only free buffers until the - first buffer pointer is NULL. - (tmp_pathbuf::c_get): Simplify error message. - (tmp_pathbuf::w_get): Ditto. - * tls_pbuf.h (class tmp_pathbuf): Change type of c_buf_old and w_buf_old - to unsigned. - (tmp_pathbuf::check_usage): New inline method to check if we have - enough tmp_pathbuf buffers left to call a function using tmp_pathbuf - buffers. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Regenerate. - -2014-04-16 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_setsockopt): Ignore IPV6_TCLASS the same way as IP_TOS. - -2014-04-12 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Fix gid evaluation - for local accounts. - -2014-04-10 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 30. - -2014-04-09 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::myfault_handle): Only handle the minimum - amount of exceptions the myfault handler was designed for. - -2014-04-08 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in: (Temporarily?) workaround serious ld bug which - truncates symbols in certain computations to 32 bit. See - https://sourceware.org/bugzilla/show_bug.cgi?id=16821 - -2014-04-07 Corinna Vinschen <corinna@vinschen.de> - - * cygserver_ipc.h (ipc_set_proc_info): Add bool parameter to specify - whether or not to send signal_arrived. - * shm.cc (client_request_shm::client_request_shm): Call - ipc_set_proc_info with bool parameter set to true to not send - signal_arrived. - -2014-04-04 Corinna Vinschen <corinna@vinschen.de> - - * ntea.cc (EA_BUFSIZ): Fix comment. - (read_ea): Use tmp_pathbuf for local buffer rather than alloca. - Throughout change ZwQueryEaFile to NtQueryEaFile in comments. - -2014-04-04 Corinna Vinschen <corinna@vinschen.de> - - * ntea.cc (EA_BUFSIZ): Reduce to 64K. Add comment to explain why. - -2014-03-29 Christopher Faylor <me.cygwin2014@cgf.cx> - - * DevNotes: Add entry cgf-000025. - * exceptions.cc (_cygtls::signal_debugger): Reorganize to avoid - contacting the debugger if we have already done so via the exception - handler. Eliminate need for goto. Remove an ifdef in favor of just - allocating a larger buffer. - -2014-03-28 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): Install myfault exception handler on x86_64. - * exception.h (exception_list): Typedef as void on x86_64. - (exception::handler_installed): Remove. - (exception::handle_while_being_debugged): Remove. - (exception::myfault_handle): Declare for x86_64. - (exception::handle): Declare as ordinary exception handler on x86_64 - as well. - (exception::exception): Drop previous code (again). Install - exception::handle as SEH handler. - (exception::install_myfault_handler): New x86_64-only method to - install exception::myfault_handle as VEH handler. Explain why. - (exception::~exception): For x86_64, define frame end label (again). - * exceptions.cc (CYG_EXC_CONTINUE_EXECUTION): Drop definition. - (CYG_EXC_CONTINUE_SEARCH): Ditto. - (exception::myfault_handle): New x86_64-only method, VEH handler to - handle myfault exceptions. - (exception::handle): Define as ordinary exception handler on x86_64 - as well. Use ExceptionContinueExecution and ExceptionContinueSearch - throughout instead of deleted Cygwin macros. Don't handle myfault - exceptions on x86_64. - -2014-03-28 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (create_token): Initialize lsa handle to NULL, rather than - to INVALID_HANDLE_VALUE. - (lsaauth): Ditto. - (lsaprivkeyauth): Ditto. - * setlsapwd.cc (setlsapwd): Don't initialize lsa handle. - -2014-03-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::signal_debugger): Move memcpy to copy context - from incoming siginfo_t to thread_context, too. - -2014-03-27 Corinna Vinschen <corinna@vinschen.de> - - * gendef (_sigbe/x86_64): Fix typo in .seh_proc pseudo-op. - (setjmp/x86_64): Drop storing ExceptionList pointer in jmp_buf->Frame. - Drop comment. Store likely frame in rdx. Jump to __setjmpex. - (__setjmpex): New function providing setjmp functionality. Fetch - jmp_buf->Frame from rdx, like MSVCRT setjmpex. - (__sjfault/x86_64): Store rdx content in jmp_buf->Frame. - (__ljfault/x86_64): Don't restore ExceptionList pointer. - (longjmp/x86_64): Ditto. - -2014-03-19 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Actually pass ioctl - argument to _ioctl. - -2014-03-19 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (fhandler_dev_dsp): Remove variable names from - declarations. - (fhandler_dev_dsp::close_audio_in): Make __reg1. - (fhandler_dev_dsp::close_audio_out): Make __reg2. - * fhandler_dsp.cc (fhandler_dev_dsp::close_audio_in): Make __reg1. - (fhandler_dev_dsp::close_audio_out): Make __reg2. - (fhandler_dev_dsp::close): Don't abruptly terminate sound just because - we are exiting. - -2014-03-19 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (exception::handle_while_being_debugged): Declare. - (exception::exception): Install unhandled exception filter. - * exceptions.cc (exception::handle_while_being_debugged): New method. - -2014-03-19 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pg_ent::enumerate_ad): Ignore primary domain in list of - trusted domains only if all trusted domains are enumerated anyway. - Explain why. - -2014-03-18 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_fork): Actually call - _fixup_after_fork rather than looping forever. - (fhandler_dev_dsp::fixup_after_exec): Ditto. - -2014-03-18 Corinna Vinschen <corinna@vinschen.de> - - Partially revert patch from 2014-03-04. - * exception.h (exception::handler_installed): Declare. - (exception::exception): Install vectored exception handler on x86_64. - (exception::~exception): Remove for x86_64. - * exceptions.cc (exception::handler_installed): Define. - -2014-03-17 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.h (no_thread_exit_protect): New class. - * sigproc.cc (thread_exit): Use no_thread_exit_protect to determine if - we need to coordinate ThreadExit/ExitProcess. - * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Use - no_thread_exit_protect to kludge around waiting for waveOutClose as it - waits for a thread that never exits. - (fhandler_dev_dsp::Audio_in::stop): Ditto for waveInClose. - -2014-03-16 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (fhandler_dev_dsp::base): New method. - (fhandler_dev_dsp::_read): Ditto. - (fhandler_dev_dsp::_write): Ditto. - (fhandler_dev_dsp::_ioctl): Ditto. - (fhandler_dev_dsp::_fixup_after_fork): Ditto. - (fhandler_dev_dsp::_fixup_after_exec): Ditto. - * fhandler_dsp.cc (fhandler_dev_dsp::read): Call real function via - base() pointer. - (fhandler_dev_dsp::write): Ditto. - (fhandler_dev_dsp::ioctl): Ditto. - (fhandler_dev_dsp::fixup_after_fork): Ditto. - (fhandler_dev_dsp::fixup_after_exec): Ditto. - (fhandler_dev_dsp::_read): Rename by adding an leading underscore. - (fhandler_dev_dsp::_write): Ditto. - (fhandler_dev_dsp::_ioctl): Ditto. - (fhandler_dev_dsp::_fixup_after_fork): Ditto. - (fhandler_dev_dsp::_fixup_after_exec): Ditto. - -2014-03-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (enum cygheap_pwdgrp::cache_t): Remove. - (cygheap_pwdgrp::caching): Convert to bool. - (cygheap_pwdgrp::pwd_cache): Add cygserver member. - (cygheap_pwdgrp::grp_cache): Ditto. - (cygheap_pwdgrp::nss_db_caching): Drop. - (cygheap_pwdgrp::nss_db_full_caching): Drop. - (cygheap_pwdgrp::nss_cygserver_caching): New method. - (cygheap_pwdgrp::nss_disable_cygserver_caching): New method. - * cygserver.h (client_request::request_code_t): Add - CYGSERVER_REQUEST_PWDGRP. - * cygserver_pwdgrp.h: New file. - * cygtls.h (struct _local_storage): Remove pwbuf and grbuf members. - * grp.cc (pwdgrp::prep_tls_grbuf): Drop. - (internal_getgrsid): Handle cygserver caching and rearrange to check - the caches first. - (internal_getgrnam): Ditto. - (internal_getgrgid): Ditto. - (gr_ent::enumerate_caches): Handle cygserver cache. - * passwd.cc (pwdgrp::prep_tls_pwbuf): Drop. - (internal_getpwsid): Handle cygserver caching and rearrange to check - the caches first. - (internal_getpwnam): Ditto. - (internal_getpwuid): Ditto. - (pw_ent::enumerate_caches): Handle cygserver cache. - * pwdgrp.h (pwdgrp::add_account_from_cygserver): New method declaration. - (pwdgrp::fetch_account_from_cygserver): New method declaration. - (pwdgrp::prep_tls_pwbuf): Drop declaration. - (pwdgrp::prep_tls_grbuf): Drop declaration. - (pwdgrp::add_user_from_cygserver): New inline methods. - (pwdgrp::add_group_from_cygserver): New inline methods. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Regenerate. - * uinfo.cc (internal_getlogin): Call internal_getgroups if cygserver - caching is not available. - (cygheap_pwdgrp::init): Initialize pwd_cache.cygserver and - grp_cache.cygserver. Set caching to true. - (cygheap_pwdgrp::nss_init_line): Drop db_cache handling entirely. - (pwdgrp::add_account_from_windows): Drop no caching handling. - (client_request_pwdgrp::client_request_pwdgrp): New method. - (pwdgrp::fetch_account_from_cygserver): New method. - (pwdgrp::add_account_from_cygserver): New method. - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix formatting. - * include/sys/cygwin.h: Ditto. - -2014-03-12 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Avoid crash on - non-domain member machines if an unknown SID comes in. - -2014-03-12 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h (IPV6_JOIN_GROUP): Revert. - (IPV6_LEAVE_GROUP): Ditto. - -2014-03-10 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (dev_console::b): Redefine as CONSOLE_SCREEN_BUFFER_INFO - for use with older OS. - * fhandler_console.cc (dev_console::fillin): Ditto for - GetConsoleScreenBufferInfo. - -2014-03-10 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_console.cc (dev_console::save_restore): Save entire line of - current cursor position. - -2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_console.cc (fhandler_console::save_restore): Save only until - last written row and, because of this, don't bother trying to restore - the screen buffer size. Set cursor position after refilling buffer. - (fhandler_console::write): Use absolute paths when saving/restoring - cursor position or suffer odd problems after a saved screen is - restored. - -2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (fhandler_console::dwBufferSize): Delete. - (fhandler_console::dwCursorPosition): Ditto. - (fhandler_console::wAttributes): Ditto. - (fhandler_console::b): New field encompassing previously disparate - screen buffer info. - (fhandler_console::save_bufsize): Rename from savebufsiz - (fhandler_console::save_buf): Rename sfrom savebuf. - (fhandler_console::save_cursor): New field. - (fhandler_console::save_restore): New function. - (fhandler_console::con): Rename from dev_state. - (fhandler_console::focus_aware): Accommodate name change. - * fhandler_console.cc: Use 'b' field of dev_console throughout instead - of disparate names. Accommodate dev_state -> con rename. - (dev_state:save_restore): New function. Attempt to save the entire - screen buffer rather than just the visible part. Clear the buffer when - saving, like Linux. - (fhandler_console::char_command): Use con.save_restore() for - Save/restore screen sequence. - -2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.cc (_cygtls::remove_wq): Reset thread_ev inside of lock. Set - to NULL when done. - -2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler_console.cc (fhandler_console::char_command): Properly use - calculated value rather than directly using dev_state.args[0]. - -2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * dir.cc (opendir): Propagate any errno from build_fh_name. - -2014-03-07 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp::is_passwd): New inline method. - (pwdgrp::is_group): New inline method. - (add_account_from_windows): Drop group argument from declaration. - (fetch_account_from_windows): Ditto. - (check_file): Ditto. - (add_user_from_windows): Call add_account_from_windows accordingly. - (add_group_from_windows): Ditto. - * uinfo.cc (pwdgrp::add_account_from_windows): Drop group argument. - Use is_group method instead. - (pwdgrp::check_file): Ditto. - (pwdgrp::fetch_account_from_windows): Ditto. - * grp.cc: Accommodate aforementioned changes. - * passwd.cc: Ditto. - -2014-03-06 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pg_ent::enumerate_builtin): Convert pwd_builtins and - grp_builtins to array of cygpsid pointers. Replace SID strings with - pointers to well known SIDs. - * sec_helper.cc (well_known_local_service_sid): Define. - (well_known_network_service_sid): Define. - (trusted_installer_sid): Define. - * security.h (well_known_local_service_sid): Declare. - (well_known_network_service_sid): Declare. - (trusted_installer_sid): Declare. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Throughout set acc_type - to SidTypeUnknown if LookupAccountXXX function failed. Create - simplified passwd entry for non-user accounts, except for LocalSystem. - Add comment. - -2014-03-06 Corinna Vinschen <corinna@vinschen.de> - - * setlsapwd.cc (setlsapwd): Use RtlSecureZeroMemory to delete password - from memory. - -2014-03-05 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (rediscover_thread): Remove. - (cyg_ldap::open): Remove code to rediscover DC. It just won't do the - right thing. - (cyg_ldap::enumerate_ad_accounts): Change to be self-sufficient (no - explicit open call required). Enumerate on a DC of the domain itself - instead of relying on delegation. Remove ill-advised code trying to - generate rootdse from domain name. - * passwd.cc (pg_ent::enumerate_ad): Drop explicit call to - cyg_ldap::open. - -2014-03-05 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (__TM_GMTOFF): Define. - (__TM_ZONE): Define. - -2014-03-05 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc: Define TM_GMTOFF and TM_ZONE based on __TM_GMTOFF and - __TM_ZONE being defined. Throughout, write to these struct tm members - only if CYGWIN_VERSION_CHECK_FOR_EXTRA_TM_MEMBERS is true. - * libc/strptime.cc: Ditto. - * include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_EXTRA_TM_MEMBERS): - Define. - (CYGWIN_VERSION_API_MINOR): Bump to 272. - -2014-03-04 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (exception::handler_installed): Remove. - (exception::exception): Remove old code. Manually install SEH handler - instead. - (exception::~exception): For x86_64, define frame end label. - * exceptions.cc (exception::handler_installed): Remove. - -2014-03-03 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (exception::exception): Install vectored exception - handler rather than vectored continue handler. - -2014-03-03 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (cygpsid::get_id): Move Samba SID->uid/gid mapping - from get_sids_info here. - (get_sids_info): Vice versa. - * security.cc (convert_samba_sd): New static function to map a Samba - security descriptor to a security descriptor with UNIX users and groups - converted to Windows SIDs per RFC 2307 mapping. - (check_file_access): Call convert_samba_sd on Samba security - descriptors. - -2014-02-28 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Only fetch extended - user info if we're creating a passwd entry. Add comment. - -2014-02-28 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_user::sid): Return reference to cygpsid rather - than PSID. - (cygheap_user::saved_sid): Ditto. - (cygheap_pwdgrp::cache_t): New type. - (cygheap_pwdgrp::caching): Convert to cache_t. - (cygheap_pwdgrp::nss_db_caching): Change accordingly. - (cygheap_pwdgrp::nss_db_full_caching): New inline method. - * grp.cc (internal_getgroups): Reinvent. Take cyg_ldap pointer as - third parameter and use throughout. - (getgroups32): Call internal_getgroups. - * pwdgrp.h (internal_getgroups): Declare. - * uinfo.cc (internal_getlogin): Partial rewrite to accommodate having - no connection to the DC. Give primary group from user token more - weight. Generate group entries for all groups in the user token if - caching is set to NSS_FULL_CACHING. - (cygheap_pwdgrp::init): Initialize caching to NSS_FULL_CACHING. - (cygheap_pwdgrp::nss_init_line): Handle "db_cache: full". - (pwdgrp::add_account_from_windows): Fix group handling in non-caching - mode. - (pwdgrp::fetch_account_from_windows): Default primary group for the - current user to primary group from user token. Check for primary - domain first after LookupAccountSid failed. - -2014-02-27 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CheckTokenMembership): Import. - * external.cc (cygwin_internal): Call get_uid/get_gid instead of get_id. - * grp.cc (internal_getgrsid): Take additional cyg_ldap pointer. - Forward to pwdgrp::add_group_from_windows. - (internal_getgrnam): Ditto. - (internal_getgrgid): Ditto. - (gr_ent::enumerate_local): Drop ugid_caching bool from call to - pwdgrp::fetch_account_from_windows. - (getgroups32): Rename from internal_getgroups and drop getgroups32 stub. - Drop srchsid parameter and code handling it. Add local cyg_ldap - instance and forward to internal_getgrXXX. - (getgroups): Call getgroups32. - (get_groups): Add local cyg_ldap instance and forward to - internal_getgrXXX. - (getgrouplist): Ditto. - (setgroups32): Ditto. - * ldap.cc (cyg_ldap::open): Don't call close. Return true if connection - is already open. - (cyg_ldap::remap_uid): Forward this to internal_getpwsid. - (cyg_ldap::remap_gid): Forward this to internal_getgrsid. - * passwd.cc (internal_getpwsid): Take additional cyg_ldap pointer. - Forward to pwdgrp::add_user_from_windows. - (internal_getpwnam): Ditto. - (internal_getpwuid): Ditto. - (pg_ent::enumerate_builtin): Drop ugid_caching bool from call to - pwdgrp::fetch_account_from_windows. - (pg_ent::enumerate_sam): Ditto. - (pg_ent::enumerate_ad): Ditto. Forward local cldap instead. - * pwdgrp.h (internal_getpwsid): Align declaration to above change. - (internal_getpwnam): Ditto. - (internal_getpwuid): Ditto. - (internal_getgrsid): Ditto. - (internal_getgrgid): Ditto. - (internal_getgrnam): Ditto. - (internal_getgroups): Drop declaration. - (pwdgrp::add_account_from_windows): Align declaration to below change. - (pwdgrp::add_user_from_windows): Ditto. - (pwdgrp::add_group_from_windows): Ditto. - * sec_acl.cc (setacl): Add local cyg_ldap instance and forward to - internal_getpwuid and internal_getgrgid. - (getacl): Add local cyg_ldap instance and forward to cygpsid::get_id. - (aclfromtext32): Add local cyg_ldap instance and forward to - internal_getpwnam and internal_getgrnam. - * sec_helper.cc (cygpsid::get_id): Take additional cyg_ldap pointer. - Forward to internal_getgrsid and internal_getpwsid. - (get_sids_info): Drop ldap_open. Forward local cldap to - internal_getpwsid and internal_getgrXXX. Call CheckTokenMembership - rather than internal_getgroups. - * security.h (cygpsid::get_id): Add cyg_ldap pointer, drop default - parameter. - (cygpsid::get_uid): Add cyg_ldap pointer. Call get_id accordingly. - (cygpsid::get_gid): Ditto. - * uinfo.cc (internal_getlogin): Add local cyg_ldap instance and forward - to internal_getpwXXX and internal_getgrXXX calls. - (pwdgrp::add_account_from_windows): Take additional cyg_ldap pointer. - Forward to pwdgrp::fetch_account_from_windows. - (fetch_posix_offset): Drop ldap_open argument and handling. Get - cyg_ldap instance as pointer. - (pwdgrp::fetch_account_from_windows): Take additional cyg_ldap pointer. - Use it if it's not NULL, local instance otherwise. Drop ldap_open. - Drop fetching extended group arguments from AD for speed. - -2014-02-27 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (find_fast_cwd_pointer): Fix preceeding comment. - -2014-02-25 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (fhandler_console::scroll_buffer_screen): New function. - * fhandler_console.cc (fhandler_console::scroll_buffer_screen): New function. - (fhandler_console::char_command): Use scroll_buffer_screen as appropriate. - (dev_console::scroll_buffer): Remove if 0'ed block. - -2014-02-22 Christopher Faylor <me.cygwin2014@cgf.cx> - - * dev_console::scroll_buffer): Reinstate clipping region. - -2014-02-22 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (dev_console::is_fullscreen): Delete. - (dev_console::scroll_window): Return bool indicating success. - (dev_console::scroll_screen): New function. - (dev_console::clear_screen): New function. - (fhandler_console::clear_screen): Make __reg3. - (fhandler_console::cursor_set): Ditto. - (fhandler_console::cursor_get): Ditto. - (fhandler_console::cursor_rel): Ditto. - * fhandler_console.cc (dev_console::scroll_buffer): Adapt from - fhandler_console. - (fhandler_console::scroll_buffer): Use dev_console function. - (dev_console::is_fullscreen): Delete. - (dev_console::scroll_window): Return true if we cleared the screen. - Shrink/grow buffer first before scrolling to ensure that there is - sufficient space after scrolling. - (fhandler_console::clear_screen): Make reg3, use dev_console function. - (dev_console::clear_screen): New function adapted from - fhandler_console. - (fhandler_console::cursor_set): Make __reg3. - (fhandler_console::cursor_rel): Ditto. - (fhandler_console::cursor_get): Ditto. - (fhandler_console::write): Fix "reverse index". - -2014-02-22 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add cases for CW_GETNSSSEP, - CW_GETPWSID and CW_GETGRSID. - * grp.cc (internal_getgrsid_from_db): New function. - * passwd.cc (internal_getpwsid_from_db): New function. - (pg_ent::setent): Add special case for call from mkpasswd/mkgroup. - * pwdgrp.h (internal_getpwsid_from_db): Declare. - (internal_getgrsid_from_db): Declare. - (enum nss_enum_t): Move to include/sys/cygwin.h. - (class pg_ent): Add comment. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Fix typo in comment. - Change "UNIX" to "Unix" in domain name. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GETNSSSEP, - CW_GETPWSID and CW_GETGRSID. - (enum nss_enum_t): Define here. - -2014-02-21 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (pwdgrp::fetch_account_from_windows): Add bool parameter - to declaration, set to true by default. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Add bool parameter - "ugid_caching". Only add account to ugid_cache if set to true. - * grp.cc (gr_ent::enumerate_local): Call fetch_account_from_windows - with ugid_caching parameter set to false. - * passwd.cc (pg_ent::enumerate_builtin): Ditto. - (pg_ent::enumerate_sam): Ditto. - (pg_ent::enumerate_ad): Ditto. - -2014-02-20 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (getgrouplist): Fix previous fix so ret is only set to ngroups - if ngroups isn't too small. - -2014-02-20 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (get_groups): Don't add gid to list if it's ILLEGAL_GID. - (getgrouplist): Return number of groups, just like glibc. - -2014-02-19 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (pg_ent::setent): Initialize cygheap domain info. - * sec_auth.cc (get_logon_server): Ditto. - -2014-02-18 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Handle new CW_SETENT, CW_GETENT and - CW_ENDENT info types. - * grp.cc (setgrent_filtered): New function, called from cygwin_internal. - (getgrent_filtered): Ditto. - (endgrent_filtered): Ditto. - * passwd.cc (pg_ent::setent): Set state explicitely to from_cache. - (pg_ent::getent): Handle the fact that a DC has no SAM and enumerating - local accounts is equivalent to enumerating domain accounts. - (setpwent_filtered): New function, called from cygwin_internal. - (getpwent_filtered): Ditto. - (endpwent_filtered): Ditto. - * pwdgrp.h (setpwent_filtered): Declare. - (getgrent_filtered): Ditto. - (endgrent_filtered): Ditto. - (setpwent_filtered): Ditto. - (getpwent_filtered): Ditto. - (endpwent_filtered): Ditto. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_SETENT, CW_GETENT, - and CW_ENDENT. - -2014-02-18 Corinna Vinschen <corinna@vinschen.de> - - * setlsapwd.cc (setlsapwd): Fix conditional expression after breaking - it on 2014-01-23. - -2014-02-17 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (ldap_abandon): Import. - (ldap_result): Import. - (ldap_searchW): Import. - (NetGroupEnum): Import. - (NetLocalGroupEnum): Import. - (NetUserEnum): Import. - * cygheap.h (class cygheap_pwdgrp): Add members enums and enum_tdoms. - (cygheap_pwdgrp::nss_db_enums): New inline method. - (cygheap_pwdgrp::nss_db_enum_tdoms): Ditto. - * cygtls.h (struct _local_storage): Drop unused members pw_pos and - grp_pos. - * grp.cc (grent): New static variable of class gr_ent. - (gr_ent::enumerate_caches): New method. - (gr_ent::enumerate_local): New method. - (gr_ent::getgrent): New method. - (setgrent): Call gr_ent method. - (getgrent32): Ditto. - (endgrent): Ditto. - * ldap.cc (sid_attr): Rename from nfs_attr. - (cyg_ldap::close): Abandon still running asynchronous search. - (cyg_ldap::fetch_ad_account): Reduce filter buffer size. - (cyg_ldap::enumerate_ad_accounts): New method. - (cyg_ldap::next_account): New method. - (cyg_ldap::fetch_posix_offset_for_domain): Reduce filter buffer size. - (cyg_ldap::fetch_unix_sid_from_ad): Ditto. Fix return value in case - no value has been read. - (cyg_ldap::fetch_unix_name_from_rfc2307): Reduce filter buffer size. - * ldap.h (class cyg_ldap): Add msg_id member. - (cyg_ldap::enumerate_ad_accounts): Declare. - (cyg_ldap::next_account): Declare: - * passwd.cc (pwent): New static variable of class pw_ent. - (pg_ent::clear_cache): New method. - (pg_ent::setent): New method. - (pg_ent::getent): New method. - (pg_ent::endent): New method. - (pg_ent::enumerate_file): New method. - (pg_ent::enumerate_builtin): New method. - (pg_ent::enumerate_sam): New method. - (pg_ent::enumerate_ad): New method. - (pw_ent::enumerate_caches): New method. - (pw_ent::enumerate_local): New method. - (pw_ent::getpwent): New method. - (setpwent): Call pw_ent method. - (getpwent): Ditto. - (endpwent): Ditto. - * pwdgrp.h (class pwdgrp): Define pg_ent, pw_ent and gr_ent as friend - classes. - (pwdgrp::add_account_post_fetch): Declare with extra bool parameter. - (pwdgrp::file_attr): New inline method. - (enum nss_enum_t): Define. - (class pg_ent): Define. - (class pw_ent): Define. - (class gr_ent): Define. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Ditto. - * uinfo.cc (cygheap_pwdgrp::init): Initialize enums and enum_tdoms. - (cygheap_pwdgrp::nss_init_line): Fix typo in preceeding comment. - Handle new "db_enum" keyword. - (pwdgrp::add_account_post_fetch): Take additional `bool lock' parameter - and acquire pglock before adding element to array if lock is true. - (pwdgrp::add_account_from_file): Call add_account_post_fetch with lock - set to true. - (pwdgrp::add_account_from_windows): Ditto in case of caching. - (pwdgrp::fetch_account_from_windows): Handle builtin aliases only - known to the domain controller. Only call NetLocalGroupGetInfo for - aliases. - -2014-02-16 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.h (NT_readline::close): New function to close handle. - (NT_readline::~NT_readline): Call close. - * sec_auth.cc (verify_token): Use constructor to initialize tok_usersid. - * security.h (cygsid::cygsid): Add copy constructor taking cygsid as - source. - -2014-02-16 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Call initial_setlocale before fetching - current user information. - -2014-02-15 Christopher Faylor <me.cygwin2014@cgf.cx> - - * DevNotes: Add entry cgf-000024. - * fhandler.h (dev_console::state): Remove trailing underscore. - (dev_console::args): Ditto. - (dev_console::nargs): Ditto. - (dev_console::info): Eliminate subclass. - (dev_console::dwEnd): New field. - (dev_console::scroll_window): New function. - (dev_console::is_fullscreen): Ditto. - (dev_console::fillin): Rename from fillin_info. - (fhandler_console::scroll_buffer): Rename from scroll_screen. - * fhandler_console.cc: Throughout s/dev_state\.info/dev_state/g. - Accommodate other name changes. - (dev_console::fillin): Accommodate rename. Notice max x/y written to. - Forgo memset if GetConsoleScreenBufferInfo fails. - (fhandler_console::scroll_buffer): Accommodate rename. Don't treat y - coordinate of zero as top of screen. - (dev_console::is_fullscreen): New function. - (dev_console::scroll_window): Ditto. - (fhandler_console::clear_screen): Just scroll the screen when clearing - the screen in a state where the screen buffer is bigger than the - screen. - (fhandler_console::char_command): Try harder to get 'S' and 'T' working - in the presence of a screen buffer. Use temporary 'n' variable rather - than dev_state.args[0]. Use GNU ?: shortcut method. - -2014-02-14 Christopher Faylor <me.cygwin2014@cgf.cx> - - * pinfo.cc (winpids::add): Always copy pinfo structure when winpid. - Fill out dwProcessId explicitly to handle exec from a windows process. - (winpids::enum_processes): Reorganize to iterate over known cygwin pids - when !winpid. Simplify logic. Don't do duplicate detection for - winpid. - -2014-02-14 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Default to /bin/bash - as login shell. - -2014-02-13 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): If domain name - has no dot, it's a Netbios name. Change the search filter expression - accordingly and filter by flatName. Add comment. - * uinfo.cc (cygheap_domain_info::init): Gracefully handle NULL - DnsDomainName and DomainSid members in DS_DOMAIN_TRUSTSW structure. - Add comment. Fix comment preceeding fetching the mapping server - from registry. - (pwdgrp::fetch_account_from_file): Convert str to a local array. - (fetch_posix_offset): New static function. - (pwdgrp::fetch_account_from_windows): Add debug output in case - LookupAccountSidW fails. Simplify code by calling fetch_posix_offset - where appropriate. If LookupAccountSidW fails, check if the SID is - one of the known trusted domains. If so, create a more informative - account entry. - -2014-02-12 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_pwdgrp::nss_init_line): Explicitely ignore a colon - as separator char. - -2014-02-11 Christopher Faylor <me.cygwin2014@cgf.cx> - - * winsup.h: Turn off previous workaround but leave a comment. - -2014-02-11 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (rediscover_thread): Give argument a useful name. - * miscfuncs.cc (NT_readline::init): It's a really bad idea trying to - print a pointer to a PUNICODE_STRING as PUNICODE_STRING. Fix it. - * uinfo.cc (cygheap_domain_info::init): Print status codes as hex - values in debug output. - -2014-02-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (NetLocalGroupGetInfo): Replace NetGroupGetInfo. - * cygheap.h (class cygheap_ugid_cache): Move ugid_cache_t type here - and rename. - (struct init_cygheap): Add cygheap_ugid_cache member "ugid_cache". - * pwdgrp.h (class ugid_cache_t): Remove here. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Accommodate - move of ugid_cache to cygheap. - * sec_helper.cc (get_sids_info): Ditto. - * uinfo.cc (ugid_cache): Remove. - (pwdgrp::fetch_account_from_windows): Define id_val globally. - Move SidTypeAlias handling into SidTypeUser/SidTypeGroup branch since - aliases are handled like groups in SAM. Accommodate move of ugid_cache - to cygheap. Consolidate code reading SAM comments into a single branch - for both, SidTypeUser and SidTypeAlias. For SidTypeAlias, fix thinko - and call NetLocalGroupGetInfo rather than NetGroupGetInfo. Simplify - code setting Cygwin primary group for SAM accounts. Add code to handle - UNIX uid/gid from SAM comment. - -2014-02-11 Christopher Faylor <me.cygwin2014@cgf.cx> - - * winsup.h (Interlocked*): Use intrinsic versions of Interlocked - functions. - - * cygwin.sc.in: More closely emulate default pe/i386 linker script. - -2014-02-10 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_domain_info::init): Drop accidentally leftover if - statement. - -2014-02-10 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_domain_info::init): Fix handling of account domain - on donmain controllers. Explain why. - -2014-02-10 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cwcsdup): Change parameter to correct PWCSTR. - (cwcsdup1): Ditto. - * cygheap_malloc.h: Change declarations accordingly. - -2014-02-10 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Add code to allow - setting the primary group from the SAM comment field. - -2014-02-10 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_spawn::handle_spawn): Call fixup_lockf_after_exec - with additional argument to specify if the process has been execed - or spawned. - * flock.cc (fixup_lockf_after_exec): Take bool parameter to handle - exec and spawn differently. In case of spawn, just give up POSIX - locks in favor of the still running parent. Add comments to explain. - -2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * environ.cc (strbrk): Properly deal with environment variable sans - quote. - -2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * environ.cc (strbrk): New function. - (parse_options): Use strbrk to parse CYGWIN environment variable. - -2014-02-09 Corinna Vinschen <corinna@vinschen.de> - - Introduce reading passwd/group entries from SAM/AD. Introduce - /etc/nsswitch.conf file to configure it. - * Makefile.in (DLL_OFILES): Add ldap.o. - * autoload.cc: Import ldap functions from wldap32.dll. - (DsEnumerateDomainTrustsW): Import. - (NetGroupGetInfo): Import. - * cygheap.h (class cygheap_domain_info): New class to keep global - domain info. - (class cygheap_pwdgrp): New class to keep passwd/group caches and - configuration info from /etc/nssswitch.conf. - (struct init_cygheap): Add cygheap_domain_info member "dom" and - cygheap_pwdgrp member "pg". - * cygtls.h (struct _local_storage): Remove unused member "res". - Rearrange slightly, Add members pwbuf and grbuf to implement non-caching - passwd/group fetching from SAM/AD. Make pw_pos and pw_pos unsigned. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Add RFC 2307 - uid/gid mapping. - * fhandler_process.cc: Drop including pwdgrp.h. - * fhandler_procsysvipc.cc: Ditto. - * fhandler_registry.cc (fhandler_registry::fstat): Set key uid/gid - to ILLEGAL_UID/ILLEGAL_GID rather than UNKNOWN_UID/UNKNOWN_GID. - * grp.cc (group_buf): Drop. - (gr): Drop. - (pwdgrp::parse_group): Fill pg_grp. - (pwdgrp::read_group): Remove. - (pwdgrp::init_grp): New method. - (pwdgrp::prep_tls_grbuf): New method. - (pwdgrp::find_group): New methods. - (internal_getgrsid): Convert to call new pwdgrp methods. - (internal_getgrnam): Ditto. - (internal_getgrgid): Ditto. - (getgrgid_r): Drop 2nd parameter from internal_getgrgid call. - (getgrgid32): Ditto. - (getgrnam_r): Ditto for internal_getgrnam. - (getgrnam32): Ditto. - (getgrent32): Convert to call new pwdgrp methods. - (internal_getgrent): Remove. - (internal_getgroups): Simplify, especially drop calls to - internal_getgrent. - * ldap.cc: New file implementing cyg_ldap class for LDAP access to AD - and RFC 2307 server. - * ldap.h: New header, declaring cyg_ldap class. - * passwd.cc (passwd_buf): Drop. - (pr): Drop. - (pwdgrp::parse_passwd): Fill pg_pwd. - (pwdgrp::read_passwd): Remove. - (pwdgrp::init_pwd): New method. - (pwdgrp::prep_tls_pwbuf): New method. - (find_user): New methods. - (internal_getpwsid): Convert to call new pwdgrp methods. - (internal_getpwnam): Ditto. - (internal_getpwuid): Ditto. - (getpwuid32): Drop 2nd parameter from internal_getpwuid call. - (getpwuid_r): Ditto. - (getpwnam): Ditto for internal_getpwnam. - (getpwnam_r): Ditto. - (getpwent): Convert to call new pwdgrp methods. - * path.cc (class etc): Remove all methods. - * path.h (class etc): Drop. - * pinfo.cc (pinfo_basic::pinfo_basic): Set gid to ILLEGAL_GID rather - than UNKNOWN_GID. - (pinfo_init): Ditto. - * pwdgrp.h (internal_getpwnam): Drop 2nd parameter from declaration. - (internal_getpwuid): Ditto. - (internal_getgrgid): Ditto. - (internal_getgrnam): Ditto. - (internal_getgrent): Drop declaration. - (enum fetch_user_arg_type_t): New type. - (struct fetch_user_arg_t): New type. - (struct pg_pwd): New type. - (struct pg_grp): New type. - (class pwdgrp): Rework to provide functions for file and db requests - and caching. - (class ugid_cache_t): New class to provide RFC 2307 uid map caching. - (ugid_cache): Declare. - * sec_acl.cc: Drop including pwdgrp.h. - * sec_auth.cc: Drop including dsgetdc.h and pwdgrp.h. - (get_logon_server): Convert third parameter to ULONG flags argument - to allow arbitrary flags values in DsGetDcNameW call and change calls - to this function throughout. Use cached account domain name rather - than calling GetComputerNameW. - (get_unix_group_sidlist): Remove. - (get_server_groups): Drop call to get_unix_group_sidlist. - (verify_token): Rework token group check without calling - internal_getgrent. - * sec_helper.cc (cygpsid::pstring): New methods, like string() but - return pointer to end of string. - (cygsid::getfromstr): Add wide character implementation. - (get_sids_info): Add RFC 2307 uid/gid mapping for Samba shares. - * security.cc: Drop including pwdgrp.h. - * security.h (DEFAULT_UID): Remove. - (UNKNOWN_UID): Remove. - (UNKNOWN_GID): Remove. - (uinfo_init): Move here from winsup.h. - (ILLEGAL_UID): Ditto. - (ILLEGAL_GID): Ditto. - (UNIX_POSIX_OFFSET): Define. Add lengthy comment. - (UNIX_POSIX_MASK): Ditto. - (MAP_UNIX_TO_CYGWIN_ID): Ditto. - (ILLEGAL_UID16): Move here from winsup.h. - (ILLEGAL_GID16): Ditto. - (uid16touid32): Ditto. - (gid16togid32): Ditto. - (sid_id_auth): New convenience macro for SID component access. - (sid_sub_auth_count): Ditto. - (sid_sub_auth): Ditto. - (sid_sub_auth_rid): Ditto. - (cygpsid::pstring): Declare. - (cygsid::getfromstr): Declare wide character variant. - (cygsid::operator=): Ditto. - (cygsid::operator*=): Ditto. - (get_logon_server): Change declaration according to source code. - * setlsapwd.cc (setlsapwd): Drop 2nd parameter from internal_getpwnam - call. - * shared.cc (memory_init): Call cygheap->pg.init in first process. - * syscalls.cc: Drop including pwdgrp.h. - * tlsoffsets.h: Regenerate. - * tlsoffsets64.h: Ditto. - * uinfo.cc (internal_getlogin): Drop gratuitious internal_getpwuid - call. Fix debug output. Overwrite user gid in border case of a - missing passwd file while a group file exists. - (pwdgrp::add_line): Allocate memory on cygheap. - (pwdgrp::load): Remove. - (ugid_cache): Define. - (cygheap_pwdgrp::init): New method. - (cygheap_pwdgrp::nss_init_line): New method. - (cygheap_pwdgrp::_nss_init): New method. - (cygheap_domain_info::init): New method. - (logon_sid): Define. - (get_logon_sid): New function. - (pwdgrp::add_account_post_fetch): New method. - (pwdgrp::add_account_from_file): New methods. - (pwdgrp::add_account_from_windows): New methods. - (pwdgrp::check_file): New method. - (pwdgrp::fetch_account_from_line): New method. - (pwdgrp::fetch_account_from_file): New method. - (pwdgrp::fetch_account_from_windows): New method. - * winsup.h: Move aforementioned macros and declarations to security.h. - -2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx> - - * sigproc.cc (sig_send): Don't bother with an error message if we are - exiting. - -2014-02-08 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.h (class NT_readline): New class to implement line-wise - reading from file using native NT functions. - * miscfuncs.cc (NT_readline::init): New method. - (NT_readline::fgets): New method. - * mount.cc (mount_info::from_fstab): Utilize NT_readline to read - fstab files. - -2014-02-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchown): Fix typo in - comment. - * mount.cc (mount_info::from_fstab): Use tmp_pathbuf rather than - stack for big local buffer. - * net.cc (cygwin_gethostname): Call GetComputerNameExA rather than - GetComputerNameA if gethostname failed. - * shared.cc (user_info::initialize): Fix formatting. - -2014-02-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/file.h: Define flock and accompanying macros if not - already defined in sys/_default_fcntl.h. - -2014-02-04 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 29. - -2014-01-30 Corinna Vinschen <corinna@vinschen.de> - - * dir.cc (opendir): Call set_unique_id only with valid fh. - -2014-01-30 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (cltype): Add cl_buf_beg, cl_buf_end. - * fhandler_console.cc (dev_console::console_attrs::set_cl_x): Honor - buffer locations. - (dev_console::console_attrs::set_cl_y): Ditto. - (fhandler_console::write): On reset, use absolute positioning to go to - beginning of buffer. Clear entire buffer. - -2014-01-27 Christopher Faylor <me.cygwin2014@cgf.cx> - - * gendef (_setjmp (x86)): Save FPU control word location in sequential - location. Adjust sigstack save accordingly. - (_longjmp (x86)): Ditto for restore. - -2014-01-27 Corinna Vinschen <corinna@vinschen.de> - - * gendef (sigdelayed (x86_64)): Save and restore FPU control word. - (_sigdelayed (x86)): Ditto. Save and restore XMM registers. Add - comment. - (_setjmp (x86)): Save FPU control word, following FreeBSD here. - (_longjmp (x86)): Restore FPU control word. - -2014-01-24 Christopher Faylor <me.cygwin2014@cgf.cx> - - * winf.cc (linebuf::fromargv): Treat '=' as a special character. - -2014-01-23 Corinna Vinschen <corinna@vinschen.de> - - * security.h (open_local_policy): Remove declaration. - (lsa_open_policy): Declare. - (lsa_close_policy): Declare. - * sec_auth.cc (lsa_open_policy): Rename from open_local_policy. Take - server name as parameter. Return NULL in case of error, rather than - INVALID_HANDLE_VALUE. - (lsa_close_policy): Rename from close_local_policy. Make externally - available. Get handle by value. - (create_token): Convert call to open_local_policy/close_local_policy - according to aforementioned changes. - (lsaauth): Ditto. - (lsaprivkeyauth): Ditto. - * setlsapwd.cc (setlsapwd): Ditto. - -2014-01-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (etc::test_file_change): In case of NtQueryFullAttributesFile - returning an error, only return true if file actually exists. - -2014-01-20 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/in6.h (struct ipv6_rt_hdr): Define. - * include/cygwin/socket.h: Fix formatting. - (IP_UNICAST_IF): Define. - (IPV6_JOIN_GROUP): Remove Windowism. - (IPV6_LEAVE_GROUP): Ditto. - (IPV6_UNICAST_IF): Define. - (IPV6_TCLASS): Ditto. - (IPV6_RECVTCLASS): Ditto. - -2014-01-18 Corinna Vinschen <corinna@vinschen.de> - - * include/netinet/ip6.h: New file, copied from FreeBSD vebatim. - -2014-01-17 Christopher Faylor <me.cygwin2014@cgf.cx> - - * dtable.h (dtable::lock): Revert static. - (dtable::unlock): Ditto. - -2014-01-17 Corinna Vinschen <corinna@vinschen.de> - - * passwd.cc (setpassent): Align to BSD definition. - -2014-01-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (popen): Introduce Glibc 'e' flag to allow thread-safe - opening of the pipe with O_CLOEXEC flag. Simplify FD_CLOEXEC handling. - -2014-01-17 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/file.h (LOCK_SH): Drop definition in favor of new - definitions in newlib. - (LOCK_EX): Ditto. - (LOCK_NB): Ditto. - (LOCK_UN): Ditto. - (flock): Ditto. - (F_OK): Drop. Already correctly defined in unistd.h. - (X_OK): Ditto. - (W_OK): Ditto. - (R_OK): Ditto. - -2014-01-17 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (_STDIO_BSD_SEMANTICS): Define as 1. - -2014-01-16 Christopher Faylor <me.cygwin2014@cgf.cx> - - * dtable.h (dtable::lock): Make static. - (dtable::unlock): Ditto. - -2014-01-08 Christopher Faylor <me.cygwin2014@cgf.cx> - - * exception.h (cygwin_exception::open_stackdumpfile): Move old - function into class. - (cygwin_exception::h): New member. - (cygwin_exception::cygwin_exception): Initialize h to NULL. - * exceptions.cc (cygwin_exception::open_stackdumpfile): Move into - cygwin_exception class. Use 'h' class member. - (cygwin_exception::dumpstack): Close stack dump file handle if opened. - -2014-01-04 Christopher Faylor <me.cygwin2014@cgf.cx> - - * fhandler.h (cltype): New enum. - (dev_console::console_attrs): Define struct name. - (dev_console::console_attrs::set_cl_x): New function. - (dev_console::console_attrs::set_cl_y): New function. - (fhandler_console::clear_screen): Redefine input params. - * fhandler_console.cc: Throughout, reflect change in arguments to - fhandler_console::clear_screeen. - (fhandler_console::mouse_aware): Simplify logic slightly. - (fhandler_console::scroll_screen): Remove hopefully obsolete win95 - code. - (dev_console::console_attrs::set_cl_x): New function. - (dev_console::console_attrs::set_cl_y): New function. - (fhandler_console::clear_screen): Redefine input params. Calculate - position based on enum value. - (region_split): Change arguments. Simplify. - (ReadConsoleOutputWrapper): Remove coord argument since we now always - use 0, 0. Send extra arguments to region_split. diff --git a/winsup/cygwin/ChangeLog-2015 b/winsup/cygwin/ChangeLog-2015 deleted file mode 100644 index 546df2489..000000000 --- a/winsup/cygwin/ChangeLog-2015 +++ /dev/null @@ -1,2260 +0,0 @@ -2015-12-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request - query_write_dac rather than query_write_control access when writing - an ACL. Fix a comment. - -2015-12-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (__aclcalcmask): New function to recalculate ACL masks. - (aclsort32): Honor calclass argument. - -2015-12-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (aclfromtext32): Return missing aclcnt parameter. - -2015-12-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer. - (aclfromtext32): Ditto. - -2015-12-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc: Cosmetic changes. - -2015-12-18 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into - sys_wcstombs. - * wchar.h (sys_cp_wcstombs): Drop declaration. - * fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs. - -2015-12-16 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid. - * passwd.cc (pwdgrp::parse_passwd): Ditto. - -2015-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * include/cygwin/signal.h (sigset_t): Move defintition to newlib. - -2015-12-11 Ken Brown <kbrown@cornell.edu> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Align - regparm attribute to declaration in fhandler.h. - -2015-12-10 Corinna Vinschen <corinna@vinschen.de> - - * path.h (class path_conv_handle): Use FILE_ALL_INFORMATION instead of - FILE_NETWORK_OPEN_INFORMATION. Use definitions from ntdll.h since it's - included anyway. - (path_conv_handle::fai): Change name from fnoi. - (path_conv::fai): Ditto. - (file_get_fai): Change name from file_get_fnoi. Drop second parameter. - * path.cc (file_get_fai): Ditto. Fetch FileAllInformation rather than - FileNetworkOpenInformation. Convert STATUS_BUFFER_OVERFLOW to - STATUS_SUCCESS. Remove workaround to fetch FileBasicInformation and - FileStandardInformation on filesystems with broken - FileNetworkOpenInformation handling. - (symlink_info::check): Accommodate above changes. In case of using - the NtQueryDirectoryFile fallback, fetch FileIdBothDirectoryInformation - to get inode number as well. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop outdated - comment. Accommodate change to using FileAllInformation. Drop - extra function calls to fetch NumberOfLinks and IndexNumber. Set ino - directly from IndexNumber stored in pc.fai(). Drop second argument - from call to fstat_helper. - (fhandler_base::fstat_by_name): Drop second argument from call to - fstat_helper. - (fhandler_base::fstat_helper): Drop second parameter. Accommodate - the fact that we access a FILE_ALL_INFORMATION structure now. - (fhandler_base::open_fs): Set ino directly from IndexNumber stored in - pc.fai(). - * fhandler.h (fhandler_base::fstat_helper): Fix declaration accrdingly. - -2015-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::ndisk_links): Drop unused method. - (fhandler_base::fstat_helper): Drop unused call to ndisk_links. - -2015-12-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Rename fai to - fii for clearness. - (fhandler_disk_file::readdir): Ditto. - -2015-12-09 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Revert IndexNumber to FileId - since it's actually right here. - * fhandler_disk_file.cc: Accommodate above change. - -2015-12-08 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread::setcancelstate): Remove unnecessary locking. - (pthread::setcanceltype): Ditto. - -2015-12-08 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Rename FileId to IndexNumber - to align with Microsoft naming scheme. - (FILE_INTERNAL_INFORMATION): Ditto. - * fhandler_disk_file.cc: Rename FileId to IndexNumber throughout. - * syscalls.cc: Ditto. - -2015-12-07 Johannes Schindelin <johannes.schindelin@gmx.de> - - * mount.cc (mount_info::from_fstab_line): Support mounting the current - user's temp folder as /tmp/. This is particularly useful a feature - when Cygwin's own files are write-protected. - -2015-12-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/select.h: Move select(2) macros from newlib's sys/types.h - here. Rename howmany to _howmany to unclutter namespace. Move file to - newlib. - * libc/rexex.cc: Add declaration for cygwin_gethostname. - * poll.cc: Include sys/param.h and locale select.h. - * select.h (cygwin_select): Declare. - * uname.cc: Declare cygwin_gethostname. - * winsup.h: Drop declarations of cygwin_select and cygwin_gethostname. - -2015-12-07 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520. - (dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit. - (_dll_crt0): Split out 64 bit code again and always create new main - thread stack, unless forked off from the non main thread in the parent. - Call create_new_main_thread_stack with parent stack commitsize if - started from the parent's main thread. - Only call child_info_fork::alloc_stack for the latter case on 64 bit. - Slightly rearrange moving rsp and rbp to new stack and document how. - Revert 32 bit wow64 handling to its former self. - * miscfunc.cc (create_new_main_thread_stack): Take a commitsize - parameter and use it if it's not 0. Don't set _main_tls here, it's - done in the caller _dll_crt0 anyway. Return stackbase - 16 bytes, - rather than stacklimit (which was very wrong anyway). - * miscfuncs.h (create_new_main_thread_stack): Accommodate declaration - to aforementioned change. - * wincap.h (wincaps::has_3264_stack_broken): Remove element. - * wincap.cc: Ditto, throughout. - * wow64.cc: Semi-revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520 - but keep architecture-agnostic type changes intact. Fix formatting. - * wow64.h: Revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520. - -2015-12-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/cygwin.h (CCP_PROC_CYGDRIVE): New flag. - * mount.cc (mount_info::cygdrive_posix_path): Take flag values rather - than just a trailing_slash_p bool. Emit /proc/cygdrive path if - CCP_PROC_CYGDRIVE flag is given. - (mount_info::conv_to_posix_path): Take flag values rather than just - a keep_rel_p bool. Rename _p variables. Print flag value as hex in - debug_printf. Call cygdrive_posix_path with flag values. - * mount.h (mount_info::cygdrive_posix_path): Accommodate above change - in declaration. - (mount_info::conv_to_posix_path): Ditto. - * fhandler_process.cc (format_process_exename): Accommodate change to - mount_info::conv_to_posix_path. - * path.cc (cygwin_conv_path): Ditto. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_0): On 64 bit, set wow64_needs_stack_adjustment - if not started from a 64 bit process. - (_dll_crt0): Enable wow64_needs_stack_adjustment branch on 64 bit - as well. Remove 64 bit only code. Introduce CREATE_STACK and - FIX_STACK macros to conditionalize the code. Rearrange and - partially rewrite comments. - * wincap.h (wincaps::has_3264_stack_broken): New element. - * wincap.cc: Implement above element throughout. - (wincapc::init): Set has_3264_stack_broken to false on 32 bit. - * wow64.cc: Enable functionality on 64 bit architecture, except for - wow64_revert_to_original_stack. Enhance comments to explain. - (wow64_eval_expected_main_stack): Make 64 bit clean. - (wow64_test_for_64bit_parent): Ditto. - * wow64.h: Export wow64_revert_to_original_stack on 32 bit only, - everything else on all architectures. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (thread_info::thread_info): Accommodate the fact - that TEBs take two pages. - (thread_info::fill_if_match): Rewrite the method for post W10 1511 TEB - detection. - (format_process_maps): Add a state member to region. Fix the code - to handle PEB/TEB region since W10 1511. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (heap_info::fill_if_match): Return NULL, not 0. - (thread_info::fill_if_match): Ditto. - (thread_info::fill_if_match): New method to extract TEB info from - PEB/TEB region since W10 1511. - (format_process_maps): Drop outdated FIXME comment. Add code to handle - PEB/TEB region since W10 1511. - * mmap.cc (posix_madvise): Align comment to new W10 1511 version. - * wincap.h (wincaps::has_new_pebteb_region): New element. - * wincap.cc: Implement above element throughout. - (wincap_10_1511): New global wincaps to support Windows 10 since 1511. - (wincapc::init): Use wincap_10_1511 for W10 builds >= 10586. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - x86_64 only: - * dcrt0.cc (_dll_crt0): Always move stack to pthread stack area. - Explain why. - * miscfuncs.cc (create_new_main_thread_stack): New function to create - OS-like stack for main thread in pthread stack area. - * miscfuncs.cc (create_new_main_thread_stack): Declare. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::alloc_stack): Fix formatting. - * fork.cc (frok::parent): Fix formatting. - (child_copy): Change type of res to BOOL. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * crt0.cc (dll_crt0_1): Always restore the TEB stack info. Especially - restore DeallocationStack. Fix comment. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::alloc_stack): Don't set stackaddr to 0. - -2015-12-03 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (struct child_info): Add member from_main. - * fork.cc (frok::child): Check from_main rather than stackaddr. - (frok::parent): Set ch.from_main if running in the main thread. - -2015-12-02 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Align to below change. - (class child_info_fork): Rename stacktop to stacklimit. Rename - stackbottom to stackbase. Accommodate name change throughout Cygwin. - Rephrase comments to be clearer. - -2015-12-02 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (_tlsbase): Remove. Replace throughout with - NtCurrentTeb()->Tib.StackBase. - (_tlstop): Remove. Replace throughout with - NtCurrentTeb()->Tib.StackLimit. - * dcrt0.cc (child_info_fork::alloc_stack): Move definition of local - teb variable up to be used throughout. - * include/cygwin/config.h (__getreent): Use inline function on both - architectures. - -2015-11-29 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Only create 1-5-32-x - SIDs from ids for x <= 999. - -2015-11-29 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (get_posix_access): In case owner SID == group SID, when - encountering the group entry, change the value of `id' accordingly. - Explain why. - -2015-11-28 Corinna Vinschen <corinna@vinschen.de> - - * gendef (sigdelayed): Save and restore content of the MXCSR register - on x86_64. - -2015-11-27 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (_cygtls::wait_signal_arrived): Renamed from - set_signal_arrived. - (_cygtls::set_signal_arrived): New function signalling signal_arrived. - (_cygtls::reset_signal_arrived): Don't reset will_wait_for_signal. - (_cygtls::unwait_signal_arrived): New function only resetting - will_wait_for_signal. - (class wait_signal_arrived): Rename from set_signal_arrived. - Accommodate name change throughout Cygwin. - (wait_signal_arrived::~wait_signal_arrived): Call - _cygtls::unwait_signal_arrived. Add comment. - * cygserver_ipc.h (ipc_set_proc_info): Fetch signal_arrived handle - via call to _cygtls::get_signal_arrived. - * exceptions.cc (_cygtls::interrupt_setup): Signal signal_arrived via - call to _cygtls::set_signal_arrived. - (_cygtls::handle_SIGCONT): Ditto. - * fhandler_socket.cc (fhandler_socket::wait_for_events): Generate - WSAEVENT array prior to entering wait loop. Add cancel event object - if available. Remove calls to pthread_testcancel and just call - pthread::static_cancel_self if the cancel event object is signalled. - -2015-11-26 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_native): Fix index when looking for colon in path. - -2015-11-21 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (setlocaleinfo): New macro calling __setlocaleinfo. - (__setlocaleinfo): New function to set a locale-specific character - to an explicit wchar_t value. - (__set_lc_numeric_from_win): Handle fa_IR and ps_AF locales to return - same decimal point and thousands separator characters as on Linux. - (__set_lc_monetary_from_win): Ditto for monetary characters. - -2015-11-20 Corinna Vinschen <corinna@vinschen.de> - - * common.din (strtold): Drop redirection to _strtold. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (get_posix_access): Skip merging permissions if current - user has rwx permissions anywa, or if the sum of all group and other - permissions is less than or equal to the user's permissions. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (get_posix_access): Fix computation of effective user - permissions to handle current user, not only the file owner. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_slave::open): Add S_IFCHR flag - in call to create_object_sd_from_attribute. - (fhandler_pty_slave::fstat): Ditto in call to get_object_attribute. - (fhandler_pty_slave::fchmod): Add an orig_mode flag and ditto for - both calls. - (fhandler_pty_master::setup): Ditto in call to - create_object_sd_from_attribute. - * security.cc (get_object_attribute): Never add S_IFCHR to mode - here. Let the caller decide. - (create_object_sd_from_attribute): Ditto. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * security.h (authz_get_user_attribute): Declare bool. - * sec_helper.cc (authz_ctx::get_user_attribute): Make bool method. - Set S_IxOTH bits in returned attributes rather than S_IxUSR bits. - (authz_get_user_attribute): Make bool function. - * sec_acl.cc (get_posix_access): Introduce cygsid array to keep - track of all SIDs in the ACL. Move AuthZ calls into !new_style - permission post processing. When not using AuthZ, use - CheckTokenMembership to collect group permissions. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Disable - deviation from POSIX 1003.1e in terms of GROUP_OBJ/CLASS_OBJ - permissions. Follow POSIX 1003.1e again. Keep old code in - for future reference. - * sec_acl.cc: Accommodate changes in ACE creation in leading - comment. - (set_posix_access): Fix user deny ACE creation. Split group - deny ACE creation into two steps, one to reflect CLASS_OBJ, - the other to reflect OTHER_OBJ. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (getacl): Use Authz to fetch correct user permissions. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (AuthzAccessCheck): Import. - (AuthzFreeContext): Import. - (AuthzInitializeContextFromSid): Import. - (AuthzInitializeContextFromToken): Import. - (AuthzInitializeResourceManager): Import. - * sec_helper.cc (get_sids_info): Remove. - (class authz_ctx_cache_entry): New class. - (class authz_ctx_cache): New class. - (class authz_ctx): New class. - (authz_get_user_attribute): New function. - * security.h (get_sids_info): Drop prototype. - (authz_get_user_attribute): Add prototype. - * winlean.h (_AUTHZ_): Define. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (get_posix_access): Fix class_perm in !new_style case. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - Reapply POSIX ACL changes. - - * sec_acl.cc (get_posix_access): Check for Cygwin "standard" ACL. - Apply umask, if so. Align comments. - * security.cc (set_created_file_access): Fix permission masking by - incoming requested file mode. - - * sec_acl.cc (set_posix_access): Apply mask only in terms of execute bit - for SYSTEM and Admins group. - - * sec_acl.cc (set_posix_access): Don't create DENY ACEs for USER and - GROUP entries if they are the same as USER_OBJ or GROUP_OBJ. - - * fhandler.h (fhandler_pty_slave::facl): Add prototype. - * fhandler_tty.cc (fhandler_pty_slave::facl): New method. - (fhandler_pty_slave::fchown): Fix uid/gid handling. - * sec_acl.cc (set_posix_access): Drop superfluous class_idx variable. - Simplify and move around code in a few places. To improve ACL - readability, add r/w permissions to Admins ACE appended to pty ACL. - Add comment to explain Windows ACE Mask filtering being in the way of - creating a real CLASS_OBJ. - (get_posix_access): Fake CLASS_OBJ for ptys. Explain why. - * security.cc (get_object_attribute): Add S_IFCHR flag to attributes - when calling get_posix_access. - - * sec_acl.cc (set_posix_access): Move merging group perms into owner - perms in case of owner == group after mask has been computed. Take - mask into account when doing so to avoid unnecessary ACCESS_DENIED_ACE. - - * sec_acl.cc (get_posix_access): Only set saw_group_obj flag if we saw - the ACCESS_ALLOWED_ACE. - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Deliberatly - set GROUP_OBJ and CLASS_OBJ perms to new group perms. Add comment - to explain why. - * security.cc (set_created_file_access): Ditto. - - * sec_acl.cc (set_posix_access): Replace previous patch. Return - EINVAL if uid and/or guid is invalid and not backed by an actual - Windows account. - - * sec_acl.cc (set_posix_access): Workaround owner/group SIDs being NULL. - - * sec_acl.cc (set_posix_access): Handle files with owner == group. - Rephrase switch statement checking against unfiltered a_type value. - (get_posix_access): Handle files with owner == group. - - * sec_acl.cc (get_posix_access): Don't use GROUP_OBJ access to fix up - CLASS_OBJ mask on old-style ACLs. Fix a comment. - - * sec_acl.cc (set_posix_access): Always make sure Admins have - WRITE_DAC and WRITE_OWNER permissions. - * security.h (create_object_sd_from_attribute): Drop handle parameter - from prototype. - * security.cc (create_object_sd_from_attribute): Drop handle parameter. - Just create the standard POSIXy security descriptor. - (set_object_attribute): Accommodate dropped paramter in call to - create_object_sd_from_attribute. - * fhandler_tty.cc: Ditto, throughout. - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix typo in - mask computation. - - * fhandler.cc (fhandler_base::open_with_arch): Call open with mode - not umasked. - (fhandler_base::open): Explicitely umask mode on NFS here. Call new - set_created_file_access rather than set_file_attribute. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Reimplement - setting permissions on filesystems supporting ACLs using the new - set_posix_access call. - (fhandler_disk_file::fchown): Ditto. - (fhandler_disk_file::mkdir): Call new set_created_file_access rather - than set_file_attribute. - * fhandler_socket.cc (fhandler_socket::bind): Don't umask here. Add - WRITE_OWNER access to allow writing group in case of SGID bit set. - Call new set_created_file_access rather than set_file_attribute. - * path.cc (symlink_worker): Call new set_created_file_access rather - than set_file_attribute. - * sec_acl.cc (searchace): Un-staticize. - (set_posix_access): New, complementary functionality to - get_posix_access. - (setacl): Implement in terms of get_posix_access/set_posix_access. - (get_posix_access): Add handling for just created files requiring - their first Cygwin ACL. Fix new_style recognition. Handle SGID - bit. For old-style ACLs, ignore SYSTEM and Administrators when - computing the {DEF_}CLASS_OBJ perms. - * security.cc (get_file_sd): Revamp comment. Change and (hopefully) - speed up inheritance processing for just created files. - (alloc_sd): Remove. - (set_security_attribute): Call set_posix_access instead of alloc_sd. - (get_object_attribute): Fix return value. - (create_object_sd_from_attribute): Call set_posix_access instead of - alloc_sd. - (set_file_attribute): Remove. - (set_created_file_access): New function implemented in terms of - get_posix_access/set_posix_access. - * security.h (set_file_attribute): Remove prototype. - (set_created_file_access): Add prototype. - (searchace): Ditto. - (set_posix_access): Ditto. - * syscalls.cc (open): Call open_with_arch with mode not umasked. - - * sec_acl.cc: Change preceeding comment explaining new-style ACLs. - Describe how to generate deny ACEs in more detail. Accommodate the - fact that a NULL deny ACE is used for {DEF_}CLASS_OBJ, rather than - a special Cygwin ACE. Improve further comments. - (CYG_ACE_NEW_STYLE): Define. - (get_posix_access): Change from Cygwin ACE to NULL deny ACE. Fix - CLASS_OBJ handling to generate CLASS_OBJ and DEF_CLASS_OBJ from a single - NULL deny ACE if the inheritance flags say so. - * sec_helper.cc (well_known_cygwin_sid): Remove. - * security.h (well_known_cygwin_sid): Drop declaration. - - * sec_acl.cc (CYG_ACE_ISBITS_TO_WIN): Fix typo. - (get_posix_access): Rename index variable from i to idx. Define only - once at top level. - - * security.cc (add_access_allowed_ace): Drop unused parameter "offset". - Accommodate throughout. - (add_access_denied_ace): Ditto. - * sec_acl.cc: Accommodate above change throughout. - * security.h (add_access_allowed_ace): Adjust prototype to above change. - (add_access_denied_ace): Ditto. - - * sec_acl.cc (get_posix_access): Handle multiple ACEs for the - owner and primary group of the file. Handle the default primary - group ACE as DEF_GROUP_OBJ entry if the directory has the S_ISGID bit - set. Add comments. Minor code rearrangements. - - Preliminary read side implementation of new permission handling. - * acl.h (MAX_ACL_ENTRIES): Raise to 2730. Add comment to explain. - * sec_acl.cc: Add leading comment to explain new ACL style. - Add definitions and macros to use for bits in new Cygwin ACL. - (DENY_RWX): New mask value for all temporary deny bits. - (getace): Add bool parameter to decide when leaving all bits intact, - rather than filtering them per the already set bits. - (get_posix_access): New function, taking over functionality to read - POSIX ACL from SECURITY_DESCRIPTOR. - (getacl): Just call get_posix_access. - * sec_helper.cc (well_known_cygwin_sid): Define. - * security.cc (get_attribute_from_acl): Remove. - (get_info_from_sd): Remove. - (get_reg_sd): Call get_posix_access instead of get_info_from_sd. - (get_file_attribute): Ditto. - (get_object_attribute): Ditto. - * security.h (well_known_cygwin_sid): Declare. - (get_posix_access): Add prototype. - - * Throughout, use simpler ACE macros from Windows' accctrl.h. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2004. - (CYGWIN_VERSION_API_MINOR): Reset to 0. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * collate.h (__collate_load_error): Convert to extern declaration. - * globals.cc (__collate_load_error): Define and initialize here. - * libc/fnmatch.c: Update to latest from FreeBSD. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_native): Don't generate native symlink targeting - Cygwin special file. Inform the caller. - (symlink_worker): Don;t bail out in WSYM_nativestrict case if the - target is a Cygwin special file. - -2015-11-18 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: Regenerate. - -2015-11-17 Yaakov Selkowitz <yselkowi@redhat.com> - - * common.din (rpmatch): Export. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-11-12 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object - attributes anew in each loop. - -2015-11-12 Corinna Vinschen <corinna@vinschen.de> - - * init.cc (munge_threadfunc): Don't call NtQueryInformationThread with - ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64. - It crashes. - -2015-11-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1. - -2015-11-05 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Fake a serial number on filesystems not - providing one. - -2015-11-05 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl64): Don't lock fd table when performing locking. - * flock.cc (flock): Ditto. - (lockf): Ditto. - -2015-11-05 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (pending_signals::clear): Yet another fix to fix the fix. - Actually iterate over the list of pending signals even if there's a - signal which doesn't have to be cleared. Other than that, revert loop - to it's former self as a while loop. - -2015-11-04 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_prlfs): Add trailing NUL. Explain why. - * mount.cc (fs_info::update): Add a comment to explain PrlSF. - * path.h (path_conv::fs_is_prlfs): Add for symmetry. - -2015-11-03 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (pending_signals::clear): Fix previous fix resulting in - yet another endless loop. - -2015-11-02 Corinna Vinschen <corinna@vinschen.de> - - * include/netinet/ip.h (MAX_IPOPTLEN): Define. - -2015-11-02 Corinna Vinschen <corinna@vinschen.de> - - * sigproc.cc (class pending_signals): Drop sigproc_init friendship. - (pending_signals::clear): Fix implementation to avoid subsequent - endless loop in wait_sig. Improve comment. - -2015-11-02 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS). - (class fs_info): Add has_broken_fnoi flag. Implement prlfs FS flag. - * mount.cc (fs_info::update): Handle PrlFS. Fill new has_broken_fnoi - flag with life. - (fs_names): Add prlfs. - * globals.cc (ro_u_prlfs): Define. - * path.h (path_conv::has_broken_fnoi): New method. - * path.cc (symlink_info::check): Call file_get_fnoi utilizing new - has_broken_fnoi filesystem flag. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto. - -2015-10-30 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Handle LocaleNameToLCID - returning LOCALE_CUSTOM_UNSPECIFIED instead of failing in case of - an unsupported locale on Windows 10. - -2015-10-30 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (sigpacket::process): Avoid potentially double unlocking - the TLS mutex. - -2015-10-30 Corinna Vinschen <corinna@vinschen.d> - - * signal.cc (sigwait): Fix return value to reflect errno in case of - error according to POSIX. Never return EINTR. - * thread.cc (pthread_kill): Return errno if sig_send failed. - -2015-10-29 Qian Hong <qhong@codeweavers.com> - - * init.cc (munge_threadfunc): Check that we're actually replacing - the correct original function address on the stack. - * ntdll.h (enum _THREADINFOCLASS): Add ThreadQuerySetWin32StartAddress. - -2015-08-21 Jon Turney <jon.turney@dronecode.org.uk> - - * cygwin-cxx.h: Remove execute permissions. - * fenv.cc: Ditto. - * how-startup-shutdown-works.txt: Ditto. - * include/arpa/nameser.h: Ditto. - * include/arpa/nameser_compat.h: Ditto. - * include/fenv.h: Ditto. - * include/resolv.h: Ditto. - * libstdcxx_wrapper.cc: Ditto. - -2015-10-23 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Call remove_pending_sigs. - * cygtls.h (_cygtls::remove_pending_sigs): Declare. - * sigproc.cc (pending_signals::clear): Define new method taking a - _cygtls pointer argument. Drop pending signals for that thread. - (_cygtls::remove_pending_sigs): Call pending_signals::clear for this - thread. - -2015-10-22 Corinna Vinschen <corinna@vinschen.de> - - * common.din (aligned_alloc): Export. - (at_quick_exit): Export. - (quick_exit): Export. - -2015-10-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (cygsid::get_sid): Don't reject SIDs with missing - subauthorities. - -2015-10-22 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (sys_cp_wcstombs): Always return number of multibytes - without trailing NUL as the documentation implies. Throughout Cygwin, - fix usage to align to this pattern. - * fhandler_process.cc (format_process_winexename): Drop trailing NUL - and LF from output. - -2015-10-21 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (pthread_getattr_np): Fix memory leak, remove usage of - malloc for small local buffer. - -2015-10-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_reparse_point): Don't generate an EIO - error if NtFsControlFile returns STATUS_NOT_A_REPARSE_POINT. - -2015-09-23 Evgeny Grin <k2k@yandex.ru> - - * fhandler_socket.cc (fhandler_socket::wait_for_events): Fix compiler - warning in -O3 case. - (fhandler_socket::connect): Ditto. - * regex/regcomp.c (singleton): Ditto. - -2015-09-08 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (lockf_t::create_lock_obj_attr): Add buffer parameter. - Call _everyone_sd with buffer argument from caller rather than - everyone_sd with locally allocated stack buffer. - (lockf_t::create_lock_obj): Call create_lock_obj_attr only once - outside the loop and with additional buffer argument. - (lockf_t::open_lock_obj): Call create_lock_obj_attr with additional - buffer argument. - -2015-08-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information - from new cache functions in sysconf.cc, get_cpu_cache_intel and - get_cpu_cache_amd. - * sysconf.cc (__nt_query_system): New local helper. - (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems. - Use GetLogicalProcessorInformationEx otherwise to handle more than - 64 CPUs. Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN. - (get_phys_pages): New helper to handle _SC_PHYS_PAGES. - (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor - values to cache type, cache size, associativity and linesize. - (cpuid2_cache_desc_compar): Comparision function for bsearch over - cpuid2_cache_descriptor. - (get_cpu_cache_intel_cpuid2): New function to fetch cache info from - Intel CPUID 2. - (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4. - (get_cpu_cache_intel): New function as CPU-specific entry point. - (assoc): New array to map associativity values from AMD CPUID - 0x80000006. - (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs - 0x80000005 and 0x80000006. - (get_cpu_cache): New function to fetch cache info. - (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested. Call - get_cpu_cache for new _SC_* cache requests. - (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE. - (get_phys_pages(void)): Call get_phys_pages(int). - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-08-27 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (DiscardVirtualMemory): Import. - (PrefetchVirtualMemory): Import. - * mmap.cc (posix_madvise): Actually implement POSIX_MADV_WILLNEED - utilizing PrefetchVirtualMemory and POSIX_MADV_DONTNEED utilizing - DiscardVirtualMemory on systems supporting them. - * wincap.h (wincaps::has_broken_prefetchvm): New element. - * wincap.cc: Implement above element throughout. - (wincapc::init): Make sure has_broken_prefetchvm is only true on - W10 under WOW64. - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2003. - (CYGWIN_VERSION_API_MINOR): Reset to 0. - -2015-08-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Only fetch group relations, - we don't need anything else. - -2015-08-25 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (_WIN32_WINNT): Set to 0x0a00 for Windows 10. - (WINVER): Ditto. Remove outdated comment. - -2015-08-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (std_dll_init): Revert using full paths to system DLLs. - -2015-08-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (noload): i686 only: Save and restore $edx when calling - SetLastError to avoid clobbering return address stating with Windows 7. - -2015-08-25 Corinna Vinschen <corinna@vinschen.de> - - * mmap.cc: Fix a few comments. - -2015-08-24 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (PROCESSINFOCLASS): Define ProcessDebugFlags. - * sigproc.cc (child_info::child_info): Only propagate _CI_STRACED to - child if strace is actually tracing child processes. - -2015-08-24 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2. - -2015-08-18 Corinna Vinschen <corinna@vinschen.de> - - * netdb.cc (parse_services_line): Convert port number to network byte - order. - -2015-08-18 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc: Drop including ucontext.h. - -2015-08-17 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgrfull): Drop asking caches. Explain why. - (internal_getgroups): In case we're not utilizing the Windows account - DBs, don't call LsaLookupSids but iterate over the group SIDs in the - token and call internal_getgrsid for each of them. Explain why. - -2015-08-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Rearrange - to fall back to myself uid/gid in case we don't utilize Windows - account DBs, just as prior to 1.7.34. - * sec_helper.cc (cygpsid::get_id): Disable Samba user/group mapping per - RFC2307 if we're not utilizing Windows account DBs. - * security.cc (convert_samba_sd): Revert previous patch. - -2015-08-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Handle AMDs providing - extended topology info in CPUID leaf 0x8000001e. Fix handling of - AMD CPUs providing extended legacy core info in CPUID leaf 0x80000008. - -2015-08-17 Orgad Shaneh <orgads@gmail.com> - - * mkglobals_h: Handle CRLF earlier. - -2015-08-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Print cpb and eff_freq_ro - power management flags. - -2015-08-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base_overlapped::raw_write): When performing - nonblocking I/O, copy user space data into own buffer. Add longish - comment to explain why. - * fhandler.h (fhandler_base_overlapped::atomic_write_buf): New member. - (fhandler_base_overlapped::fhandler_base_overlapped): Initialize - atomic_write_buf. - (fhandler_base_overlapped::fhandler_base_overlapped): New destructor, - free'ing atomic_write_buf. - (fhandler_base_overlapped::copyto): Set atomic_write_buf to NULL in - copied fhandler. - -2015-08-14 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (convert_samba_sd): Fix copy/paste error in previous - patch. - -2015-08-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Only try - to map user and group info per RFC2307 if account info is fetched - from Windows account DB. - * security.cc (convert_samba_sd): Ditto. - -2015-08-14 Corinna Vinschen <corinna@vinschen.de> - - * security,cc (get_attribute_from_acl): Merge all group perms into - user perms if user is member of group. - -2015-08-13 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetLogicalProcessorInformationEx): Import. - (SetThreadGroupAffinity): Import. - * fhandler_proc.cc (add_size): New macro. - (get_msb): New inline function. - (mask_bits): Ditto. - (format_proc_cpuinfo): Drop handling of old CPUs. Check if we're - running on a OS version supporting porcessor groups. If so, use - SetThreadGroupAffinity to set thread affinity. Improve cache info - to include 3rd level cache on Intel CPUs. Improve multi core info. - * wincap.h (wincaps::has_processor_groups): New element. - * wincap.cc: Implement above element throughout. - -2015-08-10 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc: Fix comment preceeding x86_64 memset and friends. - -2015-08-10 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::ontherange): Revert previous patch. - -2015-08-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1. - -2015-07-29 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (memset): x86_64 only: Implement in assembler. - (memmove,memcpy): x86_64 only: Ditto. - (wmemmove,wmemcpy): x86_64 only: Ditto. - -2015-07-29 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h: Include cygtls_padsize.h and define CYGTLS_PADSIZE there. - * cygtls_padsize.h: New file. Define CYGTLS_PADSIZE. - * environ.cc (parse_options): Fix NULL pointer access. - * init.cc (threadfunc_fe): Do not force stack align on x86_64. - -2015-07-23 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (__cont_link_context): x86_64: align stack and reserve - shadow space for subsequent function calls, otherwise suffer potential - buffer overflow. - -2015-07-23 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::ontherange): Ignore $HOME if it's not - starting with a slash (aka, absolute POSIX Path). - -2015-07-21 Corinna Vinschen <corinna@vinschen.de> - - * common.din (siglongjmp): Export. - (sigsetjmp): Export. - * gendef: Change formatting of some comments. - (sigsetjmp): Implement. - (siglongjmp): Implement. - (__setjmpex): x86_64 only: Drop entry point. - (setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR - and FPUCW registers in Spare, as MSVCRT does. - (longjmp): x86_64 only: Restore tls stackptr from Frame now, restore - MXCSR and FPUCW registers from Spare. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-07-19 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/signal.h (MINSIGSTKSZ): Define as 8K, unconditionally. - (SIGSTKSZ): Define as 32K, unconditionally. - -2015-07-19 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (initial_env): Reduce size of local path buffers to - PATH_MAX. Allocate debugger_command from process heap. - (init_windows_system_directory): Very early initialize new global - variable global_progname. - * dll_init.cc (dll_list::alloc): Make path buffer static. Explain why. - (dll_list::populate_deps): Use tmp_pathbuf for local path buffer. - * exceptions.cc (debugger_command): Convert to PWCHAR. - (error_start_init): Allocate debugger_command and fill with wide char - strings. Only allocate if NULL. - (try_to_debug): Just check if debugger_command is a NULL pointer to - return. Drop conversion from char to WCHAR and drop local variable - dbg_cmd. - * globals.cc (global_progname): New global variable to store Windows - application path. - * pinfo.cc (pinfo_basic::pinfo_basic): Just copy progname over from - global_progname. - (pinfo::status_exit): Let path_conv create the POSIX path to - avoid local buffer. - * pseudo_reloc.cc (__report_error): Utilize global_progname, drop local - buffer. - * smallprint.cc (__small_vsprintf): Just utilize global_progname for - %P format specifier. - (__small_vswprintf): Ditto. - * strace.cc (PROTECT): Change to reflect x being a pointer. Reformat. - (CHECK): Ditto. Reformat. - (strace::activate): Utilize global_progname, drop local buffer. - Fix formatting. - (strace::vsprntf): Reduce size of local progname buffer to NAME_MAX. - Copy and, if necessary, convert only the last path component to - progname. - (strace_buf_guard): New muto. - (buf): New static pointer. - (strace::vprntf): Use buf under strace_buf_guard lock only. Allocate - buffer space for buf on Windows heap. - * wow64.cc (wow64_respawn_process): Utilize global_progname, drop - local path buffer. - -2015-07-18 Corinna Vinschen <corinna@vinschen.de> - - * gendef: Remove unused 64 bit versions of __sjfault and __ljfault. - -2015-07-18 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (makecontext): Rearrange order of initialization and - document at great length. - -2015-07-17 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (__unwind_single_frame): Define empty macro on i686. - (_cygtls::call_signal_handler): Try to make sure signal context makes - sense in case we're generating context here. Add comment to explain. - -2015-07-17 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (getcontext/x86_64): Drop comment on RtlCaptureContext. - (swapcontext/x86_64): Fix comment yet again. - (getcontext/i686): Move comment from x86_64 getcontext, slightly - rearranged, to preceeding comment. - -2015-07-17 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (__unwind_single_frame): Move up in file to be - accessible from other places. Move comment to getcontext. - (stack_info::walk): Call __unwind_single_frame in 64 bit case. Fix - preceeding comment. - (myfault_altstack_handler): Call __unwind_single_frame. - (getcontext): Give comment from __unwind_single_frame a new home. - (swapcontext): Fix comment. - -2015-07-17 Corinna Vinschen <corinna@vinschen.de> - - * common.din (getcontext): Export. - (makecontext): Export. - (setcontext): Export. - (swapcontext): Export. - * exceptions.cc (__unwind_single_frame): New static functions, 64 bit - only. - (setcontext): New function. - (getcontext): New function. - (swapcontext): New function. - (__cont_link_context): New function. - (makecontext): New function. - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2002. - (CYGWIN_VERSION_API_MINOR): Bump. - * include/ucontext.h (getcontext): Add prototype. - (setcontext): Ditto. - (swapcontext): Ditto. - (makecontext): Ditto. - * ntdll.h (NtContinue): Ditto. - -2015-07-17 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Document the - fact that we forgot to bump for sigaltstack and sethostname. - -2015-07-13 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (exception::handle): Reenable code only disabled for - debug purposes. - -2015-07-07 Corinna Vinschen <corinna@vinschen.de> - - x86_64 only: - * cygtls.cc (san::leave): Restore _my_tls.andreas. - * cygtls.h (class san): Add _clemente as in 32 bit case. Add ret and - frame members. - (san::san): Handle _my_tls.andreas as on 32 bit. Take parameter and - write it to new member ret. Store current stack pointer in frame. - (san::~san): New destructor to restore _my_tls.andreas. - (__try): Use __l_except address as parameter to san::san. - * dcrt0.cc (dll_crt0_0): Add myfault_altstack_handler as vectored - continuation handler. - * exception.h (myfault_altstack_handler): Declare. - * exceptions.cc (myfault_altstack_handler): New function. Explain what - it's good for. - -2015-07-07 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (CURR_CHILD_INFO_MAGIC): Update. - (child_info_fork::alloc_stack_hard_way): Drop declaration. - * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Fold into - child_info_fork::alloc_stack. - (getstack): Remove. - (child_info_fork::alloc_stack): Simplify check for application-provided - stack in "hard way" code. Don't call getstack for each page, just - reallocate stack immediately as required. - -2015-07-07 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (frok::parent): Simplify code propagating stack setup to - child process. Tweak comments. - -2015-07-06 Yaakov Selkowitz <yselkowi@redhat.com> - - * path.cc: Rework basename redefinition handling. Explain why. - -2015-07-05 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (CYGWIN_GUARD): Remove. - (child_info_fork::alloc_stack_hard_way): Align stack commit to changes - of thread stack setup in CygwinCreateThread. - -2015-07-05 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (struct pthread_wrapper_arg): Add member guardsize. - (pthread_wrapper): Set thread stack guarantee according to guardsize. - Tweak assembler code so that $rax/$eax is not required by GCC to - prepare the wrapper_arg value. - (CygwinCreateThread): Fix deadzone handling. Drop setting a "POSIX" - guardpage (aka page w/ PAGE_NOACCESS). Always use Windows guard - pages instead. On post-XP systems (providing SetThreadStackGuarantee) - always set up stack Windows like with reserved/commited areas and - movable guard pages. Only on XP set up stack fully commited if the - guardpage size is not the default system guardpage size. - Fill out pthread_wrapper_arg::guardsize. Improve comments. - * resource.cc: Implement RSTACK_LIMIT Linux-like. - (DEFAULT_STACKSIZE): New macro. - (DEFAULT_STACKGUARD): Ditto. - (rlimit_stack_guard): New muto. - (rlimit_stack): New global variable holding current RSTACK_LIMIT values. - (__set_rlimit_stack): Set rlimit_stack under lock. - (__get_rlimit_stack): Initialize rlimit_stack from executable header - and return rlimit_stack values under lock. - (get_rlimit_stack): Filtering function to return useful default - stacksize from rlimit_stack.rlim_cur value. - (getrlimit): Call __get_rlimit_stack in RLIMIT_STACK case. - (setrlimit): Call __set_rlimit_stack in RLIMIT_STACK case. - * thread.cc (pthread::create): Fetch default stacksize calling - get_rlimit_stack. - (pthread_attr::pthread_attr): Fetch default guardsize calling - wincap.def_guard_page_size. - (pthread_attr_getstacksize): Fetch default stacksize calling - get_rlimit_stack. - * thread.h (PTHREAD_DEFAULT_STACKSIZE): Remove. - (PTHREAD_DEFAULT_GUARDSIZE): Remove. - (get_rlimit_stack): Declare. - -2015-07-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (heap_info::heap_info): Disable fetching heap info - on 64 bit XP/2003. Explain why. - * wincap.h (wincaps::has_broken_rtl_query_process_debug_information): - New element. - * wincap.cc: Implement above element throughout. - -2015-07-04 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SetThreadStackGuarantee): Import. - * cygtls.h (struct _cygtls): Replace thread_context with a ucontext_t - called context. - * exceptions.cc (exception::handle): Exit from process via signal_exit - in case sig_send returns from handling a stack overflow SIGSEGV. - Explain why. - (dumpstack_overflow_wrapper): Thread wrapper to create a stackdump - from another thread. - (signal_exit): Fix argument list to reflect three-arg signal handler. - In case we have to create a stackdump for a stack overflow condition, - do so from a separate thread. Explain why. - (sigpacket::process): Don't run signal_exit on alternate stack. - (altstack_wrapper): Wrapper function to do stack correction when - calling the signal handler on an alternate stack to handle a stack - overflow. Make sure to have lots of comments. - (_cygtls::call_signal_handler): Drop local context variable to reduce - stack pressure. Use this->context instead. Change inline assembler - to call altstack_wrapper. - (_cygtls::signal_debugger): Accommodate aforementioned change to - struct _cygtls. - * tlsoffset.h: Regenerate. - * tlsoffset64.h: Regenerate. - * wincap.h (wincaps::def_guard_pages): New element. - (wincaps::has_set_thread_stack_guarantee): Ditto. - * wincap.cc: Implement above elements throughout. - -2015-07-01 Corinna Vinschen <corinna@vinschen.de> - - * fork.cc (frok::parent): Set stacktop value based on requested stack - pointer value in child. Explain why. - -2015-06-30 Corinna Vinschen <corinna@vinschen.de> - - * signal.cc (sigaltstack): Add comment. - -2015-06-27 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::call_signal_handler): Drop manipulating - thread's ss_flags here. It's not safe against longjmp. - * signal.cc (sigaltstack): Check if we're running on the alternate - stack and set ss_flags returned in oss to SS_ONSTACK. - -2015-06-26 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/signal.h: Revert to define MINSIGSTKSZ and SIGSTKSZ - here with bigger values to allow _cygtls to reside on signal stack, - should it turn out to be required at one point. - -2015-06-26 Corinna Vinschen <corinna@vinschen.de> - - * resource.cc (getrlimit): Fix values returned by RLIMIT_STACK. - Explain why this had to be changed. - -2015-06-23 Ken Brown <kbrown@cornell.edu> - - * include/cygwin/signal.h (SIGEV_*): Add macros. - -2015-06-22 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::call_signal_handler): Drop pushing a register - on the original stack, it confuses GCC. Rearrange the assembler code - so that $rax/$eax is not used by GCC to prepare an argument value. - Use $rax/$eax without saving. Drop clearing $rbp/$epb. - -2015-06-21 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::call_signal_handler): Drop subtracting 16 - bytes from the alternate stack, it's not necessary. Safe all clobbered - registers. Safe one on the orignal stack, the others on the alternate - stack on both platforms. - -2015-06-20 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::call_signal_handler): Implement alternate - signal stack handling. - * signal.cc (sigaltstack): Add fault handler. - * include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ - and SIGSTKSZ here. - -2015-06-19 Corinna Vinschen <corinna@vinschen.de> - - * common.din (sigaltstack): Export. - * cygtls.cc (_cygtls::init_thread): Initialize altstack. - * cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish - more clearly from stack_t. Accommodate throughout. - (_cygtls): Add altstack member. - * exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL - if we encounter a stack overflow, and no alternate stack has been - defined. - * include/cygwin/signal.h (MINSIGSTKSZ): Define - (SIGSTKSZ): Define. - (SA_ONSTACK): Define. - * signal.cc (sigaltstack): New function. - * tlsoffset.h: Regenerate. - * tlsoffset64.h: Ditto. - -2015-06-19 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc: Minor formatting fixes. - -2015-06-18 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (install-man): Exclude release subdir from search paths. - -2015-06-17 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (sethostname): New function. - * common.din (sethostname): Export - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2001. - (CYGWIN_VERSION_DLL_MINOR): Set to 0. - -2015-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (LOCK_EVENTS): Don't enter critical section with - invalid mutex handle since then socket has been closed. - (UNLOCK_EVENTS): Close critical section. - (fhandler_socket::evaluate_events): Handle calling connect on shutdown - socket. - (fhandler_socket::wait_for_events): Try for pthread_testcancel in case - of WAIT_FAILED. Try to come up with a better errno in case we waited - on an invalid handle. - (fhandler_socket::release_events): Change wsock_mtx and wsock_evt to - NULL under lock to avoid accessing invalid handle. - -2015-06-15 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (errmap): Handle more Winsock error codes. - -2015-06-15 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::call_signal_handler): Disable enforcing - SA_RESTART in non-main threads to allow returning with EINTR from - system calls. - -2015-06-11 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 5. - -2015-06-08 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (_pinfo::cwd): Initialize s to avoid comiler warning. - (_pinfo::cmdline): Ditto. - -2015-06-08 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (_pinfo::root): Fake default root for native processes. - (open_commune_proc_parms): New helper function to access process - parameter block. - (_pinfo::cwd): Fetch missing cwd for native processes from processes - parameter block. - (_pinfo::cmdline): Ditto for command line. - -2015-06-08 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (_pinfo::commune_request): Don't try to send commune - requests to non-Cygwin processes. - -2015-06-08 Takashi Yano <takashi.yano@nifty.ne.jp> - - * fhandler_tty.cc (fhandler_pty_slave::write): Move causing of SIGHUP - into fhandler_pty_master::close(). - (fhandler_pty_slave::read): Ditto. - (fhandler_pty_master::close): Ditto. - -2015-06-08 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 4. - -2015-06-02 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 3. - -2015-05-28 Takashi Yano <takashi.yano@nifty.ne.jp> - Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_common::close): Don't close output_mutex - here. Move into callers. - (fhandler_pty_master::close): Use NtQueryObject instead of PeekNamedPipe - to detect closing the last master handle. - -2015-05-27 Takashi Yano <takashi.yano@nifty.ne.jp> - - * net.cc: Define _NETIOAPI_H_ to accomodate newer w32api. - -2015-05-03 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2. - -2015-04-30 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1. - -2015-04-30 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (convert_samba_sd): Fix accidental dropping of all - non-Unix User, non-Unix Group accounts. - -2015-04-27 Corinna Vinschen <corinna@vinschen.de> - - * include/asm/types.h: Add __s64 and __u64 types. - -2015-04-23 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::set_nt_native_path): New function. - * path.h (path_conv::set_nt_native_path): Add prototype. - * syscall.cc (try_to_bin): Handle moving files to the recycler - accessed via a local virtual drive (subst). Fix a problem renaming - the file to the unique replacement name on Samba. Align comment. - -2015-04-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_slave::fch_close_handles): Don't close - handles not opened via fhandler_pty_slave::fch_open_handles. - -2015-04-22 Takashi Yano <takashi.yano@nifty.ne.jp> - - * fhandler.h (class fhandler_base): Add virtual function - get_io_handle_cyg() to get handle from which OPOST-processed output is - read on PTY master. - (class fhandler_pty_slave): Add variable output_handle_cyg to store a - handle to which OPOST-processed output is written. Add two functions, - i.e., set_output_handle_cyg() and get_output_handle_cyg(), regarding - variable output_handle_cyg. Now, output_handle is used only by native - windows program. The data before OPOST-processing is written to - output_handle and OPOST-processing is applied in the master-side. For a - cygwin process, OPOST-processing is applied in the slave-side, and the - data after OPOST-processing is written to output_handle_cyg. - (class fhandler_pty_master): Add two variables, i.e., io_handle_cyg and - to_master_cyg, to store handles of a pipe through which OPOST-processed - output passes. Add pty_master_fwd_thread and function - pty_master_fwd_thread() for a thread which applies OPOST-processing - and forwards data from io_handle to to_master_cyg. Add function - get_io_handle_cyg() regarding variable io_handle_cyg. Now, the pipe - between io_handle and to_master are used only by native windows program - for applying OPOST-processing in the master-side. For a cygwin process, - the pipe between io_handle_cyg and to_master_cyg is used for passing - through the data which is applied OPOST-processing in the slave-side. - * fhandler_tty.cc (struct pipe_reply): Add member to_master_cyg. - (fhandler_pty_master::process_slave_output): Read slave output from - io_handle_cyg rather than io_handle. - (fhandler_pty_slave::fhandler_pty_salve): Initialize output_handle_cyg. - (fhandler_pty_slave::open): Set output_handle_cyg by duplicating handle - to_master_cyg on PTY master. - (fhandler_pty_slave::close): Close handle output_handle_cyg. - (fhandler_pty_slave::write): Write data to output_handle_cyg rather - than output_handle. - (fhandler_pty_slave::fch_close_handles): Close handle output_handle_cyg. - (fhandler_pty_master::fhandler_pty_master): Initialize io_handle_cyg, - to_master_cyg and master_fwd_thread. - (fhandler_pty_master::cleanup): Clean up to_master_cyg as well. - (fhandler_pty_master::close): Print to_master_cyg as well in debug - message. Terminate master forwarding thread. Close handles - to_master_cyg and io_handle_cyg. - (fhandler_pty_master::ioctl): Use io_handle_cyg rather than to_master. - (fhandler_pty_master::pty_master_thread): Add code for duplicating - handle to_master_cyg. - (fhandler_pty_master::pty_master_fwd_thread): New function for a thread - to forward OPOST-processed data from io_handle to to_master_cyg. This - thread applies OPOST-processing to the output of native windows program. - (::pty_master_fwd_thread): Ditto. - (fhandler_pty_master::setup): Create a new pipe to pass thruegh OPOST- - processed output. Create new thread to forward data from io_handle to - to_master_cyg. Set handle to_master_cyg to tty. Print io_handle_cyg as - well in debug message. Close handles io_handle_cyg and to_master_cyg in - case of error. - (fhandler_pty_master::fixup_after_fork): Set handle to_master_cyg to - tty. Copy handle to_master_cyg from arch->to_master_cyg. - (fhandler_pty_master::fixup_after_exec): Clean up to_master_cyg. - * select.cc: Check handle returned by get_io_handle_cyg() rather than - get_handle(). - * tty.h (class tty): Add variable _to_master_cyg to store a handle to - which OPOST-processed data is written. Add two functions, - to_master_cyg() and set_to_master_cyg(), regarding _to_master_cyg. - -2015-04-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (basename): Undefine basename before defining function to - avoid type collision with prototype in string.h. - -2015-04-21 Corinna Vinschen <corinna@vinschen.de> - - * include/libgen.h: Remove in favor of newlib version. - -2015-04-17 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID - subauth count after checking for known domain. - -2015-04-17 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h: Add comment to explain below change. - (struct pg_pwd): Convert sid member to BYTE array. - (struct pg_grp): Ditto. - * grp.cc (pwdgrp::parse_group): Accommodate above change. - * passwd.cc (pwdgrp::parse_passwd): Ditto. - -2015-04-12 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (shmget): Fetch segment size from server rather than using - size argument to accommodate existing segments. Add comment to explain - why. - -2015-04-10 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000. - (CYGWIN_VERSION_DLL_MINOR): Set to 0. - -2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk> - - * exceptions.cc (call_signal_handler): Set mcontext.cr2 to the - faulting address. - -2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk> - - * exceptions.cc (call_signal_handler): Only bother to construct - the ucontext for signal handlers with SA_SIGINFO set. Set - mcontext.oldmask. - -2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk> - - * exceptions.cc (call_signal_handler): Zero initialize context and set - context flags, as RlCaptureContext doesn't. - -2015-04-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_dsp.cc (fhandler_dev_dsp::open): Call open_null. - -2015-04-08 Corinna Vinschen <corinna@vinschen.de> - - * pwdgrp.h (sidfromuid): New inline function. - (sidfromgid): Ditto. - * fhandler_disk_file.cc (fhandler_disk_file::fchown): Use sidfromuid. - * quotactl.cc (quotactl): Use sidfromuid and sidfromgid. - -2015-04-08 Corinna Vinschen <corinna@vinschen.de> - - * include/cyggwin/acl.h (struct __acl16): Move from here... - * sec_acl.cc: ...to here. - -2015-04-07 Corinna Vinschen <corinna@vinschen.de> - - * tty.h (class tty): Remove unused 32/64 bit interoperability - considerations. - -2015-04-07 Corinna Vinschen <corinna@vinschen.de> - - * tty.h (NTTYS): Raise to 128. - * devices.in: Change pty, ptym, and cons expressions accordingly. - * devices.cc: Regenerate. - -2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk> - - * Makefile.in : Remove setting -fomit-frame-pointer for compiling - various files, it is already the default. Set - -fno-omit-frame-pointer for exceptions.cc on x86. - -2015-04-03 Takashi Yano <takashi.yano@nifty.ne.jp> - - * fhandler_tty.cc (fhandler_pty_slave::read): Change calculation of - "readlen" not to use "bytes_in_pipe" value directly. - -2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk> - - * include/cygwin/signal.h (struct __mcontext): 16-byte align. - * include/sys/ucontext.h (ucontext_t): Ditto. - -2015-04-01 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Include sys/_stdint.h rather than stdint.h. - * include/stdint.h: Drop in favor of newlib version. - * include/inttypes.h: Ditto. - -2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk> - - * include/sys/ucontext.h : New header. - * include/ucontext.h : Ditto. - * exceptions.cc (call_signal_handler): Provide ucontext_t - parameter to signal handler function. - -2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk> - - * external.cc (cygwin_internal): Add operation to retrieve a copy - of the EXCEPTION_RECORD from a siginfo_t *. - * include/sys/cygwin.h (cygwin_getinfo_types): Ditto. - * exception.h (cygwin_exception): Add exception_record accessor. - -2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk> - - * include/cygwin/signal.h : Rename struct ucontext to struct - __mcontext. Fix layout differences from the Win32 API CONTEXT - type. Remove unused member _internal. Rename member which - corresponds to ContextFlags. Add cr2 member. - -2015-04-01 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Handle negative domain index to avoid - crashes. - -2015-03-31 Renato Silva <br.renatosilva@gmail.com> - - * net.cc (cygwin_gethostname): Fix buffer size error handling. - -2015-03-31 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Don't allow fully - qualified Windows account names (domain\user or user@domain). - -2015-03-31 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzset_unlocked): Export as _tzset_unlocked. - -2015-03-30 Yaakov Selkowitz <yselkowi@redhat.com> - - * common.din (__gnu_basename): Export. - * path.cc (__gnu_basename): New function. - -2015-03-30 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_domain_info::add_domain): Add prototype. - * uinfo.cc (cygheap_domain_info::add_domain): New method. - (pwdgrp::fetch_account_from_windows): Try to add domain explicitely - if it was not in the original list of trusted domains and go ahead - rather than bailing out. Add comment to explain why. - -2015-03-30 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (struct _cygtls): Convert thread_context to type CONTEXT. - * exceptions.cc (_cygtls::signal_debugger): Use sizeof (CONTEXT) for - size of CONTEXT copied for GDB's digestion. - * include/cygwin/signal.h: Add a preliminary comment. - -2015-03-25 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/termios.h: Add CMIN and CTIME. - * fhandler_termios.cc (fhandler_termios::tcinit): Use CMIN and CTIME. - -2015-03-25 Takashi Yano <takashi.yano@nifty.ne.jp> - - * tty.h (class tty_min): Remove variable "write_error" to which any - errors are not currently set at anywhere. - (class tty): Add variable "column" for handling ONOCR. - * tty.cc (tty::init): Add initialization code for variable "column". - * fhandler.h (class fhandler_pty_master): Remove variable "need_nl" - which is not necessary any more. "need_nl" was needed by OPOST process - in fhandler_pty_master::process_slave_output(). - (class fhandler_pty_common): Add function process_opost_output() for - handling post processing for OPOST in write process. - * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Count - TIOCPKT control byte into length to be read in TIOCPKT mode. Move - post processing for OPOST to write process. Remove code related to - variable "write_error". Return with EIO error if slave is already - closed. - (fhandler_pty_master::fhandler_pty_master): Remove initialization - code for variable "need_nl". - (fhandler_pty_common::process_opost_output): Add this function for - handling of OPOST in write process. Add code to avoid blocking in - non-blocking mode when output is suspended by ^S. - (fhandler_pty_slave::write): Call fhandler_pty_common:: - process_opost_output() instead of WriteFile(). Remove code related to - variable "write_error". - (fhandler_pty_master::doecho): Call fhandler_pty_common:: - process_opost_output() instead of WriteFile(). - * select.cc (peek_pipe): Remove code related to variable "need_nl". - -2015-03-24 Corinna Vinschen <corinna@vinschen.de> - - Per glibc BZ #15366: - * inttypes.h: Drop __STDC_FORMAT_MACROS consideration. - * stdint.h: Drop __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS - consideration. - -2015-03-23 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/_types.h: Drop unused file. - -2015-03-18 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (pwdgrp::parse_group): Call cygsid::getfromgr_passwd. - * passwd.cc (pwdgrp::parse_passwd): Call cygsid::getfrompw_gecos. - * pwdgrp.h (cygsid::getfrompw): Implement as inline method here, - accessing pg_pwd's sid member directly. - (cygsid::getfromgr): Implement as inline method here, accessing - pg_grp's sid member directly. - * sec_auth.cc (extract_nt_dom_user): Call cygsid::getfrompw_gecos. - Explain why. - * sec_helper.cc (cygsid::getfrompw): Drop implementation. - (cygsid::getfromgr): Ditto. - * security.h (cygsid::getfrompw_gecos): Implement former getfrompw - inline here. - (cygsid::getfromgr_passwd): Implement former getfromgr inline here. - -2015-03-18 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_server_groups): Drop unused passwd argument. Adjust - calls throughout. - (get_initgroups_sidlist): Ditto. - (get_setgroups_sidlist): Ditto. - (create_token): Ditto. - (lsaauth): Ditto. - * security.h (create_token): Adjust prototype to above change. - (lsaauth): Ditto. - (get_server_groups): Ditto. - * grp.cc (get_groups): Adjust call to get_server_groups. - * syscalls.cc (seteuid32): Adjust calls to lsaauth and create_token. - -2015-03-17 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Drop unused timeout parameter. - * pwdgrp.h (internal_getgroups): Ditto in prototype. - * uinfo.cc (internal_getlogin): Ditto in usage. - -2015-03-17 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Fix a name change in case of a symlink which - can be opened as is. - -2015-03-12 Jon TURNEY <jon.turney@dronecode.org.uk> - - * exceptions.cc (stack_info): Add sigstackptr member. - (walk): Unwind sigstackptr inside _sigbe and sigdelayed. - * gendef (_sigdelayed_end): Add symbol to mark end of sigdelayed. - -2015-03-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/sys_time.h: Remove. Definitions moved to newlib's - sys/time.h. - -2015-03-13 Alexey Pavlov <alexpux@gmail.com> - - * net.cc (in6addr_any): Remove redundant braces. - (in6addr_loopback): Ditto. - -2015-03-12 Alexey Pavlov <alexpux@gmail.com> - - * include/cygwin/version.h: Fix typo. - -2015-03-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Drop defining _BSDTYPES_DEFINED before including - winsup.h. - -2015-03-12 Takashi Yano <takashi.yano@nifty.ne.jp> - - * fhandler_tty.cc (fhandler_pty_master::close): Add code to make slave - detect closure of master. Fix typo in error message. - -2015-03-11 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/types.h: Include <sys/_timespec.h> - -2015-03-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (CreateEnvironmentBlock): Make loading non-fatal. - -2015-03-11 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (std_dll_init): Fix condition for breaking from DLL - loading loop. - -2015-03-10 Yaakov Selkowitz <yselkowitz@cygwin.com> - - * include/stdint.h: Fix __x86_64__ conditional. - -2015-03-05 Corinna Vinschen <corinna@vinschen.de> - - * tty.h (tty::set_master_ctl_closed): Rename from set_master_closed. - (tty::is_master_closed): Drop method. - * fhandler_tty.cc (fhandler_pty_slave::open): Remove code prematurely - bailing out if master control thread is not running. - (fhandler_pty_slave::read): Don't generate SIGHUP if master control - thread is not running. - (fhandler_pty_master::close): Rearrange code to avoid stopping master - control thread twice in multi-threaded scenarios. - -2015-03-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::get_echo_handle): New virtual method. - (class fhandler_pty_master): Add echo_r and echo_w handles constituting - read and write side of new echo pipe. - * select.cc (peek_pipe): On pty masters, check additionally if input - from the echo pipe is available. - * fhandler_tty.cc (fhandler_pty_master::doecho): Drop output_mutex - locking. Write output to echo pipe. - (fhandler_pty_master::process_slave_output): Check if input is available - in echo pipe and prefer to read from it, if so. - (fhandler_pty_slave::write): Drop output_mutex locking. - (fhandler_pty_master::fhandler_pty_master): Initialize echo pipe - handles to NULL. - (fhandler_pty_master::close): Close and NULL echo pipe handles. - (fhandler_pty_master::setup): Create echo pipe, close in case of error. - -2015-03-04 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 36. - -2015-03-03 Corinna Vinschen <corinna@vinschen.de> - - * msg.cc: Throughout, drop raising SIGSYS if cygserver is not running. - * sem.cc: Ditto. - * shm.cc: Ditto. - -2015-03-03 Corinna Vinschen <corinna@vinschen.de> - - * common.din (issetugid): Export. - * glob.cc (issetugid): Drop macro. - * sec_auth.cc (issetugid): New exported function. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-03-02 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_attribute_from_acl): Don't spill Everyone permissions - into group permissions if owner SID == group SID. - (alloc_sd): Add parenthesis for clarity. - -2015-02-28 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::add_line): Return NULL if parsing a line failed. - (pwdgrp::add_account_post_fetch): Check return value from add_line and - return NULL if add_line returns NULL. - -2015-02-27 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): For directories, mark inherited ACEs - inheritable to better follow POSIX 1003.1e rules. - -2015-02-27 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (getacl): Add mask even if all group and secondary account - permissions are 0. - -2015-02-27 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop redundant test - for SidTypeUser. - -2015-02-27 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Fix bug which leads to ACE duplication in - case owner SID == group SID. - (getacl): Reverse order of SID test against group or owner sid to - prefer owner attributes over group attributes. Disable setting group - permissions equivalent to owner permissions if owner == group. Add - comment to explain why. Fix indentation. - * security.cc (get_attribute_from_acl): Change type of local variables - containing permission to mode_t. Apply deny mask to group if group SID - == owner SID to avoid Everyone permissions to spill over into group - permissions. Disable setting group permissions equivalent to owner - permissions if owner == group. Add comment to explain why. - * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow user SID as - group account if user is a "Microsoft Account". Explain why. Drop - workaround enforcing primary group "Users" for "Microsoft Accounts". - -2015-02-26 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (cyg_ldap::wait): Call cygwait with cw_infinite timeout value - and with cw_sig_restart instead of cw_sig_eintr. Drop useless - _my_tls.call_signal_handler call. Return EIO if cygwait failed. - -2015-02-26 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_mutex_lock): Revert unneeded call to signal handler. - -2015-02-26 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_mutex_lock): Add bool parameter to influence if - cygwait should be in EINTR or in restart mode. Call signal handler - if in EINTR mode. - (mq_getattr): Call ipc_mutex_lock in restart mode. - (mq_setattr): Ditto. - (mq_notify): Ditto. - (_mq_send): Call ipc_mutex_lock in EINTR mode. - (_mq_receive): Ditto. - -2015-02-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_termios.cc (fhandler_termios::line_edit): Fix condition - for writing remaining bytes in readahead buffer in non-canonical mode. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Always grant default owner entry - STANDARD_RIGHTS_ALL and FILE_WRITE_ATTRIBUTES access, too. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tape.cc (fhandler_dev_tape::_lock): Add cw_sig_restart to - cygwait call. - * thread.cc (pthread_mutex::lock): Ditto. - (semaphore::_timedwait): Fix formatting. - (semaphore::_wait): Ditto. - * thread.h (fast_mutex::lock): Ditto. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Don't apply temporary workaround for chmod - to DEF_USER_OBJ, DEF_GROUP_OBJ, and DEF_OTHER_OBJ ACEs. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_slave::read): Having no input is not an - error condition for tcflush. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Fix comment style. Remove code unused for - years. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Add temporary workaround which disallows - any secondary user to have more permissions than the primary group - in calls to chmod. Add comment to explain why. - -2015-02-25 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (client_request_pwdgrp::client_request_pwdgrp): Add missing - break in switch statement. - -2015-02-24 Corinna Vinschen <corinna@vinschen.de> - - * ldap.h: Remove index macros. - (class cyg_ldap): Remove members srch_msg and srch_entry. - (cyg_ldap::get_string_attribute): Remove private method taking index - argument. - (cyg_ldap::get_num_attribute): Ditto. Add method taking attribute name. - (cyg_ldap::get_primary_gid): Adjust to aforementioned change. - (cyg_ldap::get_unix_uid): Ditto. - (cyg_ldap::get_unix_gid): Ditto. - * ldap.cc: Throughout, use msg and entry in place of srch_msg and - srch_entry. - (std_user_attr): Add sAMAccountName and objectSid. - (group_attr): Ditto. - (cyg_ldap::close): Drop handling of srch_msg and srch_entry. - (cyg_ldap::get_string_attribute): Move earlier in file. - (cyg_ldap::get_num_attribute): Ditto. - (cyg_ldap::enumerate_ad_accounts): Add comments for clarity. - Use group_attr or user_attr rather than sid_attr to fetch all desired - attributes for an account right away. - (cyg_ldap::next_account): Store found SID in last_fetched_sid to - skip calls to fetch_ad_account from fetch_account_from_windows. - (cyg_ldap::get_string_attribute): Remove method taking index argument. - (cyg_ldap::get_num_attribute): Ditto. - * pwdgrp.h (class pg_ent): Fix formatting. Add member dom. - * passwd.cc (pg_ent::enumerate_ad): Store current flat domain name - in dom. Construct fetch_acc_t argument from LDAP attributes and - call fetch_account_from_windows with that. - * userinfo.h (enum fetch_user_arg_type_t): Rename FULL_grp_arg to - FULL_acc_arg. Change throughout. - (struct fetch_acc_t): Rename from fetch_full_grp_t. Change throughout. - (struct fetch_user_arg_t): Rename full_grp to full_acc. Change - throughout. - -2015-02-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_base): Add was_nonblocking status flag. - * fhandler.cc (fhandler_base::set_flags): Set was_nonblocking if the - O_NONBLOCK flag has been specified. - (fhandler_base_overlapped::close): Check for was_nonblocking instead - of for is_nonblocking. Explain why. - (fhandler_base::set_nonblocking): Set was_nonblocking if noblocking - mode gets enabled. - -2015-02-24 Ken Brown <kbrown@cornell.edu> - - * include/sys/socket.h (sockatmark): Add prototype. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * userinfo.h (struct fetch_full_grp_t): Define only when building - Cygwin itself. - (struct fetch_user_arg_t): Ditto. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LsaLookupSids): Import. - * cygserver_pwdgrp.h: Include userinfo.h. Drop workaround defining - fetch_user_arg_type_t locally. - * grp.cc (internal_getgrsid_cachedonly): New function. - (internal_getgrfull): Ditto. - (internal_getgroups): Rearrange function. Center around fetching all - cached group info first, calling LsaLookupSids on all so far non-cached - groups second. Pass all available info to new internal_getgrfull call. - * pwdgrp.h: Include userinfo.h. Move definitions of - fetch_user_arg_type_t and fetch_user_arg_t there. - (pwdgrp::add_group_from_windows): Declare with getting full group info. - Called from internal_getgrfull. - * uinfo.cc (pwdgrp::add_group_from_windows): Define. - (pwdgrp::fetch_account_from_line): Add default case. - (pwdgrp::fetch_account_from_file): Ditto. - (pwdgrp::fetch_account_from_windows): Handle FULL_grp_arg. - (client_request_pwdgrp::client_request_pwdgrp): Add default case. - * userinfo.h: New header. - (enum fetch_user_arg_type_t): Add FULL_grp_arg. - (struct fetch_full_grp_t): New datatype. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Check for group attributes and - Everyone sid before calling internal_getgrsid. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwait.h (enum cw_wait_mask): Add cw_sig_restart. Add comments - to explain the meaning of the possible values. - * cygwait.cc (is_cw_sig_restart): Define. - (is_cw_sig_handle): Check for cw_sig_restart as well. - (cygwait): Restart always if cw_sig_restart is set. - * thread.cc (pthread::join): Call cygwait with cw_sig_restart flag - to avoid having to handle signals at all. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * cygwait.cc (cygwait): Move setting res to WAIT_SIGNALED to clarify - when WAIT_SIGNALED is returned to the caller. - -2015-02-23 Corinna Vinschen <corinna@vinschen.de> - - * winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow. - -2015-02-20 Corinna Vinschen <corinna@vinschen.de> - - * grp.cc (internal_getgroups): Take additional timeout_ns parameter. - Restrict fetching group account entries from user token groups by - timeout_ns 100ns-intervals. Add preceding comment to explain why. - * pwdgrp.h (internal_getgroups): Align prototype. - * times.cc (GetTickCount_ns): New function. - * uinfo.cc (internal_getlogin): Call internal_getgroups wih 300ms - timeout. - * winsup.h (GetTickCount_ns): Declare. - -2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk> - - * Makefile.in (sigfe.o): Use CFLAGS. - -2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk> - - * include/cygwin/stdlib.h (initstate, random, setstate, srandom): - Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing - for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is - set. - -2015-02-19 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Always grant owner FILE_WRITE_ATTRIBUTES access. - -2015-02-18 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (struct cyg_ldap_search): Add scope member. - (cyg_ldap::search_s): Add parameter scope. Use as LDAP search scope - instead of fixed LDAP_SCOPE_SUBTREE scope. - (ldap_search_thr): Call cyg_ldap::search_s with scope from argument. - (cyg_ldap::search): Add parameter scope and fill in to cyg_ldap_search. - (cyg_ldap::fetch_ad_account): Call search with LDAP_SCOPE_SUBTREE scope. - (cyg_ldap::fetch_posix_offset_for_domain): Call search with - LDAP_SCOPE_ONELEVEL scope. - (cyg_ldap::fetch_unix_sid_from_ad): Call search with LDAP_SCOPE_SUBTREE - scope. - (cyg_ldap::fetch_unix_name_from_rfc2307): Ditto. - * ldap.h (cyg_ldap::search): Align prototype to above change. - (cyg_ldap::search_s): Ditto. - -2015-02-18 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc: Macro-ize filter expressions. Use throughout to compute - required filter buffer size if filter is a local buffer. - -2015-02-17 Corinna Vinschen <corinna@vinschen.de> - - * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): Drop stray - system_printf. - -2015-02-17 Corinna Vinschen <corinna@vinschen.de> - - * ldap.h (class cyg_ldap): Rename rootdse to def_context. Change - throughout. - * ldap.cc (cyg_ldap::open): Fix debug output. - (cyg_ldap::fetch_ad_account): Rename rdse to base. Restrict LDAP - query to users and groups only. - (cyg_ldap::enumerate_ad_accounts): Rearrange filter expression for - user accounts. - (SYSTEM_CONTAINER): New macro. - (cyg_ldap::fetch_posix_offset_for_domain): Set base in LDAP search - to the "System" container in the default naming context to restrict - the search scope. - (cyg_ldap::fetch_unix_sid_from_ad): Add objectCategory=Person to - search filter for users. - -2015-02-16 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Extend preceeding comment to explain more - detailed what's going on in this function. Overwrite potential symlink - target with original path. - -2015-02-15 Corinna Vinschen <corinna@vinschen.de> - - * i686.din (__mempcpy): Move symbol export from here... - * common.din (__mempcpy): ... to here. - -2015-02-14 Corinna Vinschen <corinna@vinschen.de> - - * path.h (path_conv): Make path_flags private. Rename known_suffix to - suffix and make private. Rename normalized_path to posix_path and - make privtae. Accommodate name changes throughout in path_conv - methods. - (path_conv::known_suffix): New method. Use throughout instead of - accessing suffix directly. - (path_conv::get_win32): Constify. - (path_conv::get_posix): New method to read posix_path. Use throughout - instead of accessing normalized_path directly. - (path_conv::set_posix): Rename from set_normalized_path. Accommodate - name change throughout. - - * spawn.cc (find_exec): Return POSIX path, not Win32 path. - -2015-02-12 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Introduce bool array "invalid" to note the - invalidation of incoming acl entries while iterating over them. - -2015-02-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_pwdgrp::get_home): Add dnsdomain parameter to - declaration in ldap-related method. - (cygheap_pwdgrp::get_shell): Ditto. - (cygheap_pwdgrp::get_gecos): Ditto. - * ldap.cc (cyg_ldap::open): Use NO_ERROR instead of 0. - (cyg_ldap::close): Reset last_fetched_sid. - (cyg_ldap::fetch_ad_account): Return immediately if sid is the same as - last_fetched_sid. Open LDAP connection from here. Move initialization - of rdse after open call. Set last_fetched_sid if LDAP call was - successful. - * ldap.h (class cyg_ldap): Add member last_fetched_sid. - (cyg_ldap::cyg_ldap): Initialize last_fetched_sid. - (cyg_ldap::is_open): New inline method. - * uinfo.cc (cygheap_pwdgrp::init): Drop initialization of db_home, - db_shell and db_gecos with "cygwin desc", thus only using the fallback - by default. - (fetch_windows_home): Add parameter dnsdomain. Call - cyg_ldap::fetch_ad_account if required. - (fetch_from_path): Add parameter dnsdomain. Call fetch_windows_home - accordingly. - (cygheap_pwdgrp::get_home): Accomodate call to fetch_windows_home. - Add dnsdomain parameter in ldap-related method. Call - cyg_ldap::fetch_ad_account if required. - (cygheap_pwdgrp::get_shell): Ditto. - (cygheap_pwdgrp::get_gecos): Ditto. - (pwdgrp::fetch_account_from_windows): Drop cyg_ldap::open call prior to - cyg_ldap::fetch_ad_account call. Set is_current_user to true if we're - handling the current user account. Make sure to perform the LDAP calls - only for users, and only if required. - -2015-02-11 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (fhandler_base::lock): Convert accidental system_printf to - debug_printf in case of non-matching file modes. Clear up debug output. - -2015-02-11 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (check_path_access): Drop FE_NATIVE from find_exec call. - (gfpod_helper): Drop equality sign from environment variable name - in call to check_path_access. - * exec.cc (execlp): Drop equality sign from environment variable name - in call to find_exec. - (execvp): Ditto. - (execvpe): Ditto. - * path.h (enum fe_types): Drop FE_NATIVE. - (find_exec): Rename third paramter in declaration from search. Drop - equality sign from default value. - * spawn.cc (perhaps_suffix): Add PC_POSIX to path_conv::check call. - (find_exec): Simplify function. Iterate over POSIX pathlist rather - than Windows pathlist. Drop handling of FE_NATIVE flag. Always fill - posix path of incoming path_conv buf, unless FE_NNF flag is given. - (av::setup): Drop equality sign from environment variable name - in call to find_exec. Call unshift with normalized_path. - * winf.cc (av::unshift): Drop conv parameter and code converting - Windows to POSIX path. - * winf.h (av::unshift): Accommodate prototype. - -2015-02-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fhandler_base::stat_fixup): Generate unique inode number - for /dev/tty under all circumstances. Add to comment. - -2015-02-06 Corinna Vinschen <corinna@vinschen.de> - - * common.din: Export cabsl, cimagl, creall, finitel, hypotl, sqrtl. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-02-06 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 35. - -2015-02-06 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_cpuinfo): Enable multi-core fields - on Intel CPUs. - -2015-02-04 Corinna Vinschen <corinna@vinschen.de> - - * common.din (wcstold): Export. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-02-03 Corinna Vinschen <corinna@vinschen.de> - - * mkvers.sh: Automate generating the copyright date in the version - resource. - * winver.rc: Ditto. - -2015-01-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (VERSION_OFILES): New variable containing object files - with version information. Use throughout. - (clean): Drop winver_stamp. - (version.cc winver.o): Drop empty rule. - (winver_stamp): Convert to rule targeting version.cc and winver.o - directly. Drop touching winver_stamp. Fix typo. - -2015-01-24 Corinna Vinschen <corinna@vinschen.de> - - * uname.cc (uname): Shorten "WOW64" to "WOW" to account for the new - Windows 10 OS version "10.0" starting with preview build 9926. - -2015-01-23 Pierre A. Humblet <pierre@phumblet.no-ip.org> - - * net.cc (cygwin_inet_pton): Declare. - (gethostby_specials): New function. - (gethostby_helper): Change returned addrtype in 4-to-6 case. - (gethostbyname2): Call gethostby_specials. - -2015-01-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_process): Add fd_type member. - * fhandler_process.cc (process_tab): Fix indentation. - (fhandler_process::exists): Rely on format_process_fd returning file - type in fd_type. - (struct process_fd_t): Add fd_type member. - (fhandler_process::fill_filebuf): Allow format_process_fd to set - this->fd_type member. - (format_process_fd): Fix path evaluation to allow recognizing trailing - path components. Fix check for file descriptor path component. Return - virt_symlink in fd_type if no trailing path compenents exist, return - virt_fsdir otherwise and copy full resulting path into destbuf. - * path.cc (path_conv::check): If /proc/$PID/fd symlink has trailing - path components, reparse resulting path as if it's the incoming path. - Add comment to wail over the outdated and hackish check method, and to - explain what we do here. - -2015-01-21 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow fetching gid, - home, shell and gecos info from NT4 domain. - -2015-01-21 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_logon_server): Constify domain parameter. - * security.h (get_logon_server): Same in prototype. - -2015-01-20 Corinna Vinschen <corinna@vinschen.de> - - * common.din (sockatmark): Export. - * net.cc (sockatmark): New function. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2015-01-19 Corinna Vinschen <corinna@vinschen.de> - - * cygserver_ipc.h (ipc_retval): Add default constructor. - (class thread): struct->class. Add prototypes for new private methods - dup_signal_arrived and close_signal_arrived. Implement constructor and - destructor. - -2015-01-16 Marco Atzeri <marco.atzeri@gmail.com> - Corinna Vinschen <corinna@vinschen.de> - - * gendef: Export _sigbe on 64 bit as well. - * malloc_wrapper.cc (free): In malloc_printf, call caller_return_address - instead of __builtin_return_address. - (malloc): Ditto. - (realloc): Ditto. - (calloc): Ditto. - * miscfuncs.cc (__caller_return_address): New function. - * miscfuncs.h (caller_return_address): New macro calling - __caller_return_address. - (__caller_return_address): Add prototype. - -2015-01-14 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (fetch_windows_home): Disable fetching from homeDrive or - usri3_home_dir_drive. Add comment. - -2015-01-14 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (renv_arr): Drop variables not usually in a Windows - environment and all variables being uppercase anyway. But keep - TMP and TEMP for paranoia. - -2015-01-14 Corinna Vinschen <corinna@vinschen.de> - - * environ.cc (build_env): When merging the user's Windows environment, - explicitely skip the variables needing conversion to avoid collisions. - Extend comment to explain. - -2015-01-13 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop code from - 2014-11-17, always prepending domain to NT SERVICE accounts when - searching by name. Fix test expression to allow fully qualified - names for NT SERVICE accounts. Extend comment to explain a bit. - -2015-01-12 Pierre A. Humblet <pierre@phumblet.no-ip.org> - - * minires-os-if.c (cygwin_query): Change questions into answers. - -2015-01-08 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cygheap_pwdgrp::get_shell): Add sid to argument list. - (cygheap_pwdgrp::get_gecos): Ditto. - * uinfo.cc (fetch_windows_home): Accept cyg_ldap and PUSER_INFO_3 - arguments, and fetch db home dir values right here. - (fetch_from_path): Accept cyg_ldap, PUSER_INFO_3 pointers and sid - arguments. Add '%H' format specifier to fetch Windows home dir in - POSIX notation. - (cygheap_pwdgrp::get_home): Accommodate changes to fetch_windows_home - and fetch_from_path. - (cygheap_pwdgrp::get_shell): Ditto. - (cygheap_pwdgrp::get_gecos): Ditto. - (pwdgrp::fetch_account_from_windows): Accommodate sid argument to - cygheap_pwdgrp::get_shell and cygheap_pwdgrp::get_gecos. - -2015-01-08 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/socket.h (struct cmsghdr): Redefine cmsg_len as type - size_t. Add comment to explain why. - -2015-01-08 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (__cygwin_gettzoffset): New function for access from - newlib. - (__cygwin_gettzname): Ditto. - -2015-01-07 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc (tzload): Fix loading latest timezone offsets into - tzinfo from zoneinfo files. Add comment to explain what we do. - (tzparse): Add more comments to explain in case of loading timezone - offset from other sources. - diff --git a/winsup/cygwin/ChangeLog.64bit b/winsup/cygwin/ChangeLog.64bit deleted file mode 100644 index 3d91c9a4c..000000000 --- a/winsup/cygwin/ChangeLog.64bit +++ /dev/null @@ -1,1877 +0,0 @@ -2013-04-21 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/stdint.h (INTPTR_MAX): Fix missing parenthesis. - -2013-04-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_slave::write): Change type of towrite to - ssize_t. - (fhandler_pty_slave::read): Ditto for totalread. - -2013-04-13 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (fdsock): Raise send/recv buffer sizes for x86_64. Extend - comment. - (cygwin_setsockopt): Fix condition and syscall_printf. - -2013-04-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Fix typo in - debug_printf. - (fhandler_base_overlapped::raw_read): Handle size difference between - DWORD and {s}size_t platform-independently. - (fhandler_base_overlapped::raw_write): Ditto. Fix typo in comment. - -2013-04-10 Corinna Vinschen <corinna@vinschen.de> - - * Reinstantiate ptmalloc3. - * configure.ac (MALLOC_OFILES): Drop here. - * configure: Regenerate. - * Makefile.in (MALLOC_OFILES): Set to fixed value here. - * cygmalloc.h (HAVE_MORECORE): Define. - * malloc.cc (init_user_mstate): Don't disable MORECORE if building - with ONLY_MSPACES. - -2013-04-09 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (MINIMAL_WIN_NTFS_FLAGS): Fix comment. - -2013-04-08 Corinna Vinschen <corinna@vinschen.de> - - * Throughout fix -Wextra warnings. Ignore regex files and gmon.c. - -2013-04-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::send_internal): Change type of - local variable res to ssize_t. - * net.cc (cygwin_sendto): Fix local variable res, containing return - value, to be ssize_t as well. - (cygwin_recvfrom): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - (cygwin_recvmsg): Ditto. - (cygwin_sendmsg): Ditto. - * syscalls.cc (write): Ditto. - (writev): Ditto. - * pipe.cc (fhandler_pipe::open): Fix type when reading handle value to - accommodate 32 bit compiler. - -2013-04-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Use %lu as - format specifier to match HANDLE size. - * net.cc (cygwin_sendto): Fix return type to be ssize_t. Change - syscall_printf return type format specifier to %lR. - (cygwin_recvfrom): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - (cygwin_recvmsg): Ditto. - (cygwin_sendmsg): Ditto. - * smallprint.cc (__small_vsprintf): Handle `l' for %R, too. - (__small_vswprintf): Ditto. - * syscalls.cc (read): Change syscall_printf return type format specifier - to %lR. - (readv): Ditto. - (pread): Ditto. - (write): Ditto. - (writev): Ditto. - (pwrite): Ditto. - (lseek64): Enhance comment. - -2013-04-08 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (fhandler_pipe::open): Fix format specifier and type when - reading handle value. - (fhandler_pipe::get_proc_fd_name): Use same format specifier as in - fhandler_pipe::open. - -2013-04-06 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (_csbrk): Move down in file, right in front of _cmalloc. - -2013-04-04 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct _cmalloc_entry): Define b as unsigned rather than - DWORD. - (NBUCKETS): Define here as constant value. - (struct init_cygheap): Add bucket_val member. Define size of bucket_val - and buckets using NBUCKETS. - * cygheap.cc (NBUCKETS): Drop definition here. - (cygheap_init): Initialize cygheap->bucket_val. Add comment to explain - what we do and why. - (_cmalloc): Simplify bit bucket search using cygheap->bucket_val. Drop - local variable sz. Fetch size of block from cygheap->bucket_val. - (_cfree): Define b as unsigned. - (_crealloc): Fetch size of block from cygheap->bucket_val. - -2013-04-02 ÐлекÑей Павлов <alexpux@gmail.com> - - * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Add missed - ampersand. - -2013-03-30 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: Regenerate from F18 glibc 2.16-28. In the first place this - fixes fi_FI and adds ta_LK (new in Windows 8). - * nlsfuncs.cc (LocaleNameToLCID): Drop unneeded declaration. - -2013-03-29 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Drop old comment. - * hookapi.cc (PEHeaderFromHModule): Return PIMAGE_NT_HEADERS. - (rvadelta): Convert to function and merge in rvadelta_get. - (remap): New function to have code for remapping big executables - only once. - (find_first_notloaded_dll): Simplify. Don't handle different - architecture at all. Call remap. - (hook_or_detect_cygwin): Ditto. - -2013-03-28 Kai Tietz <ktietz@redhat.com> - - * include/cygwin/config.h (___getreent): Harden against aggressive - compiler optimization. - -2013-03-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din: Reinstantiate definition of __srget and __srget_r. - -2013-03-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in ($(LIB_NAME)): Make sure to rebuild when cygwin.def file - has been changed. - * cygwin64.din: Remove more underscored symbols. - (getdelim): Add missing define in favor of unneeded __getline. - (getline): Ditto. - -2013-03-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_console.cc - (fhandler_console::create_invisible_console_workaround): Fix comment. - * wincap.cc: Throughout, remove unused has_console_handle_problem - wincapc members. - * wincap.h (struct wincaps): Remove has_console_handle_problem. - -2013-03-27 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_gethostbyname): Revert accidental checkin of change - added for debugging. - -2013-03-27 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (struct win64_servent): Define for x86_64. Explain why. - (WIN_SERVENT): Define for all targets. - (dup_ent): Use WIN_SERVENT to access critical servent members - throughout. - -2013-03-27 Corinna Vinschen <corinna@vinschen.de> - - * sysconf.cc (sca): Change build environment values according to - architecture. - (csa): Ditto. - -2013-03-27 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_NETWORK_OPEN_RESTRICTION): Define. - (STATUS_SYMLINK_CLASS_DISABLED): Define. - * path.cc (symlink_info::check): Handle STATUS_NETWORK_OPEN_RESTRICTION - and STATUS_SYMLINK_CLASS_DISABLED status codes. Explain why. - -2013-03-22 Kai Tietz <ktietz@redhat.com> - - * gendef: Use pause instead of calling yield throughout in x86_64 code. - -2013-03-20 Ken Brown <kbrown@cornell.edu> - - * include/sys/resource.h (RLIM_INFINITY): Define wordsize agnostic. - -2013-03-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * lib/_cygwin_crt0_common.cc: Fix mangled operator new names for x86_64. - -2013-03-19 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (stack_info::init): Don't attempt to dereference NULL - framep. - (exception::handle): On x86_64, if Rbp is NULL, use Rsp as frame - pointer. - -2013-03-19 Corinna Vinschen <corinna@vinschen.de> - - * gendef (sigdelayed): Make sure to align the stack since sigdelayed - can be called with or without aligned stack. Save and restore all - CPU registers. - -2013-03-18 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in: Fix comment. - * dcrt0.cc (child_info_fork::handle_fork): Revert patch from 2013-03-15. - -2013-03-17 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din (strlwr): Export. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * Revert previous patch. For some reason perl doesn't like it. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (CYGTLS_PADSIZE): Reduce to 8000 on x86_64. - * tlsoffsets64.h: Regenerate. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (child_info_fork::handle_fork): Call - _pei386_runtime_relocator first thing, before copying parent data and - bss segment. Tweak comment to explain why. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * gendef (_sigfe): 16-byte align xmm0 storage and use movdqa. - (_sigbe): Fix alignment before calling yield. Use movdqa to save and - restore xmm0. - (sigdelayed): Use movdqa to save and restore xmm0. - (_ZN7_cygtls4lockEv): Change absolute values to hex. - (stabilize_sig_stack): Ditto. - (setjmp): Add comment to explain usage of movdqu. - (__sjfault): Ditto. - (__ljfault): Ditto. - (longjmp): Ditto. Access return value using 32 bit opcodes only. - * miscfuncs.cc (thread_wrapper): Don't attempt to copy exception - handler list on x86_64. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (.#dllname_info): Call _std_dll_init on x86_64 bit, too. - (INIT_WRAPPER): Change to accommodate the change of the init functions - from sysv_abit to ms_abi. Fix preceeding comment accordingly. Add - SEH information and comments. - (std_dll_init): Drop leading underscore on x86_64. Drop sysv_abi - comment. - (wsock_init): Ditto. - (LoadDLLprime): Drop surrounding ifdef to accommodate above underscore - juggling. - -2013-03-15 Corinna Vinschen <corinna@vinschen.de> - - * gendef (_sigfe): Save float arguments as well before calling yield. - (_sigbe): Move saving %rax from prologue to just before the yield call. - Save %xmm0 register, too. - (sigdelayed): Add comment. Save %xmm0 register, too, before calling - yield. - -2013-03-14 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Add - PIPE_REJECT_REMOTE_CLIENTS to pipe mode on systems supporting it. Add - FILE_FLAG_FIRST_PIPE_INSTANCE to pipe open mode. - * pipe.cc (fhandler_pipe::create): Ditto. Fix subsequent comment - accordingly. - * wincap.h (wincaps::has_pipe_reject_remote_clients): New element. - * wincap.cc: Implement above element throughout. - * winlean.h (PIPE_REJECT_REMOTE_CLIENTS): Temporarily define until - Mingw64 headers define it. - -2013-03-14 Corinna Vinschen <corinna@vinschen.de> - - Remove more old cruft. Remove Windows NT4 and 2000 from comments - throughout, unless it still makes sense. - * dlfcn.cc (dlopen): Drop W2K-only code to make loaded DLL persistent. - * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Drop code - trying to use information from NtQueryVolumeInformationFile. - * fhandler_socket.cc (fhandler_socket::close): Drop code snippet - disabled since 2008. - * mount.cc (MINIMAL_WIN_NTFS_FLAGS): Add flag values set on all - NTFS since Windows XP. - (get_volume_path_names_for_volume_name): Remove. - (dos_drive_mappings::dos_drive_mappings): Call Win32 function - GetVolumePathNamesForVolumeNameW directly. - * path.cc (file_get_fnoi): Drop test for NT4-only return code. - * sched.cc: Add FIXME to global comment. Reformat comments throughout. - * spawn.cc (child_info_spawn::worker): Just call official IsProcessInJob - function rather than to test undocumented TEB member. - * winlean.h: Drop Mingw32-related defines. - * include/limits.h (PTHREAD_KEYS_MAX): Raise value to reflect minimum - value available on XP and later. - -2013-03-13 Corinna Vinschen <corinna@vinschen.de> - - * Revert to old malloc. - * mmap.cc (MMAP_STORAGE_LOW): Set higher. Add comment. - (MMAP_STORAGE_HIGH): Add comment. - (class mmap_allocator): Change comment. Add mmap_current_low member. - (mmap_allocator::mmap_allocator): Define default constructor. - (mmap_allocator::alloc): Change to a round-robin mechanism. Add or - change comments accordingly. - -2013-03-13 Kai Tietz <ktietz@redhat.com> - Corinna Vinschen <corinna@vinschen.de> - - * gendef (_sigfe): Save arguments before calling yield so they don't - get clobbered. Explain why. - -2013-03-12 Ken Brown <kbrown@cornell.edu> - - * include/a.out.h: Fix up for x86_64. - -2013-03-12 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (rnarg): Fix cast to print negative values correctly. - -2013-03-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::raw_read): Replace accidentally left in - Win32 error codes with equivalent status codes. - -2013-03-11 Corinna Vinschen <corinna@vinschen.de> - - * cygmalloc.h: Include regparm.h rather than defining __reg{1,2,3} here. - * ptmalloc3.cc (__malloc_initialized): Define as type LONG on Cygwin - and include windows.h. - (ptmalloc_init): Set __malloc_initialized on Cygwin using - InterlockedCompareExchange and carefully check for concurrency - situation. - -2013-03-11 Corinna Vinschen <corinna@vinschen.de> - - * gendef: Add SEH information to sigfe entry points, as well as to - _sigfe and _sigbe. - -2013-03-07 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (heap_init): Fix setting reserved_size value when using - ptmalloc3 to avoid too much pagefile pressure at fork time. - -2013-03-05 Corinna Vinschen <corinna@vinschen.de> - - For x86_64 target: - * dll_init.cc (dll::init): Don't set p.envptr. - (update_envptrs): Disable entirely. - * dll_init.h (struct per_module): Disable envptr. - * environ.h (update_envptrs): Change to empty macro. - -2013-03-05 Corinna Vinschen <corinna@vinschen.de> - - For x86_64 target: - * Makefile.in (COMMON_CFLAGS): Add -mcmodel=small to create smaller - footprint. - * cygwin64.din (__cygwin_environ): Drop export. Only export environ - as alias to __cygwin_environ. - * dcrt0.cc (dll_crt0_1): Call main with __cygwin_environ as parameter. - (_dll_crt0): Don't set main_environ. - (cygwin_dll_init): Don't create local variable envp and don't set - user_data->envptr. - * dll_init.cc (dll_list::alloc): Don't assert. - * dll_init.h (per_module::operator =): Don't set envptr. - * environ.cc (cur_environ): Disable. - * environ.h (main_environ): Don't define. - (cur_environ): Change to macro. - * globals.cc (main_environ): Don't initialize. - (struct per_process): Drop envptr. - * perprocess.h (SIZEOF_PER_PROCESS): Set to 41*8 to accommodate size - change of struct per_process. - * include/sys/cygwin.h (struct per_process): Drop envptr. - * lib/_cygwin_crt0_common.cc (environ): Drop declaration. - (_cygwin_crt0_common): Don't set u->envptr. - -2013-03-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygwin64.din: Fix mangled operator new names for size_t==long. - * libstdcxx_wrapper.cc: Ditto for x86_64. - -2013-03-01 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (AttachConsole): Remove. - (GetModuleHandleExW): Remove. - (GetSystemWow64DirectoryW): Remove. - (GetVolumePathNamesForVolumeNameW): Remove. - * exceptions.cc (cygwin_stackdump): Always call RtlCaptureContext. - (exception::handle): Drop accidentally left in debugging statement. - Always call RtlCaptureContext. - (sigpacket::process): Always call RtlCaptureContext for current thread. - * fhandler_disk_file.cc (fstatvfs): Drop code using - FileFsSizeInformation. - (struct __DIR_cache): Remove comment. - (fhandler_disk_file::rewinddir): Drop W2K-only code. - * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Don't - check for old OS. Extend a comment. - * fhandler_mem.cc (fhandler_dev_mem::open): Drop NT4 and W2K from - debug output. - * fhandler_proc.cc (format_proc_partitions): Drop Pre-XP considerations. - * fhandler_procnet.cc (fhandler_procnet::exists): Ditto. - (fhandler_procnet::readdir): Ditto. - (format_procnet_ifinet6): Ditto. - * fhandler_socket.cc (fhandler_socket::recvmsg): Ditto. - * fhandler_tape.cc (mtinfo_drive::get_status): Ditto. - * init.cc (dll_entry): Drop W2K-only code. - * net.cc (get_ifs): Rename from get_xp_ifs. - (get_2k_ifs): Remove. - (getifaddrs): Always call get_ifs. - (get_ifconf): Ditto. - (if_nametoindex): Drop Pre-XP considerations. - (load_ipv6_funcs): Ditto. Fix preceeding comment. - * sec_auth.cc (lsaauth): Drop code handling fake_login_sid. - * sec_helper.cc (fake_logon_sid): Remove. - (set_cygwin_privileges): Fix uncommented statement to drop pre-XP - considerations. - * security.h (fake_logon_sid): Drop declaration. - * shared.cc (shared_info::init_obcaseinsensitive): Drop W2K-only code. - * wincap.cc: Throughout, remove setting all deprecated wincapc members. - (wincap_minimal): Set to wincap_xpsp2. - (wincap_2000): Remove. - (wincap_2000sp4): Remove. - (wincap_xp): Remove. - (wincap_xpsp1): Remove. - (wincapc::init): Drop OS 5.0 and pre-SP2 XP. - * wincap.h (struct wincaps): Remove the following members: - has_create_global_privilege, has_ioctl_storage_get_media_types_ex, - has_disk_ex_ioctls, has_buggy_restart_scan, needs_logon_sid_in_sid_list, - has_gaa_prefixes, has_recvmsg, has_stack_size_param_is_a_reservation, - kernel_is_always_casesensitive, has_rtl_capture_context. - -2013-03-01 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (rtl_unwind): Convert to macro doing nothing on x86_64. - (exception::handle): Drop creating frame variable on x86_64. - * wincap.cc (wincap_2000sp4): Set has_rtl_capture_context to false. - -2013-03-01 Corinna Vinschen <corinna@vinschen.de> - - * cygserver.h (struct header_t): Revert msglen to simple member. - Drop accessor methods. - * cygserver_ipc.h (struct proc): Drop enforced 4 byte struct packing. - Remove members for 64<->32 bit IPC. Revert to original member order. - (ipc_set_proc_info): Remove 64<->32 handling. - (conv_timespec32_to_timespec): Delete. - (conv_timespec_to_timespec32): Delete. - * pinfo.h (struct win_heap_info): Remove. - * shm.cc (fixup_shms_after_fork): Revert parent initialization. - * winlean.h: Remove _TYPE64_CLR and _TYPE64_SET macros. Remove - usage throughout code. - * include/cygwin/ipc.h: Drop 64<->32 bit helper structures. - * include/cygwin/msg.h: Ditto. Drop enforced 4 byte struct packing. - * include/cygwin/sem.h: Ditto. - * include/cygwin/shm.h: Ditto. - * include/cygwin/sysproto.h: Drop enforced 4 byte struct packing. - -2013-02-28 Corinna Vinschen <corinna@vinschen.de> - - * pseudo-reloc.cc (do_pseudo_reloc): Add test to check for invalid 32 - bit relocation in 64 bit code. Only test when building without - optimization. - -2013-02-28 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (_cygtls::signal_debugger): Raise size of sigmsg buffer - on x86_64. - * tlsoffsets64.h: Regenerate. - -2013-02-27 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/signal.h (struct ucontext): Add missing fields from - Windows CONTEXT definition. Define oldmask as 64 bit type. - --- post-ptmalloc3 tag - -2013-02-27 Corinna Vinschen <corinna@vinschen.de> - - * configure.ac (MALLOC_OFILES): Add ptmalloc3.o. - * configure: Regenerate. - * cygmalloc.h: Declare pt* functions rather than dl* functions. - (mmap64): Declare. - (mmap): Define as mmap64. - (__malloc_lock): Drop macro. - (__malloc_unlock): Ditto. - (MSPACES): Define. - (ONLY_MSPACES): Define. - * debug.h: Include malloc.h rather than otherwise unused dlmalloc.h. - * fork.cc (frok::parent): Drop malloc locking since that's performed - by malloc_atfork now. - * heap.cc (heap_init): Accommodate the fact that there's a chance - that no heap space has been allocated at fork time. - * malloc-private.h: New file from ptmalloc3, having malloc-machine.h - and malloc-2.8.3.h folded in. - * malloc.cc: Replaced by new file from ptmalloc3. - * malloc_wrapper.cc: Throughout, remove malloc locks and call pt* - functions rather than dl* functions. - * pinfo.cc (winpids::set): Drop malloc locking. - * ptmalloc3.cc: New file from ptmalloc3. - --- pre-ptmalloc3 tag - -2013-02-26 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (_except_list): Don't define on x86_64. - (class exception): Don't define members el and save on x86_64. - (exception::~exception): Don't define on x86_64. - * exceptions.cc (signal_exit): Fix typo in condition. - -2013-02-25 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din: Remove all deprecated cygwin32_foo and cygwin_foo - path conversion functions. - * path.cc: Disable aforementioned functions on x86_64. - * include/sys/cygwin.h: Don't declare aforementioned functions on - x86_64. - -2013-02-25 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (class exception): Add handler_installed member. - Change parameters to handle method to match high-level exception - handler calls. - (exception::exception): On x86_64, install exception handler only - once. Explain what we do. - * exceptions.cc (_AFMT): Change to only 11 digits on x86_64. - (cygwin_exception::dump_exception): Print Rip with only 11 digits. - Print 64 bit registers with 0-padding. - (class stack_info): Add members c and hist on x86_64. - (stack_info::init): Take PCONTEXT rather than bool as third parameter. - Tweak code accordingly. Initialize c and hist on x86_64. - (stack_info::walk): Add implementation for x86_64. Drop unneeded - #ifndef in 32 bit code. - (cygwin_exception::dumpstack): Call thestack.init with context as - parameter. Change header output for x86_64. - (cygwin_stackdump): Prefer RtlCaptureContext over GetThreadContext. - (CYG_EXC_CONTINUE_EXECUTION): Define generic definition matching all - platforms. - (CYG_EXC_CONTINUE_SEARCH): Ditto. - (exception::handler_installed): Define here. - (exception::handle): Define according to declaration in exception.h. - Create 32 bit parameters as local variable on 64 bit. Change all - return statements to use generic definitions. Simplify setting framep - on x86_64. Disable setting frame-based exception handler on x86_64. - Fix formatting of klog output for x86_64. - (signal_exit): Create context for cygwin_exception creation. - (sigpacket::process): Prefer RtlCaptureContext over GetThreadContext. - * wincap.h (wincaps::has_rtl_capture_context): New element. - * wincap.cc: Implement above element throughout. - -2013-02-22 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (_get_osfhandle): Make main export. Define get_osfhandle - from here. - * cygwin64.din (_get_osfhandle): Rename from get_osfhandle. - (_setmode): Rename from setmode. - * include/io.h: Ditto. Define unprefixed names with preprocessor - macros for backwards source compatibility. - (access): Remove. - * syscalls.cc (_setmode): Rename from setmode. - (cygwin_setmode): Call _setmode. - (_get_osfhandle): Rename from get_osfhandle. - -2013-02-11 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (target_cpu): Define. Check for target_cpu rather than - target_alias for conditional compilation issues. - (toolopts): Change --target into --cpu option and use $target_cpu as - argument. - ($(DEF_FILE)): Call gendef with $(target_cpu) as argument, rather than - with $(target_alias). - * gendef: Accommodate change from --target to --cpu option. - * mkimport: Ditto. - * speclib: Ditto. - -2013-02-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * cygserver_ipc (class ipc_retval): Add ssize_t member to anonymous - union. - (ipc_retval::operator =): Add ssize_t variant for x86_64. - * fhandler_floppy.cc (fhandler_dev_floppy::raw_write): Change return - type to ssize_t to match fhandler.h. - * fhandler_socket.cc (fhandler_socket::readv): Ditto. - (fhandler_socket::write): Ditto. - (fhandler_socket::writev): Ditto. - (fhandler_socket::sendmsg): Ditto. - -2013-02-18 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc: Add comment. - -2013-02-18 Corinna Vinschen <corinna@vinschen.de> - - * localtime.cc: Throughout, pull up to latest code from NetBSD. - -2013-02-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::raw_read): Rearrange code to use - NtReadFile and to fix problem using pointer to wrongly sized variable - on x86_64. - (fhandler_base::read): Drop redundant code. - * fhandler_disk_file.cc (fhandler_disk_file::pread): Fix function - to not read the information twice. Handle STATUS_END_OF_FILE. - -2013-02-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * Makefile.in (libcygwin.a): Move --target flag from here... - (toolopts): to here, to be used by both mkimport and speclib. - * speclib: Omit leading underscore in symbol names on x86_64. - -2013-02-17 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in (.gnu_debuglink_overlay): Drop "64" in dbg file name. - -2013-02-16 Corinna Vinschen <corinna@vinschen.de> - - * nfs.h: Make sure packing of NFS fattr3 struct is 4 byte. - (struct nfs_timestruc_t): Define. - (struct fattr3): Define timestamps as type struct nfs_timestruc_t. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Copy - each timestruc_t component separately to accommodate different size. - -2013-02-15 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (toollibdir): Remove. Revert to using tooldir instead. - * configure.ac (DLL_NAME): Set to cygwin1.dll in x86_64 case, too. - * configure: Regenerate. - * cygwin.sc.in (SEARCH_DIR): Align to 32 bit search dir, use lib, rather - than lib64. - * cygwin64.din (LIBRARY): Set name to cygwin1.dll. - * fhandler_process.cc (struct heap_info): Drop win_heap_info class - and revert code to former heap_info implementation. - (format_process_maps): Define heaps back to heap_info - * hookapi.cc (hook_or_detect_cygwin): Add shortcut so the code does - not search executable for being a Cygwin executable, if the architecture - is not matching the current Cygwin. Always use for "cygwin1.dll". - * pinfo.cc (commune_process): Drop PICOM_HEAP_INFO code. - (_pinfo::commune_request): Ditto. - (_pinfo::win_heap_info): Remove. - * pinfo.h (enum picom): Remove PICOM_HEAP_INFO. - -2013-02-14 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (two_addr_t): Use __uint64_t as type for the i686 - version, analogue to __uint128_t for x86_64. - (INIT_WRAPPER): New x86_64 macro to install a sysv_abi function wrapper - for the DLL init functions. Add long comment to explain why this is - necessary. Create wrapper for std_dll_init and wsock_init. - (std_dll_init): Rename with leading underscore on x86_64 and take - calling function as argument. Disable overwriting return address on - stack for x86_64. - (wsock_init): Ditto. - -2013-02-13 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (toollibdir): Define build and target dependent. - (install-libs): Use $(toollibdir) rather than $(tooldir)/lib. - (uninstall-libs): Ditto. - (uninstall-man): Use $(DESTDIR)$(mandir) as in install-man, rather - than $(tooldir)/man. - -2013-02-12 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (eval_start_address): Move heap to 0x6:00000000. Change - comment to explain why. - * mmap.cc (MMAP_STORAGE_LOW): Accommodate above change. - -2013-02-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_floppy.cc (fhandler_dev_floppy::open): Cast second parameter - in roundup2 to same size as first parameter to make sure mask size is - correct. - * fhandler_process.cc (format_process_maps): Ditto. - * fhandler_raw.cc (fhandler_dev_raw::dup): Ditto. - * hookapi.cc (find_first_notloaded_dll): Add cast. - * spawn.cc (av::fixup): Ditto. - * wincap.h: Add comment to explain the following change. - (wincapc::page_size): Return size_t. - (wincapc::allocation_granularity): Ditto. - - * mmap.cc: Throughout, accommodate the fact that AT_ROUND_TO_PAGE isn't - support on 64 bit at all. - (class mmap_allocator): New class to allocate mmap slots on x86_64. - (mmap_alloc): Define global instant of mmap_allocator. - (mmap64): Call mmap_alloc.alloc on x86_64. - -2013-02-11 Corinna Vinschen <corinna@vinschen.de> - - * gendef (longjmp): Fix indirect addressing in x86_64 setjmp. - -2013-02-11 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din: Add missing symbols. - * mkimport: Make sure to use and test against platform dependent - "imp" prefix. - -2013-02-09 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in (.rdata): Add .rdata_cygwin_nocopy subsection. - (.cygheap): Raise size to 3 Megs on x86_64. - * dcrt0.cc (dll_crt0_0): Drop call to init_global_security. - * dtable.cc (std_consts): Drop NO_COPY. - * errno.cc (errmap): Drop NO_COPY, constify instead. - (_sys_errlist): Drop NO_COPY. - * fhandler_clipboard.cc (CYGWIN_NATIVE): Ditto. - * fhandler_console.cc (keytable): Drop NO_COPY, constify instead. - * grp.cc (null_ptr): Make NO_COPY_RO. - * heap.cc (eval_start_address): Fix comment. - * localtime.cc (wildabbr): Make NO_COPY_RO. - (gmt): Ditto. - * miscfuncs.cc (case_folded_lower): Drop NO_COPY. - (case_folded_upper): Ditto. - (isalpha_array): Ditto. - (nice_to_winprio): Ditto for priority. - (class thread_allocator): New class to allocate thread stack on x86_64. - (thr_alloc): Define global NO_COPY instant of thread_allocator. - (CygwinCreateThread): Call thr_alloc.alloc on x86_64 to reserve stack. - * net.cc (errmap): Drop NO_COPY, constify instead. - (host_errmap): Ditto. - * netdb.cc (SPACE): Drop NO_COPY. - * sec_helper.cc (null_sdp): Static NO_COPY_RO definition of null SD. - (sec_none): Define NO_COPY_RO, define content statically. - (sec_none_nih): Ditto. - (sec_all): Ditto. - (sec_all_nih): Ditto. - (get_null_sd): Remove. - (init_global_security): Remove. - * security.cc (file_mapping): Define NO_COPY_RO. - (check_registry_access): Ditto for reg_mapping. - * spawn.cc (exe_suffixes): Drop NO_COPY, constify instead. - (dll_suffixes): Drop unused, disabled definition and comment. - * strsig.cc (sys_sigabbrev): Drop NO_COPY_INIT. - (sys_siglist): Ditto. - * syscalls.cc (def_shells): Drop NO_COPY. - * winsup.h (NO_COPY_RO): Define to place variable in - .rdata_cygwin_nocopy section. - (init_global_security): Drop declaration. - -2013-02-09 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (win_heap_info::~win_heap_info): Only try to free - heap_vm_chunks if it's not NULL. - * pinfo.h (struct commune_result): Change type of n to DWORD. - * pinfo.cc (_pinfo::commune_request): Change type of n to DWORD to - fix subsequent sizeof test after reading from commune pipe on x86_64. - Raise read timeout to match write timeout. - -2013-02-09 Corinna Vinschen <corinna@vinschen.de> - - * cygserver_ipc.h (ipc_retval::operator =): Disable size_t variant - on x86_64 since type is identical to vm_offset_t. - -2013-02-08 Corinna Vinschen <corinna@vinschen.de> - - * regparm.h: New file to define platform dependent regparm attributes. - Define all of them empty if __CYGMAGIC__ is defined. - * cygerrno.h: Include regparm.h instead of defining _reg[123] here. - * winsup.h: Ditto. - * cygmagic: Define __CYGMAGIC__ to help generate same result on all - platforms. - -2013-02-08 Corinna Vinschen <corinna@vinschen.de> - - * cygwin64.din (BASE): Set to 0x180040000. - (_fe_dfl_env): Remove useless symbol. - (_fe_nomask_env): Remove useless symbol. - (exit): Add missing symbol. - (setmode): Ditto. - * gendef (longjmp): Convert all displacements to hex for readability. - Change all movaps instructions to movdqu to accommodate unaligned - access to 128 bit values. - -2013-02-05 Corinna Vinschen <corinna@vinschen.de> - - * pseudo-reloc.cc (do_pseudo_reloc): Enable 64 bit code for x86_64 - Cygwin. - -2013-02-05 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (RtlFillMemory): Declare. - (RtlCopyMemory): Declare. - (memset): Just call RtlFillMemory. - (memcpy): Just call RtlCopyMemory. - * mmap.cc (class mmap_record): Drop enforced packing. Reorder members - to allow tight packing on 32 as well as on 64 bit. - * include/sys/dirent.h: Don't enforced structure packing on x86_64. - (__DIRENT_COOKIE): Use different value on 64 bit. - -2013-02-04 Corinna Vinschen <corinna@vinschen.de> - - * gendef (fefunc): Fix incorrect pc-relative jmp instruction. - (_sigfe): Fix offset to return address on stack. Add and fix comments. - (_sigbe): Fix stack alignment when creating spill area for call to - yield. Add and fix comments. - (sigdelayed): Add fake push to make sure stack is aligned correctly. - Use fake stack alignment on exit to store return address and call ret, - rather than jmp. Fix comments. - (_cygtls::lock): Only create and destroy spill area when really calling - yield. - -2013-02-04 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LoadDLLfuncEx3): Adjust address computation required - by latest change to the 64 bit code. - * cygmalloc.h (MALLOC_ALIGNMENT): Set to 16 on x86_64. - * cygtls.h: Set struct alignment to 8 on x86_64. Move inclusion of - other header files outside of alignment-enforced code area. Drop - inclusion of security.h entirely. - (_cygtls::get_signal_arrived): Use NULL SECURITY_ATTRIBUTES rather than - &sec_none_nih. - * gendef (_cygtls::lock): Fix stack alignment. - * heap.cc (page_const): Change type to ptrdiff_t, otherwise negation - operator in pround creates broken bitmask. - * shared.cc (page_const): Add cast to ptrdiff_t. - * tlsoffsets64.h: Regenerate. - -2013-01-30 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in ($(LIB_NAME)): Add --target option to mkimport call. - * gendef: Drop -w option. Make callto sigfe function pc-relative - on x86_64. - * miscfuncs.cc (__import_address): Drop comment and misguide attempt - to handle absolute addressing in x86_64 mode. - * mkimport: Add --target option. Handle x86_64 target, especially - create pc-relative jmp calls. - -2013-01-29 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h: Cleanup x86_64 related comment. - (_tlsbase): Change return type to PVOID. - (_tlstop): Ditto. - (_my_tls): Accommodate above change. - * dcrt0.cc (child_info_fork::alloc_stack): Revert previous patch, but - keep cast to PVOID. - (dll_crt0_1): Ditto. - * exception.h: Define _exception_list as _EXCEPTION_REGISTRATION_RECORD - on x86_64. - (_except_list): Define in terms of NtCurrentTeb() on x86_64. - * miscfuncs.cc (__import_address): Handle 32 bit absolute addressing - in IAT on x86_64. - * include/cygwin/config.h (___getreent): New inline function on - x86_64. Define __getreent in terms of ___getreent on x86_64. Fix - comment accordingly. - -2013-01-29 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (_tlsbase): Temporary workaround for GCC bug. - (_tlsbase): Ditto. - * cygwin64.din: Set BASE temporariliy to address < 32 bit to workaround - GDB bug. - * dcrt0.cc (child_info_fork::alloc_stack): Temporary workaround for GCC - bug. - (dll_crt0_1): Ditto. - * miscfuncs.cc (memset): Temporary workaround missing MSABI function in - newlib. - (memcpy): Ditto. - * include/cygwin/config.h (__getreent): Drop definition for x86_64 to - workaround GCC bug. - -2013-01-29 Corinna Vinschen <corinna@vinschen.de> - - * winbase.h (ilockcmpexch): Define always. - (InterlockedCompareExchange): Ditto. - (ilockcmpexch64): Define for x86_64. - (InterlockedCompareExchange64): Ditto. - (InterlockedCompareExchangePointer): Define in terms of - InterlockedCompareExchange64 on x86_64. - -2013-01-29 Kai Tietz <ktietz@redhat.com> - - * cygwin.sc.in: Fix ctors and dtors filler and zero-terminator for - 64 bit. - -2013-01-29 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (TEST_DLL_NAME): Fix to use correct name per target. - * gendef (fefunc): Resurrect accidentally dropped 32 bit code. - -2013-01-29 Corinna Vinschen <corinna@vinschen.de> - - * heap.cc (eval_start_address): Change address and comment for 64 bit. - (eval_initial_heap_size): Change return type to SIZE_T. Use different - values for 64 bit. - -2013-01-28 Corinna Vinschen <corinna@vinschen.de> - - * gendef: Add missing setjmp/longjmp functionality, still untested. - -2013-01-25 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in: Accommodate extra .text, .pdata, and .xdata section on - 64 bit. - * cygwin64.din: Set BASE to 0x200040000 to start shared sections at - 0x200000000. - * gendef: Second cut 64 bit assembler functionality, still untested. - -2013-01-25 Kai Tietz <ktietz@redhat.com> - - * autoload.cc (LoadDLLfuncEx3): Adjust assembler for x64 to avoid - relocations. - (noload): Likewise. - -2013-01-23 Corinna Vinschen <corinna@vinschen.de> - - * gendef: First cut 64 bit assembler functionality, untested. - -2013-01-22 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (speclib): Exclude main symbol. - (NEW_FUNCTIONS): Set to empty for x86_64. - ($(DEF_FILE)): Call gendef with target_alias as additional parameter. - * configure.ac (DLL_ENTRY): Drop leading underscore for x86_64. - * configure: Regenerate. - * cygwin.sc.in: Drop _SYM usage for __data_start__, __data_end__, - __bss_start__, and __bss_end__. - * cygwin64.din: Remove all fast-call math function entry points. - (_alloca): Define as __alloca. - (_dll_crt0): Drop 32 bit stdcall specifier. - (dll_entry): Ditto. - (dll_noncygwin_dllcrt0): Remove. - (getpwduid): Remove. - (lacl): Remove. - * dcrt0.cc (dll_data_start): Define for x86_64. - (dll_data_end): Ditto. - (dll_bss_start): Ditto. - (dll_bss_end): Ditto. - * gendef: Handle new target argument. Handle 64 bit target. - Add preliminiary empty function definitions for 64 bit to allow linking. - * winsup.h: Define linker data and bss section symbols with - additional underscore for x86_64. - * lib/_cygwin_crt0_common.cc (__image_base__): Define for 64 bit and - map to _image_base__ via macro. - (_cygwin_crt0_common): Fix setting data and bss section borders on - x86_64. - -2013-01-21 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (__import_address): Fix address computation for 64 bit. - -2013-01-19 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (_cygwin_exit_return): Define to allow usage of same C - symbol name independent of target. - * perprocess.h (SIZEOF_PER_PROCESS): Define for x86_64. - * include/sys/cygwin.h (struct per_process): Tweak definition for - x86_64. - -2013-01-18 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (__SYMBOL_PREFIX): Define. - (_SYMSTR): Define. - * child_info.h (spawn_info): Use _SYMSTR macro to define assembler - symbol. - (fork_info): Ditto. - * libstdcxx_wrapper.cc: Ditto, throughout. - * winsup.h (dll_crt0): Ditto. - * include/cygwin/time.h (daylight): Ditto. - (timezone): Ditto. - * lib/_cygwin_crt0_common.cc: Ditto, throughout. - -2013-01-17 Corinna Vinschen <corinna@vinschen.de> - - * child_info.h (spawn_info): Define asm symbol without leading - underscore for x86_64. - (fork_info): Ditto. - * cygwin.sc.in (__CONCAT1): Define. - (__CONCAT): Define. - (_SYM): Define. - (_data_start__): Define using _SYM macro to accommodate multiple - platforms. - (_data_end__): Ditto. - (_bss_start__): Ditto. - (_bss_end__): Ditto. - (_cygheap_start): Ditto. - (_cygheap_end): Ditto. - -2013-01-09 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/config.h (_tlsbase): Define for x86_64. - -2012-12-14 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in (.gnu_debuglink_overlay): Accommodate longer dbg file - name on 64 bit. - -2012-12-13 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.h (enum picom): Add PICOM_HEAP_INFO. - (_pinfo::win_heap_info): Declare. - (struct win_heap_info): Rename from heap_info and define here. Change - to accommodate 64 bit. - * fhandler_process.cc (struct win_heap_info): Just implement here. - (win_heap_info::gen_heap_info): New method. - (format_process_maps): Accommodate above changes. Add FIXME comment - to explain 32->64 bit problem with VirtualQueryEx. - * pinfo.cc (commune_process): Handle PICOM_HEAP_INFO. - (_pinfo::commune_request): Ditto. - (_pinfo::win_heap_info): New method. - -2012-12-13 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc.in (OUTPUT_FORMAT): Fix typo in 64 bit code. - * spawn.cc (av::fixup): Drop '!!' to keep argument to set_cygexec a - void *. - -2012-12-11 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (TLSOFFSETS_H): Let configure fill in. Change all - occurence of tlsoffsets.h to $(TLSOFFSETS_H). - $(srcdir)/$(TLSOFFSETS_H): Add @CONFIG_DIR@ as parameter to - gentls_offsets so the script knows the target CPU. - * configure.ac (TLSOFFSETS_H): Set according to target. - * configure: Regenerate. - * gentls_offsets: Handle x86_64 as target. Add FIXME comment. Unlink - all temporary files. - * tlsoffsets64.h: New file. - -2012-12-11 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_NAME): Let configure fill in. - (DIN_FILE): Ditto. Change all occurence of cygwin.din to $(DIN_FILE). - * configure.ac (DLL_NAME): Set according to target. - (DIN_FILE): Ditto. - * configure: Regenerate. - * cygwin64.din: New file. - -2012-12-10 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc: Enforce 4 byte alignment on all structs used in the - message queue file. - (struct mq_fattr): Fixed size mq_attr structure as stored in file. - (struct mq_hdr): Change to have same size on 32 and 64 bit. Add - mqh_magic to allow check for old message queue file. - (struct msg_hdr): Change to have same size on 32 and 64 bit. Change - type of mqh_attr to struct mq_fattr. - (struct mq_info): Change to have same size on 32 and 64 bit. - (mq_open): Add check for maximum mq_maxmsg and mq_msgsize values which - still fit into 32 bit values. Set mqh_magic in file to MQI_MAGIC. - Check mqh_magic value on existing file to detect old message queue file. - (mq_getattr): Change type of local attr variable to struct mq_fattr. - (mq_setattr): Ditto. - (_mq_send): Ditto. - (_mq_receive): Ditto. - (mq_close): Ditto. - -2012-12-10 Corinna Vinschen <corinna@vinschen.de> - - * hookapi.cc (hook_or_detect_cygwin): Only check for one cygwin DLL - file name depending on executable target type. Return value indicating - executable target type. Change comment accordingly. - * path.h (enum path_types): Add FIXME comment to definition of - PATH_OPEN. Add PATH_64BITEXEC. - (iscygexec32): New method. - (iscygexec64): New method. - (set_cygexec): Implement additionally with void * parameter to be able - to set PATH_64BITEXEC if required. - -2012-12-10 Corinna Vinschen <corinna@vinschen.de> - - * Throughout, fix format string of debug printf and api_fatal calls - to work in 32 and 64 bit environment, as well as to honor signedness. - Use %y instead of 0x%x. - * fhandler.h (class fhandler_dev_mem): Change type of mem_size from - DWORD to SIZE_T. - * fhandler_mem.cc: Throughout, cast mem_size in comparisons to make - GCC happy. - * fhandler_process.cc (format_process_maps): Change type of ret_len - to SIZE_T. - (get_mem_values): Ditto for n and length. - * mmap.cc (MapView): Ditto for commitsize and viewsize. - (class mmap_record): Ditto for len. Use SIZE_T througout for memory - size in method args and return types. - * ntdll.h (NtLockVirtualMemory): Fix type of memory size parameters - to SIZE_T. - (NtMapViewOfSection): Ditto. - (NtQueryVirtualMemory): Ditto. - (NtUnlockVirtualMemory): Ditto. - (RtlFreeHeap): Change type of first parameter to HANDLE. - * shm.cc (shmat): Change type of viewsize to SIZE_T. - * timer.cc (timer_thread): Change type of sleep_ms to LONG. - (ualarm): Drop casts to unsigned int in timer value computation. - -2012-12-06 Corinna Vinschen <corinna@vinschen.de> - - * cygserver_ipc.h (conv_timespec32_to_timespec): Implement here. - (conv_timespec_to_timespec32): Ditto. - * include/cygwin/ipc.h (struct _ts32): Define here. - * include/cygwin/msg.h: Enforce 4 byte alignment on all structs. - (struct _ts32): Move definition to include/cygwin/ipc.h. - (struct _msqid_ds32): Drop member comments. - * include/cygwin/sem.h: Enforce 4 byte alignment on all structs. - (struct _semid_ds32): Define on 64 bit in _KERNEL mode. - * include/cygwin/shm.h: Enforce 4 byte alignment on all structs. - (struct _shmid_ds32): Define on 64 bit in _KERNEL mode. - (struct shminfo): Enhance coment on shmall member. - (struct shm_info): Convert type of all members to int32_t. - * include/cygwin/sysproto.h (struct semctl_args): Change definition to - use the same structure on 32 and 64 bit. - (struct semop_args): Ditto. - (struct shmat_args): Ditto. - (struct shmctl_args): Ditto. - (struct shmdt_args): Ditto. - (struct shmget_args): Ditto. - -2012-12-05 Corinna Vinschen <corinna@vinschen.de> - - * cygserver.h (struct client_request::header_t): Change definition of - msglen to use the same structure on 32 and 64 bit. Add read and write - accessors. Change type of error_code to int. - (class client_request): Align accessor methods to above change. - * cygserver_ipc.h (ipc_set_proc_info): Use _TYPE64_CLR macros. - * winlean.h (_TYPE64_CLR): New macro. - (_TYPE64_SET): Ditto. - * include/cygwin/msg.h (struct _ts32): Define on 64 bit in _KERNEL mode. - (struct _msqid_ds32): Ditto. Add comment to explain why. - * include/cygwin/sysproto.h: Enforce 4 byte alignment on all structs. - (struct msgctl_args): Change definition to use the same structure on - 32 and 64 bit. - (struct msgrcv_args): Ditto. - (struct msgsnd_args): Ditto. - -2012-12-05 Corinna Vinschen <corinna@vinschen.de> - - * shm.cc (fixup_shms_after_fork): Fix initialization of local variable - parent. - -2012-12-04 Corinna Vinschen <corinna@vinschen.de> - - * winlean.h (_TYPE64): Define. - * cygserver_ipc.h (struct proc): Rearrange to use same structure on - 32 and 64 bit. Add member is_64bit. - (ipc_set_proc_info): Change accordingly. - -2012-12-04 Kai Tietz <ktietz@redhat.com> - - * child_info.h (child_info): Re-type magic to DWORD. - -2012-12-03 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (CYGTLS_PADSIZE): Change comment noting alignment has to - be 16 bytes on x86_64. - -2012-12-03 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in: Add rule to build cygwin.sc dynamically using the - target compiler. - * cygwin.sc.in: Rename from cygwin.sc. Make OUTPUT_FORMAT and - SEARCH_DIR dependent on target CPU. Add extra alignment and .xdata - section on x86_64. Keep up with latest dwarf debug section changes. - -2012-11-29 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (thread_wrapper): Use PVOID instead of VOID *. - Fix stack alignment before calling VirtualFree. Fix comments. - -2012-11-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (wsock_init): Drop vendor info debug printout. It's - undefined since Wsock version 2. - -2012-11-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Extend leading comment to describe the 64 bit - implementation as well. - (LoadDLLprime): Define for x86_64. - (LoadDLLfuncEx3): Ditto. - (dll_func_load): Ditto. - (struct dll_info): Use target-agnostic type for load_state. - (struct func_info): Add func_addr member on x86_64. - (two_addr_t): New type to be twice the size of an address on either - target. - (union retchain): Use target-agnostic type for low and high, - use two_addr_t as type for ll member. - (std_dll_init): Define as SYSV ABI function on x86_64. Explain why. - Change return type to two_addr_t. Add casts as necessary. Convert - assembler code to tweak return address into C code. - (wsock_init): Ditto. Drop leading underscore in LoadDLLprime - macro call on x86_64. - (GetAdaptersAddresses): Define using LoadDLLfunc since it's not called - on pre-XP anyway. - (AttachConsole): Don't define on x86_64. - (GetModuleHandleExW): Ditto. - (GetSystemWow64DirectoryW): Ditto. - (GetVolumePathNamesForVolumeNameW): Ditto. - -2012-11-22 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/strace.h: Include sys/types.h for pid_t. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (CYGTLS_PADSIZE): Define for 64 bit. Add FIXME comment. - * profil.c: Replace usage of network types with types as documented - in Linux, throughout. - (get_thrpc): Fix access to instruction pointer for x86_64. - * profil.h: Include stdin.t.h. Replace usage of network types with - types as documented in Linux, throughout. - * config/x86_64/profile.h (mcount): Use unsigned long rather than - __uintptr_t. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * cygmalloc.h (dlmalloc): Change unsigned in declaration to size_t. - (dlrealloc): Ditto. - * wait.cc (wait4): Cast second parameter in proc_subproc call to - uintptr_t. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (verifyable_object_isvalid): Temporarily define as - non-inline on x86_64 to workaround compiler bug. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc: Use UINT32_MAX rather than UINT_MAX to make - absolutely clear that we mean the 32 bit maximum. - * fhandler_socket.cc: Ditto. - * pinfo.cc: Ditto with INT32_MAX. - * select.cc (fd_mask): Drop gratuitious definition. - (sizeof_fd_set): Cast to size_t. - * shared.cc (pround): Cast to ptrdiff_t. - * strace.cc (strace::activate): Fix format string. - (strace::write_childpid): Take pid_t as parameter. - * include/sys/strace.h (strace::write_childpid): Change declaration - accordingly. - * sync.cc (muto::init): Cast in call to InterlockedExchangePointer to - make compiler happy. - * sync.h (class muto): De-const name. - * syslog.cc (try_connect_syslogd): Take size_t as third argument. - (vsyslog): Convert len to size_t. - * thread.cc: Use {U}INT32_MAX rather than {U}LONG_MAX. Througout change - types used in Windows calls to matching Windows types. - (pthread::cancel): Fix access to instruction pointer for x86_64. - (pthread_attr_getstack): Cast to ptrdiff_t for pointer arithmetic. - * thread.h: Throughout convert 'long' types to uint32_t or LONG. - -2012-11-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/acl.h (struct __acl32): Drop. Use struct acl or - aclent_t throughout instead. - * sec_acl.cc (aclcheck32): Mark currently unused variables as unused. - (lacl32): Disable on x86_64. - (acl): Alias to acl32 on x86_64. - (facl): Alias to facl32 on x86_64. - (aclcheck): Alias to aclcheck32 on x86_64. - (aclsort): Alias to aclsort32 on x86_64. - (acltomode): Alias to acltomode32 on x86_64. - (aclfrommode): Alias to aclfrommode32 on x86_64. - (acltopbits): Alias to acltopbits32 on x86_64. - (aclfrompbits): Alias to aclfrompbits32 on x86_64. - (acltotext): Alias to acltotext32 on x86_64. - (aclfromtext): Alias to aclfromtext32 on x86_64. - * resource.cc (getrlimit): Use correct cast to rlim_t rather than DWORD. - * sched.cc (sched_setparam): Drop ThreadPriority and all code setting - it. - -2012-11-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (format_process_stat): Add comment to explain - the WOW64 problems concerning the BasePriority value. Fix format - string in __small_sprintf call. - * ntdll.h: Mark more native structures as tested on 64 bit. - (enum _EVENT_TYPE): Drop definition. - (enum _TIMER_TYPE): Ditto. - (enum _SECTION_INHERIT): Drop __MINGW64_VERSION_MAJOR guard. - -2012-11-14 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h: Mark more native structures as tested on 64 bit. - (struct _FILE_BOTH_DIR_INFORMATION): Rename from - _FILE_BOTH_DIRECTORY_INFORMATION as per WDK documentation. - * fhandler_disk_file.cc: Accommodate aforementioned structure name - change. - * path.cc: Ditto. - -2012-11-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class fcwd_access_t): Remove wrong alignment attribute from - Buffer member of FAST_CWD_OLD structure. Add comment that everything - has been tested. - * ntdll.h: Mark more native structures as tested on 64 bit. - -2012-11-12 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class fcwd_access_t): Add alignment attribute to Buffer - member of FAST_CWD_* structures to work on 64 bit. - * path.cc (symlink_info::check_shortcut): Add cast to avoid compiler - warning. - (cygwin_conv_path_list): Drop ununsed variable. - (peek32): Define with int32_t cast on 64 bit to allow easier fetching - of instruction pointer relative addresses. - (find_fast_cwd_pointer): Add new implementation for x86_64. - Tweak a comment in 32 bit version. - -2012-11-12 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (dlopen): Change cast to accommodate type change in ntdll.h - * fhandler_process.cc (thread_info::thread_info): Change type of local - variable size to ULONG to match NtQuerySystemInformation call. - Add cast to avoid compiler warnings. - (get_process_state): Add cast to avoid compiler warnings. Accommodate - name change of NextEntryOffset member of PSYSTEM_PROCESS_INFORMATION - structure. - * mmap.cc: Add casts to avoid compiler warnings. - (mlock): Change type of local variables min and max to match - GetProcessWorkingSetSize call. - * nlsfuncs.cc (__collate_range_cmp): Add casts to avoid compiler - warnings. - * ntdll.h: Drop accommodations for Mingw32. Fix a couple of formatting - glitches. Add a comment to all structures explicitely tested on 64 bit. - (SYSTEM_INFORMATION_CLASS): Change SystemProcessesAndThreadsInformation - to SystemProcessInformation and SystemProcessorTimes to - SystemProcessorPerformanceInformation to match MSDN. - (SYSTEM_BASIC_INFORMATION): Fix member types to match 64 bit. - (SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION): Rename from - SYSTEM_PROCESSOR_TIMES to use official name from MSDN. Accommodate - throughout. Drop unneeded align attribute. - (VM_COUNTERS): Fix member types to match 64 bit. - (SYSTEM_PROCESS_INFORMATION): Rename from SYSTEM_PROCESSES to use - official name from MSDN. Fix member types to match 64 bit. Change - member names to match MSDN and Mingw64. Accommodate throughout. - (IO_STATUS_BLOCK): Change to use MSDN definition. - (SYSTEM_TIMEOFDAY_INFORMATION): Rename from - SYSTEM_TIME_OF_DAY_INFORMATION to use official name from MSDN. - Accommodate throughout. Add Reserved1 area per MSDN. - (LDR_DATA_TABLE_ENTRY): Add comment for future reference. Change - type of LoadCount to USHORT. - (PEB_LDR_DATA): Change type of Initialized to BOOLEAN. Add comment for - future reference. - (PEB): Fix member types to match 64 bit. - (GDI_TEB_BATCH): New type. - (TEB): Fix member types to match 64 bit. - (PROCESS_BASIC_INFORMATION): Ditto. - (MEMORY_WORKING_SET_LIST): Ditto. - (SharedUserData): Change comment to note the fact that the address - is valid on 32 and 64 bit. - * pinfo.cc (winpids::enum_processes): Add cast to avoid compiler - warnings. - * select.cc (pipe_data_available): Add braces in initalization of an - IO_STATUS_BLOCK to match new definition. - * wincap.h (class wincapc): Change type of wow64 to ULONG_PTR to match - MSDN description. - (wincapc::is_wow64): Convert return value explicitely to bool. - * wow64.cc (wow64_test_for_64bit_parent): Change type of wow64 to - ULONG_PTR to match MSDN description. Add a cast to avoid compiler - warning. - * regex/engine.c: Avoid compiler warnings about unused and potentially - uninitialized variables. - * regex/regcomp.c: Ditto. Drop unnecessary definition of LCID. - -2012-11-11 Corinna Vinschen <corinna@vinschen.de> - - * pinfo.cc (_pinfo::commune_request): Accommodate the fact that LONG_MAX - does not match sizeof LONG. - -2012-11-09 Corinna Vinschen <corinna@vinschen.de> - - * miscfuncs.cc (case_folded_lower): Change to unsigned char to avoid - compiler warnings. - (case_folded_upper): Ditto. - (thread_wrapper): Add assembler code for x86_64. - * winsup.h (case_folded_lower): Change to unsigned char. - (case_folded_upper): Ditto. - (cyg_tolower): Add cast to avoid compiler warnings. - (cyg_toupper): Add cast to avoid compiler warnings. - -2012-11-08 Corinna Vinschen <corinna@vinschen.de> - - * tty.h (class tty): Store from_master and to_master HANDLEs in - unions to make sure the storage is 64 bit compatible. Add comment to - explain why. - (from_master): Convert to read accessor method. - (to_master): Ditto. - (set_from_master): New method to store HANDLE value 64 bit clean. - (set_to_master): Ditto. - * fhandler_tty.cc: Fix debug printfs to work in 64 bit mode as well. - Change usage of from_master and to_master throughout to accommodate - aforementioned change. - * fhandler_termios.cc (fhandler_termios::ioctl): Add cast to avoid - compiler warning. - -2012-11-08 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct user_heap_info): Change type of chunk to SIZE_T. - Remove unused slop member. - * fork.cc (fork): Rename esp to stackp. Add 64 bit asm expression to - fetch stack pointer. - (child_copy): Use platform independent types. - * heap.cc (eval_start_address): Add comment. Disable 3GB code on 64 bit. - (eval_initial_heap_size): Use platform independent types. Fix debug - printf format strings. - (sbrk): Add comment. Change argument type according to newlib - definition. Use platform independent types. Drop unneeded else and - move comment to the right spot. - * hookapi.cc (PEHeaderFromHModule): Return PVOID. Add comment to - explain why. Add bool parameter to return if target executable is - 64 bit or not. - (rvadelta_get): New inline function to fetch section address platform - independent. - (rvadelta32, rvadelta64): Platform dependent wrappers. - (rvadelta): Change to macro calling the platform dependent rvadelta - wrappers. - (putmem): Define platform dependent THUNK_FUNC_TYPE and use throughout. - (RedirectIAT): Add comment. - (get_export): Add comment. - (find_first_notloaded_dll): Allow to fetch information in a platform - and target independent way. - (hook_or_detect_cygwin): Ditto. Recognize the cyg64win1.dll file name - as well. - * kernel32.cc (CreateFileMappingW): Cast to avoid compiler warning. - - * fhandler.h (class fhandler_dev_tape): Replace mt_evt with an - OVERLAPPED structure ov. - * mtinfo.h (class mtinfo_part): Define members as int32_t rather than - long. Change member function declarations accordingly. - (class mtinfo_drive): Ditto. Store OVERLAPPED pointer rather than - holding the full structure. Add comment to explain why. - * fhandler_tape.cc: Accommodate above changes throughout. - -2012-11-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::ioctl): Don't use __ms_u_long - directly. Rather only use it on 64 bit. Add comment to explain the - problem. - -2012-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc: Throughout, fix casts to work on 64 bit. Move - calls to pthread_testcancel to upper syscall level for consistency. - Move read, readv, write, and writev methods to keep together with - equivalent recv and send methods. - (fhandler_socket::read): Compute WSAMSG buffer on 64 bit to overcome - type restriction of WSABUF len member. - (fhandler_socket::recvfrom): Ditto. - (fhandler_socket::write): Ditto. - (fhandler_socket::sendto): Ditto. - (fhandler_socket::sendmsg): Restructure for readability. - * net.cc (cygwin_sendto): Call pthread_testcancel here. - (cygwin_recvfrom): Ditto. - (cygwin_connect): Ditto. - (cygwin_accept): Ditto. - (cygwin_recv): Ditto. - (cygwin_send): Ditto. - (cygwin_recvmsg): Ditto. - (cygwin_sendmsg): Ditto. - -2012-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (heap_info::heap_info): Add comment to explain a - TODO item. - -2012-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsysvipc.cc (format_procsysvipc_msg): Fix printf format - string for 32 bit as well. - -2012-11-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsysvipc.cc (format_procsysvipc_msg): Fix printf format - string for 64 bit. - * fhandler_registry.cc (fhandler_registry::readdir): Fix cast. - * fhandler_serial.cc (ibuf): Avoid compiler warning. - * include/cygwin/ipc.h: Include stdint.h. - * include/cygwin/msg.h (msgqnum_t): Define as uint32_t. - (msglen_t): Ditto. - (struct msginfo): Convert all long members to int32_t. - (struct msg_info): Ditto. - * include/cygwin/sem.h (struct seminfo): Ditto. - * include/cygwin/shm.h (shmatt_t): Define as uint32_t. - (struct shmid_ds): Define shm_segsz as uint32_t. - (struct shminfo): Convert all long members to int32_t. - -2012-11-06 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (PDI_WOW64_MODULES): Define. - (struct _DEBUG_BUFFER): Fix definition to work on 32 and 64 bit. - (struct _DEBUG_HEAP_INFORMATION): Ditto. - (struct _DEBUG_HEAP_BLOCK): Ditto. - -2012-11-05 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc: Fix debug printf calls to be type safe. - Add casts to avoid compiler warnings. - (get_mem_values): Avoid using ULONG_MAX since it's NOT matching - ULONG on 64 bit. - * fhandler_procnet.cc (fhandler_procnet::open): Fix syscall_printf call - to be type safe. - (format_procnet_ifinet6): Add cast to avoid compiler warnings. - * ntdll.h (struct _DEBUG_HEAP_BLOCK): Change Address to ULONG_PTR. - - * include/bits/wordsize.h: Fix __WORDSIZE definition for x86_64. - Add __WORDSIZE_COMPAT32 as on Linux. - * include/inttypes.h: Include bits/wordsize.h. Use __WORDSIZE check - where appropriate. - * include/limits.h: Include bits/wordsize.h. - (CHAR_BIT): Change definition to rely on default - compiler definition. - (LONG_BIT): Ditto. - (WORD_BIT): Ditto. - (__LONG_MAX__): Use __WORDSIZE check. - (RTSIG_MAX): Ditto. - * include/stdint.h: Include bits/wordsize.h. Use __WORDSIZE check - where appropriate. - * include/cygwin/signal.h: Ditto. - * include/cygwin/types.h: Ditto. - - * include/asm/byteorder.h (__ntohl): Use bswap instruction, available - since i486. - (__ntohs): Fix constraint to work on 64 bit CPU as well. - -2012-11-05 Corinna Vinschen <corinna@vinschen.de> - - * cpuid.h (can_set_flag): Implement for x86_64. - * fhandler.h (class fhandler_dev_raw): Define devbuf members taking - numerical values as DWORD, rather than size_t. - * fhandler_dsp.cc: Fix debug printf calls to be type safe. - (waveOut_callback): Align parameter types to latest MSDN description. - (waveIn_callback): Ditto. - (fhandler_dev_dsp::Audio_out::start): Change casts in call to - waveOutOpen according to MSDN. - (fhandler_dev_dsp::Audio_out::parsewav): Fix a cast. - (fhandler_dev_dsp::Audio_in::start): Change casts in call to - waveInOpen according to MSDN. - * fhandler_floppy.cc: Fix debug printf calls to be type safe. - (fhandler_dev_floppy::ioctl): Add casts to be on the safe side. - * fhandler_proc.cc: Fix debug printf calls to be type safe. - -2012-10-31 Corinna Vinschen <corinna@vinschen.de> - - * cygthread.cc: Fix usage of %p in debug printfs, throughout. - * dcrt0.cc: Ditto. - * dtable.cc: Ditto. - * errno.cc: Ditto. - * exceptions.cc: Ditto. - * fhandler.cc: Ditto. - * fhandler_console.cc: Ditto. - * fhandler_disk_file.cc: Ditto. - - * fhandler_clipboard.cc (cygnativeformat): Define as UINT. - (fhandler_dev_clipboard::read): Ditto for local format variable. - Use casts to compare off_t with size_t value. - * fhandler_console.cc (fhandler_console::ioctl): Avoid compiler - warnings. - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Fix cast. - * include/sys/dirent.h (struct __DIR): Define __d_internal as uintptr_t, - rather than unsigned int. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * fcntl.cc (fcntl64): Make arg an intptr_t. Add comment to explain a - potential type problem. Fix syscall_printf. - (_fcntl): Make arg an intptr_t. - * fhandler.cc (fhandler_base::fcntl): Ditto. - * fhandler_socket.cc (fhandler_socket::fcntl): Ditto. - * fhandler.h: Align declarations. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc: Use %y rather than 0x%x. - * exceptions.cc: Ditto. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (__small_vsprintf): Add 'y' and 'Y' conversion. - Add description to comment. - (__small_vswprintf): Align behaviour to __small_vsprintf. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (get_cygdrive_info): Return uintptr_t rather than DWORD. - (check_ntsec): Return bool. - (cygwin_internal): Return uintptr_t. Accommodate throughout. - * include/sys/cygwin.h (cygwin_internal): Align declaration. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/signal.h (NSIG): Define differently for x86_64 and - i686. Change FIXME comment accordingly. - (SIGRTMAX): Define in terms of NSIG. - * include/limits.h (RTSIG_MAX): Define for x86_64. - * strsig.cc (__signals_common): Hold all signals available on both - platforms. - (__signals): Define differently for x86_64 and i686. - -2012-10-30 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc: Fix debug printf to be type-safe. - * dtable.cc: Ditto. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.cc (_cygtls::remove): Fix debug printf to be type-safe. - * dcrt0.cc: Ditto, throughout. - * include/sys/cygwin.h (struct per_process): Define magic_biscuit, - dll_major and dll_minor as uint32_t. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct init_cygheap): Define sthreads as uint32_t. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc: Fix debug printfs to work in 64 bit mode as well, - throughout. - (nthreads): Define as uint32_t to make always 4 byte. Accommodate - throughout. - (threadlist_ix): Ditto. - -2012-10-26 Corinna Vinschen <corinna@vinschen.de> - - * exception.h (stackdump): Change first parameter to PUINT_PTR. - * exceptions.cc: Define cpu specific macros _GR, _AFMT and _ADDR. - Use throughout to avoid ifdef's. Fix debug printfs to work in - 64 bit mode as well, throughout. - (status_info): Define member code as NTSTATUS. Add casts where - necessary throughout. - (dump_exception): Dump all x86_64 registers if building for it. - (class stack_info): Define dummy_frame as PUINT_PTR. - (stack_info::init): Change first parameter to PUINT_PTR. Rename - ebp to framep for CPU independent naming. Drop debp macro. - (stack_info::walk): Rename ebp to framep for CPU independent naming. - Disable WOW64 hack in 64 bit mode. - (stackdump): Change first parameter to PUINT_PTR. Rename ebp to framep - for CPU independent naming. - (_cygtls::inside_kernel): Ignore system_wow64_directory on 64 bit. - (rtl_unwind): Redefine for x86_64 cpu. - (_except_list): Drop redundant definition. - (_cygtls::copy_context): Just use __COPY_CONTEXT_SIZE. - * sigproc.cc (_cygtls::signal_exit): Conditionalize stackdump call per - cpu. - * smallprint.cc (__small_vsprintf): Fix up for 64 bit. Handle 'l' size - modifier in 'd', 'o', 'u', 'x' conversion to print "long" values on a - per cpu base. Add 'O' conversion. Change comment accrdingly. - * include/cygwin/signal.h (struct _uc_fpxreg): Define for 64 bit. - (struct _uc_xmmreg): Ditto. - (struct _fpstate): Ditto. - (struct ucontext): Ditto. - (struct _uc_fpreg): Define for 32 bit. - (struct _fpstate): Use struct _uc_fpreg for _st. Use explicit sized - types. - (struct ucontext): Use explicit sized types. - (__COPY_CONTEXT_SIZE): Cast safely. - (sigset_t): Define as __uint64_t on 64 bit. Add FIXME comment in 32 - bit case. - -2012-10-24 Corinna Vinschen <corinna@vinschen.de> - - * smallprint.cc (rnarg): Make type-safe. - (rnargLL): Ditto. - (__small_vsprintf): Add comment to document meaning of each possible - conversion. Fix 'p' conversion for 64 bit. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc: Redefine _RDATA as "const", if not already defined. - Apply extern "C" linkage to the R/O UNICODE_STRINGs and cygwin_props. - Change comments to explain new method. - * winsup.h (_RDATA): Define as empty string and only if including - globals.h. - (cygwin_finished_initializing): Drop redundant declaration. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::get_debugger_info): Raise size of buf to allow - 64 bit values. Call sprintf in a type-safe manner. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * dll_init.cc (reserve_at): Use PVOID rather than DWORD as type for - pointer parameters and return type. - (release_at): Ditto. - (dll_list::load_after_fork_impl): Fix format strings. Call reserve_at - without casts to DWORD. - (struct dllcrt0_info): Change type of res to PVOID. - (dll_dllcrt0): Return PVOID rather than int. - (dll_dllcrt0_1): Accommodate type change of dllcrt0_info::res. - (dll_noncygwin_dllcrt0): Disable on 64 bit. Add a cast for 32 bit. - * dll_init.h (struct pefile): Drop 32 bit decoration from Windows - types. - * ntdll.h (struct _DEBUG_HEAP_INFORMATION): Define Base as UINT_PTR. - (struct _DEBUG_MODULE_INFORMATION): Define Reserved and Base as - UINT_PTR. - * winsup.h (dll_dllcrt0): Declare as PVOID. - (dll_noncygwin_dllcrt0): Don't declare on 64 bit. - * include/cygwin/cygwin_dll.h (cygwin_attach_dll): Declare as PVOID. - (cygwin_detach_dll): Declare with PVOID parameter. - (dll_index): Declare as PVOID. - (_cygwin_dll_entry): Accommodate type change of dll_index. - * lib/crt0.h (dll_dllcrt0): Declare as PVOID. - * lib/cygwin_attach_dll.c (cygwin_attach_dll): Define PVOID. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (init_windows_system_directory): Disable setting - system_wow64_directory{_length} on 64 bit. - (dll_crt0_0): Disable WOW64-specific code on 64 bit. - (_dll_crt0): Ditto. - * globals.cc (system_wow64_directory): Don't define on 64 bit. - (system_wow64_directory_length): Ditto. - * wincap.cc (wincapc::init): On 64 bit, always set wow64 to 0 and - related bool values to false. - * wow64.cc: Disable entire code on 64 bit. - * wow64.h: Ditto. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (__stack_t): Define as uintptr_t. - * dcrt0.cc (child_info_fork::alloc_stack): Conditionalize assembler - code on a per-CPU base. Rename esp to stackp. - (get_cygwin_startup_info): Cast pointers to uintptr_t in - multiple_cygwin_problem call. Minor formatting change. - (_dll_crt0): Conditionalize assembler code on a per-CPU base. - (multiple_cygwin_problem): Change parameters from unsigned to uintptr_t. - * winsup.h (multiple_cygwin_problem): Change declaration accordingly. - * pinfo.h (pinfo::reattach): Cast 2nd argument in proc_subproc call - to uintptr_t. - (pinfo::remember): Ditto. - * sigproc.cc (proc_subproc): Change 2nd parameter to uintptr_t to allow - pointer values. - * sigproc.h (proc_subproc): Change declaration accordingly. - * include/sys/cygwin.h (per_process_overwrite): Use offsetof to compute - value. - -2012-10-23 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (N0): Remove. - (N): Ditto. - (to_cmalloc): Use offsetof to compute value. - (tocygheap): Use offsetof to compute value. - -2012-10-22 Corinna Vinschen <corinna@vinschen.de> - - * cygtls.h (_tlsbase): Define for __x86_64__. - (_tlstop): Ditto. - * exception.h (exception_list): Ditto. - -2012-10-22 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (to_cmalloc): Fix pointer cast. - (nextpage): Ditto. Base definition on roundup2. - (allocsize): Cast to SIZE_T. - (_csbrk): Drop granmask. Define adjsbs SIZE_T as 2nd parameter to - VirtualAlloc. - (tocygheap): Fix pointer cast. - -2012-10-18 Corinna Vinschen <corinna@vinschen.de> - - Avoid various type ambiguity problems showing up in the 64 bit case: - * cygheap.h (cygheap_user::set_sid): Convert to void. - (cygheap_user::set_saved_sid): Ditto. - * devices.h (struct device): Drop operator int& and DWORD& entirely. - Throughout, use dev_t or fh_devices instead. - * devices.cc: Regenerate. - * fhandler.h (class fhandler_base): Convert _refcnt member to LONG. - (fhandler_base::inc_refcnt): Return LONG. - (fhandler_base::dec_refcnt): Ditto. - (fhandler_base::get_major): Return _major_t. - (fhandler_base::get_minor): Return _minor_t. - (fhandler_base::get_unit): Delete. Throughout, use get_minor instead - of get_unit. - (fhandler_socket::get_socket): Use SOCKET rather than int. Only define - if __INSIDE_CYGWIN_NET__ is defined. - (fhandler_pty_slave::get_unit): Drop declaration. - * fhandler_procnet.cc: Include Windows headers early. - * fhandler_socket.cc: Ditto. - * fhandler_tty.cc (fhandler_pty_slave::get_unit): Remove. - * path.h (path_conv::get_device): Rename from get_devn and change return - type to dev_t. Accommodate throughout. - (path_conv::get_unitn): Remove unused method. - * pinfo.h (class pinfo): Drop operator== for int case. - (pinfo::operator!): Define. - * poll.cc: Don't define __INSIDE_CYGWIN_NET__. - * syscalls.cc (getpgid): Replace use of pinfo::operator== with - pinfo::operator!. - * tty.h (tty_min::setntty): Convert 2nd parameter to _minor_t. - * tty.h (tty_min::getntty): Change return type to dev_t. - (tty_min::get_minor): Rename from get_unit. Change return type to - _minor_t. - -2012-08-16 Corinna Vinschen <corinna@vinschen.de> - - * include/mntent.h: Don't include paths.h and don't define macros if - _NOMNTENT_MACROS is set. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * advapi32.cc (DuplicateTokenEx): Make ?: expression type-safe. - * ntdll.h (KAFFINITY): Don't define if building with Mingw64 headers. - * thread.cc: Throughout drop casts in calls to Interlocked functions. - * thread.h (class fast_mutex): Ditto. Define lock_counter as LONG. - (class pthread_mutex): Define lock_counter as LONG. - (struct MTinterface): Define threadcount as LONG. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * configure.in: Add AC_NO_EXECUTABLES to allow bootstrap. - Add x86_64 to allowed cpu types. - * configure: Regenerate. - * config/x86_64/profile.h: New file. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (semaphore::_fixup_after_fork): Fix Win32 error output in - api_fatal call. - -2012-08-14 Corinna Vinschen <corinna@vinschen.de> - - * mkvers.sh: Drop reference to w32api includes. - -2012-08-13 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/stat.h (struct __stat64): Drop entirely in favor of - struct stat. Accommodate throughout Cygwin. - * include/cygwin/types.h: Throughout, drop current, internal types - used since Cygwin 1.5 with the base type they have been used for. - Throughout, define types based on bitsize-specific types where - appropriate. Accommodate throughout Cygwin. - * include/sys/cygwin.h: Drop __uid32_t and __gid32_t in favor of - uid_t and gid_t. Define uid/gid types based on bitsize-specific types. - (struct external_pinfo): Accommodate above change. - * cygtls.h (struct _local_storage): Drop unused members grp and - namearray, - * tlsoffsets.h: Regenerate. - * devices.h (_dev_t): Drop definition. Use dev_t throughout instead. - * devices.cc: Regenerate. - - Probably temporary patch to drop unneeded functionality on x86_64: - * fcntl.cc (_fcntl): Alias to fcntl64 on x86_64. - * glob.cc (CYGWIN_gl_stat): Simplify on x86_64. - * grp.cc (grp32togrp16): Don't define on x86_64. - (getgrgid): Alias to getgrgid32 on x86_64. - (getgrnam): Alias to getgrnam32 on x86_64. - (getgrent): Alias to getgrent32 on x86_64. - (getgroups): Alias to getgroups32 on x86_64. - (initgroups): Alias to initgroups32 on x86_64. - (setgroups): Alias to setgroups32 on x86_64. - * mmap.cc (mmap): Alias to mmap64 on x86_64. - * passwd.cc (getpwuid): Alias to getpwuid32 on x86_64. - (getpwuid_r): Alias to getpwuid_r32 on x86_64. - (getpwduid): Don't define on x86_64. - * syscalls.cc (lseek): Alias to lseek64 on x86_64. - (_lseek): Alias to lseek64 on x86_64. - (chown): Alias to chown32 on x86_64. - (lchown): Alias to lchown32 on x86_64. - (fchown): Alias to fchown32 on x86_64. - (stat64_to_stat32): Don't define on x86_64. - (fstat): Alias to fstat64 on x86_64. - (_fstat_r): Alias to _fstat64_r on x86_64. - (stat): Alias to stat64 on x86_64. - (_stat_r): Alias to _stat64_r on x86_64. - (lstat): Alias to lstat64 on x86_64. - (ftruncate): Alias to ftruncate64 on x86_64. - (truncate): Alias to truncate64 on x86_64. - (seteuid): Alias to seteuid32 on x86_64. - (setuid): Alias to setuid32 on x86_64. - (setreuid): Alias to setreuid32 on x86_64. - (setegid): Alias to setegid32 on x86_64. - (setgid): Alias to setgid32 on x86_64. - (setregid): Alias to setregid32 on x86_64. - * uinfo.cc (getuid): Alias to getuid32 on x86_64. - (getgid): Alias to getgid32 on x86_64. - (geteuid): Alias to geteuid32 on x86_64. - (getegid): Alias to getegid32 on x86_64. - * winsup.h (ILLEGAL_UID16): Don't define on x86_64. - (ILLEGAL_GID16): Ditto. - (uid16touid32): Don't declare on x86_64. - (gid16togid32): Don't declare on x86_64. - -2012-08-13 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (TEST_DLL_NAME): Use -nostdlib flag unconditionally. - -2012-08-10 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.sc: Add default w32api search dirs. - * Makefile.in (DLL_IMPORTS); Just use -l syntax. - (TEST_DLL_NAME): Drop DLL_IMPORTS dependency. - |