2302 lines
		
	
	
		
			67 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			2302 lines
		
	
	
		
			67 KiB
		
	
	
	
		
			XML
		
	
	
	
<?xml version="1.0" encoding='UTF-8'?>
 | 
						|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
 | 
						|
		"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 | 
						|
 | 
						|
<sect1 id="ov-new"><title>What's new and what changed in Cygwin</title>
 | 
						|
 | 
						|
<sect2 id="ov-new3.1"><title>What's new and what changed in 3.1</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Eliminate a header file name collision with <X11/XLocale.h> on
 | 
						|
case insensitive filesystems by reverting <xlocale.h> back to
 | 
						|
<sys/_locale.h>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
FIFOs can now be opened multiple times for writing.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add 24 bit color support using xterm compatibility mode in Windows 10
 | 
						|
1703 or later.  Add fake 24 bit color support for legacy console, which
 | 
						|
uses the nearest color from 16 system colors.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
If a SA_SIGINFO signal handler changes the ucontext_t pointed to by the
 | 
						|
third parameter, follow it after returning from the handler.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for getting and setting process and thread affinities.  New APIs:
 | 
						|
sched_getaffinity, sched_setaffinity, pthread_getaffinity_np,
 | 
						|
pthread_setaffinity_np.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new3.0"><title>What's new and what changed in 3.0</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Updated era and message locale data, in particular add era data for
 | 
						|
the new Tennō.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE,
 | 
						|
CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,
 | 
						|
CLOCK_BOOTTIME_ALARM clocks.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for case sensitive directories via chattr(1).  This feature requires
 | 
						|
Windows 10 1803 or later and WSL installed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New file ioctls's FS_IOC_GETFLAGS and FS_IOC_SETFLAGS.  The actual inode
 | 
						|
flags are Cygwin-specific.  This allows to set or reset DOS attributes,
 | 
						|
file sparseness, FS level encryption and compression, as well as
 | 
						|
directory case sensitivity programatically.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New tools chattr(1) and lsattr(1) to utilize setting and viewing the
 | 
						|
aforementioned new ioctl's on the command line.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for exFAT.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support Linux-specific open(2) flag O_PATH.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support Linux-specific linkat(2) flag AT_EMPTY_PATH.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support overrun counter for posix timers (via timer_getoverrun() or
 | 
						|
siginfo_t::si_overrun).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: secure_getenv, signalfd, timerfd_create, timerfd_gettime,
 | 
						|
timerfd_settime, timer_getoverrun.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
clock_nanosleep, pthread_condattr_setclock and timer_create now support
 | 
						|
all clocks, except CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
clock_setres is a no-op now.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Use the new POSIX unlink semantics on NTFS starting with Windows 10
 | 
						|
1709.  Deleting an in-use file now actually removes the file, rather
 | 
						|
than moving it to the recycler bin.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Use the new POSIX rename semantics on NTFS starting with Windows 10
 | 
						|
1809.  Renaming a file to another in-use file now actually removes the
 | 
						|
other file, rather than moving it to the recycler bin.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
open(..., O_TMPFILE) now moves the file to the trash bin immediately,
 | 
						|
to free the parent directory.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Wctype functions updated to Unicode 11.0.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Remove matherr, and SVID and X/Open math library configurations.
 | 
						|
Default math library configuration is now IEEE.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improve uname(2) for newly built applications.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Kerberos/MSV1_0 S4U authentication replaces two old methods:
 | 
						|
Creating a token from scratch and Cygwin LSA authentication package.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin PIDs have been decoupled from Windows PID.  Cygwin PIDs are now
 | 
						|
incrementally dealt in the range from 2 up to 65535, POSIX-like.
 | 
						|
Native Windows processes not started by Cygwin processes are mapped
 | 
						|
into the range beyond 65535.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
fork(2) now is able to recover from when an in-use executable/dll is
 | 
						|
removed or replaced during process runtime.  This feature is disabled by
 | 
						|
default and limited to exes/dlls on the same NTFS partition as the Cygwin
 | 
						|
installation.  For more information and how to enable, please refer to
 | 
						|
<xref linkend="ov-hi-process"></xref>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improve /proc/<PID>/cmdline and /proc/<PID>/stat handling to allow
 | 
						|
all processes access to basic process information of foreign processes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.11"><title>What's new and what changed in 2.11</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
SO_RCVTIMEO and SO_SNDTIMEO socket options are now honored.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/cpuinfo now reports L3 cache size on Intel CPUs.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: clearenv, pthread_tryjoin_np, pthread_timedjoin_np, sched_getcpu.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs for POSIX Asynchronous I/O: aio_cancel, aio_error, aio_fsync,
 | 
						|
aio_read, aio_return, aio_suspend, aio_write, lio_listio.
 | 
						|
