This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: libsigsegv error handling (was: perl threads on 2008 R2 64bit)
2009/7/17 Eric Blake:
> Dave Korn writes:
>
>> ? That looks fairly robust to me, shouldn't give us any problems. ?Question
>> 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 ()
> {
> ?/* We cannot insert any handler into the chain, because such handlers
> ? ? must lie on the stack (?). ?Instead, we have to replace(!) Cygwin's
> ? ? global exception handler. ?*/
> ?cygwin_exception_handler = _except_list->handler;
> ?_except_list->handler = libsigsegv_exception_handler;
> }
>
> static void
> install_main_exception_filter ()
> {
> ?static int main_exception_filter_installed = 0;
>
> ?if (!main_exception_filter_installed)
> ? ?{
> ? ? ?do_install_main_exception_filter ();
> ? ? ?main_exception_filter_installed = 1;
> ? ?}
> }
>
> It looks like it is installed, never uninstalled. ?And although the current
> release of libsigsegv is a static-only library, Bruno is proud of the fact that
> his libsigsegv package can be provided as a dynamic library even on cygwin (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 with
> 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.
--
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