Ismail Dönmez 2017-04-20 08:35:58 +00:00 committed by Git OBS Bridge
parent 6613a277c3
commit 654f09d019
3 changed files with 58 additions and 0 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Apr 20 08:26:10 UTC 2017 - idonmez@suse.com
- Add popcnt.patch
-------------------------------------------------------------------
Tue Mar 28 11:40:03 UTC 2017 - idonmez@suse.com

View File

@ -28,6 +28,7 @@ Url: http://mingw-w64.sf.net/
Source: mingw-w64-headers-%version.tar.xz
Source1000: %name-rpmlintrc
Patch1: 0001-Add-missing-D3D_CS_-variables.patch
Patch2: popcnt.patch
BuildRequires: mingw64-filesystem
BuildRequires: xz
#!BuildIgnore: post-build-checks
@ -55,6 +56,7 @@ an actual pthread implementation (like winpthreads) is installed.
%prep
%setup -q -n mingw-w64-headers
%patch1 -p2
%patch2 -p2
%build
%{_mingw64_configure} \

51
popcnt.patch Normal file
View File

@ -0,0 +1,51 @@
commit 5aa73896a3313a354cf6550d99ecd652d0abd3b2
Author: David Grayson <davidegrayson@gmail.com>
Date: Wed Feb 8 18:56:17 2017 +0100
intrin-impl.h: Added __popcnt16, __popcnt, and __popcnt64.
diff --git a/mingw-w64-headers/include/psdk_inc/intrin-impl.h b/mingw-w64-headers/include/psdk_inc/intrin-impl.h
index f8dc78f9..fc781ff9 100644
--- a/mingw-w64-headers/include/psdk_inc/intrin-impl.h
+++ b/mingw-w64-headers/include/psdk_inc/intrin-impl.h
@@ -971,6 +971,40 @@ __buildbittesti(InterlockedBitTestAndComplement, __LONG32, "eor", "M", volatile)
#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_)
+#if !defined(__clang__)
+
+#if __INTRINSIC_PROLOG(__popcnt16)
+unsigned short __popcnt16(unsigned short);
+__INTRINSICS_USEINLINE
+unsigned short __popcnt16(unsigned short value)
+{
+ return __builtin_popcount(value);
+}
+#define __INTRINSIC_DEFINED___popcnt16
+#endif /* __INTRINSIC_PROLOG */
+
+#if __INTRINSIC_PROLOG(__popcnt)
+unsigned int __popcnt(unsigned int);
+__INTRINSICS_USEINLINE
+unsigned int __popcnt(unsigned int value)
+{
+ return __builtin_popcount(value);
+}
+#define __INTRINSIC_DEFINED___popcnt
+#endif /* __INTRINSIC_PROLOG */
+
+#if __INTRINSIC_PROLOG(__popcnt64)
+unsigned __int64 __popcnt64(unsigned __int64);
+__INTRINSICS_USEINLINE
+unsigned __int64 __popcnt64(unsigned __int64 value)
+{
+ return __builtin_popcountll(value);
+}
+#define __INTRINSIC_DEFINED___popcnt64
+#endif /* __INTRINSIC_PROLOG */
+
+#endif /* !defined(__clang__) */
+
#if __INTRINSIC_PROLOG(_InterlockedAnd)
__LONG32 _InterlockedAnd(__LONG32 volatile *, __LONG32);
__INTRINSICS_USEINLINE