Updated: cygwin-1.7.7-1

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Aug 31 09:01:00 GMT 2010

Hi Cygwin friends and users,

I just released 1.7.7-1.  This release fixes a bunch of bugs, some of
them freshly introduced with 1.7.6.  It also introduces a very few
number of new features.

Most notably it partially reverts a backward incompatibility which
affects Cygwin applications which also call native Win32 functions to do
part of their job.

Unfortunately this goes hand in hand with a regression, kind of.  So far
it was possible in Cygwin 1.7.x to remove a directory which was the
current working directory (CWD) of another Cygwin process, or even the
CWD of the process itself.  This Linux-like feature had to be dropped,
because the implementation could result in strange handle problems on
Vista and later, and the workaround in 1.7.6 introduced more problems
than anticipated.

So we're back to Win32-like behaviour, which is, rmdir returns with
"Device or resource busy" when trying to remove a directory which is CWD
of a Cygwin process.  Fortunately this behaviour is covered and
explicitely allowed by the POSIX standard, so we're still on firm
ground, standards-wise.

I think this goes without saying, but please have another look into the
documentation at http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html.  It
contains a couple of improvements and the description for new features
and changes from old behaviour.

What's new since Cygwin 1.7.6:

- Make sure to follow the Microsoft security advisory concerning DLL
  hijacking. http://www.microsoft.com/technet/security/advisory/2269637.mspx

- Allow to link against -lbinmode instead of /lib/binmode.o.  Same for
  -ltextmode, -ltextreadmode and -lautomode.  See

- BSD macros in endian.h (htobe16, le32toh, etc).

What changed since Cygwin 1.7.6:

- 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.  See the reworked

- A crash in a virtual directory (/proc, /cygdrive, //) does not
  produce a stackdump file in some unrelated directory anymore.

- Improve d_type info in dirent structure.

- /proc/partitions now prints entire partition layout also for
  non-privileged users.

- cygcheck now prefers the \\?\X: DOS device name over every other
  available device name for a harddisk.

Bugfixes since Cygwin 1.7.6:

- Avoid accidental usage of buggy newlib version of wcsncpy.

- Set st_rdev stat member for filesystem-based device nodes correctly.

- Fix bug in statvfs et al. which returned incorrect information for
  volume mount points.

- Close handle leak when following symlinks.

- Fix problem with mount options when using the mount(1) command to
  create new, session-temporary mount points.

- Workaround a bug in Tru64 filesystems.

- Fix long-standing problem that calling select(2) on /dev/windows hangs
  for timeout, if no new messages arrived in the message queue since the
  last call to select.

- Fix pathname problem in ldd.

Have fun,


If you want to unsubscribe from the cygwin-announce mailing list, look
at the "List-Unsubscribe: " tag in the email header of this message.
Send email to the address specified there.  It will be in the format:


If you need more information on unsubscribing, start reading here:


Please read *all* of the information on unsubscribing that is available
starting at this URL.

Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.

More information about the Cygwin-announce mailing list