TEST RELEASE: Cygwin 2.2.0-0.3

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Jul 23 19:29:00 GMT 2015


Hi Cygwin friends and users,


I released a new TEST version of Cygwin.  The version number is 2.2.0-0.3.

This test release needs some more good old-fashioned testing.

New, user-visible change:

- When started from a non-Cygwin process, check if $HOME starts with a
  slash (absolute POSIX path).  Otherwise ignore it.
  Addresses: https://cygwin.com/ml/cygwin/2015-07/msg00344.html

There was also a bugfix in the trampoline function installed by
makecontext.  On x86_64, the function missed to install shadow space for
the argument registers as required by the MS ABI.  As a result, using
makecontext could suffer a buffer overflow.  Thanks to Glibc's
tst-makecontext2 testcase.

On the plus side, with this patch, the entire glibc testsuite for
setcontext/makecontext now succeeds.


While the other new features in this release are only interesting to
developers again, there's an intrusive under-the-hood change which just
needs testing in as many scenarios as possible.

==================================== tl;dr ==================================

Details aside, the interesting thing here is plain and simple this:
Does your stuff still work as with 2.1.0?  No regression?

============================================================================

The boring details:

  The under-the-hood change is this:  Certain functions in Cygwin were
  using very big buffers (32K, 64K, and more) on the stack.  While this
  is not much of a problem with the normal stacksize of 2 Megs, it's
  been a lot of stack pressure on an application-provided patch.  Yada,
  yada.

For devs only:

  NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
  POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
  adds sigsetjmp and siglongjmp functions.

  2.2.0 comes with four new functions:  getcontext, setcontext,
  makecontext and swapcontext.

  My own testing included two very simple self-written STCs, as well
  as the example code from http://linux.die.net/man/3/makecontext, as
  well as the glibc testcases for setcontext and makecontext.
  
  As with the sigaltstack stuff, I'd be grateful if curious developers
  would give this implementation a test.  If it doesn't work as desired,
  please consider to create simple reproduces in plain C.

  Discussing aspects of this implementation may be best handled on the
  cygwin-developers mailing list or the #cygwin-developers IRC channel
  on Freenode.


Have fun,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat



More information about the Cygwin-announce mailing list