TEST RELEASE: Cygwin 2.2.0-0.3
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.
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
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,
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
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
More information about the Cygwin-announce