New Header: <aio.h>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop denormal-operand exception from FE_ALL_EXCEPT, as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Rename the --file option of setfacl(1) to --set-file, as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support Unicode 10.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Following glibc, `union wait' has now been removed.  Applications
 | 
						|
using union wait and these macros will have to migrate to the
 | 
						|
POSIX-specified int status type.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.10"><title>What's new and what changed in 2.10</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New open(2) flags O_TMPFILE and O_NOATIME.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
scanf/wscanf now handle the POSIX %m modifier.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
scanf now handles the %l[ conversion.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improved hostprogs compatibility for cross-compiling the Linux kernel.
 | 
						|
New headers: <asm/bitsperlong.h>, <asm/posix_types.h>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Built-in implementation of Stack Smashing Protection compiler feature.
 | 
						|
New APIs: __stack_chk_fail, __stack_chk_guard.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Built-in implementation of _FORTIFY_SOURCE guards for functions in
 | 
						|
<stdio.h>, <stdlib.h>, <string.h>, <strings.h>,
 | 
						|
<unistd.h>, <wchar.h>, <sys/poll.h>, and <sys/socket.h>.
 | 
						|
New APIs:  __chk_fail, __gets_chk, __memcpy_chk, __memmove_chk, __mempcpy_chk,
 | 
						|
__memset_chk, __snprintf_chk, __sprintf_chk, __stpcpy_chk, __stpncpy_chk,
 | 
						|
__strcat_chk, __strcpy_chk, __strncat_chk, __strncpy_chk, __vsnprintf_chk,
 | 
						|
__vsprintf_chk.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Built-in implementation of POSIX.1-2001 message catalog support.
 | 
						|
New APIs: catclose, catgets, catopen.  New tool: gencat.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: sigtimedwait, wmempcpy.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.9"><title>What's new and what changed in 2.9</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: explicit_bzero, strnstr.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: pthread_mutex_timedwait, pthread_rwlock_timedrdlock,
 | 
						|
pthread_rwlock_timedwrlock.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: renameat2.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improved implementation of <elf.h>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
strptime(3) supports %s (seconds since Epoch) now, analogue to strftime.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.8"><title>What's new and what changed in 2.8</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: timingsafe_bcmp, timingsafe_memcmp
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: dladdr
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: getloadavg
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygcheck and strace now always generate output with Unix LF line endings,
 | 
						|
rather than with DOS/Windows CR LF line endings.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Fork now preserves the load order of unrelated dlopen'd modules.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Pthread_cond_wait now acts like Linux and BSD: Resume waiting for the
 | 
						|
condition variable as if it was not interrupted, rather than returning 0.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The internal <sys/_locale.h> header was renamed to <xlocale.h> for
 | 
						|
source compatibility with other systems.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Try harder supporting Netapp drives.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.7"><title>What's new and what changed in 2.7</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for /proc/<PID>/environ.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
- New API: getentropy, getrandom.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.6"><title>What's new and what changed in 2.6</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for POSIX-1.2008 locale objects and per-thread locales.
 | 
						|
</para>
 | 
						|
 | 
						|
<para>
 | 
						|
New API per POSIX-1.2008: newlocale, freelocale, duplocale, uselocale,
 | 
						|
nl_langinfo_l, isalnum_l, isalpha_l, isblank_l, iscntrl_l, isdigit_l,
 | 
						|
isgraph_l, islower_l, isprint_l, ispunct_l, isspace_l, isupper_l, iswalnum_l,
 | 
						|
iswalpha_l, iswblank_l, iswcntrl_l, iswctype_l, iswdigit_l, iswgraph_l,
 | 
						|
iswlower_l, iswprint_l, iswpunct_l, iswspace_l, iswupper_l, iswxdigit_l,
 | 
						|
isxdigit_l, tolower_l, toupper_l, towctrans_l, towlower_l, towupper_l,
 | 
						|
wctrans_l, wctype_l, strcasecmp_l, strcoll_l, strerror_l, strfmon_l,
 | 
						|
strftime_l, strncasecmp_l, strxfrm_l, wcscasecmp_l, wcscoll_l, wcstrncasecmp_l,
 | 
						|
wcstrxfrm_l.
 | 
						|
</para>
 | 
						|
 | 
						|
<para>
 | 
						|
New API, GNU extensions: isascii_l, toascii_l, strptime_l, strtod_l, strtof_l,
 | 
						|
strtol_l, strtold_l, strtoll_l, strtoul_l, strtoull_l, wcsftime_l, wcstod_l,
 | 
						|
wcstof_l, wcstol_l, wcstold_l, wcstoll_l, wcstoul_l, wcstoull_l.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
locale(1) now supports a -i/--input option to fetch the current input locale
 | 
						|
(this is basically equivalent to the current keyboard layout setting).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop support for Windows XP and Windows Server 2003/2003 R2.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop support for very old SUNWNFS filesystem.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Raise number of supported partitions per disk (for raw access) to 63.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Further header file improvements in terms of feature test macros.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add a workaround for filesystems not supporting the FileAllInformation
 | 
						|
info class.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support AzureAD accounts.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
"nobody" account support for WinFSP.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: pthread_getname_np, pthread_setname_np.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.5"><title>What's new and what changed in 2.5</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Full set of POSIX.1e ACL API functions now implemented.
 | 
						|
New APIs: acl_add_perm, acl_calc_mask, acl_clear_perms, acl_copy_entry,
 | 
						|
acl_copy_ext, acl_copy_int, acl_create_entry, acl_delete_def_file,
 | 
						|
acl_delete_entry, acl_delete_perm, acl_dup, acl_free, acl_from_text,
 | 
						|
acl_get_entry, acl_get_fd, acl_get_file, acl_get_permset, acl_get_qualifier,
 | 
						|
acl_get_tag_type, acl_init, acl_set_fd, acl_set_file, acl_set_permset,
 | 
						|
acl_set_qualifier, acl_set_tag_type, acl_size, acl_to_text, acl_valid.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Most libacl extensions now implemented, too:
 | 
						|
New APIs: acl_check, acl_cmp, acl_entries, acl_equiv_mode, acl_error,
 | 
						|
acl_extended_fd, acl_extended_file, acl_extended_file_nofollow,
 | 
						|
acl_from_mode, acl_get_perm, acl_to_any_text.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Including <sys/acl.h> now *only* includes the POSIX ACL API.  To include
 | 
						|
the old Solaris API, include <cygwin/acl.h>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
First implementation of pthread_barrier/pthread_barrierattr functions.
 | 
						|
New APIs: pthread_barrierattr_init, pthread_barrierattr_setpshared,
 | 
						|
pthread_barrierattr_getpshared, pthread_barrierattr_destroy,
 | 
						|
pthread_barrier_init, pthread_barrier_destroy, pthread_barrier_wait.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Enabled console reports requested by escape sequences: Requesting primary
 | 
						|
and secondary device attributes, requesting cursor position report;
 | 
						|
see https://cygwin.com/ml/cygwin-patches/2012-q3/msg00019.html
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: clog10, clog10f, nexttoward, nexttowardf, nexttowardl.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add missing long double functions.  New APIs:
 | 
						|
acoshl, acosl, asinhl, asinl, atan2l, atanhl, atanl, cacoshl, cacosl, cargl,
 | 
						|
casinhl, casinl, catanhl, catanl, ccoshl, ccosl, ceill, cexpl, clog10l,
 | 
						|
clogl, conjl, copysignl, coshl, cosl, cpowl, cprojl, csinhl, csinl, csqrtl,
 | 
						|
ctanhl, ctanl, dreml, erfcl, erfl, exp10l, exp2l, expl, expm1l, fabsl,
 | 
						|
fdiml, floorl, fmal, fmaxl, fminl, fmodl, frexpl, ilogbl, isinfl, isnanl,
 | 
						|
ldexpl, lgammal, lgammal_r, llroundl, log10l, log1pl, log2l, logbl, logl,
 | 
						|
lroundl, modfl, nearbyintl, nextafterl, pow10l, powl, remainderl, remquol,
 | 
						|
roundl, scalbl, scalblnl, scalbnl, sincosl, sinhl, sinl, tanhl, tanl,
 | 
						|
tgammal, truncl.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
In calls to chmod treat ACLs with extra ACEs *only* for Admins and
 | 
						|
SYSTEM like a trivial ACL.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Bump POSIX option macros to POSIX.1-2008.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Profiling data, specifically pc sampling, now covers all threads of a
 | 
						|
program and not just the main thread.  Environment variable GMON_OUT_PREFIX
 | 
						|
enables multiple gmon.out files to preserve profiling data after fork or
 | 
						|
from multiple program runs.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Feature test macros, which control which symbols are exposed in the standard
 | 
						|
headers, have been completely overhauled for compatibility with glibc.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The isinf, isinff, and isinfl functions are signed, returning -1 for
 | 
						|
negative infinity for compatibility with glibc.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.4"><title>What's new and what changed in 2.4</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New, unified implementation of POSIX permission and ACL handling.  The
 | 
						|
new ACLs now store the POSIX ACL MASK/CLASS_OBJ permission mask, and
 | 
						|
they allow to inherit the S_ISGID bit.  ACL inheritance now really
 | 
						|
works as desired, in a limited, but theoretically equivalent fashion
 | 
						|
even for non-Cygwin processes.</para>
 | 
						|
 | 
						|
<para>To accommodate standard Windows ACLs, the POSIX permissions of
 | 
						|
the owner and all other users in the ACL are computed using the Windows
 | 
						|
AuthZ API.  This may slow down the computation of POSIX permissions
 | 
						|
noticably in some circumstances, but is generally more correct.
 | 
						|
The new code also ignores SYSTEM and Administrators group permissions
 | 
						|
when computing the MASK/CLASS_OBJ permission mask on old ACLs, and it
 | 
						|
doesn't deny access to SYSTEM and Administrators group based on the
 | 
						|
value of MASK/CLASS_OBJ when creating the new ACLs.</para>
 | 
						|
 | 
						|
<para>The new code now handles the S_ISGID bit on directories as on Linux:
 | 
						|
Setting S_ISGID on a directory causes new files and subdirs created
 | 
						|
within to inherit its group, rather than the primary group of the user
 | 
						|
who created the file.  This only works for files and directories
 | 
						|
created by Cygwin processes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
cygpath has a new -U option, which creates cygdrive paths using the
 | 
						|
unambiguous /proc/cygdrive prefix.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: rpmatch.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Align setfacl(1) usage a bit closer to the usage on Linux.  Rename -d option
 | 
						|
to -x, --substitute to --set.  Add --no-mask and --mask options.  Allow to
 | 
						|
use the -b and -k option combined to allow reducing an ACL to only reflect
 | 
						|
standard POSIX permissions.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Fix (numeric and monetary) decimal point and thousands separator in
 | 
						|
fa_IR and ps_AF locales to be aligned with Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
utmpname/utmpxname are now defined as int functions as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.3"><title>What's new and what changed in 2.3</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
strftime(3) supports %s (seconds since Epoch) now.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
posix_madvise(POSIX_MADV_WILLNEED) now utilizes OS functionality available
 | 
						|
starting with Windows 8/Server 2012.
 | 
						|
</para><para>
 | 
						|
posix_madvise(POSIX_MADV_DONTNEED) now utilizes OS functionality available
 | 
						|
starting with Windows 8.1/Server 2012R2.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
sysconf() now supports returning CPU cache information:
 | 
						|
  <screen>
 | 
						|
  _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE,
 | 
						|
  _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE,
 | 
						|
  _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE,
 | 
						|
  _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE,
 | 
						|
  _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE
 | 
						|
  </screen>
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: aligned_alloc, at_quick_exit, quick_exit.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add support for Parallels Desktop FS (prlfs).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.2"><title>What's new and what changed in 2.2</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: getcontext, setcontext, makecontext, swapcontext.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New functions: sigsetjmp, siglongjmp.
 | 
						|
</para>
 | 
						|
<para>
 | 
						|
These were only available as macros up to now, but POSIX requires that
 | 
						|
siglongjmp has to be available as function.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.1"><title>What's new and what changed in 2.1</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Handle pthread stacksizes as in GLibc:  Default to RLIMIT_STACK resource.
 | 
						|
Allow to set RLIMIT_STACK via setrlimit.  Default RLIMIT_STACK to value
 | 
						|
from executable header as described on the MSDN website
 | 
						|
<ulink url="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686774.aspx">Thread Stack Size</ulink>
 | 
						|
Default stacksize to 2 Megs in case RLIMIT_STACK is set to RLIM_INFINITY.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
First cut of an implementation to allow signal handlers running on an
 | 
						|
alternate signal stack. 
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API sigaltstack, plus definitions for SA_ONSTACK, SS_ONSTACK,
 | 
						|
SS_DISABLE, MINSIGSTKSZ, SIGSTKSZ.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: sethostname.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new2.0"><title>What's new and what changed in 2.0</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
basename(3) now comes in two flavors, POSIX and GNU.  The POSIX version is
 | 
						|
the default.  You get the GNU version after
 | 
						|
 | 
						|
<screen>
 | 
						|
  #define _GNU_SOURCE
 | 
						|
  #include <string.h>
 | 
						|
</screen>
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.35"><title>What's new and what changed in 1.7.35</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Performance improvements of the new account DB handling.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Since 1.7.34, chmod does not always affect the POSIX permission mask as
 | 
						|
returned by stat(2) or printed by ls(1), due to the improved POSIX ACL
 | 
						|
handling.  However, that's still far from perfect, so, as a temporary
 | 
						|
workaround, chmod now checks if secondary groups and users in the ACL
 | 
						|
have more permissions than the primary group.  If so, the permissions of
 | 
						|
the secondary users and groups will be reduced according to the mask
 | 
						|
given by the new primary group permissions.  I.e, chmod 600 will remove
 | 
						|
all permissions from the primary group as well as all secondary user and
 | 
						|
group entries in the ACL.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Change handling of group permissions if owner SID == group SID.  Now the
 | 
						|
group permissions don't mirror the user permissions anymore, thus
 | 
						|
leading to less hassle with security-conscious applications.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow group SID to be the same as owner SID for "Microsoft Accounts".
 | 
						|
Those have the group in their user token set to the owner SID by
 | 
						|
default.  Drop the workaround to change their primary group to "Users".
 | 
						|
It's not required anymore due to the aforementioned changes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Change getfacl long options from --all to --access and from --dir to
 | 
						|
--default, along the lines of the Linux getfacl tool.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Don't raise a SIGSYS signal in the XSI IPC functions if cygserver is not
 | 
						|
running.  Just return -1 with errno set to ENOSYS.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: cabsl, cimagl, creall, finitel, hypotl, sqrtl.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: issetugid.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.34"><title>What's new and what changed in 1.7.34</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin can now generate passwd/group entries directly from Windows user
 | 
						|
databases (local SAM or Active Directory), thus allowing to run Cygwin
 | 
						|
without having to create /etc/passwd and /etc/group files.  Introduce
 | 
						|
/etc/nsswitch.conf file to configure passwd/group handling.
 | 
						|
</para>
 | 
						|
 | 
						|
<para>
 | 
						|
For bordercase which require to use /etc/passwd and /etc/group files,
 | 
						|
change mkpasswd/mkgroup to generate passwd/group entries compatible with
 | 
						|
the entries read from SAM/AD.
 | 
						|
</para>
 | 
						|
 | 
						|
<para>For a description of this exciting new feature see
 | 
						|
<xref linkend="ntsec"></xref>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add -b/--remove-all option to setfacl to reduce the ACL to only the entries
 | 
						|
representing POSIX permission bits.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add -k/--remove-default option to setfacl to remove all default ACL entries
 | 
						|
from an ACL.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add restore action to regtool.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Make gethostbyname2 handle numeric host addresses as well as the
 | 
						|
reserved domain names "localhost" and "invalid" per RFC 6761.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Revamp Solaris ACL implementation to more closely work like POSIX ACLs
 | 
						|
are supposed to work.  Finally implement a CLASS_OBJ emulation.  Update
 | 
						|
getfacl(1)/setfacl(1) accordingly.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The xdr functions are no longer exported for newly built executables.
 | 
						|
Use libtirpc-devel instead.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
32 bit only: Change default values for socket buffer size to raise
 | 
						|
performance on 10Gb networks.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
When spawning a process under another user account, merge the user's
 | 
						|
default Windows environment into the new process' environment.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: qsort_r, __bsd_qsort_r.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: wcstold.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: __fbufsize, __flbf, __fpending, __freadable, __freading,
 | 
						|
__fsetlocking, __fwritable, __fwriting.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: 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.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: sockatmark.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.33"><title>What's new and what changed in 1.7.33</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/cygdrive is a new symlink pointing to the current cygdrive prefix.
 | 
						|
This can be utilized in scripts to access paths via cygdrive prefix,
 | 
						|
even if the cygdrive prefix has been changed by the user.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/partitions now prints the windows mount points the device is
 | 
						|
mounted on.  This allows to recognize the underlying Windows devices of
 | 
						|
the Cygwin raw device names.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: quotactl, designed after the Linux/BSD function, but severely
 | 
						|
restricted:  Windows only supports user block quotas on NTFS, no group
 | 
						|
quotas, no inode quotas, no time constraints.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: ffsl, ffsll (glibc extensions).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: stime (SVr4).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Provide Cygwin documentation (PDFs and HTML) for offline usage in
 | 
						|
<filename>/usr/share/doc/cygwin-${version}</filename>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New internal exception handling based on SEH on 64 bit Cygwin.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
When exec'ing applications, check if $PATH exists and is non-empty.  If
 | 
						|
not, add PATH variable with Cygwin installation directory as content to
 | 
						|
Windows environment to allow loading of Cygwin system DLLs.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Disable CYGWIN "dosfilewarning" option by default.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improve various header files for C++- and standards-compliance.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Doug Lea malloc implementation update from 2.8.3 to the latest 2.8.6.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
atexit(3) is now exported as statically linked function from libcygwin.a.
 | 
						|
This allows reliable access to the DSO handle of the caller for newly
 | 
						|
built executables.  The former atexit entry point into the DLL remains
 | 
						|
for backward compatibility only.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.32"><title>What's new and what changed in 1.7.32</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Export __cxa_atexit and __cxa_finalize to allow C++ standards-compliant
 | 
						|
destructor handling in libstdc++ and g++ compiled code.
 | 
						|
 | 
						|
Please note that, in order to benefit from this new feature, C++ code
 | 
						|
must be recompiled with the upcoming gcc 4.8.3-3 release which will
 | 
						|
enable the -fuse-cxa-atexit flag by default, and that C++ applications
 | 
						|
using this feature will not run on older Cygwin releases.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support more recent CPU flags in /proc/cpuinfo.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.31"><title>What's new and what changed in 1.7.31</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improve performance of send(2), sendto(2), sendmsg(2) when using small
 | 
						|
input buffers.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The default pthread_mutex type is now PTHREAD_MUTEX_NORMAL, rather than
 | 
						|
PTHREAD_MUTEX_ERRORCHECK, just as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Align pthread_attr stack functions more closely to Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Mark pthread_attr_getstackaddr and pthread_attr_setstackaddr as deprecated,
 | 
						|
as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.29"><title>What's new and what changed in 1.7.29</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow quoting of arguments to the CYGWIN environment variable, i.e.,
 | 
						|
set CYGWIN=error_start="c:\bin\someprogram -T"
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Console screen clearing works more like xterm or mintty.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.28"><title>What's new and what changed in 1.7.28</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
popen now supports the Glibc 'e' flag to set the FD_CLOEXEC flag on the pipe
 | 
						|
in a thread-safe way.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New netinet/ip6.h header.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Switch to BSD FILE stream fopen/exit semantics, as in all BSD variants
 | 
						|
and Linux/GLibc:  Don't fflush/lseek a FILE stream on fclose and exit,
 | 
						|
if it only has been read from.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.27"><title>What's new and what changed in 1.7.27</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Don't create native symlinks with target paths having long path prefixes
 | 
						|
"\\?\" if the target path is shorter than MAX_PATH characters.  This works
 | 
						|
around a Windows 8.1 bug:  The ShellExecuteW fails if the lpFile parameter
 | 
						|
points to a native NTFS symlink with a target path prefixed with "\\?\".
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.26"><title>What's new and what changed in 1.7.26</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
getaddrinfo now supports glibc-specific International Domain Name (IDN)
 | 
						|
extension flags: AI_IDN, AI_CANONIDN, AI_IDN_ALLOW_UNASSIGNED,
 | 
						|
AI_IDN_USE_STD3_ASCII_RULES.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
getnameinfo now supports glibc-specific International Domain Name (IDN)
 | 
						|
extension flags: NI_IDN, NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Slightly improve randomness of /dev/random emulation.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow to use advisory locking on any device.  POSIX fcntl and lockf locking
 | 
						|
works with any device, BSD flock locking only with devices backed by an OS
 | 
						|
handle.  Right now this excludes console windows on pre Windows 8, as well as
 | 
						|
almost all virtual files under /proc from BSD flock locking.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The header /usr/include/exceptions.h, containing implementation details for
 | 
						|
32 bit Windows' exception handling only, has been removed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Preliminary, experimental support of the posix_spawn family of functions.
 | 
						|
New associated header /usr/include/spawn.h.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.25"><title>What's new and what changed in 1.7.25</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Change magic number associated with process information block so that 32-bit
 | 
						|
Cygwin processes don't try to interpret 64-bit information and vice-versa.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Redefine content of mtget tape info struct to allow fetching the number of
 | 
						|
partitions on a tape.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.24"><title>What's new and what changed in 1.7.24</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow application override of posix_memalign.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.23"><title>What's new and what changed in 1.7.23</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Added CYGWIN environment variable keyword "wincmdln" which causes Cygwin to
 | 
						|
send the full windows command line to any subprocesses.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.22"><title>What's new and what changed in 1.7.22</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for /dev/mem, /dev/kmem and /dev/port removed, since OS support
 | 
						|
was limited to 32 bit Windows XP only.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Added cygwin GetCommandLine wrappers which will allow Cygwin programs to
 | 
						|
(appear to) use the Windows command line functions.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
regcomp(3) now allows character values >= 0x80 if the current codeset is
 | 
						|
ASCII (default codeset in the "C"/"POSIX" locale).  This allows patterns
 | 
						|
containing arbitrary byte values as GLibc's regcomp.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.21"><title>What's new and what changed in 1.7.21</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: rawmemchr.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.19"><title>What's new and what changed in 1.7.19</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop support for Windows 2000 and Windows XP pre-SP3.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add support for building a 64 bit version of Cygwin on x86_64 natively.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add support for creating native NTFS symlinks starting with Windows Vista
 | 
						|
by setting the CYGWIN=winsymlinks:native or CYGWIN=winsymlinks:nativestrict
 | 
						|
option.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add support for AFS filesystem.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Preliminary support for mandatory locking via fcntl/flock/lockf, using Windows
 | 
						|
locking semantics.  New F_LCK_MANDATORY fcntl command.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: __b64_ntop, __b64_pton, arc4random, arc4random_addrandom,
 | 
						|
arc4random_buf, arc4random_stir, arc4random_uniform.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.18"><title>What's new and what changed in 1.7.18</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>Added Windows console cursor appearance support.</para>
 | 
						|
 | 
						|
  <itemizedlist mark="bullet">
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Show/Hide Cursor mode (DECTCEM): "ESC[?25h" / "ESC[?25l"
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Set cursor style (DECSCUSR): "ESC[n q" (note the space before the q);
 | 
						|
  where n is 0, 1, 2 for block cursor, 3, 4 for underline cursor (all
 | 
						|
  disregarding blinking mode), or > 4 to set the cursor height to a
 | 
						|
  percentage of the cell height.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  </itemizedlist>
 | 
						|
 | 
						|
</listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
For performance reasons, Cygwin does not try to create sparse files
 | 
						|
automatically anymore, unless you use the new "sparse" mount option.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: cfsetspeed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.17"><title>What's new and what changed in 1.7.17</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support the "e" flag to fopen(3).  This is a Glibc extension which
 | 
						|
allows to fopen the file with the O_CLOEXEC flag set.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support the "x" flag to fopen(3).  This is a Glibc/C11 extension which
 | 
						|
allows to open the file with the O_EXCL flag set.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.16"><title>What's new and what changed in 1.7.16</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: getmntent_r, memrchr.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize ReFS filesystem.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.15"><title>What's new and what changed in 1.7.15</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
CYGWIN=pipe_byte option now forces the opening of pipes in byte mode rather than message mode.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.14"><title>What's new and what changed in 1.7.14</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add mouse reporting modes 1005, 1006 and 1015 to console window.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.13"><title>What's new and what changed in 1.7.13</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
mkpasswd and mkgroup now try to print an entry for the TrustedInstaller
 | 
						|
account existing since Windows Vista/Server 2008.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Terminal typeahead when switching from canonical to non-canonical mode
 | 
						|
is now properly flushed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.12"><title>What's new and what changed in 1.7.12</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin now automatically populates the /dev directory with all existing
 | 
						|
POSIX devices.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add virtual /proc/PID/mountinfo file.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
flock now additionally supports the following scenario, which requires
 | 
						|
  to propagate locks to the parent process:
 | 
						|
   <screen>
 | 
						|
    (
 | 
						|
      flock -n 9 || exit 1
 | 
						|
      # ... commands executed under lock ...
 | 
						|
    } 9>/var/lock/mylockfile
 | 
						|
   </screen>
 | 
						|
  Only propagation to the direct parent process is supported so far,
 | 
						|
  not to grand parents or sibling processes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add a "detect_bloda" setting for the CYGWIN environment variable to help
 | 
						|
finding potential BLODAs.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.11"><title>What's new and what changed in 1.7.11</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New <command>pldd</command> command for listing DLLs loaded by a process.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: scandirat.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Change the way remote shares mapped to drive letters are recognized when
 | 
						|
creating the cygdrive directory.  If Windows claims the drive is
 | 
						|
unavailable, don't show it in the cygdrive directory listing.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Raise default stacksize of pthreads from 512K to 1 Meg.  It can still be
 | 
						|
changed using the pthread_attr_setstacksize call.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.10"><title>What's new and what changed in 1.7.10</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop support for Windows NT4.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable options "envcache", "strip_title", "title",
 | 
						|
"tty", and "upcaseenv" have been removed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
If the executable (and the system) is large address aware, the application heap
 | 
						|
will be placed in the large memory area.  The <command>peflags</command> tool
 | 
						|
from the <literal>rebase</literal> package can be used to set the large
 | 
						|
address awareness flag in the executable file header.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The registry setting "heap_chunk_in_mb" has been removed, in favor of a new
 | 
						|
per-executable setting in the executable file header which can be set using the
 | 
						|
<command>peflags</command> tool.  See <xref linkend="setup-maxmem"></xref>
 | 
						|
for more information.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN=tty mode using pipes to communicate with the console in a pseudo
 | 
						|
tty-like mode has been removed.  Either just use the normal Windows console
 | 
						|
as is, or use a terminal application like <command>mintty</command>.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New <command>getconf</command> command for querying confstr(3), pathconf(3),
 | 
						|
sysconf(3), and limits.h configuration.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New <command>tzset</command> utility to generate a POSIX-compatible TZ
 | 
						|
environment variable from the Windows timezone settings.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The passwd command now allows an administrator to use the -R command for
 | 
						|
other user accounts:  passwd -R username.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Pthread spinlocks.  New APIs: pthread_spin_destroy, pthread_spin_init,
 | 
						|
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Pthread stack address management.  New APIs: pthread_attr_getstack,
 | 
						|
pthread_attr_getstackaddr, pthread_attr_getguardsize, pthread_attr_setstack,
 | 
						|
pthread_attr_setstackaddr, pthread_attr_setguardsize, pthread_getattr_np.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
POSIX Clock Selection option.  New APIs: clock_nanosleep,
 | 
						|
pthread_condattr_getclock, pthread_condattr_setclock.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
clock_gettime(3) and clock_getres(3) accept per-process and per-thread CPU-time
 | 
						|
clocks, including CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
 | 
						|
New APIs: clock_getcpuclockid, pthread_getcpuclockid.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
GNU/glibc error.h error reporting functions.  New APIs: error, error_at_line.
 | 
						|
New exports: error_message_count, error_one_per_line, error_print_progname.
 | 
						|
Also, perror and strerror_r no longer clobber strerror storage.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
C99 <tgmath.h> type-generic macros.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/loadavg now shows the number of currently running processes and the
 | 
						|
total number of processes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Added /proc/devices and /proc/misc, which lists supported device types and
 | 
						|
their device numbers.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Added /proc/swaps, which shows the location and size of Windows paging file(s).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Added /proc/sysvipc/msg, /proc/sysvipc/sem, and /proc/sysvipc/shm which
 | 
						|
provide information about System V IPC message queues, semaphores, and
 | 
						|
shared memory.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/version now shows the username of whomever compiled the Cygwin DLL
 | 
						|
as well as the version of GCC used when compiling.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
dlopen now supports the Glibc-specific RTLD_NODELETE and RTLD_NOOPEN flags.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The printf(3) and wprintf(3) families of functions now handle the %m
 | 
						|
conversion flag.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Other new API: clock_settime, __fpurge, getgrouplist, get_current_dir_name,
 | 
						|
getpt, ppoll, psiginfo, psignal, ptsname_r, sys_siglist, pthread_setschedprio,
 | 
						|
pthread_sigqueue, sysinfo.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.9"><title>What's new and what changed in 1.7.9</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: strchrnul.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.8"><title>What's new and what changed in 1.7.8</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Drop support for Windows NT4 prior to Service Pack 4.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Reinstantiate Cygwin's ability to delete an empty directory which is the
 | 
						|
current working directory of the same or another process.  Same for any
 | 
						|
other empty directory which has been opened by the same or another process.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin now ships the C standard library fenv.h header file, and implements the
 | 
						|
related APIs (including GNU/glibc extensions): feclearexcept, fedisableexcept,
 | 
						|
feenableexcept, fegetenv, fegetexcept, fegetexceptflag, fegetprec, fegetround,
 | 
						|
feholdexcept, feraiseexcept, fesetenv, fesetexceptflag, fesetprec, fesetround,
 | 
						|
fetestexcept, feupdateenv, and predefines both default and no-mask FP
 | 
						|
environments.  See the
 | 
						|
<ulink url="http://www.gnu.org/software/libc/manual/html_node/Arithmetic.html">
 | 
						|
GNU C Library manual</ulink> for full details of this functionality.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for the C99 complex functions, except for the "long double"
 | 
						|
implementations.  New APIs: cacos, cacosf, cacosh, cacoshf, carg, cargf, casin,
 | 
						|
casinf, casinh, casinhf, catan, catanf, catanh, catanhf, ccos, ccosf, ccosh,
 | 
						|
ccoshf, cexp, cexpf, cimag, cimagf, clog, clogf, conj, conjf, cpow, cpowf,
 | 
						|
cproj, cprojf, creal, crealf, csin, csinf, csinh, csinhf, csqrt, csqrtf, ctan,
 | 
						|
ctanf, ctanh, ctanhf.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Fix the width of "CJK Ambiguous Width" characters to 1 for singlebyte charsets
 | 
						|
and 2 for East Asian multibyte charsets. (For UTF-8, it remains dependent on
 | 
						|
the specified language, and the "@cjknarrow" locale modifier can still be used
 | 
						|
to force width 1.)
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The strerror_r interface now has two flavors; if _GNU_SOURCE is
 | 
						|
defined, it retains the previous behavior of returning char *
 | 
						|
(but the result is now guaranteed to be NUL-terminated); otherwise
 | 
						|
it now obeys POSIX semantics of returning int.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
/proc/sys now allows unfiltered access to the native NT namespace.  Access
 | 
						|
restrictions still apply.  Direct device access via /proc/sys is not yet
 | 
						|
supported.  File system access via block devices works.  For instance
 | 
						|
(note the trailing slash!)
 | 
						|
<screen>
 | 
						|
bash$ cd /proc/sys/Device/HarddiskVolumeShadowCopy1/
 | 
						|
</screen>
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Other new APIs: llround, llroundf, madvise, pthread_yield.
 | 
						|
Export program_invocation_name, program_invocation_short_name.
 | 
						|
Support TIOCGPGRP, TIOCSPGRP ioctls.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.7"><title>What's new and what changed in 1.7.7</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Partially revert the 1.7.6 change to set the Win32 current working directory
 | 
						|
(CWD) always to an invalid directory, since it breaks backward compatibility
 | 
						|
too much.  The Cygwin CWD and the Win32 CWD are now kept in sync again, unless
 | 
						|
the Cygwin CWD is not usable as Win32 CWD.  See the reworked
 | 
						|
<xref linkend="pathnames-win32-api"></xref> for details.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Make sure to follow the Microsoft security advisory concerning DLL hijacking.
 | 
						|
See the <ulink url="http://www.microsoft.com/technet/security/advisory/2269637.mspx">Microsoft Security Advisory (2269637) "Insecure Library Loading Could Allow Remote Code Execution"</ulink> for details.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow to link against -lbinmode instead of /lib/binmode.o.  Same for
 | 
						|
-ltextmode, -ltextreadmode and -lautomode. 
 | 
						|
See <xref linkend="textbin-devel"></xref> for details.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.6"><title>What's new and what changed in 1.7.6</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add new mount options "dos" and "ihash" to allow overriding Cygwin default
 | 
						|
behaviour on broken filesystems not recognized by Cygwin.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add new mount option "bind" to allow remounting parts of the POSIX file
 | 
						|
hirarchy somewhere else.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Ttys and ptys are handled as securable objects using file-like permissions
 | 
						|
and owner/group information.  <command>chmod</command> and
 | 
						|
<command>chown</command> now work on ttys/ptys.  A new mechanism is used
 | 
						|
to propagate pty handles safely to other processes, which does not require
 | 
						|
to use Cygserver.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Pass on coresize settings made with setrlimit(2).  This allows shells to
 | 
						|
disable creating stackdump files in child processes via
 | 
						|
<screen>ulimit -c 0</screen> in bash or <screen>limit coredumpsize 0</screen>
 | 
						|
in tcsh.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Locale categories contain all localization strings additionally as wide-char
 | 
						|
strings.  locale(1) prints these values just as on Linux.  nl_langinfo(3)
 | 
						|
allows to fetch them.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New interfaces mkostemp(3) and mkostemps(3) are added.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New virtual file /proc/filesystems.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
clock_gettime(3) and clock_getres(3) accept CLOCK_MONOTONIC.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
DEPRECATED with 1.7.7: Cygwin handles the current working directory entirely
 | 
						|
on its own.  The Win32 current working directory is set to an invalid path to
 | 
						|
be out of the way.  [...]
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.5"><title>What's new and what changed in 1.7.5</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for DEC Backarrow Key Mode escape sequences (ESC [ ? 67 h, ESC [ ? 67 l)
 | 
						|
in Windows console.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.3"><title>What's new and what changed in 1.7.3</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for GB2312/EUC-CN.  These charsets are implemented as aliases to GBK.
 | 
						|
GB2312 is now the default charset name for the locales zh_CN and zh_SG, just
 | 
						|
as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Modification and access timestamps of devices reflect the current time.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.2"><title>What's new and what changed in 1.7.2</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>Localization support has been much improved.</para>
 | 
						|
 | 
						|
  <itemizedlist mark="bullet">
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Cygwin now handles locales using the underlying Windows locale
 | 
						|
  support.  The locale must exist in Windows to be recognized.
 | 
						|
  Locale aliases from the file /usr/share/locale/locale.alias are also
 | 
						|
  allowed, as long as their replacement is supported by the underlying Windows.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  New tool "locale" to fetch locale information and default locales based on
 | 
						|
  the Windows default settings as well as lists of all supported locales
 | 
						|
  and character sets.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Default charset for locales without explicit charset is now chosen
 | 
						|
  from a list of Linux-compatible charsets.
 | 
						|
  </para>
 | 
						|
  
 | 
						|
  <para>
 | 
						|
  For instance: en_US -> ISO-8859-1, ja_JP -> EUC-JP, zh_TW -> Big5.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Added support for the charsets GEORGIAN-PS, PT154, and TIS-620.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Support for the various locale modifiers to switch charsets as on Linux.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Default charset in the "C" or "POSIX" locale has been changed back
 | 
						|
  from UTF-8 to ASCII, to avoid problems with applications
 | 
						|
  expecting a singlebyte charset in the "C"/"POSIX" locale.  Still use
 | 
						|
  UTF-8 internally for filename conversion in this case.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  LC_COLLATE, LC_MONETARY, LC_NUMERIC, and LC_TIME localization is
 | 
						|
  enabled via Windows locale support.  LC_MESSAGES is enabled via a big
 | 
						|
  table with localized strings.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  fnmatch(3), regcomp(3), regexec(3) calls are now multibyte-aware.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  printf(3), wprintf(3) families of functions now handle the grouping
 | 
						|
  flag, the apostrophe <literal>'</literal>, per POSIX-1.2008.  The
 | 
						|
  integer portion of the result of a decimal conversion (%i, %d, %u, %f,
 | 
						|
  %F, %g, %G) will be formatted with thousands' grouping characters.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  strftime(3), wcsftime(3), and strptime(3) now handle the E and O format
 | 
						|
  modifiers to print/scan alternative date and time representations or to
 | 
						|
  use alternative digits in locales which support this.  Additionally these
 | 
						|
  functions now also support the padding modifiers '0' and '+', as well as
 | 
						|
  a field width per POSIX-1.2008.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  New strfmon(3) call.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  </itemizedlist>
 | 
						|
 | 
						|
</listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support open(2) flags O_CLOEXEC and O_TTY_INIT flags.  Support fcntl
 | 
						|
flag F_DUPFD_CLOEXEC.  Support socket flags SOCK_CLOEXEC and SOCK_NONBLOCK.
 | 
						|
Add new Linux-compatible API calls accept4(2), dup3(2), and pipe2(2).
 | 
						|
Support the signal SIGPWR.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>Enhanced Windows console support.</para>
 | 
						|
 | 
						|
  <itemizedlist mark="bullet">
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  The console's backspace keycode can be changed using 'stty erase'.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Function keys send distinguished escape sequences compatible with rxvt.
 | 
						|
  Keypad keys send distinguished escape sequences, xterm-style.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Support of combining Alt and AltGr modifiers in console window
 | 
						|
  (compatible with xterm and mintty), so that e.g. Alt-@ sends ESC @
 | 
						|
  also on keyboards where @ is mapped to an AltGr combination.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Report mouse wheel scroll events in mouse reporting mode 1000 (note:
 | 
						|
  this doesn't seem to work on all systems, assumedly due to driver
 | 
						|
  interworking issues).
 | 
						|
  Add mouse reporting mode 1002 to report mouse drag movement.
 | 
						|
  Add mouse reporting mode 1003 to report any mouse movement.
 | 
						|
  Add focus event reporting (mode 1004), compatible with xterm and mintty.
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Add escape sequences for not bold (22), not invisible (28), not
 | 
						|
  blinking (25) (compatible with xterm and mintty).
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  <listitem><para>
 | 
						|
  Support VT100 line drawing graphics mode in console window (compatible
 | 
						|
  with xterm and mintty).
 | 
						|
  </para></listitem>
 | 
						|
 | 
						|
  </itemizedlist>
 | 
						|
 | 
						|
</listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Handle native DOS paths always as if mounted with "posix=0,noacl".
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Handle UNC paths starting with slashes identical to /cygdrive paths.
 | 
						|
In other words, use the /cygdrive mount flags for these paths as well.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize NWFS filesystem and workaround broken OS call.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New support for eXtensible Data Record (XDR) encoding and decoding,
 | 
						|
as defined by RFCs 1014, 1832, and 4506.  The XDR protocol and
 | 
						|
functions are useful for cross-platfrom data exchange, and are
 | 
						|
commonly used as the core data interchange format for Remote
 | 
						|
Procedure Call (RPC) and NFS.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
<sect2 id="ov-new1.7.1"><title>What's new and what changed from 1.5 to 1.7</title>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-os"><title>OS related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Windows 95, 98 and Me are not supported anymore.  The new Cygwin 1.7 DLL
 | 
						|
will not run on any of these systems.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add support for Windows 7 and Windows Server 2008 R2.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-file"><title>File Access related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Mount points are no longer stored in the registry.  Use /etc/fstab and
 | 
						|
/etc/fstab.d/$USER instead.  Mount points created with mount(1) are only
 | 
						|
local to the current session and disappear when the last Cygwin process
 | 
						|
in the session exits.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin creates the mount points for /, /usr/bin, and /usr/lib
 | 
						|
automatically from it's own position on the disk.  They don't have to be
 | 
						|
specified in /etc/fstab.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
If a filename cannot be represented in the current character set, the
 | 
						|
character will be converted to a sequence Ctrl-X + UTF-8 representation
 | 
						|
of the character.  This allows to access all files, even those not
 | 
						|
having a valid representation of their filename in the current character
 | 
						|
set.  To always have a valid string, use the UTF-8 charset by
 | 
						|
setting the environment variable $LANG, $LC_ALL, or $LC_CTYPE to a valid
 | 
						|
POSIX value, such as "en_US.UTF-8".
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
PATH_MAX is now 4096.  Internally, path names can be as long as the
 | 
						|
underlying OS can handle (32K).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
struct dirent now supports d_type, filled out with DT_REG or DT_DIR.
 | 
						|
All other file types return as DT_UNKNOWN for performance reasons.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable options "ntsec" and "smbntsec" have been
 | 
						|
replaced by the per-mount option "acl"/"noacl".
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable option "ntea" has been removed without
 | 
						|
substitute.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable option "check_case" has been removed in
 | 
						|
favor of real case-sensitivity on file systems supporting it.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Creating filenames with special DOS characters '"', '*', ':', '<',
 | 
						|
'>', '|' is supported.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Creating files with special DOS device filename components ("aux",
 | 
						|
"nul", "prn") is supported.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
File names are case sensitive if the OS and the underlying file system
 | 
						|
supports it.  Works on NTFS and NFS.  Does not work on FAT and Samba
 | 
						|
shares.  Requires to change a registry key (see the User's Guide).  Can
 | 
						|
be switched off on a per-mount basis.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Due to the above changes, managed mounts have been removed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Incoming DOS paths are always handled case-insensitive and get no POSIX
 | 
						|
permission, as if they are mounted with noacl,posix=0 mount flags.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
unlink(2) and rmdir(2) try very hard to remove files/directories even if
 | 
						|
they are currently accessed or locked.  This is done by utilizing the
 | 
						|
hidden recycle bin directories and marking the files for deletion.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
rename(2) rewritten to be more POSIX conformant.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
access(2) now performs checks using the real user ID, as required by
 | 
						|
POSIX; the old behavior of querying based on effective user ID is
 | 
						|
available through the new faccessat(2) and euidaccess(2) APIs.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add st_birthtim member to struct stat.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
File locking is now advisory, not mandatory anymore.  The fcntl(2) and
 | 
						|
the new lockf(2) APIs create and maintain locks with POSIX semantics,
 | 
						|
the flock(2) API creates and maintains locks with BSD semantics.  POSIX
 | 
						|
and BSD locks are independent of each other.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Implement atomic O_APPEND mode.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New open(2) flags O_DIRECTORY, O_EXEC and O_SEARCH.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Make the "plain file with SYSTEM attribute set" style symlink default
 | 
						|
again when creating symlinks.  Only create Windows shortcut style
 | 
						|
symlinks if CYGWIN=winsymlinks is set in the environment.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Symlinks now use UTF-16 encoding for the target filename for better
 | 
						|
internationalization support.  Cygwin 1.7 can read all old style
 | 
						|
symlinks, but the new style is not compatible with older Cygwin
 | 
						|
releases.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Handle NTFS native symlinks available since Vista/2008 as symlinks (but
 | 
						|
don't create Vista/2008 symlinks due to unfortunate OS restrictions).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize NFS shares and handle them using native mechanisms.  Recognize
 | 
						|
and create real symlinks on NFS shares.  Get correct stat(2) information
 | 
						|
and set real mode bits on open(2), mkdir(2) and chmod(2).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize MVFS and workaround problems manipulating metadata and handling
 | 
						|
DOS attributes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize Netapp DataOnTap drives and fix inode number handling.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Recognize Samba version beginning with Samba 3.0.28a using the new
 | 
						|
extended version information negotiated with the Samba developers.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Stop faking hardlinks by copying the file on filesystems which don't
 | 
						|
support hardlinks natively (FAT, FAT32, etc.).  Just return an error
 | 
						|
instead, just like Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
List servers of all accessible domains and workgroups in // instead of
 | 
						|
just the servers in the own domain/workgroup.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support Linux-like extended attributes ([fl]getxattr, [fl]listxattr,
 | 
						|
[fl]setxattr, [fl]removexattr).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New file conversion API for conversion from Win32 to POSIX path and vice
 | 
						|
versa (cygwin_conv_path, cygwin_create_path, cygwin_conv_path_list).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New openat family of functions: openat, faccessat, fchmodat, fchownat,
 | 
						|
fstatat, futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat,
 | 
						|
renameat, symlinkat, unlinkat.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Other new APIs: posix_fadvise, posix_fallocate, funopen, fopencookie,
 | 
						|
open_memstream, open_wmemstream, fmemopen, fdopendir, fpurge, mkstemps,
 | 
						|
eaccess, euidaccess, canonicalize_file_name, fexecve, execvpe.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-net"><title>Network related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New implementation for blocking sockets and select on sockets which is
 | 
						|
supposed to allow POSIX-compatible sharing of sockets between threads
 | 
						|
and processes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
send/sendto/sendmsg now send data in 64K chunks to circumvent an
 | 
						|
internal buffer problem in WinSock (KB 201213).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New send/recv option MSG_DONTWAIT.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
IPv6 support.  New APIs getaddrinfo, getnameinfo, freeaddrinfo,
 | 
						|
gai_strerror, in6addr_any, in6addr_loopback.  On IPv6-less systems,
 | 
						|
replacement functions are available for IPv4.  On systems with IPv6
 | 
						|
enabled, the underlying WinSock functions are used.  While I tried hard
 | 
						|
to get the functionality as POSIXy as possible, keep in mind that a
 | 
						|
*fully* conformant implementation of getaddrinfo and other stuff is only
 | 
						|
available starting with Windows Vista/2008.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Resolver functions (res_init, res_query, res_search, res_querydomain,
 | 
						|
res_mkquery, res_send, dn_comp, dn_expand) are now part of Cygwin.
 | 
						|
Applications don't have to link against minires anymore.  Actually, this
 | 
						|
*is* the former libminires.a.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
rcmd is now implemented inside of Cygwin, instead of calling the WinSock
 | 
						|
function.  This allows rsh(1) usage on Vista/2008 and later, which
 | 
						|
dropped this function from WinSock.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Define multicast structures in netinet/in.h.  Note that fully conformant
 | 
						|
multicast support is only available beginning with Vista/2008.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improve get_ifconf.  Redefine struct ifreq and subsequent datastructures
 | 
						|
to be able to keep more information.  Support SIOCGIFINDEX,
 | 
						|
SIOCGIFDSTADDR and the Cygwin specific SIOCGIFFRNDLYNAM.  Support real
 | 
						|
interface flags on systems supporting them.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Other new APIs: bindresvport, bindresvport_sa, gethostbyname2,
 | 
						|
iruserok_sa, rcmd_af, rresvport_af.  getifaddrs, freeifaddrs,
 | 
						|
if_nametoindex, if_indextoname, if_nameindex, if_freenameindex.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add /proc/net/if_inet6.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-device"><title>Device related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Reworked pipe implementation which uses overlapped IO to create more
 | 
						|
reliable interruptible pipes and fifos.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable option "binmode" has been removed.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Improved fifo handling by using native Windows named pipes.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Detect when a stdin/stdout which looks like a pipe is really a tty.
 | 
						|
Among other things, this allows a debugged application to recognize that
 | 
						|
it is using the same tty as the debugger.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support UTF-8 in console window.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
In the console window the backspace key now emits DEL (0x7f) instead of
 | 
						|
BS (0x08), Alt-Backspace emits ESC-DEL (0x1b,0x7f) instead of DEL
 | 
						|
(0x7f), same as the Linux console and xterm.  Control-Space now emits an
 | 
						|
ASCII NUL (0x0) character.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support up to 64 serial interfaces using /dev/ttyS0 - /dev/ttyS63.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support up to 128 raw disk drives /dev/sda - /dev/sddx.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API: cfmakeraw, get_avphys_pages, get_nprocs, get_nprocs_conf,
 | 
						|
get_phys_pages, posix_openpt.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-posix"><title>Other POSIX related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
A lot of character sets are supported now via a call to setlocale().
 | 
						|
The setting of the environment variables $LANG, $LC_ALL or $LC_CTYPE
 | 
						|
will be used.  For instance, setting $LANG to "de_DE.ISO-8859-15" before
 | 
						|
starting a Cygwin session will use the ISO-8859-15 character set in the
 | 
						|
entire session.  The default locale in the absence of one of the
 | 
						|
aforementioned environment variables is "C.UTF-8".
 | 
						|
</para>
 | 
						|
 | 
						|
<para>
 | 
						|
The full list of supported character sets: "ASCII", "ISO-8859-x" with x
 | 
						|
in 1-16, except 12, "UTF-8", Windows codepages "CPxxx", with xxx in
 | 
						|
(437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, 874, 1125, 1250,
 | 
						|
1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258), "KOI8-R", "KOI8-U",
 | 
						|
"SJIS", "GBK", "eucJP", "eucKR", and "Big5".
 | 
						|
</para>
 | 
						|
 | 
						|
</listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow multiple concurrent read locks per thread for pthread_rwlock_t.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Implement pthread_kill(thread, 0) as per POSIX.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New API for POSIX IPC: Named semaphores: sem_open, sem_close,
 | 
						|
sem_unlink.  Message queues: mq_open, mq_getattr, mq_setattr, mq_notify,
 | 
						|
mq_send, mq_timedsend, mq_receive, mq_timedreceive, mq_close, mq_unlink.
 | 
						|
Shared memory: shm_open, shm_unlink.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Only declare expected functions in <strings.h>, don't include
 | 
						|
<string.h> from here.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Support for WCONTINUED, WIFCONTINUED() added to waitpid and wait4.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New APIs: _Exit, confstr, insque, remque, sys_sigabbrev, posix_madvise,
 | 
						|
posix_memalign, reallocf, exp10, exp10f, pow10, pow10f, lrint, lrintf,
 | 
						|
rint, rintf, llrint, llrintf, llrintl, lrintl, rintl, mbsnrtowcs,
 | 
						|
strcasestr, stpcpy, stpncpy, wcpcpy, wcpncpy, wcsnlen, wcsnrtombs,
 | 
						|
wcsftime, wcstod, wcstof, wcstoimax, wcstok, wcstol, wcstoll, wcstoul,
 | 
						|
wcstoull, wcstoumax, wcsxfrm, wcscasecmp, wcsncasecmp, fgetwc, fgetws,
 | 
						|
fputwc, fputws, fwide, getwc, getwchar, putwc, putwchar, ungetwc,
 | 
						|
asnprintf, dprintf, vasnprintf, vdprintf, wprintf, fwprintf, swprintf,
 | 
						|
vwprintf, vfwprintf, vswprintf, wscanf, fwscanf, swscanf, vwscanf,
 | 
						|
vfwscanf, vswscanf.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-sec"><title>Security related changes</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Getting a domain user's groups is hopefully more bulletproof now.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin now comes with a real LSA authentication package.  This must be
 | 
						|
manually installed by a privileged user using the /bin/cyglsa-config
 | 
						|
script.  The advantages and disadvantages are noted in
 | 
						|
https://cygwin.com/ml/cygwin-developers/2006-11/msg00000.html
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin now allows storage and use of user passwords in a hidden area of
 | 
						|
the registry.  This is tried first when Cygwin is called by privileged
 | 
						|
processes to switch the user context.  This allows, for instance, ssh
 | 
						|
public key sessions with full network credentials to access shares on
 | 
						|
other machines.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New options have been added to the mkpasswd and mkgroup tools to ease
 | 
						|
use in multi-machine and multi-domain environments.  The existing
 | 
						|
options have a slightly changed behaviour.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
<sect3 id="ov-new1.7-misc"><title>Miscellaneous</title>
 | 
						|
 | 
						|
<itemizedlist mark="bullet">
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New ldd utility, similar to Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
New link libraries libdl.a, libresolv.a, librt.a.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Fallout from the long path names: If the current working directory is
 | 
						|
longer than 260 bytes, or if the current working directory is a virtual
 | 
						|
path (like /proc, /cygdrive, //server), don't call native Win32 programs
 | 
						|
since they don't understand these paths.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
On the first usage of a DOS path (C:\foo, \\foo\bar), the Cygwin DLL
 | 
						|
emits a scary warning that DOS paths shouldn't be used.  This warning
 | 
						|
may be disabled via the new CYGWIN=nodosfilewarning setting.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
The CYGWIN environment variable option "server" has been removed.
 | 
						|
Cygwin automatically uses cygserver if it's available.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Allow environment of arbitrary size instead of a maximum of 32K.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Don't force uppercase environment when started from a non-Cygwin
 | 
						|
process.  Except for certain Windows and POSIX variables which are
 | 
						|
always uppercased, preserve environment case.  Switch back to old
 | 
						|
behaviour with the new CYGWIN=upcaseenv setting.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Detect and report a missing DLL on process startup.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add /proc/registry32 and /proc/registry64 paths to access 32 bit and 64
 | 
						|
bit registry on 64 bit systems.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add the ability to distinguish registry keys and registry values with
 | 
						|
the same name in the same registry subtree.  The key is called "foo" and
 | 
						|
the value will be called "foo%val" in this case.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Align /proc/cpuinfo more closly to Linux content.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Add /proc/$PID/mounts entries and a symlink /proc/mounts pointing to
 | 
						|
/proc/self/mounts as on Linux.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Optimized strstr and memmem implementation.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Remove backwards compatibility with old signal masks.  (Some *very* old
 | 
						|
programs which use signal masks may no longer work correctly).
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Cygwin now exports wrapper functions for libstdc++ operators new and
 | 
						|
delete, to support the toolchain in implementing full C++ standards
 | 
						|
conformance when working with shared libraries.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Different Cygwin installations in different paths can be run in parallel
 | 
						|
without knowing of each other.  The path of the Cygwin DLL used in a
 | 
						|
process is a key used when creating IPC objects.  So different Cygwin
 | 
						|
DLLs are running in different namespaces.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
<listitem><para>
 | 
						|
Each Cygwin DLL stores its path and installation key in the registry.
 | 
						|
This allows troubleshooting of problems which could be a result of
 | 
						|
having multiple concurrent Cygwin installations.
 | 
						|
</para></listitem>
 | 
						|
 | 
						|
</itemizedlist>
 | 
						|
 | 
						|
</sect3>
 | 
						|
 | 
						|
</sect2>
 | 
						|
 | 
						|
</sect1>
 |