Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/doc/new-features.xml')
-rw-r--r--winsup/doc/new-features.xml1206
1 files changed, 1206 insertions, 0 deletions
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml
new file mode 100644
index 000000000..8ae6858bf
--- /dev/null
+++ b/winsup/doc/new-features.xml
@@ -0,0 +1,1206 @@
+<?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-new1.7"><title>What's new and what changed in Cygwin 1.7</title>
+
+<sect2 id="ov-new1.7.19"><title>What's new and what changed from 1.7.18 to 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 from 1.7.17 to 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 from 1.7.16 to 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 from 1.7.15 to 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 from 1.7.14 to 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 from 1.7.13 to 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 from 1.7.12 to 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 from 1.7.11 to 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 from 1.7.10 to 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 from 1.7.9 to 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 &lt;tgmath.h&gt; 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 from 1.7.8 to 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 from 1.7.7 to 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 from 1.7.6 to 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 from 1.7.5 to 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 from 1.7.3 to 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 from 1.7.2 to 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 from 1.7.1 to 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-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>
+
+</sect2>
+
+<sect2 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 '"', '*', ':', '&lt;',
+'&gt;', '|' 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>
+
+</sect2>
+
+<sect2 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>
+
+</sect2>
+
+<sect2 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>
+
+</sect2>
+
+<sect2 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 &lt;strings.h&gt;, don't include
+&lt;string.h&gt; 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>
+
+</sect2>
+
+<sect2 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
+http://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>
+
+</sect2>
+
+<sect2 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>
+
+</sect2>
+
+</sect1>