Copy the fix for floating point exceptions on FreeBSD from Python's
Module/python.c.
#include <stdio.h>
#include <stdlib.h>
+#ifdef __FreeBSD__
+#include <floatingpoint.h>
+#endif
+
#if PY_MAJOR_VERSION < 3
# define MODINIT(name) init ## name
#else
int r = 0;
""",
print """\
+ /* 754 requires that FP exceptions run in "no stop" mode by default,
+ * and until C vendors implement C99's ways to control FP exceptions,
+ * Python requires non-stop mode. Alas, some platforms enable FP
+ * exceptions by default. Here we disable them.
+ */
+#ifdef __FreeBSD__
+ fp_except_t m;
+
+ m = fpgetmask();
+ fpsetmask(m & ~FP_X_OFL);
+#endif
if (PyImport_ExtendInittab(inittab)) {
fprintf(stderr, "No memory\\n");
exit(1);