From: Julian Seward Date: Tue, 28 Feb 2006 13:05:00 +0000 (+0000) Subject: Partial merge of r5662 (Fix CPU feature identification for ppc32) X-Git-Tag: svn/VALGRIND_3_1_1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdc6921041d4714428bbbc5fd7931d4c62a34446;p=thirdparty%2Fvalgrind.git Partial merge of r5662 (Fix CPU feature identification for ppc32) git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_1_BRANCH@5703 --- diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c index 8c3d096935..8b0469ac31 100644 --- a/coregrind/m_machine.c +++ b/coregrind/m_machine.c @@ -341,8 +341,12 @@ Bool VG_(machine_get_hwcaps)( void ) VG_(sigaction)(VKI_SIGILL, NULL, &saved_act); tmp_act = saved_act; + /* NODEFER: signal handler does not return (from the kernel's + point of view), hence if it is to successfully catch a signal + more than once, we need the NODEFER flag. */ tmp_act.sa_flags &= ~VKI_SA_RESETHAND; tmp_act.sa_flags &= ~VKI_SA_SIGINFO; + tmp_act.sa_flags |= VKI_SA_NODEFER; tmp_act.ksa_handler = handler_sigill; VG_(sigaction)(VKI_SIGILL, &tmp_act, NULL);