Mail Archives: cygwin/2009/07/22/04:24:49
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 -