Various tools which provide functionality similar to a Linux on Windows

Cygwin (32-bit)

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe
Download Cygwin 3.3.3 (32-bit)

  -  1.2 MB  -  Open Source

What's new in this version:

Cygwin 3.3.3 (32-bit)
- Make sure that "X:" paths are not handled as absolute DOS paths in fstatat and other ...at calls. "X:/" still is handled as absolute path.

Fixed:
- issue that new pipe code doesn't handle size zero pipe which may be created by non-cygwin apps
- showing DLL version info from native Windows tools
- Handle Unicode surrogate pairs in console. Cygwin console does not handle surrogate pairs correctly at the moment. Fix issue that running bash in Windows Terminal and inserting an emoji does not work as expected.
- long-standing problem that fchmod or facl on newly created files screw up the DOS file attributes
- issue that pipe read()/write() occasionally returns a garbage length when NtReadFile/NtWriteFile returns STATUS_PENDING in non- blocking mode
- two bugs in raise(2)
- regression in printf introduced with Cygwin 3.3.2


Cygwin 3.3.1  (32-bit)
- Change log not available for this version


Cygwin 3.2.0 (32-bit)
New:
- Revamped pseudo console support. Conditionally activating it only when a non-cygwin application is run
- New C11 threads API: call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock, mtx_timedlock, mtx_trylock, mtx_unlock, thrd_create, thrd_current, thrd_detach, thrd_equal, thrd_exit, thrd_join, thrd_sleep, thrd_yield, tss_create, tss_delete, tss_get, tss_set.
- In cygwin console, new thread which handles special keys/signals such as Ctrl-Z (VSUSP), Ctrl- (VQUIT), Ctrl-S (VSTOP), Ctrl-Q (VSTART) and SIGWINCH has been introduced. There have been a long standing issue that these keys/signals are handled only when app calls read() or select(). Now, these work even if app does not call read() or select().
- Fchmodat(2) now has limited support for the AT_SYMLINK_NOFOLLOW flag.
- Cygwin now recognizes native Windows AF_UNIX sockets (as regular files, not as socket files). This allows tools like 'ls' and 'rm' to work.

Changed:
- Allow ~5000 child processes per process on 64 bit, ~1200 child processes per process on 32 bit. So far, only 256 child processes per process were supported
- A few FAQ updates
- Have tmpfile(3) make use of Win32 FILE_ATTRIBUTE_TEMPORARY via open(2) flag O_TMPFILE
- Utilize Windows 10 1809 FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE flag to allow simpler unlink of files with DOS readonly flags set
- Getdtablesize(3), sysconf(_SC_OPEN_MAX), and getrlimit(RLIMIT_NOFILE) now return the true limit on the number of open descriptors, 3200. Previously they returned the current size of Cygwin's internal file descriptor table, which can grow dynamically.
- Facl(2) now fails with EBADF on a file opened with O_PATH
- Allow to start Windows Store executables via their "app execution aliases". Handle these aliases (which are special reparse points) as symlinks to the actual executables.

Fixed:
- Iterate at least 4 times over pthread_key_t destructors per POSIX
- The pthread_yield declaration in pthread is now visible by default or when defining _BSD_SOURCE, too
- Fix SEGV in modfl call
- Fix a collision of offical and internally used file flags
- Fix assertion failure on an invalid path under /proc//fd/
- Fix crash on stat(2)'ing /dev/ptmx on 32 bit
- Fix return value of sqrtl on negative infinity
- Fix a path handling problem if there is a WSL symlink in PATH
- Fix a bug in fstatat(2) on 32 bit that could cause it to return garbage
- Fix the errno when a path contains .. and the prefix exists but is not a directory
- Fix the return value when ptsname_r(3) is called with a bad file descriptor
- Fix path handling in case the Cygwin installation dir is accessed via a Windows junction point.
- Fix potential handle leaks when dup'ing descriptors
- Fix a bug that could cause fstat(2) to return incorrect results on a FIFO
- Fix some system calls on AF_LOCAL sockets that are not socket files
- Fix access to block devices under /proc/sys


Cygwin 3.1.7 (32-bit)
Fixed:
- Fix acl_get_* functions in 32-bit Cygwin (pointer sign extension)
- Fix select/poll issue in case a socket connect call fails.
- Fix multiple reader support for FIFOs
- Fix an mmap issue that could cause failure with errno EFBIG
- Fix the behavior of C++ apps after an unhandled exception (64-bit only)


