[Python-checkins] python/dist/src/Modules python.c,2.7,2.8
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Sat, 28 Dec 2002 13:56:10 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv11412/python/Modules
Modified Files:
python.c
Log Message:
Apparently FreeBSD enables some HW floating-point exceptions by default.
This can cause core dumps when Python runs. Python relies on the 754-
(and C99-) mandated default "non-stop" mode for FP exceptions. This
patch from Ben Laurie disables at least one FP exception on FreeBSD at
Python startup time.
Index: python.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/python.c,v
retrieving revision 2.7
retrieving revision 2.8
diff -C2 -d -r2.7 -r2.8
*** python.c 2 Aug 2002 02:27:13 -0000 2.7
--- python.c 28 Dec 2002 21:56:08 -0000 2.8
***************
*** 3,9 ****
--- 3,24 ----
#include "Python.h"
+ #ifdef __FreeBSD__
+ #include <floatingpoint.h>
+ #endif
+
int
main(int argc, char **argv)
{
+ /* 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
return Py_Main(argc, argv);
}