Fri Aug 15 18:07:41 2014 UTC ()
Rework cpuid function to use gnuc __get_cpuid (requiring at least gcc 4.3)
This get's over issues such as encountered with PIC builds.
Upstream issue : https://github.com/openexr/openexr/issues/128
Revbump due to new dependency on GCC_REQD+= 4.3
(additional patches available upon request for bmake test target)
(richard)
diff -r1.33 -r1.34 pkgsrc/graphics/openexr/Makefile
diff -r1.24 -r1.25 pkgsrc/graphics/openexr/distinfo
diff -r0 -r1.1 pkgsrc/graphics/openexr/patches/patch-IlmImf_ImfSystemSpecific.cpp
--- pkgsrc/graphics/openexr/Makefile 2014/08/13 19:23:08 1.33
+++ pkgsrc/graphics/openexr/Makefile 2014/08/15 18:07:41 1.34
| @@ -1,30 +1,32 @@ | | | @@ -1,30 +1,32 @@ |
1 | # $NetBSD: Makefile,v 1.33 2014/08/13 19:23:08 tron Exp $ | | 1 | # $NetBSD: Makefile,v 1.34 2014/08/15 18:07:41 richard Exp $ |
2 | | | 2 | |
3 | DISTNAME= openexr-2.2.0 | | 3 | DISTNAME= openexr-2.2.0 |
4 | PKGREVISION= 1 | | 4 | PKGREVISION= 2 |
5 | CATEGORIES= graphics | | 5 | CATEGORIES= graphics |
6 | MASTER_SITES= http://download.savannah.nongnu.org/releases/openexr/ | | 6 | MASTER_SITES= http://download.savannah.nongnu.org/releases/openexr/ |
7 | | | 7 | |
8 | MAINTAINER= adam@NetBSD.org | | 8 | MAINTAINER= adam@NetBSD.org |
9 | HOMEPAGE= http://www.openexr.com/ | | 9 | HOMEPAGE= http://www.openexr.com/ |
10 | COMMENT= High dynamic-range (HDR) image file format library and tools | | 10 | COMMENT= High dynamic-range (HDR) image file format library and tools |
11 | LICENSE= modified-bsd | | 11 | LICENSE= modified-bsd |
12 | | | 12 | |
13 | USE_LANGUAGES= c c++ | | 13 | USE_LANGUAGES= c c++ |
14 | USE_LIBTOOL= yes | | 14 | USE_LIBTOOL= yes |
15 | USE_TOOLS+= gmake pkg-config | | 15 | USE_TOOLS+= gmake pkg-config |
16 | GNU_CONFIGURE= yes | | 16 | GNU_CONFIGURE= yes |
17 | PKGCONFIG_OVERRIDE= OpenEXR.pc.in | | 17 | PKGCONFIG_OVERRIDE= OpenEXR.pc.in |
18 | TEST_TARGET= check | | 18 | TEST_TARGET= check |
19 | | | 19 | |
| | | 20 | GCC_REQD+= 4.3 |
| | | 21 | |
20 | PTHREAD_OPTS+= require | | 22 | PTHREAD_OPTS+= require |
21 | LIBS.IRIX+= -lmx | | 23 | LIBS.IRIX+= -lmx |
22 | LIBS.SunOS+= -lm | | 24 | LIBS.SunOS+= -lm |
23 | | | 25 | |
24 | BUILDLINK_TRANSFORM+= rm:-Wno-long-double | | 26 | BUILDLINK_TRANSFORM+= rm:-Wno-long-double |
25 | | | 27 | |
26 | .include "../../devel/zlib/buildlink3.mk" | | 28 | .include "../../devel/zlib/buildlink3.mk" |
27 | BUILDLINK_API_DEPENDS.ilmbase+= ilmbase>=1.0.2nb1 | | 29 | BUILDLINK_API_DEPENDS.ilmbase+= ilmbase>=1.0.2nb1 |
28 | .include "../../graphics/ilmbase/buildlink3.mk" | | 30 | .include "../../graphics/ilmbase/buildlink3.mk" |
29 | .include "../../mk/pthread.buildlink3.mk" | | 31 | .include "../../mk/pthread.buildlink3.mk" |
30 | .include "../../mk/bsd.pkg.mk" | | 32 | .include "../../mk/bsd.pkg.mk" |
--- pkgsrc/graphics/openexr/distinfo 2014/08/13 19:23:08 1.24
+++ pkgsrc/graphics/openexr/distinfo 2014/08/15 18:07:41 1.25
| @@ -1,9 +1,10 @@ | | | @@ -1,9 +1,10 @@ |
1 | $NetBSD: distinfo,v 1.24 2014/08/13 19:23:08 tron Exp $ | | 1 | $NetBSD: distinfo,v 1.25 2014/08/15 18:07:41 richard Exp $ |
2 | | | 2 | |
3 | SHA1 (openexr-2.2.0.tar.gz) = d09a68c4443b7a12a0484c073adaef348b44cb92 | | 3 | SHA1 (openexr-2.2.0.tar.gz) = d09a68c4443b7a12a0484c073adaef348b44cb92 |
4 | RMD160 (openexr-2.2.0.tar.gz) = a825ed42e731da3bc39f25ce2a310712a5b0f956 | | 4 | RMD160 (openexr-2.2.0.tar.gz) = a825ed42e731da3bc39f25ce2a310712a5b0f956 |
5 | Size (openexr-2.2.0.tar.gz) = 14489661 bytes | | 5 | Size (openexr-2.2.0.tar.gz) = 14489661 bytes |
6 | SHA1 (patch-IlmImf_ImfFastHuf.cpp) = bf583b5e0efb1af6e00d671b07d4cc154e13ac44 | | 6 | SHA1 (patch-IlmImf_ImfFastHuf.cpp) = bf583b5e0efb1af6e00d671b07d4cc154e13ac44 |
| | | 7 | SHA1 (patch-IlmImf_ImfSystemSpecific.cpp) = 774b6498bdce55f24a9ffd6efaee349bfbd82173 |
7 | SHA1 (patch-IlmImf_ImfSystemSpecific.h) = f36d049085e42beabcf5f7af5354009391a1f9f2 | | 8 | SHA1 (patch-IlmImf_ImfSystemSpecific.h) = f36d049085e42beabcf5f7af5354009391a1f9f2 |
8 | SHA1 (patch-aa) = 08b38d81338fc755c321911a9ffa3cccb53e99f3 | | 9 | SHA1 (patch-aa) = 08b38d81338fc755c321911a9ffa3cccb53e99f3 |
9 | SHA1 (patch-ab) = 0efe7155350e1976d1d7bad9da8b1a037fd84572 | | 10 | SHA1 (patch-ab) = 0efe7155350e1976d1d7bad9da8b1a037fd84572 |
$NetBSD: patch-IlmImf_ImfSystemSpecific.cpp,v 1.1 2014/08/15 18:07:41 richard Exp $
Rework cpuid function to use gnuc __get_cpuid (requiring at least gcc 4.3)
This get's over issues such as encountered with PIC builds.
Upstream issue : https://github.com/openexr/openexr/issues/128
--- IlmImf/ImfSystemSpecific.cpp.orig 2014-08-10 04:23:57.000000000 +0000
+++ IlmImf/ImfSystemSpecific.cpp
@@ -40,21 +40,19 @@ OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EN
namespace {
#if defined(IMF_HAVE_SSE2) && defined(__GNUC__)
-
+#include <cpuid.h>
// Helper functions for gcc + SSE enabled
- void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
+ void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx,
+ unsigned int &ecx, unsigned int &edx)
{
- __asm__ __volatile__ (
- "cpuid"
- : /* Output */ "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
- : /* Input */ "a"(n)
- : /* Clobber */);
+ __get_cpuid(n, &eax, &ebx, &ecx, &edx);
}
#else // IMF_HAVE_SSE2 && __GNUC__
// Helper functions for generic compiler - all disabled
- void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
+ void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx,
+ unsigned int &ecx, unsigned int &edx)
{
eax = ebx = ecx = edx = 0;
}
@@ -64,7 +62,7 @@ namespace {
#ifdef OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX
- void xgetbv(int n, int &eax, int &edx)
+ void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx)
{
__asm__ __volatile__ (
"xgetbv"
@@ -75,7 +73,7 @@ namespace {
#else // OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX
- void xgetbv(int n, int &eax, int &edx)
+ void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx)
{
eax = edx = 0;
}
@@ -94,8 +92,8 @@ CpuId::CpuId():
f16c(false)
{
bool osxsave = false;
- int max = 0;
- int eax, ebx, ecx, edx;
+ unsigned int max = 0;
+ unsigned int eax, ebx, ecx, edx;
cpuid(0, max, ebx, ecx, edx);
if (max > 0)