Cygwin 3.1.6 (32-bit)
- This is mainly a bugfix release

What changed:
- Support more IPPROTO_TCP socket options: TCP_FASTOPEN, TCP_KEEPIDLE, TCP_KEEPCNT, TCP_KEEPINTVL, TCP_QUICKACK, TCP_USER_TIMEOUT

Bug Fixes:
- Fix IPPROTO_TCP option handling, especially in terms of TCP_MAXSEG
- Fix a buffer overrun in Cygwin-internal string comparison
- Fix microcode registry lookup for /proc/cpuinfo output


Cygwin 3.1.4 (32-bit)
- Allow symlinks to be opened with O_PATH | O_NOFOLLOW
- Allow the pathname argument to readlinkat(2) to be an empty string, provided the dirfd argument refers to a symlink opened with O_PATH | O_NOFOLLOW. The readlinkat call then operates on that symlink.
- Support the Linux-specific AT_EMPTY_PATH flag for fchownat(2) and fstatat(2)
- Allow AF_LOCAL sockets to be opened with O_PATH
- <signal.h>: New macro _NSIG replacing NSIG. NSIG is now only visible to MISC builds, as on Linux
- The new locale modifier @cjksingle allows enforcing of single-width character property for usually double-widthed characters. This will be supported by upcoming mintty releases. For the reasoning, see https://gitlab.freedesktop.org/terminal-wg/specifications/issues/9.

Bug Fixes:
- Define CPU_SETSIZE, as on Linux
- Fix a regression that prevented the root of a drive from being the Cygwin installation root
- Many fixes in new pseudo console support


Cygwin 3.1.2 (32-bit)
- Change log not available for this version


Cygwin 3.1.1 (32-bit)
- This is a bugfix release. Due to an oversight, Cygwin 3.1.0 does not run on Windows Vista and Windows Server 2008. Cygwin 3.1.1 fixes that


Cygwin 3.0.7 (32-bit)
- Change log not available for this version


Cygwin 3.0.6 (32-bit)
- Change log not available for this version


Cygwin 3.0.5 (32-bit)
- Fix /proc/version after uname change
- Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00467.html
- Fix a crash in wcsxfrm_l if destination size is 0.
- Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00492.html
- Fix a problem in process enumeration which led to `ps -W' showing Cygwin processes twice and potentially with incorrect Windows PID. Addresses: Report on IRC


Cygwin 3.0.3 (32-bit)
- Change log not available for this version


Cygwin 3.0.1 (32-bit)

New:
- New API: secure_getenv

Bug Fixes:
- Relax fork child permissions to avoid a potential fork failure
- Fix Command-line argument handling of kill(1) in terms of negative PID. Addresses: report on IRC
- Fix an accidentally introduced O_TEXT handling of pipes inherited from native Windows processes
- Re-enable creating user token from scratch in seteuid to allow user context switch on old systems not supporting MsV1_0S4ULogon


Cygwin 2.10.0 (32-bit)

New:
- New open(2) flags O_TMPFILE and O_NOATIME
- scanf/wscanf now handle the POSIX %m modifier
- scanf now handles the %l[ conversion
- Improved hostprogs compatibility for cross-compiling the Linux kernel
- New headers: <asm/bitsperlong.h>, <asm/posix_types.h>
- Built-in implementation of Stack Smashing Protection compiler feature
- New APIs: __stack_chk_fail, __stack_chk_guard
- Built-in implementation of POSIX.1-2001 message catalog support
- New APIs: catclose, catgets, catopen. New tool: gencat
- New APIs: sigtimedwait, wmempcpy

What changed:
- Standard headers no longer use macros to support K&R C
- confstr(3) and getconf(1) accept LFS_CFLAGS, LFS_LDFLAGS, etc
- The __always_inline and __nonnull macros in <sys/cdefs.h> are now compatible with glibc
- Feature Test Macros improvements in <fcntl.h>, <limits.h>, <netdb.h>, <strings.h>, and <unistd.h>

Bug Fixes:
- Fix a problem in unlink on NFS
- Addresses: Shows up in GAWK testsuite test "testext"
- Fix errno setting bug in posix_fadvise and posix_fallocate
- Fix two bugs in the limit of large numbers of sockets
- Fix a fork failure with private anonymous mmaps
- Remove a call to fflush from ftell{o}, which may result in wrong offsets
- Fix file pointer computation after short writes on block devices

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe