Hello,

Fedora Linux is applying a bunch of patches to ilmbase which probably
should be included / reviewed upstream:

ilmbase-1.0.3-secondary.patch
# the FPU exception code is x86 specific - This should fix building on
# no-x86 archs.

ilmbase-1.0.3-ucontext.patch
# fix build on i686/32bit
# https://github.com/openexr/openexr/issues/3

They also revert the soname bump in 1.0.3:
# revert soname bump
# upstream missed bumping to so7 for OpenEXR-1.7.0, decided to do so now for
# OpenEXR-1.7.1.  given fedora has shipped OpenEXR-1.7.0 since f15, bumping
# ABI now makes little sense.

Even with these patches ilmbase testsuite still fails on ix86, though.
<https://github.com/openexr/openexr/issues/3#issuecomment-7469236>
cu andreas

<git://pkgs.fedoraproject.org/ilmbase.git>
-- 
`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'
diff -up ilmbase-1.0.3/IexMath/IexMathFpu.cpp.secondary ilmbase-1.0.3/IexMath/IexMathFpu.cpp
--- ilmbase-1.0.3/IexMath/IexMathFpu.cpp.secondary	2012-09-04 10:26:55.000000000 +0200
+++ ilmbase-1.0.3/IexMath/IexMathFpu.cpp	2012-09-04 10:27:20.000000000 +0200
@@ -27,7 +27,7 @@
 #endif
 
 
-#ifdef HAVE_UCONTEXT_H
+#if defined(HAVE_UCONTEXT_H) && (defined(__x86_64__) || defined(__i386__))
 
 
 #include <ucontext.h>
diff -up ilmbase-1.0.3/configure.ac.so6 ilmbase-1.0.3/configure.ac
--- ilmbase-1.0.3/configure.ac.so6	2012-07-30 17:06:57.000000000 -0500
+++ ilmbase-1.0.3/configure.ac	2012-08-05 21:22:35.519448537 -0500
@@ -8,7 +8,7 @@ AM_INIT_AUTOMAKE(1.6.3)  dnl Require aut
 AM_MAINTAINER_MODE
 
 
-LIBTOOL_CURRENT=7
+LIBTOOL_CURRENT=6
 LIBTOOL_REVISION=0
 LIBTOOL_AGE=0
 LIBTOOL_VERSION=$LIBTOOL_CURRENT:$LIBTOOL_REVISION:$LIBTOOL_AGE
diff -up ilmbase-1.0.3/IexMath/IexMathFpu.cpp.ucontext ilmbase-1.0.3/IexMath/IexMathFpu.cpp
--- ilmbase-1.0.3/IexMath/IexMathFpu.cpp.ucontext	2012-07-26 20:51:55.000000000 +0200
+++ ilmbase-1.0.3/IexMath/IexMathFpu.cpp	2012-08-02 23:33:14.815036891 +0200
@@ -228,6 +228,7 @@ clearExceptions ()
 const uint16_t cwRestoreMask = ~((3 << 10) | (3 << 8));
 const uint16_t cwRestoreVal = (0 << 10) | (3 << 8);
 
+#if 0
 inline void
 restoreControlRegs (const ucontext_t & ucon, bool clearExceptions)
 {
@@ -235,7 +236,7 @@ restoreControlRegs (const ucontext_t & u
     setMxcsr (ucon.uc_mcontext.fpregs->mxcsr, clearExceptions);
 }
 
-#if 0
+#endif
 
 //
 // Ugly, the mxcsr isn't defined in GNU libc ucontext_t, but
@@ -255,7 +256,6 @@ restoreControlRegs (const ucontext_t & u
     setMxcsr (kfp->magic == 0 ? kfp->mxcsr : 0, clearExceptions);
 }
 
-#endif
 
 } // namespace FpuControl
 
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to