dev-libs/crypto++: fix amd64 asm
[gentoo.git] / dev-libs / crypto++ / files / crypto++-8.2.0-build.patch
1 --- a/config.h  2019-07-02 19:25:10.448720035 +0300
2 +++ a/config.h  2019-07-02 19:25:25.785455586 +0300
3 @@ -514,7 +514,7 @@ NAMESPACE_END
4  #endif\r
5  \r
6  // 32-bit SunCC does not enable SSE2 by default.\r
7 -#if !defined(CRYPTOPP_DISABLE_ASM) && (defined(_MSC_VER) || CRYPTOPP_GCC_VERSION >= 30300 || defined(__SSE2__) || (__SUNPRO_CC >= 0x5100))\r
8 +#if !defined(CRYPTOPP_DISABLE_ASM) && !defined(CRYPTOPP_DISABLE_SSE2) && (defined(_MSC_VER) || CRYPTOPP_GCC_VERSION >= 30300 || defined(__SSE2__) || (__SUNPRO_CC >= 0x5100))\r
9         #define CRYPTOPP_SSE2_INTRIN_AVAILABLE 1\r
10  #endif\r
11  \r
12 From fbbf0a08e8cf4faca661b0f75f806ea652abea70 Mon Sep 17 00:00:00 2001
13 From: Jeffrey Walton <noloader@gmail.com>
14 Date: Tue, 2 Jul 2019 16:55:00 -0400
15 Subject: [PATCH] Add missing XOP header for blake2b_simd.cpp (GH #859) The
16  Gentoo folks caught a bug at https://bugs.gentoo.org/689162. The 689162 bug
17  uses -march=bdver1 -msse4.1 on a AMD Bulldozer machine.
18
19 Investigating the issue we are missing the XOP header blake2b_simd.cpp. However, adding the XOP header is not enough for this particular config. Four source files fail to compile with the expected headers. We are waiting on the GCC folks to get back to us with a fix.
20 ---
21  blake2b_simd.cpp  | 5 +++++
22  keccak_simd.cpp   | 5 +++++
23  simon128_simd.cpp | 1 +
24  speck128_simd.cpp | 1 +
25  4 files changed, 12 insertions(+)
26
27 diff --git a/blake2b_simd.cpp b/blake2b_simd.cpp
28 index ff138321..b246824c 100644
29 --- a/blake2b_simd.cpp
30 +++ b/blake2b_simd.cpp
31 @@ -32,6 +32,11 @@
32  # undef CRYPTOPP_ALTIVEC_AVAILABLE\r
33  #endif\r
34  \r
35 +#if defined(__XOP__)\r
36 +# include <immintrin.h>\r
37 +# include <ammintrin.h>\r
38 +#endif\r
39 +\r
40  #if (CRYPTOPP_SSE41_AVAILABLE)\r
41  # include <emmintrin.h>\r
42  # include <tmmintrin.h>\r
43 diff --git a/keccak_simd.cpp b/keccak_simd.cpp
44 index 45674ac2..ae2f2095 100644
45 --- a/keccak_simd.cpp
46 +++ b/keccak_simd.cpp
47 @@ -26,6 +26,11 @@
48  # include <tmmintrin.h>\r
49  #endif\r
50  \r
51 +#if defined(__XOP__)\r
52 +# include <immintrin.h>\r
53 +# include <ammintrin.h>\r
54 +#endif\r
55 +\r
56  // Squash MS LNK4221 and libtool warnings\r
57  extern const char KECCAK_SIMD_FNAME[] = __FILE__;\r
58  \r
59 diff --git a/simon128_simd.cpp b/simon128_simd.cpp
60 index 5331c351..4b551f8f 100644
61 --- a/simon128_simd.cpp
62 +++ b/simon128_simd.cpp
63 @@ -23,6 +23,7 @@
64  #endif\r
65  \r
66  #if defined(__XOP__)\r
67 +# include <immintrin.h>\r
68  # include <ammintrin.h>\r
69  #endif\r
70  \r
71 diff --git a/speck128_simd.cpp b/speck128_simd.cpp
72 index 2c356346..fb3eb1e6 100644
73 --- a/speck128_simd.cpp
74 +++ b/speck128_simd.cpp
75 @@ -23,6 +23,7 @@
76  #endif\r
77  \r
78  #if defined(__XOP__)\r
79 +# include <immintrin.h>\r
80  # include <ammintrin.h>\r
81  #endif\r
82  \r
83 -- 
84 2.21.0
85
86 From eeb7dadc76572b7061922ca6ac5f247bdfd985ad Mon Sep 17 00:00:00 2001
87 From: Jeffrey Walton <noloader@gmail.com>
88 Date: Tue, 2 Jul 2019 19:10:11 -0400
89 Subject: [PATCH] Fix missing _mm_roti_epi32 and _mm_roti_epi64 under GCC (GH
90  #859)
91
92 ---
93  blake2b_simd.cpp  | 4 +++-
94  blake2s_simd.cpp  | 7 +++++++
95  chacha_simd.cpp   | 3 +++
96  cham_simd.cpp     | 3 +++
97  keccak_simd.cpp   | 4 +++-
98  lea_simd.cpp      | 3 +++
99  simeck_simd.cpp   | 3 +++
100  simon128_simd.cpp | 4 +++-
101  simon64_simd.cpp  | 3 +++
102  speck128_simd.cpp | 4 +++-
103  speck64_simd.cpp  | 3 +++
104  11 files changed, 37 insertions(+), 4 deletions(-)
105
106 diff --git a/blake2b_simd.cpp b/blake2b_simd.cpp
107 index b246824c..6803d0ae 100644
108 --- a/blake2b_simd.cpp
109 +++ b/blake2b_simd.cpp
110 @@ -33,8 +33,10 @@
111  #endif\r
112  \r
113  #if defined(__XOP__)\r
114 -# include <immintrin.h>\r
115  # include <ammintrin.h>\r
116 +# if defined(__GNUC__)\r
117 +#  include <x86intrin.h>\r
118 +# endif\r
119  #endif\r
120  \r
121  #if (CRYPTOPP_SSE41_AVAILABLE)\r
122 diff --git a/blake2s_simd.cpp b/blake2s_simd.cpp
123 index f02b9771..4b6d1bd6 100644
124 --- a/blake2s_simd.cpp
125 +++ b/blake2s_simd.cpp
126 @@ -42,6 +42,13 @@
127  # undef CRYPTOPP_ALTIVEC_AVAILABLE\r
128  #endif\r
129  \r
130 +#if defined(__XOP__)\r
131 +# include <ammintrin.h>\r
132 +# if defined(__GNUC__)\r
133 +#  include <x86intrin.h>\r
134 +# endif\r
135 +#endif\r
136 +\r
137  #if (CRYPTOPP_SSE41_AVAILABLE)\r
138  # include <emmintrin.h>\r
139  # include <tmmintrin.h>\r
140 diff --git a/chacha_simd.cpp b/chacha_simd.cpp
141 index a983ab69..5a63ecee 100644
142 --- a/chacha_simd.cpp
143 +++ b/chacha_simd.cpp
144 @@ -46,6 +46,9 @@
145  \r
146  #if defined(__XOP__)\r
147  # include <ammintrin.h>\r
148 +# if defined(__GNUC__)\r
149 +#  include <x86intrin.h>\r
150 +# endif\r
151  #endif\r
152  \r
153  // C1189: error: This header is specific to ARM targets\r
154 diff --git a/cham_simd.cpp b/cham_simd.cpp
155 index 7fcaece1..e102a877 100644
156 --- a/cham_simd.cpp
157 +++ b/cham_simd.cpp
158 @@ -24,6 +24,9 @@
159  \r
160  #if defined(__XOP__)\r
161  # include <ammintrin.h>\r
162 +# if defined(__GNUC__)\r
163 +#  include <x86intrin.h>\r
164 +# endif\r
165  #endif\r
166  \r
167  #if defined(__AVX512F__)\r
168 diff --git a/keccak_simd.cpp b/keccak_simd.cpp
169 index ae2f2095..194291a0 100644
170 --- a/keccak_simd.cpp
171 +++ b/keccak_simd.cpp
172 @@ -27,8 +27,10 @@
173  #endif\r
174  \r
175  #if defined(__XOP__)\r
176 -# include <immintrin.h>\r
177  # include <ammintrin.h>\r
178 +# if defined(__GNUC__)\r
179 +#  include <x86intrin.h>\r
180 +# endif\r
181  #endif\r
182  \r
183  // Squash MS LNK4221 and libtool warnings\r
184 diff --git a/lea_simd.cpp b/lea_simd.cpp
185 index b4180e34..ee2a5697 100644
186 --- a/lea_simd.cpp
187 +++ b/lea_simd.cpp
188 @@ -24,6 +24,9 @@
189  \r
190  #if defined(__XOP__)\r
191  # include <ammintrin.h>\r
192 +# if defined(__GNUC__)\r
193 +#  include <x86intrin.h>\r
194 +# endif\r
195  #endif\r
196  \r
197  #if defined(__AVX512F__)\r
198 diff --git a/simeck_simd.cpp b/simeck_simd.cpp
199 index 2a9efc99..f92a53d7 100644
200 --- a/simeck_simd.cpp
201 +++ b/simeck_simd.cpp
202 @@ -24,6 +24,9 @@
203  \r
204  #if defined(__XOP__)\r
205  # include <ammintrin.h>\r
206 +# if defined(__GNUC__)\r
207 +#  include <x86intrin.h>\r
208 +# endif\r
209  #endif\r
210  \r
211  // Squash MS LNK4221 and libtool warnings\r
212 diff --git a/simon128_simd.cpp b/simon128_simd.cpp
213 index 4b551f8f..cb16fa8d 100644
214 --- a/simon128_simd.cpp
215 +++ b/simon128_simd.cpp
216 @@ -23,8 +23,10 @@
217  #endif\r
218  \r
219  #if defined(__XOP__)\r
220 -# include <immintrin.h>\r
221  # include <ammintrin.h>\r
222 +# if defined(__GNUC__)\r
223 +#  include <x86intrin.h>\r
224 +# endif\r
225  #endif\r
226  \r
227  #if defined(__AVX512F__)\r
228 diff --git a/simon64_simd.cpp b/simon64_simd.cpp
229 index eb5a1757..fcbe1342 100644
230 --- a/simon64_simd.cpp
231 +++ b/simon64_simd.cpp
232 @@ -25,6 +25,9 @@
233  \r
234  #if defined(__XOP__)\r
235  # include <ammintrin.h>\r
236 +# if defined(__GNUC__)\r
237 +#  include <x86intrin.h>\r
238 +# endif\r
239  #endif\r
240  \r
241  // C1189: error: This header is specific to ARM targets\r
242 diff --git a/speck128_simd.cpp b/speck128_simd.cpp
243 index fb3eb1e6..0c0f389e 100644
244 --- a/speck128_simd.cpp
245 +++ b/speck128_simd.cpp
246 @@ -23,8 +23,10 @@
247  #endif\r
248  \r
249  #if defined(__XOP__)\r
250 -# include <immintrin.h>\r
251  # include <ammintrin.h>\r
252 +# if defined(__GNUC__)\r
253 +#  include <x86intrin.h>\r
254 +# endif\r
255  #endif\r
256  \r
257  #if defined(__AVX512F__)\r
258 diff --git a/speck64_simd.cpp b/speck64_simd.cpp
259 index 0a720fb3..0b43c175 100644
260 --- a/speck64_simd.cpp
261 +++ b/speck64_simd.cpp
262 @@ -25,6 +25,9 @@
263  \r
264  #if defined(__XOP__)\r
265  # include <ammintrin.h>\r
266 +# if defined(__GNUC__)\r
267 +#  include <x86intrin.h>\r
268 +# endif\r
269  #endif\r
270  \r
271  // C1189: error: This header is specific to ARM targets\r