[ANNOUNCEMENT] Updated for 32-bit, new for 64-bit: libsigsegv-2.10-2

Eric Blake eblake@redhat.com
Sat Jul 18 18:18:00 GMT 2015

On 07/17/2015 05:22 PM, Eric Blake (cygwin) wrote:
> A new release of libsigsegv, 2.10-2, will soon be available for download
> from your favorite mirror.  On 32-bit cygwin, this leaves 2.10-1 as
> previous; on 64-bit cygwin, it is a new port of the package, made
> possible for the first time by new sigaltstack() code in cygwin 2.1.0.

Oddly enough, this new library actually causes a regression in 32-bit m4
- with libsigsegv-2.10-1, I get stack overflow handling, but with -2,
attempting to register the handler fails and m4 ends up dumping core on
stack overflow.  But it's not quite libsigsegv's fault.  m4 was
originally creating an alternate stack of 16k in size, based on a pure
guess that it would be large enough (since the headers didn't declare
any constant otherwise); but cygwin's sigaltstack() requires an
alternate stack of 64k or larger.

I see a couple of options:

1. see if we can relax cygwin.dll to live with a 16k alternate stack

2. recompile every application that linked against libsigsegv to make
use of cygwin's new constants (at least those applications like m4 that
were using shared gnulib code to guess at the right stack size will now
guess correctly, hand a larger stack to libsigsegv, and libsigsegv can
then just use sigaltstack() as desired)

3. recompile libsigsegv for 32-bit to put in a hack: if the stack size
passed by the caller is < 64k but >= 16k, then fall back to the older
back-door Windows native stack overflow handling.

Option 1 is risky and might not be possible; option 2 will happen
eventually, but option 3 seems like the smoothest way to avoid breaking
things while waiting to reach the point of option 2.  Of course, if we
can get all maintainers to rebuild, then option 3 is wasted effort.

How many applications would need to be rebuilt?  I see:

diffutils [me]
m4 [me]
clisp [Ken Brown]

and nothing else mentioning libsigsegv in 32-bit setup.hints.

Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20150718/15b30a8d/attachment.sig>

More information about the Cygwin-apps mailing list