diff options
Diffstat (limited to 'winsup/doc/new-features.xml')
-rw-r--r-- | winsup/doc/new-features.xml | 1574 |
1 files changed, 0 insertions, 1574 deletions
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml deleted file mode 100644 index 2a20d9aeb..000000000 --- a/winsup/doc/new-features.xml +++ /dev/null @@ -1,1574 +0,0 @@ -<?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</title> - -<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> -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 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> - -</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 -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> - -</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> |