- enhanced c++ (cover also static_assert keyword, conflicting template arguments... auto/th/framewave-1.3.1-12
authorJakub Bogusz <qboosh@pld-linux.org>
Sat, 15 Apr 2017 17:50:12 +0000 (19:50 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Sat, 15 Apr 2017 17:50:25 +0000 (19:50 +0200)
- added warnings patch (disable -Wnarrowing under gcc 6 in SSE vectors initialization hackery)
- added cpuid patch (replace custom asm code with GCC builtin, fixes build for x32 ABI)
- release 12

framewave-c++.patch
framewave-cpuid.patch [new file with mode: 0644]
framewave-warnings.patch [new file with mode: 0644]
framewave.spec

index c2d93442b7b15891b9a8515c9e8faee33fcefb49..e28dbc575971c41fd9bae8f4b579cc7a62c2ee2b 100644 (file)
                }
                return fwStsNoErr;
        }
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fwdev.h.orig   2009-07-09 11:15:40.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fwdev.h        2017-04-15 12:01:46.003904127 +0200
+@@ -36,7 +36,7 @@ This software is subject to the Apache v
+ //=======================================
+ //    Static Assert
+ //=======================================
+-#define STATIC_ASSERT( arg ) static_assert<arg>()
++#define STATIC_ASSERT( arg ) fw_static_assert<arg>()
+ //=======================================
+@@ -83,12 +83,12 @@ namespace OPT_LEVEL
+ {
+     template<bool b>
+-    struct static_assert {};
++    struct fw_static_assert {};
+     template<>
+-    struct static_assert<false>
++    struct fw_static_assert<false>
+     {
+         private:
+-            static_assert();
++            fw_static_assert();
+     };
+ } // namespace OPT_LEVEL
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/Filter.h.orig 2009-07-09 11:15:30.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/Filter.h      2017-04-15 12:56:42.006179581 +0200
+@@ -1119,22 +1119,22 @@ namespace FilterCommon
+                         typename _DstType_, 
+                         typename _CalcType_, 
+                         template< CH, 
+-                                  typename _SrcType_, 
+-                                  typename _DstType_, 
+-                                  typename _CalcType_,
+-                                  template< CH _chCount_,
+-                                            typename _SrcType_ > class _BorderType_
++                                  typename, 
++                                  typename, 
++                                  typename,
++                                  template< CH,
++                                            typename > class _BorderType_
+                                 > class _Operator_,
+                         template< typename, typename > class _DataType_,
+-                        template< CH _chCount_,
+-                                  typename _SrcType_ > class _BorderType_
++                        template< CH,
++                                  typename> class _BorderType_
+                       > class Processor,
+               template< CH _chCount_, 
+                         typename _SrcType_, 
+                         typename _DstType_, 
+                         typename _CalcType_,
+-                        template< CH _chCount_,
+-                                  typename _SrcType_ > class _BorderType_
++                        template< CH,
++                                  typename > class _BorderType_
+                       > class Operator,
+               template< typename _SrcType_,
+                         typename _DstType_
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwVideo/src/H264-Transform.cpp.orig   2009-07-09 11:15:35.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwVideo/src/H264-Transform.cpp        2017-04-15 13:45:20.673252419 +0200
+@@ -114,7 +114,7 @@ FwStatus PREFIX_OPT(OPT_PREFIX, fwiTrans
+       count = 0;
+       for (coeff_ctr=0;coeff_ctr<4;coeff_ctr++)
+       {
+-          level =(abs(pTBlock[coeff_ctr]) * quant_coef[qp_rem][0][0] + 2*qp_const) >> (q_bits+1);
++          level =(absm(pTBlock[coeff_ctr]) * quant_coef[qp_rem][0][0] + 2*qp_const) >> (q_bits+1);
+               pSrcDst[coeff_ctr]=(Fw16s) sign(level,pTBlock[coeff_ctr]);
+               if(pSrcDst[coeff_ctr] > MAX_CAVLC_LEVEL_VALUE) return fwStsScaleRangeErr;
+       }
+@@ -189,7 +189,7 @@ FwStatus PREFIX_OPT(OPT_PREFIX, fwiTrans
+       for (coeff_ctr=0;coeff_ctr<16;coeff_ctr++)
+       {
+               i=pScanMatrix[coeff_ctr];
+-              level= (abs(pTBlock[i]) * quant_coef[qp_rem][0][0] + 2*qp_const)>>(q_bits+1);
++              level= (absm(pTBlock[i]) * quant_coef[qp_rem][0][0] + 2*qp_const)>>(q_bits+1);
+               pSrcDst[i]=(Fw16s)sign(level,pTBlock[i]);
+               if(pSrcDst[i] > MAX_CAVLC_LEVEL_VALUE) return fwStsScaleRangeErr;
+       }
+@@ -267,7 +267,7 @@ FwStatus PREFIX_OPT(OPT_PREFIX, fwiTrans
+       {
+               i=pScanMatrix[coeff_ctr];
+-        level= ( abs( pSrcDst[i]) * quant_coef[qp_rem][i/4][i%4] + qp_const) >> q_bits;
++        level= ( absm( pSrcDst[i]) * quant_coef[qp_rem][i/4][i%4] + qp_const) >> q_bits;
+               pSrcDst[i]=(Fw16s)sign(level*dequant_coef[qp_rem][i/4][i%4]<<qp_per,pSrcDst[i]);
+               if(pSrcDst[i] > MAX_CAVLC_LEVEL_VALUE) return fwStsScaleRangeErr;
+       }
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/SSEPlus_base.h.orig      2009-07-09 11:15:29.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/SSEPlus_base.h   2017-04-15 12:18:16.139325970 +0200
+@@ -86,7 +86,7 @@ const static double SSP_F64_ALLOWANCE =
+ //---------------------------------------
+ #define STRING2(x) #x
+ #define STRING(x) STRING2(x)
+-#define WARN( ) __FILE__"("STRING(__LINE__)") : NOTE "
++#define WARN( ) __FILE__ "(" STRING(__LINE__) ") : NOTE "
+ //#define _SSP_SHUFFLE(w,x,y,z) (((w)<<3) | ((x)<<2) | ((y)<<1) | (z))
diff --git a/framewave-cpuid.patch b/framewave-cpuid.patch
new file mode 100644 (file)
index 0000000..fa7ef63
--- /dev/null
@@ -0,0 +1,78 @@
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwBase/src/system.cpp.orig    2009-07-09 11:15:36.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwBase/src/system.cpp 2017-04-15 12:04:33.188802940 +0200
+@@ -18,6 +18,8 @@ void * x_baseDataPtr = 0;
+     #pragma intrinsic(__cpuid)
+     #pragma intrinsic(__rdtsc)
++    #define get_cpuid __cpuid
++
+     static inline __int64 get_rdtsc_sys()
+     {
+         return __rdtsc();
+@@ -35,37 +37,8 @@ void * x_baseDataPtr = 0;
+ // Linux
+ #elif defined( FW_LIN ) || defined( FW_MAC )
+-    // CPUID
+-    #if defined( FW_SYS64 )
+-
+-        #define __cpuid(CPUInfo, InfoType)    __asm__ __volatile__("    pushq %%rbx;                      \
+-                                                                    xorq %%rax, %%rax;                    \
+-                                                                    movl %%esi, %%eax;                    \
+-                                                                    cpuid;                                \
+-                                                                    movl %%eax, 0x0(%%rdi);               \
+-                                                                    movl %%ebx, 0x4(%%rdi);               \
+-                                                                    movl %%ecx, 0x8(%%rdi);               \
+-                                                                    movl %%edx, 0xc(%%rdi);               \
+-                                                                    popq %%rbx;"                          \
+-                                                                    : : "D" (CPUInfo), "S" (InfoType)     \
+-                                                                    : "%rax", "%rcx", "%rdx" )
+-
+-    #elif defined( FW_SYS32 )
+-
+-        #define __cpuid(CPUInfo, InfoType)    __asm__ __volatile__("    pushl %%ebx;                      \
+-                                                                    xorl %%eax, %%eax;                    \
+-                                                                    movl %%esi, %%eax;                    \
+-                                                                    cpuid;                                \
+-                                                                    movl %%eax, 0x0(%%edi);               \
+-                                                                    movl %%ebx, 0x4(%%edi);               \
+-                                                                    movl %%ecx, 0x8(%%edi);               \
+-                                                                    movl %%edx, 0xc(%%edi);               \
+-                                                                    popl %%ebx;"                          \
+-                                                                    : : "D" (CPUInfo), "S" (InfoType)     \
+-                                                                    : "%eax", "%ecx", "%edx" )
+-
+-    #endif
+-
++    #include <cpuid.h>
++    #define get_cpuid(CPUInfo, InfoType) __cpuid(InfoType, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3])
+     // RDTSC
+     #define rdtsc(low,high) __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high))
+@@ -127,7 +100,7 @@ void * x_baseDataPtr = 0;
+         }
+         #define rdtsc rdtsc64
+-        #define __cpuid cpuid64
++        #define get_cpuid cpuid64
+     #elif    defined( FW_SYS32 )
+@@ -157,7 +130,7 @@ void * x_baseDataPtr = 0;
+         }
+         
+         #define rdtsc rdtsc32
+-        #define __cpuid cpuid32
++        #define get_cpuid cpuid32
+     #endif
+@@ -215,7 +188,7 @@ template< class T >    unsigned MSBPos()
+ FwCpuType GetCpuType()
+ {
+     int out[4];
+-    __cpuid( out, CPUID_CODE_FEATURES );    
++    get_cpuid( out, CPUID_CODE_FEATURES );    
+     
+     if( IsSet( out[CPUID_INDEX_SSE4A   ], CPUID_BIT_SSE4A)) return fwCpuFamily10h;
+     if( IsSet( out[CPUID_INDEX_SSE3    ], CPUID_BIT_SSE3 )) return fwCpuSSE3;
diff --git a/framewave-warnings.patch b/framewave-warnings.patch
new file mode 100644 (file)
index 0000000..9f530dd
--- /dev/null
@@ -0,0 +1,343 @@
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/cbl/cbl_common_primitives.h.orig 2009-07-09 11:14:37.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/cbl/cbl_common_primitives.h      2017-04-15 11:28:42.272853562 +0200
+@@ -152,6 +152,11 @@ union CBL_FORCEALIGN_16 XMM128
+     S8      s8 [16];  
+ };
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ #if defined( CBL_MSVC )
+ namespace CBL_LIBRARY
+@@ -648,4 +653,8 @@ namespace CBL_LIBRARY
+ } // namespace CBL_LIBRARY
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ #endif // __CBL_COMMON_PRIMITIVES_H__
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/color.h.orig  2009-07-09 11:15:30.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/color.h       2017-04-15 12:22:56.753144791 +0200
+@@ -266,12 +266,19 @@ namespace OPT_LEVEL
+ //Cb 38       74      112      9 19 28
+ //Cr 112 94 18   28 24 4 
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+         static const __m128i rgbtoYcbcr_Y = CONST_SET_16I(25,129,66,0,0,25,129,66);
+         static const __m128i rgbtoYcbcr_crcb = CONST_SET_16I(-4,-24,28,0,0,28,-19,-9);
+         static const __m128i const128 = CONST_SET_16I(0,0,0,128,128,0,0,0);
+         static const __m128i const16 = CONST_SET_16I(0,16,0,16,0,16,0,16);
+         static const __m128i addconst128 = CONST_SET_16I(0,0,0,128,0,0,0,128);
+         static const __m128i zero = CONST_SET1_32I(0);
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+         if (row > 1) // Condition: 1) # of rows = 2
+         {
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/colorModelConvSpecial.h.orig  2009-07-09 11:15:30.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwImage/include/colorModelConvSpecial.h       2017-04-15 13:21:50.183726931 +0200
+@@ -214,9 +214,9 @@ namespace OPT_LEVEL
+                     pfn( ptrSrc    , C1, ((A8U *)pDst + 1), C1 ); // A0
+                     pfn( ptrSrc + 3, C1, ((A8U *)pDst + 3), C1 ); // A1
+                     // Calculate the average of the two pixel values for 422 compression
+-                    TS srcData[3] = { (*ptrSrc       + *(ptrSrc + 3))>>1,   // R
+-                                      (*(ptrSrc + 1) + *(ptrSrc + 4))>>1,   // G
+-                                      (*(ptrSrc + 2) + *(ptrSrc + 5))>>1 }; // B
++                    TS srcData[3] = { static_cast<TS>((*ptrSrc       + *(ptrSrc + 3))>>1),   // R
++                                      static_cast<TS>((*(ptrSrc + 1) + *(ptrSrc + 4))>>1),   // G
++                                      static_cast<TS>((*(ptrSrc + 2) + *(ptrSrc + 5))>>1) }; // B
+                     pfn( srcData, C3, tempDst, C3 );
+                     *(A8U *)pDst       = tempDst[1]; // B0
+                     *(A8U *)(pDst + 2) = tempDst[2]; // C0
+@@ -280,9 +280,9 @@ namespace OPT_LEVEL
+                     pfn( ptrSrc    , C1, (pDst + 1 ), C1 );  // A0
+                     pfn( ptrSrc + 4, C1, (pDst + 3 ), C1 );  // A1
+                     // Calculate the average of the two pixel values for 422 compression
+-                    TS srcData[3] = { (*ptrSrc     + *(ptrSrc + 4))>>1,   // R
+-                                      (*(ptrSrc+1) + *(ptrSrc + 5))>>1,   // G
+-                                      (*(ptrSrc+2) + *(ptrSrc + 6))>>1 }; // B
++                    TS srcData[3] = { static_cast<TS>((*ptrSrc     + *(ptrSrc + 4))>>1),   // R
++                                      static_cast<TS>((*(ptrSrc+1) + *(ptrSrc + 5))>>1),   // G
++                                      static_cast<TS>((*(ptrSrc+2) + *(ptrSrc + 6))>>1) }; // B
+                     pfn( srcData, C3, tempDst, C3 );
+@@ -350,9 +350,9 @@ namespace OPT_LEVEL
+                     pfn( ptrSrc  , C1, pDst       , C1 );    // A0
+                     pfn( ptrSrc+3, C1, (pDst + 2 ), C1 );    // A1
+                     // Calculate the average of the two pixel values for 422 compression
+-                    TS srcData[3] = { (*ptrSrc       + *(ptrSrc + 3))>>1, 
+-                                      (*(ptrSrc + 1) + *(ptrSrc + 4))>>1,
+-                                      (*(ptrSrc + 2) + *(ptrSrc + 5))>>1 };
++                    TS srcData[3] = { static_cast<TS>((*ptrSrc       + *(ptrSrc + 3))>>1), 
++                                      static_cast<TS>((*(ptrSrc + 1) + *(ptrSrc + 4))>>1),
++                                      static_cast<TS>((*(ptrSrc + 2) + *(ptrSrc + 5))>>1) };
+                     pfn( srcData , C3, tempDst, C3 );
+@@ -569,9 +569,9 @@ namespace OPT_LEVEL
+                     pfn( ptrSrc+3, C1, pDst[0] + 1, C1 ); // A1
+                     // Calculate the average of the two pixel values for 422 compression
+-                    TS srcData[3] = { (*ptrSrc     + *(ptrSrc+3))>>1, 
+-                                      (*(ptrSrc+1) + *(ptrSrc+4))>>1,
+-                                      (*(ptrSrc+2) + *(ptrSrc+5))>>1 };
++                    TS srcData[3] = { static_cast<TS>((*ptrSrc     + *(ptrSrc+3))>>1), 
++                                      static_cast<TS>((*(ptrSrc+1) + *(ptrSrc+4))>>1),
++                                      static_cast<TS>((*(ptrSrc+2) + *(ptrSrc+5))>>1) };
+                     
+                     pfn (srcData, C3, tempDst, C3);
+                     *(pDst[1]) = tempDst[1]; // B0
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/cbl/cbl_pack_unpack_primitives_sse2.h.orig       2009-07-09 11:14:37.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/cbl/cbl_pack_unpack_primitives_sse2.h    2017-04-15 11:31:37.638153156 +0200
+@@ -358,8 +358,16 @@ CBL_INLINE  __m128i CBL_SSE2::Pack64STo3
+       __m128i  h2= _mm_unpackhi_epi32(srcLo,srcHi);
+       __m128i hBytes  = _mm_unpackhi_epi32(h1,h2);
+       __m128i lBytes  = _mm_unpacklo_epi32(h1,h2);
++
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+        const __m128i zero =  CONST_SETZERO_32I();
+        const __m128i nOne =  CONST_SET1_32I(0xFFFFFFFF);
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+       __m128i x = _mm_cmplt_epi32(hBytes,nOne);
+                       h1 = _mm_slli_epi32(x,31);
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/arithmetic/SSEPlus_arithmetic_SSE2.h.orig        2009-07-09 11:15:28.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/arithmetic/SSEPlus_arithmetic_SSE2.h     2017-04-15 13:05:16.648171534 +0200
+@@ -90,7 +90,14 @@ __m128i ssp_arithmetic_hadd4_epi16_SSE2(
+ SSP_FORCEINLINE
+ __m128 ssp_round_ps_neg_zero_SSE2( __m128  a, int iRoundMode )
+ {
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+     const static __m128i SIGN_BIT = SSP_CONST_SET_32I( 0x80000000, 0x80000000, 0x80000000,0x80000000 );
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+     ssp_m128 A, sign;
+     A.f = a;
+     
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/convert/SSEPlus_convert_SSE2.h.orig      2009-07-09 11:15:28.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/convert/SSEPlus_convert_SSE2.h   2017-04-15 13:20:25.736238223 +0200
+@@ -149,11 +149,18 @@ void ssp_convert_reverse_transpose_SSE2(
+ SSP_FORCEINLINE
+ void ssp_convert_3p_3c_epi8_SSE2( __m128i *r, __m128i *g, __m128i *b )
+ {
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+     const static __m128i odd_8  = SSP_CONST_SET_8I(   0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0 );
+     const static __m128i even_8 = SSP_CONST_SET_8I( 0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF,0,0xFF   );
+     const static __m128i odd_16  = SSP_CONST_SET_16I(   0xFFFF,0,0xFFFF,0,0xFFFF,0,0xFFFF,0 );
+     const static __m128i even_16 = SSP_CONST_SET_16I( 0,0xFFFF,0,0xFFFF,0,0xFFFF,0,0xFFFF   );    
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+    ssp_m128 T, RG, GB, BR, RGBR, GBRG, BRGB;
+     
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/emulation/SSEPlus_emulation_comps_REF.h.orig     2009-07-09 11:15:28.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/emulation/SSEPlus_emulation_comps_REF.h  2017-04-15 12:22:09.457482384 +0200
+@@ -1598,7 +1598,14 @@ SSP_FORCEINLINE __m128 ssp_comgt_ss_REF(
+ SSP_FORCEINLINE __m128i ssp_comtrue_epi16_REF(__m128i a, __m128i b)
+ {
+     a; b;
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+       const static __m128i tmp = SSP_CONST_SET_64I( 0xFFFFFFFFFFFFFFFFULL, 0xFFFFFFFFFFFFFFFFULL );  
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+     return tmp;
+ }
+@@ -1648,7 +1655,14 @@ SSP_FORCEINLINE __m128i ssp_comtrue_epu8
+ SSP_FORCEINLINE __m128d ssp_comtrue_pd_REF(__m128d a, __m128d b)
+ {   
+     a; b;
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+     const static __m128i tmp = SSP_CONST_SET_64I( 0xFFFFFFFFFFFFFFFFULL, 0xFFFFFFFFFFFFFFFFULL );
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+     ssp_m128 A;  
+     A.i = tmp;
+     return A.d;
+@@ -1658,7 +1672,14 @@ SSP_FORCEINLINE __m128d ssp_comtrue_pd_R
+ SSP_FORCEINLINE __m128 ssp_comtrue_ps_REF(__m128 a, __m128 b)
+ {   
+     a; b;
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+     const static __m128i tmp = SSP_CONST_SET_64I( 0xFFFFFFFFFFFFFFFFULL, 0xFFFFFFFFFFFFFFFFULL );
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+     ssp_m128 A;  
+     A.i = tmp;
+     return A.f;
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/emulation/SSEPlus_emulation_SSE2.h.orig  2009-07-09 11:15:28.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/emulation/SSEPlus_emulation_SSE2.h       2017-04-15 13:03:50.600603842 +0200
+@@ -13,6 +13,11 @@
+ #include "SSEPlus_emulation_comps_SSE2.h"
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ /** @addtogroup emulated_SSE2   
+  *  @{ 
+  *  @name SSE[3,4A,...,5] implemented in SSE2
+@@ -2185,4 +2190,8 @@ SSP_FORCEINLINE __m128i ssp_shl_epi64_SS
+  */
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ #endif // __SSEPLUS_EMULATION_SSE2_H__
+--- FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/logical/SSEPlus_logical_SSE2.h.orig      2009-07-09 11:15:29.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/sdk/SSEPlus/include/logical/SSEPlus_logical_SSE2.h   2017-04-15 12:44:16.222807366 +0200
+@@ -7,6 +7,11 @@
+ #include "../native/SSEPlus_native_SSE2.h"
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ /** @addtogroup supplimental_SSE2
+  *  @{ 
+  *  @name Logical Operations
+@@ -148,4 +153,8 @@ SSP_FORCEINLINE __m128i ssp_srli_epi8_SS
+  *  @}
+  */
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ #endif // __SSEPLUS_LOGICAL_SSE2_H__
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwJPEG/src/JPEGColor.cpp.orig 2009-07-09 11:15:35.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwJPEG/src/JPEGColor.cpp      2017-04-15 17:58:22.256551161 +0200
+@@ -71,11 +71,18 @@
+ static SYS_INLINE void YCbCrToRGBConv(__m128i &y,__m128i &cb,__m128i &cr)
+ {
+                     __m128i r, g, b;
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
+                     static const __m128i constant = CONST_SET1_32I((S16)(128*64.0));
+                     static const __m128i val90 = CONST_SET1_16I               ( (S16)90               );              // R = ( 1.402*2^6 )
+                     static const __m128i val46 = CONST_SET1_16I               ( (S16)(-46)    );              // G = ( -.71414*2^6 )
+                     static const __m128i val22 = CONST_SET1_16I               ( (S16)(-22)    );              // cr= ( -0.34414*(2^6) )
+                     static const __m128i val113 = CONST_SET1_16I( (S16)(113)  );              // B = ( 1.772*(2^6) )
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+                     // RED
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwJPEG/include/JPEGColorConv.h.orig   2009-07-09 11:15:34.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwJPEG/include/JPEGColorConv.h        2017-04-15 18:10:42.566324738 +0200
+@@ -8,6 +8,11 @@
+ #include "fe.h"
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ namespace OPT_LEVEL
+ {
+ SYS_INLINE static void  Mul_16s(__m128i const &s1,__m128i const &s2,__m128i &d1,__m128i &d2)
+@@ -1304,4 +1309,8 @@
+ /////////
+ }
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ #endif // __JPEGCOLORCONV_H__
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/SSE2Intrinsic.h.orig   2009-07-09 11:15:40.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/SSE2Intrinsic.h        2017-04-15 18:22:32.157931524 +0200
+@@ -309,6 +309,11 @@
+ }
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ // these variants don't check for the magnitude to be 0, since if magnitude
+ // is 0, it WILL NOT be less than level (since only gtzero levels are passed into
+ // the LT functions) hence these values will be cleared out anyway
+@@ -348,6 +353,10 @@
+     return        ret.d;
+ }
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ SYS_INLINE STATIC __m128i _fw_threshval_16sc(const XMM128& complex, const XMM128 &level)
+ {
+     XMM128 ret = complex, rethi, mag, maghi, temp;
+--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/shuffle.h.orig 2009-07-09 11:15:40.000000000 +0200
++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/shuffle.h      2017-04-15 18:23:39.564585726 +0200
+@@ -106,6 +106,11 @@
+ // --- </epi16> ---
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wnarrowing"
++#endif
++
+ // --- <epi8> ---
+ SYS_INLINE STATIC __m128i _mm_rlli_epi8(const __m128i &reg, const  int &by)
+ {
+@@ -140,6 +145,10 @@
+ }
+ // --- </epi8> ---
++#if defined(__GNUC__) && (__GNUC__ >= 6)
++#pragma GCC diagnostic pop
++#endif
++
+ } // namespace OPT_LEVEL
index 6cf3fae63e2f6d8727bf75ffeb3a4d0f6feb0c8c..c09aa71633e6c27dbd2b4ee8e40b3e91b2df5240 100644 (file)
@@ -6,7 +6,7 @@ Summary:        Framewave - set of popular image and signal processing routines
 Summary(pl.UTF-8):     Framewave - zestaw popularnych funkcji do przetwarzania obrazu i sygnaƂu
 Name:          framewave
 Version:       1.3.1
-Release:       11
+Release:       12
 License:       Apache v2.0
 Group:         Libraries
 Source0:       http://downloads.sourceforge.net/framewave/FRAMEWAVE_%{version}_SRC.tar.gz
@@ -15,6 +15,8 @@ Patch0:               %{name}-system-boost.patch
 Patch1:                %{name}-c++.patch
 Patch2:                no-forced-arch-bits.patch
 Patch3:                %{name}-templates.patch
+Patch4:                %{name}-warnings.patch
+Patch5:                %{name}-cpuid.patch
 URL:           http://framewave.sourceforge.net/
 BuildRequires: boost-devel >= 1.34
 BuildRequires: libstdc++-devel
@@ -70,6 +72,8 @@ Statyczne biblioteki Framewave.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 # kill precompiled binaries
 %{__rm} BuildTools/bin/FwHeaderConvert_*
This page took 1.2305 seconds and 4 git commands to generate.