mirror of
https://github.com/python/cpython.git
synced 2024-12-01 05:45:40 +08:00
4643bd9a9c
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.
25 lines
560 B
C
25 lines
560 B
C
/* Minimal main program -- everything is loaded from the library */
|
|
|
|
#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);
|
|
}
|