1 |
commit: 9678a57328cc2064f340bdcbd69bf4bf01554e29 |
2 |
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Sep 14 01:25:24 2019 +0000 |
4 |
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Sep 14 01:25:27 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9678a573 |
7 |
|
8 |
media-sound/alsa-utils: Add patch to fix tests |
9 |
|
10 |
Closes: https://bugs.gentoo.org/681652 |
11 |
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org> |
12 |
|
13 |
media-sound/alsa-utils/alsa-utils-1.1.9.ebuild | 1 + |
14 |
...fix-invalid-comparison-of-64-bit-storage-.patch | 249 +++++++++++++++++++++ |
15 |
2 files changed, 250 insertions(+) |
16 |
|
17 |
diff --git a/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild b/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild |
18 |
index bfb1938f52b..e6ea03b67b5 100644 |
19 |
--- a/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild |
20 |
+++ b/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild |
21 |
@@ -25,6 +25,7 @@ BDEPEND="virtual/pkgconfig" |
22 |
|
23 |
PATCHES=( |
24 |
"${FILESDIR}"/${PN}-1.1.8-missing_header.patch |
25 |
+ "${FILESDIR}"/${P}-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch |
26 |
) |
27 |
|
28 |
src_configure() { |
29 |
|
30 |
diff --git a/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch b/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch |
31 |
new file mode 100644 |
32 |
index 00000000000..65435839973 |
33 |
--- /dev/null |
34 |
+++ b/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch |
35 |
@@ -0,0 +1,249 @@ |
36 |
+From fbb222c9bccb407750cea61e3bb6285cb8c1b330 Mon Sep 17 00:00:00 2001 |
37 |
+From: Takashi Sakamoto <o-takashi@××××××××××.jp> |
38 |
+Date: Sun, 28 Jul 2019 13:48:50 +0900 |
39 |
+Subject: [PATCH] axfer: test: fix invalid comparison of 64 bit storage in |
40 |
+ ILP32 data type |
41 |
+ |
42 |
+In system V ABIs with ILP32 data model, bit shift for '1ul' can brings |
43 |
+undefined behaviour when the calculation result is over 32 bit width. |
44 |
+ |
45 |
+This commit fixes the bug. |
46 |
+ |
47 |
+Reported-by: Rolf Eike Beer <eike@×××××××.de> |
48 |
+Reference: https://bugs.gentoo.org/681652 |
49 |
+Reference: https://github.com/alsa-project/alsa-utils/issues/23 |
50 |
+Signed-off-by: Takashi Sakamoto <o-takashi@××××××××××.jp> |
51 |
+Signed-off-by: Takashi Iwai <tiwai@××××.de> |
52 |
+--- |
53 |
+ axfer/test/container-test.c | 142 ++++++++++++++++++------------------ |
54 |
+ axfer/test/generator.c | 4 +- |
55 |
+ axfer/test/mapper-test.c | 24 +++--- |
56 |
+ 3 files changed, 85 insertions(+), 85 deletions(-) |
57 |
+ |
58 |
+diff --git a/axfer/test/container-test.c b/axfer/test/container-test.c |
59 |
+index 0e2e6e9..9b30ae3 100644 |
60 |
+--- a/axfer/test/container-test.c |
61 |
++++ b/axfer/test/container-test.c |
62 |
+@@ -172,82 +172,82 @@ int main(int argc, const char *argv[]) |
63 |
+ { |
64 |
+ static const uint64_t sample_format_masks[] = { |
65 |
+ [CONTAINER_FORMAT_RIFF_WAVE] = |
66 |
+- (1ul << SND_PCM_FORMAT_U8) | |
67 |
+- (1ul << SND_PCM_FORMAT_S16_LE) | |
68 |
+- (1ul << SND_PCM_FORMAT_S16_BE) | |
69 |
+- (1ul << SND_PCM_FORMAT_S24_LE) | |
70 |
+- (1ul << SND_PCM_FORMAT_S24_BE) | |
71 |
+- (1ul << SND_PCM_FORMAT_S32_LE) | |
72 |
+- (1ul << SND_PCM_FORMAT_S32_BE) | |
73 |
+- (1ul << SND_PCM_FORMAT_FLOAT_LE) | |
74 |
+- (1ul << SND_PCM_FORMAT_FLOAT_BE) | |
75 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_LE) | |
76 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_BE) | |
77 |
+- (1ul << SND_PCM_FORMAT_MU_LAW) | |
78 |
+- (1ul << SND_PCM_FORMAT_A_LAW) | |
79 |
+- (1ul << SND_PCM_FORMAT_S24_3LE) | |
80 |
+- (1ul << SND_PCM_FORMAT_S24_3BE) | |
81 |
+- (1ul << SND_PCM_FORMAT_S20_3LE) | |
82 |
+- (1ul << SND_PCM_FORMAT_S20_3BE) | |
83 |
+- (1ul << SND_PCM_FORMAT_S18_3LE) | |
84 |
+- (1ul << SND_PCM_FORMAT_S18_3BE), |
85 |
++ (1ull << SND_PCM_FORMAT_U8) | |
86 |
++ (1ull << SND_PCM_FORMAT_S16_LE) | |
87 |
++ (1ull << SND_PCM_FORMAT_S16_BE) | |
88 |
++ (1ull << SND_PCM_FORMAT_S24_LE) | |
89 |
++ (1ull << SND_PCM_FORMAT_S24_BE) | |
90 |
++ (1ull << SND_PCM_FORMAT_S32_LE) | |
91 |
++ (1ull << SND_PCM_FORMAT_S32_BE) | |
92 |
++ (1ull << SND_PCM_FORMAT_FLOAT_LE) | |
93 |
++ (1ull << SND_PCM_FORMAT_FLOAT_BE) | |
94 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_LE) | |
95 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) | |
96 |
++ (1ull << SND_PCM_FORMAT_MU_LAW) | |
97 |
++ (1ull << SND_PCM_FORMAT_A_LAW) | |
98 |
++ (1ull << SND_PCM_FORMAT_S24_3LE) | |
99 |
++ (1ull << SND_PCM_FORMAT_S24_3BE) | |
100 |
++ (1ull << SND_PCM_FORMAT_S20_3LE) | |
101 |
++ (1ull << SND_PCM_FORMAT_S20_3BE) | |
102 |
++ (1ull << SND_PCM_FORMAT_S18_3LE) | |
103 |
++ (1ull << SND_PCM_FORMAT_S18_3BE), |
104 |
+ [CONTAINER_FORMAT_AU] = |
105 |
+- (1ul << SND_PCM_FORMAT_S8) | |
106 |
+- (1ul << SND_PCM_FORMAT_S16_BE) | |
107 |
+- (1ul << SND_PCM_FORMAT_S32_BE) | |
108 |
+- (1ul << SND_PCM_FORMAT_FLOAT_BE) | |
109 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_BE) | |
110 |
+- (1ul << SND_PCM_FORMAT_MU_LAW) | |
111 |
+- (1ul << SND_PCM_FORMAT_A_LAW), |
112 |
++ (1ull << SND_PCM_FORMAT_S8) | |
113 |
++ (1ull << SND_PCM_FORMAT_S16_BE) | |
114 |
++ (1ull << SND_PCM_FORMAT_S32_BE) | |
115 |
++ (1ull << SND_PCM_FORMAT_FLOAT_BE) | |
116 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) | |
117 |
++ (1ull << SND_PCM_FORMAT_MU_LAW) | |
118 |
++ (1ull << SND_PCM_FORMAT_A_LAW), |
119 |
+ [CONTAINER_FORMAT_VOC] = |
120 |
+- (1ul << SND_PCM_FORMAT_U8) | |
121 |
+- (1ul << SND_PCM_FORMAT_S16_LE) | |
122 |
+- (1ul << SND_PCM_FORMAT_MU_LAW) | |
123 |
+- (1ul << SND_PCM_FORMAT_A_LAW), |
124 |
++ (1ull << SND_PCM_FORMAT_U8) | |
125 |
++ (1ull << SND_PCM_FORMAT_S16_LE) | |
126 |
++ (1ull << SND_PCM_FORMAT_MU_LAW) | |
127 |
++ (1ull << SND_PCM_FORMAT_A_LAW), |
128 |
+ [CONTAINER_FORMAT_RAW] = |
129 |
+- (1ul << SND_PCM_FORMAT_S8) | |
130 |
+- (1ul << SND_PCM_FORMAT_U8) | |
131 |
+- (1ul << SND_PCM_FORMAT_S16_LE) | |
132 |
+- (1ul << SND_PCM_FORMAT_S16_BE) | |
133 |
+- (1ul << SND_PCM_FORMAT_U16_LE) | |
134 |
+- (1ul << SND_PCM_FORMAT_U16_BE) | |
135 |
+- (1ul << SND_PCM_FORMAT_S24_LE) | |
136 |
+- (1ul << SND_PCM_FORMAT_S24_BE) | |
137 |
+- (1ul << SND_PCM_FORMAT_U24_LE) | |
138 |
+- (1ul << SND_PCM_FORMAT_U24_BE) | |
139 |
+- (1ul << SND_PCM_FORMAT_S32_LE) | |
140 |
+- (1ul << SND_PCM_FORMAT_S32_BE) | |
141 |
+- (1ul << SND_PCM_FORMAT_U32_LE) | |
142 |
+- (1ul << SND_PCM_FORMAT_U32_BE) | |
143 |
+- (1ul << SND_PCM_FORMAT_FLOAT_LE) | |
144 |
+- (1ul << SND_PCM_FORMAT_FLOAT_BE) | |
145 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_LE) | |
146 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_BE) | |
147 |
+- (1ul << SND_PCM_FORMAT_IEC958_SUBFRAME_LE) | |
148 |
+- (1ul << SND_PCM_FORMAT_IEC958_SUBFRAME_BE) | |
149 |
+- (1ul << SND_PCM_FORMAT_MU_LAW) | |
150 |
+- (1ul << SND_PCM_FORMAT_A_LAW) | |
151 |
+- (1ul << SND_PCM_FORMAT_S24_3LE) | |
152 |
+- (1ul << SND_PCM_FORMAT_S24_3BE) | |
153 |
+- (1ul << SND_PCM_FORMAT_U24_3LE) | |
154 |
+- (1ul << SND_PCM_FORMAT_U24_3BE) | |
155 |
+- (1ul << SND_PCM_FORMAT_S20_3LE) | |
156 |
+- (1ul << SND_PCM_FORMAT_S20_3BE) | |
157 |
+- (1ul << SND_PCM_FORMAT_U20_3LE) | |
158 |
+- (1ul << SND_PCM_FORMAT_U20_3BE) | |
159 |
+- (1ul << SND_PCM_FORMAT_S18_3LE) | |
160 |
+- (1ul << SND_PCM_FORMAT_S18_3BE) | |
161 |
+- (1ul << SND_PCM_FORMAT_U18_3LE) | |
162 |
+- (1ul << SND_PCM_FORMAT_U18_3BE) | |
163 |
+- (1ul << SND_PCM_FORMAT_DSD_U8) | |
164 |
+- (1ul << SND_PCM_FORMAT_DSD_U16_LE) | |
165 |
+- (1ul << SND_PCM_FORMAT_DSD_U32_LE) | |
166 |
+- (1ul << SND_PCM_FORMAT_DSD_U16_BE) | |
167 |
+- (1ul << SND_PCM_FORMAT_DSD_U32_BE), |
168 |
++ (1ull << SND_PCM_FORMAT_S8) | |
169 |
++ (1ull << SND_PCM_FORMAT_U8) | |
170 |
++ (1ull << SND_PCM_FORMAT_S16_LE) | |
171 |
++ (1ull << SND_PCM_FORMAT_S16_BE) | |
172 |
++ (1ull << SND_PCM_FORMAT_U16_LE) | |
173 |
++ (1ull << SND_PCM_FORMAT_U16_BE) | |
174 |
++ (1ull << SND_PCM_FORMAT_S24_LE) | |
175 |
++ (1ull << SND_PCM_FORMAT_S24_BE) | |
176 |
++ (1ull << SND_PCM_FORMAT_U24_LE) | |
177 |
++ (1ull << SND_PCM_FORMAT_U24_BE) | |
178 |
++ (1ull << SND_PCM_FORMAT_S32_LE) | |
179 |
++ (1ull << SND_PCM_FORMAT_S32_BE) | |
180 |
++ (1ull << SND_PCM_FORMAT_U32_LE) | |
181 |
++ (1ull << SND_PCM_FORMAT_U32_BE) | |
182 |
++ (1ull << SND_PCM_FORMAT_FLOAT_LE) | |
183 |
++ (1ull << SND_PCM_FORMAT_FLOAT_BE) | |
184 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_LE) | |
185 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) | |
186 |
++ (1ull << SND_PCM_FORMAT_IEC958_SUBFRAME_LE) | |
187 |
++ (1ull << SND_PCM_FORMAT_IEC958_SUBFRAME_BE) | |
188 |
++ (1ull << SND_PCM_FORMAT_MU_LAW) | |
189 |
++ (1ull << SND_PCM_FORMAT_A_LAW) | |
190 |
++ (1ull << SND_PCM_FORMAT_S24_3LE) | |
191 |
++ (1ull << SND_PCM_FORMAT_S24_3BE) | |
192 |
++ (1ull << SND_PCM_FORMAT_U24_3LE) | |
193 |
++ (1ull << SND_PCM_FORMAT_U24_3BE) | |
194 |
++ (1ull << SND_PCM_FORMAT_S20_3LE) | |
195 |
++ (1ull << SND_PCM_FORMAT_S20_3BE) | |
196 |
++ (1ull << SND_PCM_FORMAT_U20_3LE) | |
197 |
++ (1ull << SND_PCM_FORMAT_U20_3BE) | |
198 |
++ (1ull << SND_PCM_FORMAT_S18_3LE) | |
199 |
++ (1ull << SND_PCM_FORMAT_S18_3BE) | |
200 |
++ (1ull << SND_PCM_FORMAT_U18_3LE) | |
201 |
++ (1ull << SND_PCM_FORMAT_U18_3BE) | |
202 |
++ (1ull << SND_PCM_FORMAT_DSD_U8) | |
203 |
++ (1ull << SND_PCM_FORMAT_DSD_U16_LE) | |
204 |
++ (1ull << SND_PCM_FORMAT_DSD_U32_LE) | |
205 |
++ (1ull << SND_PCM_FORMAT_DSD_U16_BE) | |
206 |
++ (1ull << SND_PCM_FORMAT_DSD_U32_BE), |
207 |
+ }; |
208 |
+ static const uint64_t access_mask = |
209 |
+- (1ul << SND_PCM_ACCESS_MMAP_INTERLEAVED) | |
210 |
+- (1ul << SND_PCM_ACCESS_RW_INTERLEAVED); |
211 |
++ (1ull << SND_PCM_ACCESS_MMAP_INTERLEAVED) | |
212 |
++ (1ull << SND_PCM_ACCESS_RW_INTERLEAVED); |
213 |
+ struct test_generator gen = {0}; |
214 |
+ struct container_trial *trial; |
215 |
+ int i; |
216 |
+diff --git a/axfer/test/generator.c b/axfer/test/generator.c |
217 |
+index cdea2c9..bde8c5f 100644 |
218 |
+--- a/axfer/test/generator.c |
219 |
++++ b/axfer/test/generator.c |
220 |
+@@ -220,7 +220,7 @@ static int test_sample_format(struct test_generator *gen, |
221 |
+ int err = 0; |
222 |
+ |
223 |
+ for (i = 0; i <= SND_PCM_FORMAT_LAST; ++i) { |
224 |
+- if (!((1ul << i) & gen->sample_format_mask)) |
225 |
++ if (!((1ull << i) & gen->sample_format_mask)) |
226 |
+ continue; |
227 |
+ |
228 |
+ err = test_samples_per_frame(gen, access, i); |
229 |
+@@ -237,7 +237,7 @@ static int test_access(struct test_generator *gen) |
230 |
+ int err = 0; |
231 |
+ |
232 |
+ for (i = 0; i <= SND_PCM_ACCESS_LAST; ++i) { |
233 |
+- if (!((1ul << i) & gen->access_mask)) |
234 |
++ if (!((1ull << i) & gen->access_mask)) |
235 |
+ continue; |
236 |
+ |
237 |
+ err = test_sample_format(gen, i); |
238 |
+diff --git a/axfer/test/mapper-test.c b/axfer/test/mapper-test.c |
239 |
+index 6b24d54..f0376c7 100644 |
240 |
+--- a/axfer/test/mapper-test.c |
241 |
++++ b/axfer/test/mapper-test.c |
242 |
+@@ -396,13 +396,13 @@ int main(int argc, const char *argv[]) |
243 |
+ { |
244 |
+ // Test 8/16/18/20/24/32/64 bytes per sample. |
245 |
+ static const uint64_t sample_format_mask = |
246 |
+- (1ul << SND_PCM_FORMAT_U8) | |
247 |
+- (1ul << SND_PCM_FORMAT_S16_LE) | |
248 |
+- (1ul << SND_PCM_FORMAT_S18_3LE) | |
249 |
+- (1ul << SND_PCM_FORMAT_S20_3LE) | |
250 |
+- (1ul << SND_PCM_FORMAT_S24_LE) | |
251 |
+- (1ul << SND_PCM_FORMAT_S32_LE) | |
252 |
+- (1ul << SND_PCM_FORMAT_FLOAT64_LE); |
253 |
++ (1ull << SND_PCM_FORMAT_U8) | |
254 |
++ (1ull << SND_PCM_FORMAT_S16_LE) | |
255 |
++ (1ull << SND_PCM_FORMAT_S18_3LE) | |
256 |
++ (1ull << SND_PCM_FORMAT_S20_3LE) | |
257 |
++ (1ull << SND_PCM_FORMAT_S24_LE) | |
258 |
++ (1ull << SND_PCM_FORMAT_S32_LE) | |
259 |
++ (1ull << SND_PCM_FORMAT_FLOAT64_LE); |
260 |
+ uint64_t access_mask; |
261 |
+ struct test_generator gen = {0}; |
262 |
+ struct mapper_trial *trial; |
263 |
+@@ -451,13 +451,13 @@ int main(int argc, const char *argv[]) |
264 |
+ goto end; |
265 |
+ } |
266 |
+ |
267 |
+- access_mask = 1ul << access; |
268 |
++ access_mask = 1ull << access; |
269 |
+ verbose = true; |
270 |
+ } else { |
271 |
+- access_mask = (1ul << SND_PCM_ACCESS_MMAP_INTERLEAVED) | |
272 |
+- (1ul << SND_PCM_ACCESS_MMAP_NONINTERLEAVED) | |
273 |
+- (1ul << SND_PCM_ACCESS_RW_INTERLEAVED) | |
274 |
+- (1ul << SND_PCM_ACCESS_RW_NONINTERLEAVED); |
275 |
++ access_mask = (1ull << SND_PCM_ACCESS_MMAP_INTERLEAVED) | |
276 |
++ (1ull << SND_PCM_ACCESS_MMAP_NONINTERLEAVED) | |
277 |
++ (1ull << SND_PCM_ACCESS_RW_INTERLEAVED) | |
278 |
++ (1ull << SND_PCM_ACCESS_RW_NONINTERLEAVED); |
279 |
+ verbose = false; |
280 |
+ } |
281 |
+ |
282 |
+-- |
283 |
+2.21.0 |
284 |
+ |