ports/math/R/files/patch-src_unix_sys-unix.c
Piotr Kubaj 96bac3a611 math/R: remove obsolete fpsetmask
src/unix/sys-unix.c uses fpsetmask to workaround a bug that is not present since FreeBSD 4.0.

This issue also affected Firefox and was resolved 9 years ago https://bugzilla.mozilla.org/show_bug.cgi?id=789436#c27

fpsetmask executions cause R build to crash on powerpc64(le), since new SIGFPE kernel code doesn't take into account old workarounds.

PR:		254621
Approved by:	jrm (maintainer)
2021-03-28 11:59:03 +00:00

34 lines
912 B
C

--- src/unix/sys-unix.c.orig 2021-03-28 00:59:38 UTC
+++ src/unix/sys-unix.c
@@ -909,12 +909,6 @@ void R_ProcessEvents(void)
* helpers for start-up code
*/
-#ifdef __FreeBSD__
-# ifdef HAVE_FLOATINGPOINT_H
-# include <floatingpoint.h>
-# endif
-#endif
-
/* patch from Ei-ji Nakama for Intel compilers on ix86.
From http://www.nakama.ne.jp/memo/ia32_linux/R-2.1.1.iccftzdaz.patch.txt.
Since updated to include x86_64.
@@ -928,9 +922,6 @@ void R_ProcessEvents(void)
void fpu_setup(Rboolean start)
{
if (start) {
-#ifdef __FreeBSD__
- fpsetmask(0);
-#endif
#if (defined(__i386) || defined(__x86_64)) && defined(__INTEL_COMPILER) && __INTEL_COMPILER > 800
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_OFF);
@@ -953,8 +944,5 @@ void fpu_setup(Rboolean start)
asm volatile("msr fpcr, %0" : : "r"(fpcr));
#endif
} else {
-#ifdef __FreeBSD__
- fpsetmask(~0);
-#endif
}
}