openexr: enable on gcc2.

This commit is contained in:
Kacper Kasper
2017-12-16 13:24:23 +01:00
parent 524bcc8abc
commit 3e723d2951
4 changed files with 477 additions and 4 deletions

View File

@@ -12,11 +12,15 @@ LICENSE="BSD (3-clause)"
COPYRIGHT="2002-2014 Industrial Light & Magic"
SOURCE_URI="http://download.savannah.nongnu.org/releases/openexr/ilmbase-$portVersion.tar.gz"
CHECKSUM_SHA256="ecf815b60695555c1fbc73679e84c7c9902f4e8faa6e8000d2f905b8b86cedc7"
REVISION="4"
REVISION="5"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
if [ $effectiveTargetArchitecture = "x86_gcc2" ]; then
PATCHES="ilmbase-2.2.0.patchset"
fi
PROVIDES="
ilmbase$secondaryArchSuffix = $portVersion
lib:libhalf$secondaryArchSuffix = 12.0.0 compat >= 12

View File

@@ -0,0 +1,167 @@
From 253c255d474d66d6a7c6807ce0deb4ada9022659 Mon Sep 17 00:00:00 2001
From: Kacper Kasper <kacperkasper@gmail.com>
Date: Sat, 16 Dec 2017 10:52:53 +0100
Subject: gcc2 support
diff --git a/Half/eLut.cpp b/Half/eLut.cpp
index ce64b50..8deed8b 100644
--- a/Half/eLut.cpp
+++ b/Half/eLut.cpp
@@ -110,5 +110,6 @@ main ()
}
cout << "};\n";
+ cout.flush();
return 0;
}
diff --git a/Half/toFloat.cpp b/Half/toFloat.cpp
index 001bc51..fd50b84 100644
--- a/Half/toFloat.cpp
+++ b/Half/toFloat.cpp
@@ -135,7 +135,7 @@ int
main ()
{
cout.precision (9);
- cout.setf (ios_base::hex, ios_base::basefield);
+ cout.setf (ios::hex, ios::basefield);
cout << "//\n"
"// This is an automatically generated file.\n"
@@ -160,5 +160,6 @@ main ()
}
cout << "};\n";
+ cout.flush();
return 0;
}
diff --git a/Iex/IexBaseExc.cpp b/Iex/IexBaseExc.cpp
index 3b2e197..2fcf602 100644
--- a/Iex/IexBaseExc.cpp
+++ b/Iex/IexBaseExc.cpp
@@ -151,6 +151,6 @@ iex_debugTrap()
{
// how to in Linux?
if (0 != ::getenv("IEXDEBUGTHROW"))
- __builtin_trap();
+ abort();
}
#endif
diff --git a/IexMath/IexMathFpu.h b/IexMath/IexMathFpu.h
index df2a3e5..c6ae73b 100644
--- a/IexMath/IexMathFpu.h
+++ b/IexMath/IexMathFpu.h
@@ -69,7 +69,9 @@ int fpExceptions ();
// that will be called when SIGFPE occurs.
//------------------------------------------
-extern "C" typedef void (* FpExceptionHandler) (int type, const char explanation[]);
+extern "C" {
+ typedef void (* FpExceptionHandler) (int type, const char explanation[]);
+}
void setFpExceptionHandler (FpExceptionHandler handler);
diff --git a/Imath/ImathMatrix.h b/Imath/ImathMatrix.h
index 3e96c2f..533ad26 100644
--- a/Imath/ImathMatrix.h
+++ b/Imath/ImathMatrix.h
@@ -3242,6 +3242,8 @@ Matrix44<T>::shear (const Shear6<S> &h)
// Implementation of stream output
//--------------------------------
+#define ios_base ios
+
template <class T>
std::ostream &
operator << (std::ostream &s, const Matrix33<T> &m)
@@ -3320,6 +3322,7 @@ operator << (std::ostream &s, const Matrix44<T> &m)
return s;
}
+#undef ios_base
//---------------------------------------------------------------
// Implementation of vector-times-matrix multiplication operators
diff --git a/Imath/ImathVec.h b/Imath/ImathVec.h
index fb859eb..5fa0e91 100644
--- a/Imath/ImathVec.h
+++ b/Imath/ImathVec.h
@@ -126,9 +126,6 @@ template <class T> class Vec2
template <class S>
bool operator == (const Vec2<S> &v) const;
- template <class S>
- bool operator != (const Vec2<S> &v) const;
-
//-----------------------------------------------------------------------
// Compare two vectors and test if they are "approximately equal":
@@ -339,9 +336,6 @@ template <class T> class Vec3
template <class S>
bool operator == (const Vec3<S> &v) const;
- template <class S>
- bool operator != (const Vec3<S> &v) const;
-
//-----------------------------------------------------------------------
// Compare two vectors and test if they are "approximately equal":
//
@@ -524,9 +518,6 @@ template <class T> class Vec4
template <class S>
bool operator == (const Vec4<S> &v) const;
- template <class S>
- bool operator != (const Vec4<S> &v) const;
-
//-----------------------------------------------------------------------
// Compare two vectors and test if they are "approximately equal":
@@ -969,14 +960,6 @@ Vec2<T>::operator == (const Vec2<S> &v) const
return x == v.x && y == v.y;
}
-template <class T>
-template <class S>
-inline bool
-Vec2<T>::operator != (const Vec2<S> &v) const
-{
- return x != v.x || y != v.y;
-}
-
template <class T>
bool
Vec2<T>::equalWithAbsError (const Vec2<T> &v, T e) const
@@ -1432,14 +1415,6 @@ Vec3<T>::operator == (const Vec3<S> &v) const
return x == v.x && y == v.y && z == v.z;
}
-template <class T>
-template <class S>
-inline bool
-Vec3<T>::operator != (const Vec3<S> &v) const
-{
- return x != v.x || y != v.y || z != v.z;
-}
-
template <class T>
bool
Vec3<T>::equalWithAbsError (const Vec3<T> &v, T e) const
@@ -1853,14 +1828,6 @@ Vec4<T>::operator == (const Vec4<S> &v) const
return x == v.x && y == v.y && z == v.z && w == v.w;
}
-template <class T>
-template <class S>
-inline bool
-Vec4<T>::operator != (const Vec4<S> &v) const
-{
- return x != v.x || y != v.y || z != v.z || w != v.w;
-}
-
template <class T>
bool
Vec4<T>::equalWithAbsError (const Vec4<T> &v, T e) const
--
2.15.0