delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/07/22/04:24:49

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <loom.20090717T144655-62@post.gmane.org>
References: <20090715185636 DOT GA16211 AT ednor DOT casa DOT cgf DOT cx> <4A5F59A1 DOT 1060902 AT gmail DOT com> <20090716195552 DOT GU27613 AT calimero DOT vinschen DOT de> <20090716211823 DOT GC22617 AT ednor DOT casa DOT cgf DOT cx> <20090717085727 DOT GW27613 AT calimero DOT vinschen DOT de> <4A607EE5 DOT 5050306 AT gmail DOT com> <20090717134114 DOT GX27613 AT calimero DOT vinschen DOT de> <loom DOT 20090717T140900-805 AT post DOT gmane DOT org> <4A608C72 DOT 2010504 AT gmail DOT com> <loom DOT 20090717T144655-62 AT post DOT gmane DOT org>
Date: Wed, 22 Jul 2009 10:24:34 +0200
Message-ID: <6910a60907220124p1e4fed27kc82869cad4b0f88b@mail.gmail.com>
Subject: Re: libsigsegv error handling (was: perl threads on 2008 R2 64bit)
From: Reini Urban <rurban AT x-ray DOT at>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

2009/7/17 Eric Blake:
> Dave Korn writes:
>
>> =A0 That looks fairly robust to me, shouldn't give us any problems. =A0Q=
uestion
>> is, what does the code that hooks and unhooks the exception handler look=
 like,
>> and where does it get called from?
>
> static void
> do_install_main_exception_filter ()
> {
> =A0/* We cannot insert any handler into the chain, because such handlers
> =A0 =A0 must lie on the stack (?). =A0Instead, we have to replace(!) Cygw=
in's
> =A0 =A0 global exception handler. =A0*/
> =A0cygwin_exception_handler =3D _except_list->handler;
> =A0_except_list->handler =3D libsigsegv_exception_handler;
> }
>
> static void
> install_main_exception_filter ()
> {
> =A0static int main_exception_filter_installed =3D 0;
>
> =A0if (!main_exception_filter_installed)
> =A0 =A0{
> =A0 =A0 =A0do_install_main_exception_filter ();
> =A0 =A0 =A0main_exception_filter_installed =3D 1;
> =A0 =A0}
> }
>
> It looks like it is installed, never uninstalled. =A0And although the cur=
rent
> release of libsigsegv is a static-only library, Bruno is proud of the fac=
t that
> his libsigsegv package can be provided as a dynamic library even on cygwi=
n (in
> other words, the current cygwin maintainer of the libsigsegv package could
> decide to pass the right configure options to make libsigsegv a .dll, at =
which
> point a rebuild of m4 would then be subject to issues of a .dll playing w=
ith
> the exception filter).

Good catch! I'll try the dll ASAP
(putting clisp-2.48, parrot-1.4.0 and postgresql-8.4.0 back in the pipeline)

> Is there a chance that this represents a bug in
> libsigsegv SEH handling that needs to be reported upstream?

I'll report that, if it turns out so.
--=20
Reini Urban
http://phpwiki.org/           http://murbreak.at/

--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019