|
From: Dave G. <go...@mc...> - 2010-12-10 19:57:19
|
On Dec 10, 2010, at 12:09 PM CST, Tom Hughes wrote: > On 10/12/10 17:50, Maynard Johnson wrote: > >> The generated code is apparently incorrect, but we got no joy when our resident gcc person reported this to other gcc community folk. We were told that these functions are for internal gcc use only -- and also that doing a longjmp out of a signal handler is "undefined" by the POSIX standard. So far, I've only seen problems occur in cases where the longjmp is performed out of a signal handler. > > My reading of POSIX is that it is well defined to longjmp from a signal > handler so long as it is not a nested signal handler. See here: > > http://www.opengroup.org/onlinepubs/009695399/functions/longjmp.html Tom, I interpret that passage as you do, but Valgrind isn't calling those functions. It's calling the GCC builtins, presumably to avoid calling normal libc routines. Based on what Maynard said, I'm guessing that the gcc versions aren't playing nicely with whatever glibc normally does for signal handling. Maynard, what does your fix look like? -Dave |