summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/696834
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/launchpad-without-comments/696834')
-rw-r--r--results/scraper/launchpad-without-comments/69683431
1 files changed, 31 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/696834 b/results/scraper/launchpad-without-comments/696834
new file mode 100644
index 000000000..348fdcebc
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/696834
@@ -0,0 +1,31 @@
+FP exception reporting not working on NetBSD host
+
+I recognize that NetBSD is not one of the officially supported host OS.  However, qemu 0.13.0 is available in the NetBSD pkgsrc collection, and works quite well.  Well, with one exception (pun intended): It seems that Floating Point exceptions don't get reported properly.
+
+The following code-snippet demonstrates the problem:
+
+
+volatile int flt_signal = 0;
+
+static sigjmp_buf sigfpe_flt_env;
+static void
+sigfpe_flt_action(int signo, siginfo_t *info, void *ptr)
+{
+        flt_signal++;
+}
+
+void trigger(void)
+{               
+        struct sigaction sa;
+        double d = strtod("0", NULL);
+        
+        if (sigsetjmp(sigfpe_flt_env, 0) == 0) {
+                sa.sa_flags = SA_SIGINFO;
+                sa.sa_sigaction = sigfpe_flt_action;
+                sigemptyset(&sa.sa_mask);
+                sigaction(SIGFPE, &sa, NULL);
+                fpsetmask(FP_X_INV|FP_X_DZ|FP_X_OFL|FP_X_UFL|FP_X_IMP);
+                printf("%g\n", 1 / d);
+        }
+        printf("FPE signal handler invoked %d times.\n");
+}
\ No newline at end of file