diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-06-21 17:58:06 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-22 16:57:34 +0100 |
commit | 3071ceb2bd1a42b28682e0ec851cbea62843e426 (patch) | |
tree | 2590654c66dd53559800cbc3c5eb659c6e8d1935 /meta/recipes-devtools | |
parent | dcd3cbaf925ebdc2a7aa146a21d658fd43143305 (diff) | |
download | poky-3071ceb2bd1a42b28682e0ec851cbea62843e426.tar.gz |
binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64
(From OE-Core rev: c8dfb7d31ceb3cc92452bda7d4fbf6fd2e248509)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils-2.21/binutils-pr12366.patch | 428 | ||||
-rw-r--r-- | meta/recipes-devtools/binutils/binutils_2.21.bb | 3 |
2 files changed, 430 insertions, 1 deletions
diff --git a/meta/recipes-devtools/binutils/binutils-2.21/binutils-pr12366.patch b/meta/recipes-devtools/binutils/binutils-2.21/binutils-pr12366.patch new file mode 100644 index 0000000000..c11a802941 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.21/binutils-pr12366.patch | |||
@@ -0,0 +1,428 @@ | |||
1 | This is backport from 2.21 branch | ||
2 | |||
3 | Upstream-Status: Backport | ||
4 | |||
5 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
6 | |||
7 | |||
8 | commit 946593d19f203b02efd45b5102dd2787d9418e24 | ||
9 | Author: H.J. Lu <hjl.tools@gmail.com> | ||
10 | Date: Wed May 25 17:41:32 2011 +0000 | ||
11 | |||
12 | Handle STT_GNU_IFUNC symols when building shared library. | ||
13 | |||
14 | bfd/ | ||
15 | |||
16 | 2012-05-25 H.J. Lu <hongjiu.lu@intel.com> | ||
17 | |||
18 | Backport from mainline | ||
19 | 2012-01-06 H.J. Lu <hongjiu.lu@intel.com> | ||
20 | |||
21 | PR ld/12366 | ||
22 | PR ld/12371 | ||
23 | * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly | ||
24 | handle symbols marked with regular reference, but not non-GOT | ||
25 | reference when building shared library. | ||
26 | |||
27 | * elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle | ||
28 | local and global STT_GNU_IFUNC symols when building shared | ||
29 | library. | ||
30 | * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise. | ||
31 | |||
32 | ld/testsuite/ | ||
33 | |||
34 | 2012-05-25 H.J. Lu <hongjiu.lu@intel.com> | ||
35 | |||
36 | Backport from mainline | ||
37 | 2012-01-06 H.J. Lu <hongjiu.lu@intel.com> | ||
38 | |||
39 | PR ld/12366 | ||
40 | PR ld/12371 | ||
41 | * ld-ifunc/ifunc-10-i386.s: Add more tests. | ||
42 | * ld-ifunc/ifunc-10-x86-64.s: Likewise. | ||
43 | * ld-ifunc/ifunc-11-i386.s: Likewise. | ||
44 | * ld-ifunc/ifunc-11-x86-64.s: Likewise. | ||
45 | |||
46 | * ld-ifunc/ifunc-12-i386.d: New. | ||
47 | * ld-ifunc/ifunc-12-i386.s: Likewise. | ||
48 | * ld-ifunc/ifunc-12-x86-64.d: Likewise. | ||
49 | * ld-ifunc/ifunc-12-x86-64.s: Likewise. | ||
50 | * ld-ifunc/ifunc-13-i386.d: Likewise. | ||
51 | * ld-ifunc/ifunc-13-x86-64.d: Likewise. | ||
52 | * ld-ifunc/ifunc-13a-i386.s: Likewise. | ||
53 | * ld-ifunc/ifunc-13a-x86-64.s: Likewise. | ||
54 | * ld-ifunc/ifunc-13b-i386.s: Likewise. | ||
55 | * ld-ifunc/ifunc-13b-x86-64.s: Likewise. | ||
56 | |||
57 | Index: binutils-2.21/bfd/elf-ifunc.c | ||
58 | =================================================================== | ||
59 | --- binutils-2.21.orig/bfd/elf-ifunc.c 2010-07-13 09:59:10.000000000 -0700 | ||
60 | +++ binutils-2.21/bfd/elf-ifunc.c 2011-06-21 16:33:40.751884107 -0700 | ||
61 | @@ -190,10 +190,29 @@ | ||
62 | /* Support garbage collection against STT_GNU_IFUNC symbols. */ | ||
63 | if (h->plt.refcount <= 0 && h->got.refcount <= 0) | ||
64 | { | ||
65 | - h->got = htab->init_got_offset; | ||
66 | - h->plt = htab->init_plt_offset; | ||
67 | - *head = NULL; | ||
68 | - return TRUE; | ||
69 | + /* When building shared library, we need to handle the case | ||
70 | + where it is marked with regular reference, but not non-GOT | ||
71 | + reference. It may happen if we didn't see STT_GNU_IFUNC | ||
72 | + symbol at the time when checking relocations. */ | ||
73 | + bfd_size_type count = 0; | ||
74 | + | ||
75 | + if (info->shared | ||
76 | + && !h->non_got_ref | ||
77 | + && h->ref_regular) | ||
78 | + { | ||
79 | + for (p = *head; p != NULL; p = p->next) | ||
80 | + count += p->count; | ||
81 | + if (count != 0) | ||
82 | + h->non_got_ref = 1; | ||
83 | + } | ||
84 | + | ||
85 | + if (count == 0) | ||
86 | + { | ||
87 | + h->got = htab->init_got_offset; | ||
88 | + h->plt = htab->init_plt_offset; | ||
89 | + *head = NULL; | ||
90 | + return TRUE; | ||
91 | + } | ||
92 | } | ||
93 | |||
94 | /* Return and discard space for dynamic relocations against it if | ||
95 | Index: binutils-2.21/bfd/elf32-i386.c | ||
96 | =================================================================== | ||
97 | --- binutils-2.21.orig/bfd/elf32-i386.c 2010-10-21 05:29:02.000000000 -0700 | ||
98 | +++ binutils-2.21/bfd/elf32-i386.c 2011-06-21 16:33:40.761884138 -0700 | ||
99 | @@ -1807,23 +1807,10 @@ | ||
100 | r_symndx = ELF32_R_SYM (rel->r_info); | ||
101 | if (r_symndx >= symtab_hdr->sh_info) | ||
102 | { | ||
103 | - struct elf_i386_link_hash_entry *eh; | ||
104 | - struct elf_dyn_relocs **pp; | ||
105 | - struct elf_dyn_relocs *p; | ||
106 | - | ||
107 | h = sym_hashes[r_symndx - symtab_hdr->sh_info]; | ||
108 | while (h->root.type == bfd_link_hash_indirect | ||
109 | || h->root.type == bfd_link_hash_warning) | ||
110 | h = (struct elf_link_hash_entry *) h->root.u.i.link; | ||
111 | - eh = (struct elf_i386_link_hash_entry *) h; | ||
112 | - | ||
113 | - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) | ||
114 | - if (p->sec == sec) | ||
115 | - { | ||
116 | - /* Everything must go for SEC. */ | ||
117 | - *pp = p->next; | ||
118 | - break; | ||
119 | - } | ||
120 | } | ||
121 | else | ||
122 | { | ||
123 | @@ -1843,6 +1830,22 @@ | ||
124 | } | ||
125 | } | ||
126 | |||
127 | + if (h) | ||
128 | + { | ||
129 | + struct elf_i386_link_hash_entry *eh; | ||
130 | + struct elf_dyn_relocs **pp; | ||
131 | + struct elf_dyn_relocs *p; | ||
132 | + | ||
133 | + eh = (struct elf_i386_link_hash_entry *) h; | ||
134 | + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) | ||
135 | + if (p->sec == sec) | ||
136 | + { | ||
137 | + /* Everything must go for SEC. */ | ||
138 | + *pp = p->next; | ||
139 | + break; | ||
140 | + } | ||
141 | + } | ||
142 | + | ||
143 | r_type = ELF32_R_TYPE (rel->r_info); | ||
144 | if (! elf_i386_tls_transition (info, abfd, sec, NULL, | ||
145 | symtab_hdr, sym_hashes, | ||
146 | @@ -1883,7 +1886,8 @@ | ||
147 | |||
148 | case R_386_32: | ||
149 | case R_386_PC32: | ||
150 | - if (info->shared) | ||
151 | + if (info->shared | ||
152 | + && (h == NULL || h->type != STT_GNU_IFUNC)) | ||
153 | break; | ||
154 | /* Fall through */ | ||
155 | |||
156 | Index: binutils-2.21/bfd/elf64-x86-64.c | ||
157 | =================================================================== | ||
158 | --- binutils-2.21.orig/bfd/elf64-x86-64.c 2010-10-21 05:29:02.000000000 -0700 | ||
159 | +++ binutils-2.21/bfd/elf64-x86-64.c 2011-06-21 16:33:40.761884138 -0700 | ||
160 | @@ -1645,23 +1645,10 @@ | ||
161 | r_symndx = ELF64_R_SYM (rel->r_info); | ||
162 | if (r_symndx >= symtab_hdr->sh_info) | ||
163 | { | ||
164 | - struct elf64_x86_64_link_hash_entry *eh; | ||
165 | - struct elf_dyn_relocs **pp; | ||
166 | - struct elf_dyn_relocs *p; | ||
167 | - | ||
168 | h = sym_hashes[r_symndx - symtab_hdr->sh_info]; | ||
169 | while (h->root.type == bfd_link_hash_indirect | ||
170 | || h->root.type == bfd_link_hash_warning) | ||
171 | h = (struct elf_link_hash_entry *) h->root.u.i.link; | ||
172 | - eh = (struct elf64_x86_64_link_hash_entry *) h; | ||
173 | - | ||
174 | - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) | ||
175 | - if (p->sec == sec) | ||
176 | - { | ||
177 | - /* Everything must go for SEC. */ | ||
178 | - *pp = p->next; | ||
179 | - break; | ||
180 | - } | ||
181 | } | ||
182 | else | ||
183 | { | ||
184 | @@ -1682,7 +1669,24 @@ | ||
185 | } | ||
186 | } | ||
187 | |||
188 | - r_type = ELF64_R_TYPE (rel->r_info); | ||
189 | + if (h) | ||
190 | + { | ||
191 | + struct elf64_x86_64_link_hash_entry *eh; | ||
192 | + struct elf_dyn_relocs **pp; | ||
193 | + struct elf_dyn_relocs *p; | ||
194 | + | ||
195 | + eh = (struct elf64_x86_64_link_hash_entry *) h; | ||
196 | + | ||
197 | + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) | ||
198 | + if (p->sec == sec) | ||
199 | + { | ||
200 | + /* Everything must go for SEC. */ | ||
201 | + *pp = p->next; | ||
202 | + break; | ||
203 | + } | ||
204 | + } | ||
205 | + | ||
206 | + r_type = ELF32_R_TYPE (rel->r_info); | ||
207 | if (! elf64_x86_64_tls_transition (info, abfd, sec, NULL, | ||
208 | symtab_hdr, sym_hashes, | ||
209 | &r_type, GOT_UNKNOWN, | ||
210 | @@ -1733,7 +1737,8 @@ | ||
211 | case R_X86_64_PC16: | ||
212 | case R_X86_64_PC32: | ||
213 | case R_X86_64_PC64: | ||
214 | - if (info->shared) | ||
215 | + if (info->shared | ||
216 | + && (h == NULL || h->type != STT_GNU_IFUNC)) | ||
217 | break; | ||
218 | /* Fall thru */ | ||
219 | |||
220 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-10-i386.s | ||
221 | =================================================================== | ||
222 | --- binutils-2.21.orig/ld/testsuite/ld-ifunc/ifunc-10-i386.s 2010-07-13 09:59:14.000000000 -0700 | ||
223 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-10-i386.s 2011-06-21 16:36:36.832142380 -0700 | ||
224 | @@ -6,6 +6,8 @@ | ||
225 | movl ifunc@GOTOFF(%ecx), %eax | ||
226 | call ifunc@PLT | ||
227 | call ifunc | ||
228 | + movl xxx@GOT(%ecx), %eax | ||
229 | + movl xxx, %eax | ||
230 | ret | ||
231 | |||
232 | .section .text.bar,"ax",@progbits | ||
233 | @@ -18,3 +20,7 @@ | ||
234 | .type ifunc, @gnu_indirect_function | ||
235 | ifunc: | ||
236 | ret | ||
237 | + | ||
238 | + .section .data.foo,"aw",@progbits | ||
239 | +xxx: | ||
240 | + .long ifunc | ||
241 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-10-x86-64.s | ||
242 | =================================================================== | ||
243 | --- binutils-2.21.orig/ld/testsuite/ld-ifunc/ifunc-10-x86-64.s 2010-07-13 09:59:14.000000000 -0700 | ||
244 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-10-x86-64.s 2011-06-21 16:36:36.822142371 -0700 | ||
245 | @@ -6,6 +6,7 @@ | ||
246 | movl ifunc(%rip), %eax | ||
247 | call ifunc@PLT | ||
248 | call ifunc | ||
249 | + movl xxx(%rip), %eax | ||
250 | ret | ||
251 | |||
252 | .section .text.bar,"ax",@progbits | ||
253 | @@ -18,3 +19,7 @@ | ||
254 | .type ifunc, @gnu_indirect_function | ||
255 | ifunc: | ||
256 | ret | ||
257 | + | ||
258 | + .section .data.foo,"aw",@progbits | ||
259 | +xxx: | ||
260 | + .quad ifunc | ||
261 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-11-i386.s | ||
262 | =================================================================== | ||
263 | --- binutils-2.21.orig/ld/testsuite/ld-ifunc/ifunc-11-i386.s 2010-07-13 09:59:14.000000000 -0700 | ||
264 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-11-i386.s 2011-06-21 16:36:36.832142380 -0700 | ||
265 | @@ -3,9 +3,11 @@ | ||
266 | foo: | ||
267 | .global foo | ||
268 | movl ifunc@GOT(%ecx), %eax | ||
269 | - movl ifunc@GOTOFF(%ecx), %eax | ||
270 | + movl ifunc@GOTOFF(%ecx), %eax | ||
271 | call ifunc@PLT | ||
272 | call ifunc | ||
273 | + movl xxx@GOT(%ecx), %eax | ||
274 | + movl xxx, %eax | ||
275 | ret | ||
276 | |||
277 | .section .text.bar,"ax",@progbits | ||
278 | @@ -16,6 +18,10 @@ | ||
279 | |||
280 | .section .text.ifunc,"ax",@progbits | ||
281 | .type ifunc, @gnu_indirect_function | ||
282 | - .global ifunc | ||
283 | + .global ifunc | ||
284 | ifunc: | ||
285 | ret | ||
286 | + | ||
287 | + .section .data.foo,"aw",@progbits | ||
288 | +xxx: | ||
289 | + .long ifunc | ||
290 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-11-x86-64.s | ||
291 | =================================================================== | ||
292 | --- binutils-2.21.orig/ld/testsuite/ld-ifunc/ifunc-11-x86-64.s 2010-07-13 09:59:14.000000000 -0700 | ||
293 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-11-x86-64.s 2011-06-21 16:36:36.822142371 -0700 | ||
294 | @@ -6,6 +6,7 @@ | ||
295 | movl ifunc(%rip), %eax | ||
296 | call ifunc@PLT | ||
297 | call ifunc | ||
298 | + movl xxx(%rip), %eax | ||
299 | ret | ||
300 | |||
301 | .section .text.bar,"ax",@progbits | ||
302 | @@ -19,3 +20,7 @@ | ||
303 | .global ifunc | ||
304 | ifunc: | ||
305 | ret | ||
306 | + | ||
307 | + .section .data.foo,"aw",@progbits | ||
308 | +xxx: | ||
309 | + .quad ifunc | ||
310 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-12-i386.d | ||
311 | =================================================================== | ||
312 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
313 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-12-i386.d 2011-06-21 16:33:40.761884138 -0700 | ||
314 | @@ -0,0 +1,6 @@ | ||
315 | +#ld: -shared -m elf_i386 -e bar --gc-sections | ||
316 | +#as: --32 | ||
317 | +#readelf: -r --wide | ||
318 | +#target: x86_64-*-* i?86-*-* | ||
319 | + | ||
320 | +There are no relocations in this file. | ||
321 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-12-x86-64.d | ||
322 | =================================================================== | ||
323 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
324 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-12-x86-64.d 2011-06-21 16:33:40.761884138 -0700 | ||
325 | @@ -0,0 +1,6 @@ | ||
326 | +#ld: -shared -m elf_x86_64 -e bar --gc-sections | ||
327 | +#as: --64 | ||
328 | +#readelf: -r --wide | ||
329 | +#target: x86_64-*-* | ||
330 | + | ||
331 | +There are no relocations in this file. | ||
332 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13-i386.d | ||
333 | =================================================================== | ||
334 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
335 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13-i386.d 2011-06-21 16:33:40.761884138 -0700 | ||
336 | @@ -0,0 +1,19 @@ | ||
337 | +#source: ifunc-13a-i386.s | ||
338 | +#source: ifunc-13b-i386.s | ||
339 | +#ld: -shared -m elf_i386 -z nocombreloc | ||
340 | +#as: --32 | ||
341 | +#readelf: -r --wide | ||
342 | +#target: x86_64-*-* i?86-*-* | ||
343 | + | ||
344 | +Relocation section '.rel.got' at .* | ||
345 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
346 | +#... | ||
347 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_GLOB_DAT[ ]+ifunc\(\)[ ]+ifunc | ||
348 | +#... | ||
349 | +Relocation section '.rel.ifunc' at .* | ||
350 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
351 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_32[ ]+ifunc\(\)[ ]+ifunc | ||
352 | +#... | ||
353 | +Relocation section '.rel.plt' at .* | ||
354 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
355 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc | ||
356 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13-x86-64.d | ||
357 | =================================================================== | ||
358 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
359 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13-x86-64.d 2011-06-21 16:33:40.761884138 -0700 | ||
360 | @@ -0,0 +1,18 @@ | ||
361 | +#source: ifunc-13a-x86-64.s | ||
362 | +#source: ifunc-13b-x86-64.s | ||
363 | +#ld: -shared -m elf_x86_64 -z nocombreloc | ||
364 | +#as: --64 | ||
365 | +#readelf: -r --wide | ||
366 | +#target: x86_64-*-* | ||
367 | + | ||
368 | +Relocation section '.rela.got' at .* | ||
369 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
370 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_GLOB_DAT[ ]+ifunc\(\)[ ]+ifunc \+ 0 | ||
371 | +#... | ||
372 | +Relocation section '.rela.ifunc' at .* | ||
373 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
374 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_64[ ]+ifunc\(\)[ ]+ifunc \+ 0 | ||
375 | +#... | ||
376 | +Relocation section '.rela.plt' at .* | ||
377 | +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* | ||
378 | +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc \+ 0 | ||
379 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13a-i386.s | ||
380 | =================================================================== | ||
381 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
382 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13a-i386.s 2011-06-21 16:36:36.822142371 -0700 | ||
383 | @@ -0,0 +1,10 @@ | ||
384 | + .text | ||
385 | + .type foo, @function | ||
386 | + .global | ||
387 | +foo: | ||
388 | + movl xxx@GOT(%ebx), %eax | ||
389 | + ret | ||
390 | + | ||
391 | + .data | ||
392 | +xxx: | ||
393 | + .long ifunc | ||
394 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13a-x86-64.s | ||
395 | =================================================================== | ||
396 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
397 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13a-x86-64.s 2011-06-21 16:36:36.822142371 -0700 | ||
398 | @@ -0,0 +1,10 @@ | ||
399 | + .text | ||
400 | + .type foo, @function | ||
401 | + .global | ||
402 | +foo: | ||
403 | + movl xxx(%rip), %eax | ||
404 | + ret | ||
405 | + | ||
406 | + .data | ||
407 | +xxx: | ||
408 | + .quad ifunc | ||
409 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13b-i386.s | ||
410 | =================================================================== | ||
411 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
412 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13b-i386.s 2011-06-21 16:33:40.761884138 -0700 | ||
413 | @@ -0,0 +1,5 @@ | ||
414 | + .text | ||
415 | + .type ifunc, @gnu_indirect_function | ||
416 | + .globl ifunc | ||
417 | +ifunc: | ||
418 | + ret | ||
419 | Index: binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13b-x86-64.s | ||
420 | =================================================================== | ||
421 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
422 | +++ binutils-2.21/ld/testsuite/ld-ifunc/ifunc-13b-x86-64.s 2011-06-21 16:33:40.761884138 -0700 | ||
423 | @@ -0,0 +1,5 @@ | ||
424 | + .text | ||
425 | + .type ifunc, @gnu_indirect_function | ||
426 | + .globl ifunc | ||
427 | +ifunc: | ||
428 | + ret | ||
diff --git a/meta/recipes-devtools/binutils/binutils_2.21.bb b/meta/recipes-devtools/binutils/binutils_2.21.bb index 270c720c39..2211931b1d 100644 --- a/meta/recipes-devtools/binutils/binutils_2.21.bb +++ b/meta/recipes-devtools/binutils/binutils_2.21.bb | |||
@@ -1,6 +1,6 @@ | |||
1 | require binutils.inc | 1 | require binutils.inc |
2 | 2 | ||
3 | PR = "r0" | 3 | PR = "r1" |
4 | 4 | ||
5 | LIC_FILES_CHKSUM="\ | 5 | LIC_FILES_CHKSUM="\ |
6 | file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\ | 6 | file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\ |
@@ -29,6 +29,7 @@ SRC_URI = "\ | |||
29 | file://libiberty_path_fix.patch \ | 29 | file://libiberty_path_fix.patch \ |
30 | file://binutils-poison.patch \ | 30 | file://binutils-poison.patch \ |
31 | file://libtool-rpath-fix.patch \ | 31 | file://libtool-rpath-fix.patch \ |
32 | file://binutils-pr12366.patch \ | ||
32 | " | 33 | " |
33 | 34 | ||
34 | SRC_URI[md5sum] = "c84c5acc9d266f1a7044b51c85a823f5" | 35 | SRC_URI[md5sum] = "c84c5acc9d266f1a7044b51c85a823f5" |