On 2015-07-22 Steven Chamberlain <ste...@pyro.eu.org> wrote: [...] > I see that FreeBSD Ports has ilmbase-2.20 and succeeded building > libIexMath, yet they don't seem to have patched this source file. > I should try building it on a real FreeBSD system, to compare the > build log with that of a GNU/kFreeBSD system.
IexMath/IexMathFpu.cpp static inline void setCw (uint16_t cw) { asm volatile ("fldcw %0" : : "m" (cw) ); } [...] static inline void setMxcsr (uint32_t mxcsr, bool clearExceptions) { mxcsr &= clearExceptions ? 0xffffffc0 : 0xffffffff; asm volatile ("ldmxcsr %0" : : "m" (mxcsr) ); } [...] #ifdef ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT inline void restoreControlRegs (const ucontext_t & ucon, bool clearExceptions) { setCw ((ucon.uc_mcontext.fpregs->cwd & cwRestoreMask) | cwRestoreVal); setMxcsr (ucon.uc_mcontext.fpregs->mxcsr, clearExceptions); } #else [ the failing code ] and while autoconf tests for ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT with -------------------------------- AC_MSG_CHECKING(for fpe support handling) control_register_support="no" AC_TRY_COMPILE([ #include <stdint.h> #include <ucontext.h> ],[ ucontext_t ucon; uint32_t mxcsr = ucon.uc_mcontext.fpregs->mxcsr; uint16_t cw = ucon.uc_mcontext.fpregs->cwd; ], AC_DEFINE(ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT) control_register_support=yes) AC_MSG_RESULT($control_register_support) -------------------------------- This test fails on kfreebsd-x (and also on e.g. i386). the respective part of the cmake setup simply looks like this: IF (WIN32) [...] ELSE () IF (APPLE) [...] ELSE () FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/IlmBaseConfig.h "#define ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT 1\n") ENDIF () ENDIF () FreeBSD Ports uses cmake instead of autoconf (which Debian uses) and therefore ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT is #defined. I do not know whether a) the autoconf test for ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT is broken and should actually succeed and kfreebsd (and any other Debian architecture or b) the cmake setup is broken and incorrecty enables ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT and causes broken code. cu Andreas -- `What a good friend you are to him, Dr. Maturin. His other friends are so grateful to you.' `I sew his ears on from time to time, sure' -- To UNSUBSCRIBE, email to debian-bsd-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150808163033.ga1...@downhill.g.la