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 -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple