diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch | 278 | ||||
-rw-r--r-- | meta/recipes-core/eglibc/eglibc_2.16.bb | 2 |
2 files changed, 261 insertions, 19 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch index 9a932ff0d7..60532cbd03 100644 --- a/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch +++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch | |||
@@ -5,9 +5,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
5 | Upstream-Status: Pending | 5 | Upstream-Status: Pending |
6 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 6 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c |
7 | =================================================================== | 7 | =================================================================== |
8 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-07-03 22:36:01.172386436 -0700 | 8 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c |
9 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-07-03 23:04:37.396469515 -0700 | 9 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c |
10 | @@ -40,7 +40,7 @@ | 10 | @@ -40,7 +40,7 @@ static const float half = 0.5; |
11 | simultaneously. */ | 11 | simultaneously. */ |
12 | 12 | ||
13 | double | 13 | double |
@@ -16,7 +16,7 @@ Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | |||
16 | { | 16 | { |
17 | if (__builtin_expect (b > 0, 1)) | 17 | if (__builtin_expect (b > 0, 1)) |
18 | { | 18 | { |
19 | @@ -77,7 +77,7 @@ | 19 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) |
20 | 20 | ||
21 | /* Handle small numbers by scaling. */ | 21 | /* Handle small numbers by scaling. */ |
22 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | 22 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) |
@@ -25,7 +25,7 @@ Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | |||
25 | 25 | ||
26 | #define FMADD(a_, c_, b_) \ | 26 | #define FMADD(a_, c_, b_) \ |
27 | ({ double __r; \ | 27 | ({ double __r; \ |
28 | @@ -126,4 +126,12 @@ | 28 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) |
29 | } | 29 | } |
30 | return f_wash (b); | 30 | return f_wash (b); |
31 | } | 31 | } |
@@ -40,9 +40,9 @@ Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | |||
40 | strong_alias (__ieee754_sqrt, __sqrt_finite) | 40 | strong_alias (__ieee754_sqrt, __sqrt_finite) |
41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c |
42 | =================================================================== | 42 | =================================================================== |
43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-07-03 22:36:01.172386436 -0700 | 43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c |
44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-07-03 23:07:06.260476775 -0700 | 44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c |
45 | @@ -38,7 +38,7 @@ | 45 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; |
46 | square root. */ | 46 | square root. */ |
47 | 47 | ||
48 | float | 48 | float |
@@ -51,7 +51,7 @@ Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | |||
51 | { | 51 | { |
52 | if (__builtin_expect (b > 0, 1)) | 52 | if (__builtin_expect (b > 0, 1)) |
53 | { | 53 | { |
54 | @@ -93,4 +93,10 @@ | 54 | @@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) |
55 | } | 55 | } |
56 | return f_washf (b); | 56 | return f_washf (b); |
57 | } | 57 | } |
@@ -64,9 +64,9 @@ Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | |||
64 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | 64 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) |
65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c |
66 | =================================================================== | 66 | =================================================================== |
67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-07-03 22:36:01.176386435 -0700 | 67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c |
68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-07-03 23:14:16.328497458 -0700 | 68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c |
69 | @@ -40,7 +40,7 @@ | 69 | @@ -40,7 +40,7 @@ static const float half = 0.5; |
70 | simultaneously. */ | 70 | simultaneously. */ |
71 | 71 | ||
72 | double | 72 | double |
@@ -75,7 +75,7 @@ Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | |||
75 | { | 75 | { |
76 | if (__builtin_expect (b > 0, 1)) | 76 | if (__builtin_expect (b > 0, 1)) |
77 | { | 77 | { |
78 | @@ -77,7 +77,7 @@ | 78 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) |
79 | 79 | ||
80 | /* Handle small numbers by scaling. */ | 80 | /* Handle small numbers by scaling. */ |
81 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | 81 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) |
@@ -84,7 +84,7 @@ Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | |||
84 | 84 | ||
85 | #define FMADD(a_, c_, b_) \ | 85 | #define FMADD(a_, c_, b_) \ |
86 | ({ double __r; \ | 86 | ({ double __r; \ |
87 | @@ -126,4 +126,12 @@ | 87 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) |
88 | } | 88 | } |
89 | return f_wash (b); | 89 | return f_wash (b); |
90 | } | 90 | } |
@@ -99,9 +99,9 @@ Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | |||
99 | strong_alias (__ieee754_sqrt, __sqrt_finite) | 99 | strong_alias (__ieee754_sqrt, __sqrt_finite) |
100 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 100 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c |
101 | =================================================================== | 101 | =================================================================== |
102 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-07-03 22:36:01.176386435 -0700 | 102 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c |
103 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-07-03 23:13:52.732496373 -0700 | 103 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c |
104 | @@ -38,7 +38,7 @@ | 104 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; |
105 | square root. */ | 105 | square root. */ |
106 | 106 | ||
107 | float | 107 | float |
@@ -110,7 +110,7 @@ Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | |||
110 | { | 110 | { |
111 | if (__builtin_expect (b > 0, 1)) | 111 | if (__builtin_expect (b > 0, 1)) |
112 | { | 112 | { |
113 | @@ -93,4 +93,10 @@ | 113 | @@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) |
114 | } | 114 | } |
115 | return f_washf (b); | 115 | return f_washf (b); |
116 | } | 116 | } |
@@ -120,4 +120,246 @@ Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | |||
120 | +{ | 120 | +{ |
121 | + return __slow_ieee754_sqrtf (x); | 121 | + return __slow_ieee754_sqrtf (x); |
122 | +} | 122 | +} |
123 | + | ||
124 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
125 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
126 | =================================================================== | ||
127 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
128 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
129 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
130 | |||
131 | #ifdef __STDC__ | ||
132 | double | ||
133 | -__ieee754_sqrt (double b) | ||
134 | +__slow_ieee754_sqrt (double b) | ||
135 | #else | ||
136 | double | ||
137 | -__ieee754_sqrt (b) | ||
138 | +__slow_ieee754_sqrt (b) | ||
139 | double b; | ||
140 | #endif | ||
141 | { | ||
142 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
143 | |||
144 | /* Handle small numbers by scaling. */ | ||
145 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
146 | - return __ieee754_sqrt (b * two108) * twom54; | ||
147 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
148 | |||
149 | #define FMADD(a_, c_, b_) \ | ||
150 | ({ double __r; \ | ||
151 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
152 | } | ||
153 | return f_wash (b); | ||
154 | } | ||
155 | + | ||
156 | +#undef __ieee754_sqrt | ||
157 | +double | ||
158 | +__ieee754_sqrt (double x) | ||
159 | +{ | ||
160 | + return __slow_ieee754_sqrt (x); | ||
161 | +} | ||
162 | + | ||
163 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
164 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
165 | =================================================================== | ||
166 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
167 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
168 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
169 | |||
170 | #ifdef __STDC__ | ||
171 | float | ||
172 | -__ieee754_sqrtf (float b) | ||
173 | +__slow_ieee754_sqrtf (float b) | ||
174 | #else | ||
175 | float | ||
176 | -__ieee754_sqrtf (b) | ||
177 | +__slow_ieee754_sqrtf (b) | ||
178 | float b; | ||
179 | #endif | ||
180 | { | ||
181 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
182 | } | ||
183 | return f_washf (b); | ||
184 | } | ||
185 | + | ||
186 | +#undef __ieee754_sqrtf | ||
187 | +float | ||
188 | +__ieee754_sqrtf (float x) | ||
189 | +{ | ||
190 | + return __slow_ieee754_sqrtf (x); | ||
191 | +} | ||
192 | + | ||
193 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
194 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
195 | =================================================================== | ||
196 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
197 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
198 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
199 | |||
200 | #ifdef __STDC__ | ||
201 | double | ||
202 | -__ieee754_sqrt (double b) | ||
203 | +__slow_ieee754_sqrt (double b) | ||
204 | #else | ||
205 | double | ||
206 | -__ieee754_sqrt (b) | ||
207 | +__slow_ieee754_sqrt (b) | ||
208 | double b; | ||
209 | #endif | ||
210 | { | ||
211 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
212 | |||
213 | /* Handle small numbers by scaling. */ | ||
214 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
215 | - return __ieee754_sqrt (b * two108) * twom54; | ||
216 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
217 | |||
218 | #define FMADD(a_, c_, b_) \ | ||
219 | ({ double __r; \ | ||
220 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
221 | } | ||
222 | return f_wash (b); | ||
223 | } | ||
224 | + | ||
225 | +#undef __ieee754_sqrt | ||
226 | +double | ||
227 | +__ieee754_sqrt (double x) | ||
228 | +{ | ||
229 | + return __slow_ieee754_sqrt (x); | ||
230 | +} | ||
231 | + | ||
232 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
233 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
234 | =================================================================== | ||
235 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
236 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
237 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
238 | |||
239 | #ifdef __STDC__ | ||
240 | float | ||
241 | -__ieee754_sqrtf (float b) | ||
242 | +__slow_ieee754_sqrtf (float b) | ||
243 | #else | ||
244 | float | ||
245 | -__ieee754_sqrtf (b) | ||
246 | +__slow_ieee754_sqrtf (b) | ||
247 | float b; | ||
248 | #endif | ||
249 | { | ||
250 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
251 | } | ||
252 | return f_washf (b); | ||
253 | } | ||
254 | + | ||
255 | +#undef __ieee754_sqrtf | ||
256 | +float | ||
257 | +__ieee754_sqrtf (float x) | ||
258 | +{ | ||
259 | + return __slow_ieee754_sqrtf (x); | ||
260 | +} | ||
261 | + | ||
262 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
263 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
264 | =================================================================== | ||
265 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
266 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
267 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
268 | |||
269 | #ifdef __STDC__ | ||
270 | double | ||
271 | -__ieee754_sqrt (double b) | ||
272 | +__slow_ieee754_sqrt (double b) | ||
273 | #else | ||
274 | double | ||
275 | -__ieee754_sqrt (b) | ||
276 | +__slow_ieee754_sqrt (b) | ||
277 | double b; | ||
278 | #endif | ||
279 | { | ||
280 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
281 | |||
282 | /* Handle small numbers by scaling. */ | ||
283 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
284 | - return __ieee754_sqrt (b * two108) * twom54; | ||
285 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
286 | |||
287 | #define FMADD(a_, c_, b_) \ | ||
288 | ({ double __r; \ | ||
289 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
290 | } | ||
291 | return f_wash (b); | ||
292 | } | ||
293 | + | ||
294 | +#undef __ieee754_sqrt | ||
295 | +double | ||
296 | +__ieee754_sqrt (double x) | ||
297 | +{ | ||
298 | + return __slow_ieee754_sqrt (x); | ||
299 | +} | ||
300 | + | ||
301 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
302 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
303 | =================================================================== | ||
304 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
305 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
306 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
307 | |||
308 | #ifdef __STDC__ | ||
309 | float | ||
310 | -__ieee754_sqrtf (float b) | ||
311 | +__slow_ieee754_sqrtf (float b) | ||
312 | #else | ||
313 | float | ||
314 | -__ieee754_sqrtf (b) | ||
315 | +__slow_ieee754_sqrtf (b) | ||
316 | float b; | ||
317 | #endif | ||
318 | { | ||
319 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
320 | } | ||
321 | return f_washf (b); | ||
322 | } | ||
323 | + | ||
324 | +#undef __ieee754_sqrtf | ||
325 | +float | ||
326 | +__ieee754_sqrtf (float x) | ||
327 | +{ | ||
328 | + return __slow_ieee754_sqrtf (x); | ||
329 | +} | ||
330 | + | ||
331 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
332 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
333 | =================================================================== | ||
334 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
335 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
336 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
337 | } | ||
338 | return f_wash (b); | ||
339 | } | ||
340 | + | ||
341 | +#undef __ieee754_sqrt | ||
342 | +double | ||
343 | +__ieee754_sqrt (double x) | ||
344 | +{ | ||
345 | + return __slow_ieee754_sqrt (x); | ||
346 | +} | ||
347 | + | ||
348 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
349 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
350 | =================================================================== | ||
351 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
352 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
353 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
354 | } | ||
355 | return f_washf (b); | ||
356 | } | ||
357 | + | ||
358 | +#undef __ieee754_sqrtf | ||
359 | +float | ||
360 | +__ieee754_sqrtf (float x) | ||
361 | +{ | ||
362 | + return __slow_ieee754_sqrtf (x); | ||
363 | +} | ||
364 | + | ||
123 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | 365 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) |
diff --git a/meta/recipes-core/eglibc/eglibc_2.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb index 4f07c1c049..278108058b 100644 --- a/meta/recipes-core/eglibc/eglibc_2.16.bb +++ b/meta/recipes-core/eglibc/eglibc_2.16.bb | |||
@@ -3,7 +3,7 @@ require eglibc.inc | |||
3 | SRCREV = "20393" | 3 | SRCREV = "20393" |
4 | 4 | ||
5 | DEPENDS += "gperf-native kconfig-frontends-native" | 5 | DEPENDS += "gperf-native kconfig-frontends-native" |
6 | PR = "r12" | 6 | PR = "r13" |
7 | PR_append = "+svnr${SRCPV}" | 7 | PR_append = "+svnr${SRCPV}" |
8 | 8 | ||
9 | EGLIBC_BRANCH="eglibc-2_16" | 9 | EGLIBC_BRANCH="eglibc-2_16" |