Magellan Linux

Contents of /trunk/openexr/patches/openexr-2.2.0-build-pic.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2507 - (show annotations) (download)
Tue Oct 21 09:39:43 2014 UTC (9 years, 6 months ago) by niro
File size: 1833 byte(s)
-fixes pic issues
1 --- IlmImf/ImfSystemSpecific.cpp.orig 2014-08-10 04:23:57.000000000 +0000
2 +++ IlmImf/ImfSystemSpecific.cpp
3 @@ -40,21 +40,19 @@ OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EN
4
5 namespace {
6 #if defined(IMF_HAVE_SSE2) && defined(__GNUC__)
7 -
8 +#include <cpuid.h>
9 // Helper functions for gcc + SSE enabled
10 - void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
11 + void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx,
12 + unsigned int &ecx, unsigned int &edx)
13 {
14 - __asm__ __volatile__ (
15 - "cpuid"
16 - : /* Output */ "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
17 - : /* Input */ "a"(n)
18 - : /* Clobber */);
19 + __get_cpuid(n, &eax, &ebx, &ecx, &edx);
20 }
21
22 #else // IMF_HAVE_SSE2 && __GNUC__
23
24 // Helper functions for generic compiler - all disabled
25 - void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
26 + void cpuid(unsigned int n, unsigned int &eax, unsigned int &ebx,
27 + unsigned int &ecx, unsigned int &edx)
28 {
29 eax = ebx = ecx = edx = 0;
30 }
31 @@ -64,7 +62,7 @@ namespace {
32
33 #ifdef OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX
34
35 - void xgetbv(int n, int &eax, int &edx)
36 + void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx)
37 {
38 __asm__ __volatile__ (
39 "xgetbv"
40 @@ -75,7 +73,7 @@ namespace {
41
42 #else // OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX
43
44 - void xgetbv(int n, int &eax, int &edx)
45 + void xgetbv(unsigned int n, unsigned int &eax, unsigned int &edx)
46 {
47 eax = edx = 0;
48 }
49 @@ -94,8 +92,8 @@ CpuId::CpuId():
50 f16c(false)
51 {
52 bool osxsave = false;
53 - int max = 0;
54 - int eax, ebx, ecx, edx;
55 + unsigned int max = 0;
56 + unsigned int eax, ebx, ecx, edx;
57
58 cpuid(0, max, ebx, ecx, edx);
59 if (max > 0)
60