void-packages/srcpkgs/openexr/patches/musl-_fpstate.patch

22 lines
732 B
Diff

--- a/IlmBase/IexMath/IexMathFpu.cpp 2019-12-01 15:42:08.143387128 +0100
+++ b/IlmBase/IexMath/IexMathFpu.cpp 2019-12-01 15:43:02.402389927 +0100
@@ -281,10 +281,18 @@
inline void
restoreControlRegs (const ucontext_t & ucon, bool clearExceptions)
{
+#if defined(__GLIBC__) || defined(__i386__)
setCw ((ucon.uc_mcontext.fpregs->cw & cwRestoreMask) | cwRestoreVal);
+#else
+ setCw ((ucon.uc_mcontext.fpregs->cwd & cwRestoreMask) | cwRestoreVal);
+#endif
_fpstate * kfp = reinterpret_cast<_fpstate *> (ucon.uc_mcontext.fpregs);
+#if defined(__GLIBC__) || defined(__i386__)
setMxcsr (kfp->magic == 0 ? kfp->mxcsr : 0, clearExceptions);
+#else
+ setMxcsr (kfp->mxcsr, clearExceptions);
+#endif
}
#endif