- Fix build with base gcc on 8.x and 9.x, remove USE_GCC
PR: 196712 Approved by: mandree (maintainer)
This commit is contained in:
parent
61a09f984f
commit
cef8dde6cd
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=383631
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= OpenEXR
|
||||
PORTVERSION= 2.2.0
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= graphics devel
|
||||
MASTER_SITES= SAVANNAH/openexr/:dist \
|
||||
LOCAL/mandree/:test
|
||||
@ -49,13 +49,6 @@ LARGE_STACK_CONFIGURE_ENABLE= large-stack
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# If default compiler is GCC, upgrade it because
|
||||
# g++ 4.2 is too old to auto-upgrade 0xffffffffffffffffl to
|
||||
# a long long integer constant - and has likely more issues.
|
||||
.if ${COMPILER_TYPE} == gcc
|
||||
USE_GCC= yes
|
||||
.endif
|
||||
|
||||
MAJORVER= 2_2
|
||||
VER= 22
|
||||
|
||||
|
47
graphics/OpenEXR/files/patch-IlmImf_ImfFastHuf.cpp
Normal file
47
graphics/OpenEXR/files/patch-IlmImf_ImfFastHuf.cpp
Normal file
@ -0,0 +1,47 @@
|
||||
--- IlmImf/ImfFastHuf.cpp.orig 2014-08-10 08:23:56.000000000 +0400
|
||||
+++ IlmImf/ImfFastHuf.cpp 2015-04-08 00:10:07.536640000 +0300
|
||||
@@ -107,7 +107,7 @@
|
||||
for (int i = 0; i <= MAX_CODE_LEN; ++i)
|
||||
{
|
||||
codeCount[i] = 0;
|
||||
- base[i] = 0xffffffffffffffffL;
|
||||
+ base[i] = 0xffffffffffffffffULL;
|
||||
offset[i] = 0;
|
||||
}
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
|
||||
for (int i = 0; i <= MAX_CODE_LEN; ++i)
|
||||
{
|
||||
- if (base[i] != 0xffffffffffffffffL)
|
||||
+ if (base[i] != 0xffffffffffffffffULL)
|
||||
{
|
||||
_ljBase[i] = base[i] << (64 - i);
|
||||
}
|
||||
@@ -362,7 +362,7 @@
|
||||
// Unused code length - insert dummy values
|
||||
//
|
||||
|
||||
- _ljBase[i] = 0xffffffffffffffffL;
|
||||
+ _ljBase[i] = 0xffffffffffffffffULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@
|
||||
|
||||
int minIdx = TABLE_LOOKUP_BITS;
|
||||
|
||||
- while (minIdx > 0 && _ljBase[minIdx] == 0xffffffffffffffffL)
|
||||
+ while (minIdx > 0 && _ljBase[minIdx] == 0xffffffffffffffffULL)
|
||||
minIdx--;
|
||||
|
||||
if (minIdx < 0)
|
||||
@@ -427,7 +427,7 @@
|
||||
// Set the min value such that the table is never tested.
|
||||
//
|
||||
|
||||
- _tableMin = 0xffffffffffffffffL;
|
||||
+ _tableMin = 0xffffffffffffffffULL;
|
||||
}
|
||||
else
|
||||
{
|
@ -1,25 +1,29 @@
|
||||
--- IlmImf/ImfSystemSpecific.cpp.orig 2014-08-10 04:23:57 UTC
|
||||
+++ IlmImf/ImfSystemSpecific.cpp
|
||||
@@ -35,6 +35,9 @@
|
||||
#include "ImfSystemSpecific.h"
|
||||
#include "ImfNamespace.h"
|
||||
#include "OpenEXRConfig.h"
|
||||
+#if defined(IMF_HAVE_SSE2) && defined(__GNUC__)
|
||||
+#include <cpuid.h>
|
||||
+#endif
|
||||
|
||||
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
|
||||
|
||||
@@ -44,11 +47,7 @@ namespace {
|
||||
--- IlmImf/ImfSystemSpecific.cpp.orig 2014-08-10 08:23:57.000000000 +0400
|
||||
+++ IlmImf/ImfSystemSpecific.cpp 2015-04-09 00:08:50.100958000 +0300
|
||||
@@ -44,11 +44,23 @@
|
||||
// Helper functions for gcc + SSE enabled
|
||||
void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
|
||||
{
|
||||
- __asm__ __volatile__ (
|
||||
+#if __i386__
|
||||
__asm__ __volatile__ (
|
||||
- "cpuid"
|
||||
- : /* Output */ "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
|
||||
- : /* Input */ "a"(n)
|
||||
- : /* Clobber */);
|
||||
+ __cpuid(n, eax, ebx, ecx, edx);
|
||||
+ "xchgl %%ebx,%k1\n"
|
||||
+ "cpuid\n"
|
||||
+ "xchgl %%ebx,%k1" \
|
||||
+ : /* Output */ "=a"(eax), "=&r"(ebx), "=c"(ecx), "=d"(edx)
|
||||
+ : /* Input */ "0"(n)
|
||||
: /* Clobber */);
|
||||
+#else
|
||||
+ __asm__ __volatile__ (
|
||||
+ "xchgq %%rbx,%q1\n"
|
||||
+ "cpuid\n"
|
||||
+ "xchgq %%rbx,%q1" \
|
||||
+ : /* Output */ "=a"(eax), "=&r"(ebx), "=c"(ecx), "=d"(edx)
|
||||
+ : /* Input */ "0"(n)
|
||||
+ : /* Clobber */);
|
||||
+#endif
|
||||
}
|
||||
|
||||
#else // IMF_HAVE_SSE2 && __GNUC__
|
||||
|
Loading…
Reference in New Issue
Block a user