* elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
[external/binutils.git] / bfd / ChangeLog
1 2009-06-19  Alan Modra  <amodra@bigpond.net.au>
2
3         * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
4         pointer to sym hash.  Update all uses.
5         (update_plt_info): Likewise.  Don't check addend here.
6
7 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
8
9         * elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
10         bfd_sym_from_r_symndx.
11         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
12
13 2009-06-18  Alan Modra  <amodra@bigpond.net.au>
14
15         * elf-bfd.h (struct sym_sec_cache): Delete.
16         (struct sym_cache): New.
17         (bfd_section_from_r_symndx): Delete prototype.
18         (bfd_sym_from_r_symndx): Define prototype.
19         * elf.c (bfd_section_from_r_symndx): Delete, replace with..
20         (bfd_sym_from_r_symndx): ..new function.
21         * elf32-arm.c: Update all uses of struct sym_sec_cache and
22         bfd_section_from_r_symndx to new struct and function.
23         * elf32-bfin.c: Likewise.
24         * elf32-hppa.c: Likewise.
25         * elf32-i386.c: Likewise.
26         * elf32-m32r.c: Likewise.
27         * elf32-m68hc1x.c: Likewise.
28         * elf32-m68hc1x.h: Likewise.
29         * elf32-m68k.c: Likewise.
30         * elf32-ppc.c: Likewise.
31         * elf32-s390.c: Likewise.
32         * elf32-sh.c: Likewise.
33         * elf64-ppc.c: Likewise.
34         * elf64-s390.c: Likewise.
35         * elf64-x86-64.c: Likewise.
36         * elfxx-sparc.c: Likewise.
37         * elfxx-sparc.h: Likewise.
38
39 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
40
41         * elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
42         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
43
44 2009-06-18  Nick Clifton  <nickc@redhat.com>
45
46         * elflink.c (elf_link_sort_relocs): Return early if there are no
47         relocs to sort.
48
49 2009-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
50
51         Merge cegcc and mingw32ce target name changes from
52         CeGCC project:
53
54         2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>
55
56         * config.bfd: Add arm*-*-cegcc* target.
57
58         2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>
59
60         * config.bfd: Add arm-*-mingw32ce* target.
61
62 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
63
64         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
65         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
66         * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
67         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
68
69 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
70
71         * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
72         * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
73         * elf32-i386.c (elf_i386_check_relocs): Use it.
74         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
75
76 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
77
78         * elf-bfd.h (elf_dyn_relocs): New.
79
80         * elf32-i386.c (elf_i386_dyn_relocs): Removed.
81         (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
82         elf_dyn_relocs.
83         (elf_i386_copy_indirect_symbol): Likewise.
84         (elf_i386_check_relocs): Likewise.
85         (elf_i386_gc_sweep_hook): Likewise.
86         (elf_i386_allocate_dynrelocs): Likewise.
87         (elf_i386_readonly_dynrelocs): Likewise.
88         (elf_i386_size_dynamic_sections): Likewise.
89
90         * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
91         (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
92         with elf_dyn_relocs.
93         (elf64_x86_64_copy_indirect_symbol): Updated.
94         (elf64_x86_64_check_relocs): Likewise.
95         (elf64_x86_64_gc_sweep_hook): Likewise.
96         (elf64_x86_64_adjust_dynamic_symbol): Likewise.
97         (elf64_x86_64_allocate_dynrelocs): Likewise.
98         (elf64_x86_64_readonly_dynrelocs): Likewise.
99         (elf64_x86_64_size_dynamic_sections): Likewise.
100
101 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
102
103         * elf32-arm.c (create_got_section): Get existing .rela.got
104         section.
105         * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
106         * elf32-lm32.c (create_got_section): Likewise.
107         * elf32-m32r.c (create_got_section): Likewise.
108         * elf32-ppc.c (ppc_elf_create_got): Likewise.
109         * elf32-s390.c (create_got_section): Likewise.
110         * elf32-sh.c (create_got_section): Likewise.
111         * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
112         * elf64-s390.c (create_got_section): Likewise.
113         * elfxx-sparc.c (create_got_section): Likewise.
114
115         * elflink.c (_bfd_elf_create_got_section): Properly initialize
116         the GOT size.
117
118 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
119
120         * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.
121
122         * elf32-i386.c (elf_i386_local_hash): Removed.
123         (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
124         (elf_i386_get_local_sym_hash): Likewise.
125
126         * elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
127         (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
128         (elf64_x86_64_get_local_sym_hash): Likewise.
129         * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
130         (get_local_sym_hash): Likewise.
131
132 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
133
134         * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
135         rel_got_sec and plt_sec.
136         (elfNN_ia64_relax_section): Updated.
137         (elfNN_ia64_create_dynamic_sections): Likewise.
138         (get_got): Likewise.
139         (allocate_dynrel_entries): Likewise.
140         (elfNN_ia64_size_dynamic_sections): Likewise.
141         (set_got_entry): Likewise.
142         (elfNN_ia64_choose_gp): Likewise.
143         (elfNN_ia64_relocate_section): Likewise.
144         (elfNN_ia64_finish_dynamic_symbol): Likewise.
145         (elfNN_ia64_finish_dynamic_sections): Likewise.
146
147 2009-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
148
149         * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
150         also for calls.
151
152 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
153
154         * configure.in (elf): Add elf-ifunc.lo.
155
156         * configure: Regenerated.
157         * Makefile.in: Likewise.
158
159         * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
160         srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.
161
162         * elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
163         sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
164         irelifunc.
165         (elf_i386_link_hash_table_create): Likewise.
166         (elf_i386_create_dynamic_sections): Likewise.
167         (elf_i386_check_relocs): Likewise.
168         (elf_i386_allocate_dynrelocs): Likewise.
169         (elf_i386_size_dynamic_sections): Likewise.
170         (elf_i386_relocate_section): Likewise.
171         (elf_i386_finish_dynamic_symbol): Likewise.
172         (elf_i386_finish_dynamic_sections): Likewise.
173         (elf_i386_create_got_section): Removed.
174
175         * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
176         sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
177         irelifunc.
178         (elf64_x86_64_compute_jump_table_size): Updated.
179         (elf64_x86_64_link_hash_table_create): Likewise.
180         (elf64_x86_64_create_dynamic_sections): Likewise.
181         (elf64_x86_64_check_relocs): Likewise.
182         (elf64_x86_64_allocate_dynrelocs): Likewise.
183         (elf64_x86_64_size_dynamic_sections): Likewise.
184         (elf64_x86_64_relocate_section): Likewise.
185         (elf64_x86_64_finish_dynamic_symbol): Likewise.
186         (elf64_x86_64_finish_dynamic_sections): Likewise.
187         (elf64_x86_64_create_got_section): Removed.
188
189         * elflink.c (_bfd_elf_create_got_section): Use log_file_align
190         for pointer alignment.  Set up section pointers.
191         (_bfd_elf_create_dynamic_sections): Likewise.
192         (_bfd_elf_create_ifunc_sections): Moved to ...
193         * elf-ifunc.c: Here.  New.
194
195         * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
196         (BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
197         Run "make dep-am".
198
199 2009-06-16  Doug Kwan  <dougkwan@google.com>
200
201         * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
202         to bfd_signed_vma.  Cast constant operands which are used in
203         offset related expressions to bfd_signed_vma type as appropriate.
204
205 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
206
207         * elf32-vax.c (elf_vax_plt_sym_val): New function.
208         (elf_backend_plt_sym_val): Define.
209
210 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
211
212         * elf32-vax.c (elf_vax_reloc_type_class): New function.
213         (elf_backend_reloc_type_class): Define.
214
215 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
216
217         * elf32-vax.c (elf_vax_relocate_section): For symbol references
218         from an executable to a shared library treat R_VAX_PC32
219         relocations as R_VAX_PLT32 ones.
220
221 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
222
223         * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
224         symbols in GOT space calculation.
225         (elf_vax_relocate_section): Adjust accordingly.
226
227 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
228
229         * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
230         include <R11:R2>.
231
232 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
233
234         * elf32-vax.c (elf_vax_check_relocs): Handle the visibility
235         attribute.
236         (elf_vax_relocate_section): Likewise.
237
238 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
239
240         * elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
241         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
242
243 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
244
245         * elf32-i386.c (elf_i386_check_relocs): Reformat.
246         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
247
248 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
249
250         * Makefile.am: Run "make dep-am".
251         * Makefile.in: Regenerated.
252
253 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
254
255         * elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo.
256         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
257
258 2009-06-15  Nick Clifton  <nickc@redhat.com>
259
260         * po/ru.po: New Russian translation.
261         * configure.in (ALL_LINGUAS): Add ru.
262         * configure: Regenerate.
263
264 2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
265
266         * elf32-i386.c: Remove duplicated comments.
267
268 2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
269
270         PR ld/10270
271         * elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow
272         dynamic IFUNC pointer in non-shared object.  Use .got.plt
273         for IFUNC definition in PIE.
274         (elf_i386_allocate_dynrelocs): Resolve IFUNC definition in
275         PIE locally.
276
277         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow
278         dynamic IFUNC pointer in non-shared object.  Use .got.plt
279         for IFUNC definition in PIE.
280         (elf64_x86_64_relocate_section): Resolve IFUNC definition in
281         PIE locally.
282
283 2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
284
285         * elf32-i386.c (elf_i386_check_relocs): Properly report
286         local symbol for unhandled relocation against STT_GNU_IFUNC
287         symbol.
288         (elf_i386_relocate_section): Likewise.
289         * elf64-x86-64.c (elf64_x86_64_check_relocs):  Likewise.
290         (elf64_x86_64_relocate_section): Likewise.
291
292 2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
293
294         PR ld/10269
295         * elf32-i386.c: Include "objalloc.h" and "hashtab.h".
296         (elf_i386_link_hash_table): Add loc_hash_table and
297         loc_hash_memory.
298         (elf_i386_local_hash): New.
299         (elf_i386_local_htab_hash): Likewise.
300         (elf_i386_local_htab_eq): Likewise.
301         (elf_i386_get_local_sym_hash): Likewise.
302         (elf_i386_link_hash_table_free): Likewise.
303         (elf_i386_allocate_local_dynrelocs): Likewise.
304         (elf_i386_finish_local_dynamic_symbol): Likewise.
305         (bfd_elf64_bfd_link_hash_table_free): Likewise.
306         (elf_i386_link_hash_table_create): Create loc_hash_table and
307         loc_hash_memory.
308         (elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols.
309         (elf_i386_size_dynamic_sections): Likewise.
310         (elf_i386_relocate_section): Likewise.
311         (elf_i386_finish_dynamic_sections): Likewise.
312         (elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym
313         isn't NULL.
314
315         * elf64-x86-64.c: Include "objalloc.h" and "hashtab.h".
316         (elf64_x86_64_link_hash_table): Add loc_hash_table and
317         loc_hash_memory.
318         (elf64_x86_64_local_hash): New.
319         (elf64_x86_64_local_htab_hash): Likewise.
320         (elf64_x86_64_local_htab_eq): Likewise.
321         (elf64_x86_64_get_local_sym_hash): Likewise.
322         (elf64_x86_64_link_hash_table_free): Likewise.
323         (elf64_x86_64_allocate_local_dynrelocs): Likewise.
324         (elf64_x86_64_finish_local_dynamic_symbol): Likewise.
325         (bfd_elf64_bfd_link_hash_table_free): Likewise.
326         (elf64_x86_64_link_hash_table_create): Create loc_hash_table
327         and loc_hash_memory.
328         (elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC
329         symbols.
330         (elf64_x86_64_size_dynamic_sections): Likewise.
331         (elf64_x86_64_relocate_section): Likewise.
332         (elf64_x86_64_finish_dynamic_sections): Likewise.
333         (elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if
334         sym isn't NULL.
335
336 2009-06-10  Philip Blundell  <philb@gnu.org>
337
338         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if
339         elf_sec->this_hdr == NULL.
340
341 2009-06-12  Tristan Gingold  <gingold@adacore.com>
342
343         * reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR.
344         * bfd-in2.h: Regenerated.
345         * libbfd.h: Regenerated.
346
347         * mach-o.c (FILE_ALIGN): New macro.
348         (bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol.
349         (bfd_mach_o_print_symbol): Ditto.
350         (bfd_mach_o_scan_write_thread): Adjust type of variable offset.
351         (bfd_mach_o_get_reloc_upper_bound): New function.
352         (bfd_mach_o_canonicalize_reloc): Ditto.
353         (bfd_mach_o_scan_write_relocs): Ditto.
354         (bfd_mach_o_scan_write_section_32): Remove offset argument.
355         (bfd_mach_o_scan_write_section_64): Ditto.
356         (bfd_mach_o_scan_write_segment_32): Write relocs.  Fix size of data
357         written for load command.  Do not compute section file offset.
358         (bfd_mach_o_scan_write_segment_64): Ditto.
359         (bfd_mach_o_scan_write_symtab): Compute file offset first.
360         Adjust for bfd_mach_o_asymbol.  Move code to convert from BFD to
361         Mach-O to ...
362         (bfd_mach_o_mangle_symbols): ... this new function.
363         (bfd_mach_o_write_contents): Be sure to habe load commands built.
364         Call bfd_mach_o_mangle_symbols.
365         (bfd_mach_o_build_commands): Adjust for filelen field.
366         Use FILE_ALIGN macro.  Clear section file offset if section is empty.
367         Do not set symtab file offset anymore here.
368         (bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol.
369         (bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc.
370         Set reloc_count and rel_filepos section fields.
371         (bfd_mach_o_scan_read_section_32): Type of argument offset is now
372         unsigned int.
373         (bfd_mach_o_scan_read_section_64): Ditto.
374         (bfd_mach_o_scan_read_section): Ditto.
375         (bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now
376         bfd_mach_o_asymbol.  Use unsigned int for file offset type.
377         (bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol.
378         Handle weak-ref symbols.
379         (bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol.
380         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
381         (bfd_mach_o_scan): Remove assignment to removed field.
382         (bfd_mach_o_mkobject_init): Ditto.
383         (bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter.
384         (bfd_mach_o_bfd_reloc_type_lookup): New macro.
385         (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
386         (bfd_mach_o_swap_reloc_in): Ditto.
387         (bfd_mach_o_swap_reloc_out): Ditto.
388
389         * mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY)
390         (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY)
391         (BFD_MACH_O_REFERENCE_FLAG_DEFINED)
392         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED)
393         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY)
394         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY)
395         (BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED)
396         (BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF)
397         (BFD_MACH_O_N_WEAK_DEF): New macros.
398         Add comments.
399         (bfd_mach_o_section_type): Add new enumeration values.
400         (BFD_MACH_O_S_SELF_MODIFYING_CODE)
401         (BFD_MACH_O_S_ATTR_LIVE_SUPPORT)
402         (BFD_MACH_O_S_ATTR_NO_DEAD_STRIP)
403         (BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New
404         macros.
405         (BFD_MACH_O_GENERIC_RELOC_VANILLA)
406         (BFD_MACH_O_GENERIC_RELOC_PAIR)
407         (BFD_MACH_O_GENERIC_RELOC_SECTDIFF)
408         (BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR)
409         (BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto.
410         (BFD_MACH_O_RELENT_SIZE): Ditto.
411         (BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH)
412         (BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE)
413         (BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH)
414         (BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto.
415         (BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL)
416         (BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE)
417         (BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH)
418         (BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto.
419         (bfd_mach_o_reloc_info): New struct.
420         (bfd_mach_o_asymbol): New struct.
421         (bfd_mach_o_symtab_command): The symbols field is now of type
422         bfd_mach_o_asymbol.
423         (bfd_mach_o_load_command): The offset and len fields are now of type
424         unsigned int.
425         (mach_o_data_struct): Remove symbols, nsymbols and ibfd fields.
426         Add a filelen field.  Add comments.
427         (bfd_mach_o_backend_data): New struct.
428         (bfd_mach_o_get_backend_data): New macro.
429         (bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type
430         bfd_mach_o_asymbol.
431         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
432         (bfd_mach_o_get_reloc_upper_bound): New prototype.
433         (bfd_mach_o_canonicalize_reloc): Ditto.
434         
435         * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
436         duplicated macro.  Now defined to _bfd_generic_is_local_label.
437         (TARGET_NAME_BACKEND): New macro...
438         (TARGET_NAME_BACKEND): ... used to name a new variable.
439         (TARGET_NAME): Define relocs table using bfd_mach_o, reference
440         Mach-O backend data.
441
442         * mach-o-i386.c (i386_howto_table): New variable.
443         (bfd_mach_o_i386_swap_reloc_in): New function.
444         (bfd_mach_o_i386_swap_reloc_out): Ditto.
445         (bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto.
446         (bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto.
447         (bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros.
448         (bfd_mach_o_bfd_reloc_type_lookup)
449         (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
450
451 2009-06-11  Eric Paris  <eparis@redhat.com>
452             Nick Clifton  <nickc@redhat.com>
453
454         * opncls.c (_maybe_make_executable): New function.  Gives execute
455         permission to an executable bfd that was opened for writing
456         provided that it is a regular file.  Replaces common code found in...
457         (bfd_close): here and ...
458         (bfd_close_all_done): here.
459
460 2009-06-11  Anthony Green  <green@moxielogic.com>
461
462         * reloc.c: Add BFD_RELOC_MOXIE_10_PCREL.
463         * bfd-in2.h: Rebuilt.
464         * libbfd.h: Rebuilt.
465         * elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10
466         relocation support.
467         (moxie_reloc_map): Ditto.
468         Clean up copyright notice.
469
470 2009-06-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
471         
472         * bfd-in2.h: bfd_mmap prototype.
473         * bfdio.c (bfd_mmap): New function.
474         * libbfd.h (bfd_iovec): Add bmmap.
475         * cache.c (cache_bmmap): New function.
476         (cache_iovec): Initialize bmmap member.
477         * opencls.c (opncls_bmmap): New function.
478         (opncls_iovec): Initialize bmmap member.        
479         
480 2009-06-09  Tristan Gingold  <gingold@adacore.com>
481
482         * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
483         and stabstr_segment fields.
484         (mach_o_be_vec, mach_o_le_vec): Removed
485         (bfd_mach_o_version): New prototype.
486
487         * mach-o.c (bfd_mach_o_version): Make this function public.
488         (mach_o_wide_p): New function.
489         (bfd_mach_o_wide_p): Ditto.
490         (bfd_mach_o_convert_section_name_to_bfd): Add prefix only for
491         weird names.
492         (bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment.
493         Search in the list only if the name starts with a dot.
494         (bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded
495         test.  Check bfd_seek status.
496         (bfd_mach_o_scan_write_thread): Check bfd_seek status.
497         (bfd_mach_o_scan_write_section_32): Ditto.
498         (bfd_mach_o_scan_write_section_64): Ditto.
499         (bfd_mach_o_scan_write_section): Removed.
500         (bfd_mach_o_scan_write_segment): Split into ...
501         (bfd_mach_o_scan_write_segment_32): ... this and ...
502         (bfd_mach_o_scan_write_segment_64): ... this.  Check bfd_seek status.
503         (bfd_mach_o_scan_write_symtab_symbols): Moved into ...
504         (bfd_mach_o_scan_write_symtab): ... this.  Write symtab from BFD
505         symbol table.  Now returns a boolean.
506         (bfd_mach_o_write_contents): Set filetype.  Check bfd_seek status.
507         Adjust for status type.
508         (bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded
509         test.  Write symbol table.  Numbers the sections.
510         (bfd_mach_o_read_header): Check bfd_seek status.
511         Use mach_o_wide_p instead of hard-coded test.
512         (bfd_mach_o_scan_read_section_32): Check bfd_seek status.
513         (bfd_mach_o_scan_read_section_64): Ditto.
514         (bfd_mach_o_scan_read_symtab_symbol): Ditto.  Check bfd_seek status.
515         Use BFD_MACH_O_N_TYPE instead of hard-coded value.  Correctly
516         handled common symbols.
517         (bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status.
518         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
519         (bfd_mach_o_scan_read_dylinker): Ditto.
520         (bfd_mach_o_scan_read_dylib): Ditto.
521         (bfd_mach_o_scan_read_thread): Ditto.
522         (bfd_mach_o_scan_read_symtab): Ditto.
523         Do not create a section for the stabs.
524         (bfd_mach_o_scan_read_uuid): Check bfd_seek status.
525         (bfd_mach_o_scan_read_segment): Ditto.
526         (bfd_mach_o_scan_read_command): Ditto.
527         (bfd_mach_o_scan_start_address): Ditto.
528         (bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test.
529         (bfd_mach_o_archive_p): Check bfd_seek status.
530         (bfd_mach_o_core_fetch_environment): Ditto.
531
532         * mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype.
533
534 2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
535
536         * elf32-i386.c (elf_i386_link_hash_table): Add irelifunc.
537         (elf_i386_link_hash_table_create): Initialize irelifunc.
538         (elf_i386_check_relocs): Updated.  Set up irelifunc for
539         shared objects.
540         (elf_i386_allocate_dynrelocs): Use irelifunc for dynamic
541         relocation for non-GOT reference of STT_GNU_IFUNC symbol in
542         shared objects.
543         (elf_i386_relocate_section): Likewise.
544
545         * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc.
546         (elf64_x86_64_link_hash_table_create): Initialize irelifunc.
547         (elf64_x86_64_check_relocs): Updated.  Set up irelifunc for
548         shared objects.
549         (elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic
550         relocation for non-GOT reference of STT_GNU_IFUNC symbol in
551         shared objects.
552         (elf64_x86_64_relocate_section): Likewise.
553
554         * elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to
555         ...
556         (_bfd_elf_create_ifunc_sections): This.
557
558         * elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to
559         ...
560         (_bfd_elf_create_ifunc_sections): This.  Create .rel[a].ifunc
561         for shared objects.
562
563 2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
564
565         * elf32-i386.c (elf_i386_check_relocs): Make room for dynamic
566         relocation for R_386_32 against STT_GNU_IFUNC symbol when
567         building shared object.  Check info->executable instead of
568         !info->shared when setting non_got_ref.
569         (elf_i386_allocate_dynrelocs): Allocate dynamic relocation
570         for non-GOT reference of STT_GNU_IFUNC symbol in shared
571         object. Allocate GOT relocation agsinst STT_GNU_IFUNC
572         symbol if needed.
573         (elf_i386_relocate_section): Output dynamic relocation for
574         R_386_32 against STT_GNU_IFUNC symbol to get the real
575         function address when building shared object.
576         (elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT
577         relocation for STT_GNU_IFUNC symbol in shared object.
578
579         * elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for
580         dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC
581         symbol when building shared object.  Check info->executable
582         instead of !info->shared when setting non_got_ref.
583         (elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation
584         for non-GOT reference of STT_GNU_IFUNC symbol in shared
585         library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol
586         if needed.
587         (elf64_x86_64_relocate_section): Output dynamic relocation
588         for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real
589         function address when building shared object.
590         (elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT
591         relocation for STT_GNU_IFUNC symbol in shared object.
592
593 2009-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
594
595         * Makefile.am: Run "make dep-am".
596         (BFD32_BACKENDS): Add mach-o-i386.lo.
597         (BFD32_BACKENDS_CFILES): Add mach-o-i386.c.
598         * Makefile.in: Regenerate.
599
600 2009-06-06  Alan Modra  <amodra@bigpond.net.au>
601
602         * elf32-spu.c (spu_elf_relocate_section): Match overlay number
603         when looking for soft-icache stubs.
604
605 2009-06-05  Tristan Gingold  <gingold@adacore.com>
606
607         * mach-o.h: Update copyright year.
608         (bfd_mach_o_mach_header_magic): New enum.
609         (bfd_mach_o_cpu_subtype): Now an enum.
610         (BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros.
611         (BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto.
612         (BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto.
613         (bfd_mach_o_load_command): Field type_required is now a boolean.
614         Reindent prototypes.
615         (bfd_mach_o_object_p, bfd_mach_o_core_p): Remove.
616         (bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype.
617         (bfd_mach_o_bfd_copy_private_section_data): Ditto.
618         (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
619         (bfd_mach_o_get_symtab_upper_bound): Ditto.
620         (bfd_mach_o_canonicalize_symtab): Ditto.
621         (bfd_mach_o_get_symbol_info): Ditto.
622         (bfd_mach_o_print_symbol): Ditto.
623         (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
624         (bfd_mach_o_make_empty_symbol): Ditto.
625         (bfd_mach_o_write_contents): Ditto.
626
627         * mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p,
628         bfd_mach_o_mkobject): Defines.
629         (bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1.
630         Do not check with target vector but with flavour.
631         (struct mach_o_section_name_xlat): New declaration.
632         (dwarf_section_names_xlat): Ditto.
633         (text_section_names_xlat): Ditto.
634         (data_section_names_xlat): Ditto.
635         (struct mach_o_segment_name_xlat): Ditto.
636         (segsec_names_xlat): Ditto.
637         (bfd_mach_o_convert_section_name_to_bfd): New function.
638         (bfd_mach_o_convert_section_name_to_mach_o): Ditto.
639         (bfd_mach_o_bfd_copy_private_symbol_data): Make it public.
640         (bfd_mach_o_bfd_copy_private_section_data): Ditto.
641         (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
642         Accept any input and output flavour.  Do not share private data
643         anymore.
644         (bfd_mach_o_count_symbols): Add a comment.
645         (bfd_mach_o_get_symtab_upper_bound): Make it public.
646         (bfd_mach_o_canonicalize_symtab): Ditto.
647         (bfd_mach_o_get_symbol_info): Ditto.
648         (bfd_mach_o_print_symbol): Ditto.
649         (bfd_mach_o_write_header): Now returns a boolean instead of an int.
650         Use constants instead of hard-coded values.
651         (bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded
652         values.
653         (bfd_mach_o_scan_write_section_64): Ditto.
654         (bfd_mach_o_scan_write_segment): Ditto.
655         Do not copy sections anymore.
656         (bfd_mach_o_write_contents): Make it public.
657         Remove dead code.  Rewrite typeflag assignment.
658         (bfd_mach_o_build_commands): New function.
659         (bfd_mach_o_set_section_contents): Ditto.
660         (bfd_mach_o_make_empty_symbol): Make it public.
661         (bfd_mach_o_read_header): Make it static.
662         Convert to bfd_boolean.
663         Use constants instead of hard-coded values.
664         (bfd_mach_o_make_bfd_section): Call
665         bfd_mach_o_convert_section_name_to_bfd to create name.
666         (bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded
667         values.
668         (bfd_mach_o_scan_read_section_64): Ditto.
669         (bfd_mach_o_scan_read_segment): Do not create a bfd section for
670         a segment anymore.  Use constants instead of hard-coded values.
671         (bfd_mach_o_scan_read_command): Fix style.
672         (bfd_mach_o_scan): Use constants instead of hard-coded values.
673         Get rid of BFD_IO_FUNCS.
674         (bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject.
675         (bfd_mach_o_header_p): Created from bfd_mach_o_object_p.
676         (bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p.
677         (bfd_mach_o_object_p): Removed.
678         (bfd_mach_o_gen_core_p): New function, replaces ...
679         (bfd_mach_o_core_p): ... deleted.
680         (bfd_mach_o_bfd_print_private_bfd_data): Make it public.
681
682         * mach-o-i386.c: New file.
683         * config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin.
684         * configure.in (TDEFINES): Add mach_o_i386_vec.
685         * configure: Regenerated.
686         * targets.c: Add mach_o_i386_vec.
687
688         * mach-o.c: Update copyright years.
689         (BFD_IO_FUNCS): Remove (was not used).
690         (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap
691         bfd_mach_o_slurp_extended_name_table,
692         bfd_mach_o_construct_extended_name_table,
693         bfd_mach_o_truncate_arname, bfd_mach_o_write_armap,
694         bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt,
695         bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup,
696         bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook,
697         bfd_mach_o_get_section_contents_in_window,
698         bfd_mach_o_bfd_is_local_label_name,
699         bfd_mach_o_bfd_is_target_special_symbol,
700         bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno,
701         bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info,
702         bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols,
703         bfd_mach_o_minisymbol_to_symbol,
704         bfd_mach_o_bfd_get_relocated_section_contents,
705         bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create,
706         bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols,
707         bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link,
708         bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach,
709         bfd_mach_o_bfd_merge_private_bfd_data,
710         bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents,
711         bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections,
712         bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group,
713         bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol,
714         bfd_mach_o_bfd_copy_private_header_data,
715         bfd_mach_o_core_file_matches_executable_p): Move these defines ...
716         * mach-o-target.c: ... here.
717         Update copyright years.
718
719 2009-06-04  Alan Modra  <amodra@bigpond.net.au>
720
721         * dep-in.sed: Don't use \n in replacement part of s command.
722         * Makefile.am (DEP1): LC_ALL for uniq.
723         Run "make dep-am".
724         * Makefile.in: Regenerate.
725
726 2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
727
728         * elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of
729         h->plt.refcount > 0 on STT_GNU_IFUNC symbol.
730         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
731
732 2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
733
734         * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate
735         GOT entry for STT_GNU_IFUNC symbol with pointer equality.
736         (elf_i386_relocate_section): Adjust R_386_GOT32 relocation
737         against STT_GNU_IFUNC symbols for static executables.
738         (elf_i386_finish_dynamic_symbol): Load GOT entry with
739         PLT entry for STT_GNU_IFUNC symbol with pointer equality.
740
741         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate
742         GOT entry for STT_GNU_IFUNC symbol with pointer equality.
743         (elf64_x86_64_finish_dynamic_symbol): Load GOT entry with
744         PLT entry for STT_GNU_IFUNC symbol with pointer equality.
745
746 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
747
748         * coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined
749         symbols to be left unimported when linking statically.
750         * xcofflink.c (xcoff_link_add_symbols): Ignore global linkage
751         code when linking statically.
752
753 2009-06-02  H.J. Lu  <hongjiu.lu@intel.com>
754
755         * elf32-i386.c (elf_i386_check_relocs): Increment
756         got.refcount for R_386_GOT32/R_386_GOTOFF relocations
757         against STT_GNU_IFUNC symbol.
758         (elf_i386_allocate_dynrelocs): Set got.refcount to 0 if
759         local STT_GNU_IFUNC definition is used.
760         (elf_i386_relocate_section): Handle got.offset != -1 for
761         R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC
762         symbol.
763
764         * elf64-x86-64.c (elf64_x86_64_check_relocs): Increment
765         got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64
766         relocations against STT_GNU_IFUNC symbol.
767         (elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if
768         local STT_GNU_IFUNC definition is used.
769         (elf64_x86_64_relocate_section): Handle got.offset != -1
770         for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against
771         STT_GNU_IFUNC symbol.
772
773 2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
774
775         PR ld/10205
776         * elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
777         (elf_i386_reloc_type_lookup): Likewise.
778         (R_386_tls): Removed.
779         (R_386_irelative): New.
780         (R_386_vt_offset): Updated.
781         (elf_i386_rtype_to_howto): Likewise.
782         (elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
783         (elf_i386_link_hash_table_create): Initialize igotplt,
784         iplt and irelplt.
785         (elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
786         (elf_i386_adjust_dynamic_symbol): Likewise.
787         (elf_i386_allocate_dynrelocs): Likewise.
788         (elf_i386_relocate_section): Likewise.
789         (elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
790         sections.
791         (elf_i386_finish_dynamic_symbol): When building a static
792         executable, use .iplt, .igot.plt and .rel.iplt sections for
793         STT_GNU_IFUNC symbols.  Generate R_386_IRELATIVE relocation for
794         locally defined STT_GNU_IFUNC symbol.
795
796         * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
797         (x86_64_reloc_map): Likewise.
798         (R_X86_64_standard): Updated.
799         (elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
800         (elf64_x86_64_link_hash_table_create): Initialize igotplt,
801         iplt and irelplt.
802         (elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
803         (elf64_x86_64_adjust_dynamic_symbol): Likewise.
804         (elf64_x86_64_allocate_dynrelocs): Likewise.
805         (elf64_x86_64_relocate_section): Likewise.
806         (elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
807         sections.
808         (elf64_x86_64_finish_dynamic_symbol): When building a static
809         executable, use .iplt, .igot.plt and .rela.iplt sections for
810         STT_GNU_IFUNC symbols.  Generate R_X86_64_IRELATIVE relocation
811         for locally defined STT_GNU_IFUNC symbol.
812
813         * reloc.c (BFD_RELOC_386_IRELATIVE): New.
814         (BFD_RELOC_X86_64_IRELATIVE): Likewise.
815
816         * bfd-in2.h: Regenerated.
817         * libbfd.h: Likewise.
818
819 2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
820
821         * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
822         (_bfd_elf_make_ifunc_reloc_section): Removed.
823         (_bfd_elf_is_ifunc_symbol): Likewise.
824         (_bfd_elf_create_static_ifunc_sections): New.
825
826         * elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
827         symbol check to ...
828         (elf_link_add_object_symbols): Here.
829         (_bfd_elf_link_hash_hide_symbol): Don't clean plt on
830         STT_GNU_IFUNC symbol.
831         (elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
832         if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
833         (IFUNC_INFIX): Removed.
834         (get_ifunc_reloc_section_name): Likewise.
835         (_bfd_elf_make_ifunc_reloc_section): Likewise.
836         (_bfd_elf_is_ifunc_symbol): Likewise.
837         (_bfd_elf_create_static_ifunc_sections): New.
838
839 2009-05-29  H.J. Lu  <hongjiu.lu@intel.com>
840
841         * elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix.
842         (create_got_section): Likewise.
843         (allocate_dynrelocs): Likewise.
844         (readonly_dynrelocs): Likewise.
845         (set_tls_module_base): Likewise.
846         (dtpoff_base): Likewise.
847         (tpoff): Likewise.
848         (elf_i386_link_hash_table_create): Updated.
849         (elf_i386_create_dynamic_sections): Likewise.
850         (elf_i386_check_relocs): Likewise.
851         (elf_i386_size_dynamic_sections): Likewise.
852         (elf_i386_relocate_section): Likewise.
853
854         * elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix.
855         (create_got_section): Likewise.
856         (allocate_dynrelocs): Likewise.
857         (readonly_dynrelocs): Likewise.
858         (set_tls_module_base): Likewise.
859         (dtpoff_base): Likewise.
860         (tpoff): Likewise.
861         (elf64_x86_64_link_hash_table_create): Updated.
862         (elf64_x86_64_create_dynamic_sections): Likewise.
863         (elf64_x86_64_check_relocs): Likewise.
864         (elf64_x86_64_size_dynamic_sections): Likewise.
865         (elf64_x86_64_relocate_section): Likewise.
866
867 2009-05-28  Nick Clifton  <nickc@redhat.com>
868
869         * targets.c (_bfd_target_vector): Only include plugin target in
870         all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.
871
872 2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
873
874         * elf32-spu.c (struct call_info): New member broken_cycle.
875         (remove_cycle): Instead of physically removing call_info structures
876         to break call graph cycles, mark them using the broken_cycle flag.
877         (mark_overlay_section): Respect broken_cycle flag.
878         (unmark_overlay_section): Likewise.
879         (collect_lib_sections): Likewise.
880         (collect_overlays): Likewise.
881         (sum_stack): Likewise.
882
883 2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
884
885         * elf32-spu.c (insert_callee): Accumulate incoming callee->count.
886         (mark_functions_via_relocs): Initialize callee->count to 1.
887         (pasted_function): Likewise.
888         (spu_elf_auto_overlay): Honor call counts when determining number
889         of stubs required in software i-cache mode.
890
891 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
892
893         * plugin.c (program_name): Remove.
894         (plugin_program_name): New.
895         (bfd_plugin_set_program_name): New.
896         (try_load_plugin): Use plugin_program_name.
897         * plugin.h (bfd_plugin_set_program_name): New.
898
899 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
900
901         * aclocal.m4: Include ../config/plugins.m4.
902         * configure.in: Use AC_PLUGINS.
903         * configure: Regenerate.
904         * Makefile.in: Regenerate.
905         * doc/Makefile.in: Regenerate.
906
907 2009-05-27  Nathan Sidwell  <nathan@codesourcery.com>
908
909         * elf32-ppc.c (ppc_elf_relax_section): Work with a partial
910         link.
911         * bout.c (b_out_bfd_relax_section): Reject relocatable links.
912         * elf32-m10300.c (mn10300_elf_relax_section): Likewise.
913         * elf32-avr.c (elf32_avr_relax_section): Likewise.
914         * elf32-frv.c (elf32_avr_relax_section): Likewise.
915         * elf32-xtensa.c (elf_xtensa_relax_section): Likewise.
916         * elf64-mmix.c (mmix_elf_relax_section): Likewise.
917         * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
918         * elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise.
919         * reloc.c (bfd_generic_relax_section): Likewise.
920         * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
921         * vms.c (vms_bfd_relax_section): Likewise.
922
923 2009-05-26  H.J. Lu  <hongjiu.lu@intel.com>
924
925         * elf-bfd.h (_bfd_elf_is_ifunc_symbol): New.
926
927         * elf32-i386.c (is_indirect_symbol): Renamed to ...
928         * elflink.c (_bfd_elf_is_ifunc_symbol): This.
929
930         * elf32-i386.c (allocate_dynrelocs): Updated.
931         (elf_i386_relocate_section): Likewise.
932         * elf64-x86-64.c (allocate_dynrelocs): Likewise.
933         (elf64_x86_64_relocate_section): Likewise.
934
935         * elf64-x86-64.c (is_indirect_symbol): Removed.
936
937 2009-05-26  Nick Clifton  <nickc@redhat.com>
938
939         * po/id.po: Updated Indonesian translation.
940
941 2009-05-26  Rafael Avila de Espindola  <espindola@google.com>
942
943         * Makefile.am: Run "make dep-am".
944         (AM_CPPFLAGS): New.
945         (LIBDL): New.
946         (ALL_MACHINES): Add cpu-plugin.lo.
947         (ALL_MACHINES_CFILES): Add cpu-plugin.c.
948         (BFD32_BACKENDS): Add plugin.lo.
949         (BFD32_BACKENDS_CFILES): Add plugin.c.
950         (libbfd_la_LIBADD): Add LIBDL
951         * archures.c (bfd_architecture): Add bfd_arch_plugin.
952         (bfd_plugin_arch): Declare.
953         * bfd-in.h (BFD_SUPPORTS_PLUGINS): New.
954         * bfd.c (bfd): Add plugin_data.
955         * config.bfd: Handle the plugin target.
956         * configure.in: Check for --enable-plugins.
957         (LT_INIT): Use the dlopen option.
958         * cpu-plugin.c: New.
959         * plugin.c: New.
960         * plugin.h: New.
961         * targets.c (plugin_vec): Declare.
962         (_bfd_target_vector): Add plugin_vec.
963         * Makefile.in: Regenerate.
964         * bfd-in2.h: Regenerate.
965         * configure: Regenerate.
966
967 2009-05-26  Alan Modra  <amodra@bigpond.net.au>
968
969         * dep-in.sed: Don't modify .o to .lo here.  Output one filename
970         per line with all lines having continuation backslash.  Prefix
971         first line with "A", following lines with "B".
972         * Makefile.am (DEP): Don't use dep.sed here.
973         (DEP1): Run $MKDEP on single files, modify .o to .lo here.  Use
974         dep.sed here on dependencies, sort and uniq.
975         * Makefile.in: Regenerate.
976
977 2009-05-25  Tristan Gingold  <gingold@adacore.com>
978
979         * makefile.vms: Add verilog.obj to object list OBJS.
980
981 2009-05-24  Alan Modra  <amodra@bigpond.net.au>
982
983        * bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
984        for BFD_IN_MEMORY is cleared.
985        (bfd_bwrite): Zero excess memory allocated.
986
987 2009-05-22  Julian Brown  <julian@codesourcery.com>
988
989         * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
990         macros.
991         (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b)
992         (elf32_arm_stub_a8_veneer_blx): New stub sequences.
993         (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond,
994         arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx.
995         (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields.
996         (a8_erratum_fix, a8_erratum_reloc): New structs.
997         (elf32_arm_link_hash_table): Add a8_erratum_fixes,
998         num_a8_erratum_fixes, fix_cortex_a8 fields.
999         (elf32_arm_link_hash_table_create): Zero fix_cortex_a8.
1000         (elf32_arm_add_stub): Split into two parts, creating...
1001         (elf32_arm_create_or_find_stub_sec): New function.
1002         (elf32_arm_final_link_relocate): Add forward declaration.
1003         (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2
1004         relocations, multiple relocations per stub.
1005         (find_stub_size_and_template): New (using parts of arm_size_one_stub).
1006         (arm_size_one_stub): Use find_stub_size_and_template.
1007         (a8_reloc_compare): New.
1008         (find_thumb_glue): Add forward declaration.
1009         (cortex_a8_erratum_scan): New.
1010         (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support.
1011         (bfd_elf32_arm_set_cortex_a8_fix): New.
1012         (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument.
1013         (arm_map_one_stub): Add THUMB32_TYPE support.
1014         (a8_branch_to_stub_data): New.
1015         (make_branch_to_a8_stub): New.
1016         (elf32_arm_write_section): Add Cortex-A8 erratum workaround support.
1017         * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New.
1018         (bfd_elf32_arm_set_target_relocs): Add argument for controlling
1019         Cortex-A8 erratum workaround.
1020         * bfd-in2.h: Regenerate.
1021
1022 2009-05-22  Alan Modra  <amodra@bigpond.net.au>
1023
1024         * Makefile.am: Run "make dep-am".
1025         * Makefile.in: Regenerate.
1026         * po/SRC-POTFILES.in: Regenerate.
1027
1028 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
1029
1030         * elflink.c (elf_link_input_bfd): Correct *pindex change in last
1031         commit.
1032
1033 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
1034
1035         * elf-bfd.h (struct elf_backend_data
1036         <elf_backend_link_output_symbol_hook>): Return an int.
1037         * elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop
1038         symbols on deleted .opd entries.
1039         * elflink.c (elf_link_output_sym): Return without outputting sym
1040         if output_symbol_hook returns 2.
1041         (elf_link_output_extsym): Don't assign h->indx when symbol discarded.
1042         Abort if we must not discard sym.
1043         (elf_link_input_bfd): Similarly, don't set finfo->indices for
1044         local syms.
1045         (bfd_elf_final_link): Adjust elf_link_output_sym calls.
1046         * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for
1047         elf_backend_link_output_symbol_hook return type change.
1048         * elf32-arm.c (output_arch_syminfo): Likewise.
1049         (elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise.
1050         (elf32_arm_output_arch_local_syms): Likewise.
1051         * elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise.
1052         * elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise.
1053         (bfd_score_elf_link_output_symbol_hook): Likewise.
1054         * elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1055         * elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1056         * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise.
1057         * elf32-spu.c (spu_elf_output_symbol_hook): Likewise.
1058         * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
1059         * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
1060         * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
1061         * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
1062         * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
1063         * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1064         * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1065
1066 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
1067
1068         * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on
1069         out of range .opd symbols.
1070
1071 2009-05-21  Dave Korn  <dave.korn.cygwin@gmail.com>
1072
1073         * coffgen.c (coff_print_symbol):  Use bfd_fprintf_vma, not
1074         fprintf_vma directly.
1075         * peXXigen.c (pe_print_edata):  Likewise.
1076         (pe_print_pdata):  Likewise.
1077         (_bfd_XX_print_ce_compressed_pdata):  Likewise.
1078         (_bfd_XX_print_private_bfd_data_common):  Likewise.
1079
1080 2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>
1081
1082         * cofflink.c (process_embedded_commands):  Ignore "-aligncomm".
1083
1084 2009-05-15  Andrew Stubbs  <ams@codesourcery.com>
1085             Paul Brook  <paul@codesourcery.com>
1086
1087         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to
1088         fix discarded sections.
1089
1090 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1091
1092         * elf32-spu.c (mark_overlay_section): Move .init and .fini
1093         sections into the software icache.
1094
1095 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1096
1097         * elf32-spu.c (build_stub): Always build "compact" sofware
1098         i-cache stubs.
1099
1100 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1101
1102         * elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2.
1103         (spu_elf_setup): Initialize it.
1104         (spu_elf_size_stubs): Move .ovtab into .bss for software i-cache.
1105         Update to new-sytle cache manager data structures.
1106         (spu_elf_build_stubs): Generate new-style cache manager data
1107         structures and symbols.
1108         (spu_elf_auto_overlay): Update size computation.
1109
1110 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1111
1112         * elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY
1113         segments first amongst the program headers.
1114
1115 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1116
1117         * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
1118         into addresses for relocation types that look at high bits.  Remove
1119         special handling of relocation overflow warnings.
1120
1121 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1122
1123         * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
1124         control flow graph between fragments of a function.
1125
1126 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
1127
1128         * elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
1129         generate only a 16-byte .toe section.
1130         (spu_elf_build_stubs, spu_elf_auto_overlay): Likewise.
1131
1132 2009-05-14  Alan Modra  <amodra@bigpond.net.au>
1133
1134         * elf32-spu.c (spu_elf_size_stubs): Split out section placement to..
1135         (spu_elf_place_overlay_data): ..here.  New function.
1136         * elf32-spu.h (spu_elf_place_overlay_data): Declare.
1137
1138 2009-05-13  Andrew Jenner  <andrew@codesourcery.com>
1139
1140         * elf32-arm.c: Move sysdep.h to start of file.
1141
1142 2009-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
1143
1144         * elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as
1145         start of overlays.
1146         (spu_elf_build_stubs): Don't define __icache_tagbase.  Define
1147         __icache_tag_array and __icache_tag_array_size.
1148
1149 2009-05-11  Masaki Muranaka  <monaka@monami-software.com>
1150
1151         * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Remove unnecessary
1152         ATTRIBUTE_UNUSED.
1153         (bfinfdpic_link_omit_section_dynsym): Likewise.
1154         (elf32_bfinfdpic_finish_dynamic_sections): Likewise.
1155
1156 2009-05-05  Paul Brook  <paul@codesourcery.com>
1157
1158         * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
1159         * bfd-in2.h: Regenerate.
1160         * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
1161         (_arm_elf_section_data): Add text and exidx fields.
1162         (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
1163         insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
1164         copy_exidx_entry): New functions.
1165         (elf32_arm_write_section): Fixup .ARM.exidx contents.
1166
1167 2009-05-05  Christophe lyon  <christophe.lyon@st.com>
1168
1169         * elf32-arm.c (DEF_STUBS): New helper define.
1170         (DEF_STUB): Likewise.
1171         (stub_def): New type.
1172         (stub_definitions): New array, containing stub template pointers
1173         and sizes.
1174         (arm_size_one_stub): Make use of stub_definitions.
1175
1176 2009-05-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1177
1178         * elflink.c (find_version_for_sym):  Remove from here, ...
1179         * linker.c (bfd_find_version_for_sym):  ... rename, replace
1180         here, make public and update all callers.
1181         * bfd-in2.h:  Regenerate.
1182
1183 2009-04-30  Nick Clifton  <nickc@redhat.com>
1184
1185         * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs
1186         section pointer.
1187         (struct elf_obj_data): Add has_ifunc_symbols boolean.
1188         * elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags
1189         into a STT_GNU_IFUNC symbol type.
1190         (_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function
1191         type.
1192         (_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if
1193         the binary contains ifunc symbols.
1194         * elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC
1195         symbol type into a BSF_GNU_INDIRECT_FUNCTION flag.
1196         * elf32-i386.c (is_indirect_function): New function.
1197         (elf_i386_check_relocs): Create an ifunc output section.
1198         (allocate_dynrelocs): Create dynamic relocs in the ifunc output
1199         section if necessary.
1200         (elf_i386_relocate_section): Emit a reloc against an ifunc symbol
1201         if necessary.
1202         (elf_i386_add_symbol_hook): New function. Set the
1203         has_ifunc_symbols field of the elf_obj_data structure if an ifunc
1204         symbol is encountered.
1205         (elf_backend_post_process_headers): Define.
1206         (elf_backend_add_symbol_hook): Define.
1207         (elf_i386_post_process_headers): Rename to
1208         elf_i388_fbsd_post_process_headers.
1209         * elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro.
1210         (is_indirect_function): New function.
1211         (elf64_x86_64_check_relocs): Create an ifunc output section.
1212         (allocate_dynrelocs): Create dynamic relocs in the ifunc output
1213         section if necessary.
1214         (elf64_x86_64_relocate_section): Emit a reloc against an ifunc
1215         symbol if necessary.
1216         (elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the
1217         elf_obj_data structure if an ifunc symbol is encountered.
1218         (elf_backend_post_process_headers): Define.
1219         * elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT
1220         if we have ifunc symbols to handle.
1221         (get_ifunc_reloc_section_name): New function.  Computes the name
1222         for an ifunc section.
1223         (_bfd_elf_make_ifunc_reloc_section): New function.  Creates a
1224         section to hold ifunc relocs.
1225         * syms.c (BSF_GNU_INDIRECT_FUNCTION): Define.
1226         (bfd_print_symbol_vandf): Handle ifunc symbols.
1227         (bfd_decode_symclass): Likewise.
1228         * bfd-in2.h: Regenerate.
1229
1230 2009-04-30  Joseph Myers  <joseph@codesourcery.com>
1231
1232         * elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute
1233         MOVW and MOVT relocations in a shared library link.
1234
1235 2009-04-27  Anthony Green  <green@moxielogic.com>
1236
1237         * verilog.c: New file.
1238         * Makefile.am (BFD32_LIBS): Add verilog.c.
1239         (BFD32_LIBS_CFILES): Add verilog.c.
1240         (verilog.lo): New build rule.
1241         * Makefile.in: Rebuilt.
1242         * targets.c: Add verilog support.
1243         * bfd.c (tdata union): Add Verilog private data field.
1244         * bfd-in2.h: Regenerate.
1245
1246 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1247
1248         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
1249         copy pe_opthdr.
1250
1251 2009-04-23  Matthias Klose  <doko@ubuntu.com>
1252
1253         * peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.
1254
1255 2009-04-22  Christophe Lyon  <christophe.lyon@st.com>
1256
1257         PR9743
1258         * elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24,
1259         R_ARM_JUMP24 and R_ARM_PLT32 relocations.
1260         (elf32_arm_size_stubs): Likewise.
1261         (record_thumb_to_arm_glue): Deleted unused function.
1262         (bfd_elf32_arm_process_before_allocation): No longer handle
1263         R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here.
1264         (elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24,
1265         R_ARM_JUMP24 and R_ARM_PLT32 relocations.
1266
1267 2009-04-21  Daniel Jacobowitz  <dan@codesourcery.com>
1268
1269         * elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
1270         (elf32_arm_write_section): Declare early.
1271         (elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
1272         (arm_allocate_glue_section_space): Exclude empty sections.
1273         (ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
1274         (bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
1275         BFD.
1276         (elf32_arm_output_glue_section, elf32_arm_final_link): New.
1277         (elf32_arm_merge_eabi_attributes): Skip the stub BFD.
1278         (elf32_arm_size_dynamic_sections): Allocate interworking
1279         sections here.
1280         (bfd_elf32_bfd_final_link): Define.
1281
1282 2009-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1283
1284         * coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K.
1285
1286         * coffcode.h (coff_compute_section_file_positions): Clear
1287         D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE.
1288
1289         * libcoff-in.h (pe_tdata): Remove force_minimum_alignment and
1290         force_minimum_alignment.
1291
1292         * libcoff.h: Regenerated.
1293
1294         * pei-ia64.c (PEI_TARGET_SUBSYSTEM): Removed.
1295         (PEI_FORCE_MINIMUM_ALIGNMENT): Likewise.
1296
1297         * peicode.h (pe_mkobject): Don't set force_minimum_alignment
1298         nor target_subsystem.
1299
1300         * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't check
1301         force_minimum_alignment nor target_subsystem.
1302
1303 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1304
1305         * coff-x86_64.c (PEI_HEADERS): Protect includes.
1306         (bfd_pe_print_pdata): Remove #ifdef PE variation.
1307         * pei-x86_64.c (PEI_HEADERS): Define to prevent double
1308         include in coff-x86_64.c of headers.
1309         (PDATA_ROW_SIZE): New define.
1310         (pex_regs[]): New static array.
1311         (pex64_get_runtime_function): New static function.
1312         (pex64_get_unwind_info): Likewise.
1313         (pex64_get_scope_entry): Likewise.
1314         (pex64_xdata_print_uwd_codes): Likewise.
1315         (pex64_get_section_by_rva): Likewise.
1316         (pex64_dump_xdata): Likewise.
1317         (pex64_bfd_print_pdata): Likewise.
1318         (bfd_pe_print_pdata): Define as pex64_bfd_print_pdata.
1319         * peXXigen.c (_bfd_pex64_print_pdata): Removed implementation.
1320         * libpei.h (_bfd_pex64_print_pdata): Removed declaration.
1321
1322 2009-04-19  Peter O'Gorman  <binutils@mlists.thewrittenword.com>
1323             Alan Modra  <amodra@bigpond.net.au>
1324             Dave Korn  <dave.korn.cygwin@gmail.com>
1325
1326         * peXXigen.c (_bfd_XXi_swap_sym_in): Fix name handling w.r.t
1327         long names and non-NUL-terminated strings.
1328
1329 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1330
1331         * bfd-in2.h: Regenerated.
1332
1333 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1334
1335         * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Replace
1336         IMAGE_SUBSYSTEM_EFI_ROM with IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER.
1337
1338 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1339
1340         PR binutils/10074
1341         * coffcode.h (bfd_pei_p): New.
1342
1343         * config.bfd: Remove bfd_efi_bsdrv_ia32_vec,
1344         bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
1345         bfd_efi_rtdrv_x86_64_vec, bfd_efi_bsdrv_ia64_vec and
1346         bfd_efi_rtdrv_ia64_vec.  Replace bfd_efi_app_ia32_vec,
1347         bfd_efi_app_x86_64_vec and bfd_efi_app_ia64_vec with
1348         i386pei_vec, x86_64pei_vec and bfd_pei_ia64_vec, respectively.
1349
1350         * configure.in: Remove bfd_efi_bsdrv_ia32_vec,
1351         bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
1352         bfd_efi_rtdrv_x86_64_vec,
1353         bfd_efi_bsdrv_ia64_vec and bfd_efi_rtdrv_ia64_vec.  Replace
1354         bfd_efi_ia64_vec with bfd_pei_ia64_vec.
1355         * targets.c: Likewise.
1356
1357         * configure: Regenerated.
1358         * libcoff.h: Likewise.
1359         * Makefile.in: Likewise.
1360
1361         * efi-app-ia32.c: Removed.
1362         * efi-app-x86_64.c: Likewise.
1363         * efi-bsdrv-ia32.c: Likewise.
1364         * efi-bsdrv-ia64.c: Likewise.
1365         * efi-bsdrv-x86_64.c: Likewise.
1366         * efi-rtdrv-ia32.c: Likewise.
1367         * efi-rtdrv-ia64.c: Likewise.
1368         * efi-rtdrv-x86_64.c: Likewise.
1369         * efi-rtdrv-ia32.c: Likewise.
1370
1371         * efi-app-ia64.c: Moved to ...
1372         * pei-ia64.c: This.
1373         (TARGET_SYM): Set to bfd_pei_ia64_vec.
1374         (TARGET_NAME): Set to pei-ia64.
1375
1376         * libpei.h (bfd_target_pei_p): Removed.
1377         (bfd_target_pei_arch): Likewise.
1378         (bfd_target_efi_app_p): Likewise.
1379         (bfd_target_efi_app_arch): Likewise.
1380         (bfd_target_efi_bsdrv_p): Likewise.
1381         (bfd_target_efi_bsdrv_arch): Likewise.
1382         (bfd_target_efi_rtdrv_p): Likewise.
1383         (bfd_target_efi_rtdrv_arch): Likewise.
1384         (bfd_pe_executable_p): Likewise.
1385
1386         * Makefile.am (BFD32_BACKENDS): Remove efi-app-ia32.lo,
1387         efi-bsdrv-ia32.lo and efi-rtdrv-ia32.lo.
1388         (BFD32_BACKENDS_CFILES): Remove efi-app-ia32.c, efi-bsdrv-ia32.c
1389         and efi-rtdrv-ia32.c.
1390         (BFD64_BACKENDS): Remove efi-app-ia64.lo, efi-bsdrv-ia64.lo,
1391         efi-rtdrv-ia64.lo, efi-app-x86_64.lo, efi-bsdrv-x86_64.lo and
1392         efi-rtdrv-x86_64.lo. Add pei-ia64.lo.
1393         (BFD64_BACKENDS_CFILES): Remove efi-app-ia64.c, efi-bsdrv-ia64.c,
1394         efi-rtdrv-ia64.c, efi-app-x86_64.c, efi-bsdrv-x86_64.c and
1395         efi-rtdrv-x86_64.c. Add pei-ia64.c.
1396         (efi-app-ia64.lo): Removed.
1397         (efi-bsdrv-ia32.lo): Likewise.
1398         (efi-rtdrv-ia32.lo): Likewise.
1399         (efi-app-ia64.lo): Likewise.
1400         (efi-bsdrv-ia64.lo): Likewise.
1401         (efi-rtdrv-ia64.lo): Likewise.
1402         (efi-app-x86_64.lo): Likewise.
1403         (efi-bsdrv-x86_64.lo): Likewise.
1404         (efi-rtdrv-x86_64.lo): Likewise.
1405         (pei-ia64.lo): New.
1406
1407         * peicode.h (coff_swap_scnhdr_in): Replace bfd_pe_executable_p
1408         with bfd_pei_p.
1409         (arch_type): Removed.
1410         (pe_arch): Likewise.
1411         (pe_bfd_object_p): Just return coff_object_p.
1412
1413         * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Replace
1414         bfd_pe_executable_p with bfd_pei_p.
1415
1416 2009-04-17  Christophe Lyon  <christophe.lyon@st.com>
1417
1418         * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through
1419         PLT entries to an undefined symbol when generating a shared
1420         library.
1421
1422 2009-04-17  Nick Clifton  <nickc@redhat.com>
1423
1424         PR 9909
1425         * coffcode.h (handle_COMDAT): Allow for external COMDAT symbols.
1426
1427 2009-04-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
1428
1429         * aout-adobe.c (aout_32_bfd_define_common_symbol): Define.
1430         * aout-target.h (MY_bfd_define_common_symbol): Likewise.
1431         * aout-tic30.c (MY_bfd_define_common_symbol): Likewise.
1432         * binary.c (binary_bfd_define_common_symbol): Likewise.
1433         * bout.c (b_out_bfd_define_common_symbol): Likewise.
1434         * coff-alpha.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
1435         * coff-mips.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
1436         * coffcode.h (coff_bfd_define_common_symbol): Likewise.
1437         * elfxx-target.h (bfd_elfNN_bfd_define_common_symbol): Likewise.
1438         * i386msdos.c (msdos_bfd_define_common_symbol): Likewise.
1439         * i386os9k.c (os9k_bfd_define_common_symbol): Likewise.
1440         * ieee.c (ieee_bfd_define_common_symbol): Likewise.
1441         * ihex.c (ihex_bfd_define_common_symbol): Likewise.
1442         * libbfd-in.h (_bfd_nolink_bfd_define_common_symbol): Likewise.
1443         * mach-o.c (bfd_mach_o_bfd_define_common_symbol): Likewise.
1444         * mmo.c (mmo_bfd_define_common_symbol): Likewise.
1445         * nlm-target.h (nlm_bfd_define_common_symbol): Likewise.
1446         * oasys.c (oasys_bfd_define_common_symbol): Likewise.
1447         * pef.c (bfd_pef_bfd_define_common_symbol): Likewise.
1448         * ppcboot.c (ppcboot_bfd_define_common_symbol): Likewise.
1449         * som.c (som_bfd_define_common_symbol): Likewise.
1450         * srec.c (srec_bfd_define_common_symbol): Likewise.
1451         * tekhex.c (tekhex_bfd_define_common_symbol): Likewise.
1452         * versados.c (versados_bfd_define_common_symbol): Likewise.
1453         * vms.c (vms_bfd_define_common_symbol): Likewise.
1454         * xcoff-target.h (_bfd_xcoff_bfd_define_common_symbol): Likewise.
1455         * xsym.c (bfd_sym_bfd_define_common_symbol): Likewise.
1456         * coff-rs6000.c (rs6000coff_vec): Add _bfd_xcoff_define_common_symbol.
1457         (pmac_xcoff_vec): Likewise.
1458         * coff64-rs6000.c (rs6000coff64_vec): Likewise.
1459         (aix5coff64_vec): Likewise.
1460         * linker.c (bfd_generic_define_common_symbol): New function.
1461         * targets.c (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_define_common_symbol.
1462         (_bfd_define_common_symbol): New field.
1463         * libcoff-in.h (_bfd_xcoff_define_common_symbol): Declare.
1464         * xcofflink.c (_bfd_xcoff_define_common_symbol): New function.
1465         (xcoff_build_ldsyms): Don't set XCOFF_DEF_REGULAR for common
1466         symbols here.
1467         * bfd-in2.h: Regenerate.
1468         * libbfd.h: Likewise.
1469         * libcoff.h: Likewise.
1470
1471 2009-04-15  Anthony Green  <green@moxielogic.com>
1472
1473         * targets.c: Add moxie support.
1474         * Makefile.am: Ditto.
1475         * Makefile.in: Rebuilt.
1476         * cpu-moxie.c, elf32-moxie.c: New files.
1477         * archures.c: Add moxie support.
1478         * configure.in: Add moxie support.
1479         * configure: Rebuilt.
1480         * config.bfd, archures.c: Add moxie support.
1481         * bfd-in2.h: Rebuilt.
1482
1483 2009-04-15  Christophe Lyon  <christophe.lyon@st.com>
1484
1485         * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
1486         branch to an undef weak symbol into a jump to next instruction if
1487         a PLT entry will be created.
1488
1489 2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>
1490
1491         * coffgen.c (make_a_section_from_file):  Set the backend long
1492         section names enable if long section names found on input.
1493         * coffcode.h:  Extend long section names documentation to match.
1494
1495 2009-04-08  H.J. Lu  <hongjiu.lu@intel.com>
1496
1497         * elflink.c (elf_link_add_object_symbols): Warn alternate ELF
1498         machine code.
1499
1500 2009-04-07  DJ Delorie  <dj@redhat.com>
1501
1502         * archures.c: Add bfd_mach_mep_c5.
1503         * bfd-in2.h: Likewise.
1504         * cpu-mep.c: Add bfd_c5_arch.
1505         * elf32-mep.c: Support it.
1506
1507 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1508
1509         * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
1510         info->callbacks->einfo.
1511         * linker.c (_bfd_generic_section_already_linked): Likewise.
1512
1513 2009-04-06  DJ Delorie  <dj@redhat.com>
1514
1515         * elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.
1516
1517 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1518
1519         * coff-x86_64.c (bfd_pe_print_pdata): Defined to
1520         _bfd_pex64_print_pdata only if PE is defined.
1521
1522         * libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
1523         (_bfd_pex64_print_pdata): This.
1524
1525         * peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
1526         (_bfd_pex64_print_pdata): This.  Defined only if COFF_WITH_pex64
1527         is defined.
1528
1529 2009-04-05  Kai Tietz  <kai.tietz@onevision.com>
1530
1531         * coff-x86_64.c (bfd_pe_print_pdata): Define as
1532         _bfd_pep_print_x64_pdata.
1533         * libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
1534         * peXXigen.c (_bfd_pep_print_x64_pdata): New.
1535
1536 2009-04-02  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
1537
1538         * elf32-xtensa.c (relax_property_section): Always set r_offset
1539         to zero.
1540
1541 2009-04-02  Christophe Lyon  <christophe.lyon@st.com>
1542
1543         * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
1544         elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
1545         branch stubs.
1546         (elf32_arm_stub_type): New enum values for the two new stubs.
1547         (arm_type_of_stub): Make use of the two new stubs.
1548         (arm_size_one_stub): Handle the two new stubs.
1549
1550 2009-04-01  Matt Thomas  <matt@netbsd.org>
1551
1552         * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
1553         hidden symbols into the GOT or PLT.GOT.
1554         (elf_vax_relocate_section): Do not emit a PCREL reloc
1555         into a shared object if it is against a hidden symbol.
1556
1557 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1558
1559         * xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
1560         and know_contains_shared_object_p.
1561         (xcoff_archive_contains_shared_object_p): Add an "info" parameter.
1562         Cache the result in the archive_info table.
1563         (xcoff_auto_export_p): Add an "info" parameter and update the
1564         call to xcoff_archive_contains_shared_object_p.
1565         (xcoff_mark_auto_exports): Update accordingly.
1566         (xcoff_post_gc_symbol): Likewise.
1567
1568 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1569
1570         * xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
1571         rather than C_EXT.
1572
1573 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1574
1575         * coff-rs6000.c (member_layout): New structure.
1576         (archive_iterator): Likewise.
1577         (member_layout_init): New function.
1578         (archive_iterator_begin): Likewise.
1579         (archive_iterator_next): Likewise.
1580         (xcoff_write_armap_old): Use the new iterator functions.
1581         (do_shared_object_padding): Delete.
1582         (xcoff_write_armap_big): Use the new iterator functions.  Simplify
1583         handling of arch_info.
1584         (xcoff_write_archive_contents_old): Allocate arelt_data in the
1585         first loop rather than the second.  Allocate a member header if
1586         there isn't one, then work out the stat information and length
1587         in the first loop too.  Use the new iterators for the second loop.
1588         (xcoff_write_archive_contents_big): Likewise.
1589
1590 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1591
1592         * bfd-in.h (bfd_xcoff_split_import_path): Declare.
1593         (bfd_xcoff_set_archive_import_path): Likewise.
1594         * bfd-in2.h: Regenerate.
1595         * xcofflink.c: Include libiberty.h.
1596         (xcoff_archive_info): New structure.
1597         (xcoff_archive_info_hash): New function.
1598         (xcoff_archive_info_eq): Likewise.
1599         (xcoff_get_archive_info): Likewise.
1600         (_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
1601         (bfd_xcoff_split_import_path): New function.
1602         (bfd_xcoff_set_archive_import_path): Likewise.
1603         (xcoff_set_import_path): Move earlier in file.
1604         (xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
1605         object to the the directory part of the bfd's filename.  Get the
1606         import path and filename of an archive object from the archive's
1607         xcoff_tdata, initializing it if necessary.  Update use of
1608         import_file_id.
1609         (bfd_link_input_bfd): Update use of import_file_id.
1610         (xcoff_write_global_symbol): Likewise.
1611
1612 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1613
1614         * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
1615
1616 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1617
1618         * xcofflink.c (xcoff_link_create_extra_sections): Don't create
1619         a .loader section for relocatable links.
1620         (xcoff_need_ldrel_p): New function.
1621         (xcoff_mark): Use it.
1622         (bfd_xcoff_link_count_reloc): Only count loader relocs if there's
1623         a loader section.
1624         (xcoff_build_ldsym): New function, split out from...
1625         (xcoff_build_ldsyms): ...here.  Rename to...
1626         (xcoff_post_gc_symbol): ...this.  Only export symbols, and only
1627         call xcoff_build_ldsym, if there's a loader section.
1628         (xcoff_build_loader_section): New function, extracted verbatim from...
1629         (bfd_xcoff_size_dynamic_sections): ...here.  Only call it if
1630         there's a loader section.  Only add an __rtinit loader symbol
1631         if there's a loader section.  Update after above name change.
1632         (xcoff_symbol_section, xcoff_create_ldrel): New functions.
1633         (bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
1634         and xcoff_create_ldrel.
1635         (xcoff_write_global_symbol): Use xcoff_create_ldrel.
1636         (xcoff_reloc_link_order): Likewise, but only call it if there's
1637         a loader section.  Use xcoff_symbol_section.
1638         (_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
1639         if there's a loader section.
1640
1641 2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
1642
1643         * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
1644
1645 2009-04-01  Christophe Lyon  <christophe.lyon@st.com>
1646
1647         * elf32-arm.c (group_sections): Rewrite loops for better
1648         readability.
1649
1650 2009-03-30  DJ Delorie  <dj@redhat.com>
1651
1652         * elflink.c (elf_link_input_bfd): Don't try to resolve complex
1653         relocs when doing a relocatable link.
1654
1655 2009-03-28  Mark Mitchell  <mark@codesourcery.com>
1656
1657         * coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
1658         "ERROR:", in error messages.
1659         * cpu-arm.c (bfd_arm_merge_machines): Likewise.
1660         * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
1661         * elf32-arm.c (tag_cpu_arch_combine): Likewise.
1662         (elf32_arm_merge_eabi_attributes): Likewise.
1663         (elf32_arm_merge_private_bfd_data): Likewise.
1664
1665 2009-03-27  Nick Clifton  <nickc@redhat.com>
1666
1667         * section.c (bfd_get_section_contents): Detect and handle the case
1668         where a section has the SEC_IN_MEMORY flag set but no actual
1669         contents allocated.
1670
1671 2009-03-26  Alan Modra  <amodra@bigpond.net.au>
1672
1673         PR 6494
1674         * elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
1675         p_filesz and p_memsz are equal.  Use p_memsz as the segment size.
1676         (assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
1677         if we don't find matching PT_LOAD when copying.
1678
1679 2009-03-25  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
1680
1681         * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
1682         the reloc descriptions.
1683
1684 2009-03-25  Hans-Peter Nilsson  <hp@axis.com>
1685
1686         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
1687         <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
1688         <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
1689
1690 2009-03-24  H.J. Lu  <hongjiu.lu@intel.com>
1691
1692         * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
1693         (bfd_i386_arch_intel_syntax): Likewise.
1694         (i8086_arch): Likewise.
1695         (bfd_x86_64_arch): Likewise.
1696
1697 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
1698
1699         * elf32-cris.c (cris_elf_relocate_section): <case
1700         R_CRIS_16_DTPREL, R_CRIS_32_DTPREL>: Allow use of non-local
1701         symbols for non-allocated sections.  Don't check whether to
1702         generate R_CRIS_DTPMOD for non-allocated sections.
1703         (cris_elf_gc_sweep_hook) <case R_CRIS_32_DTPREL>: Don't
1704         handle relocation GC:ing if applied to non-allocated section.
1705         (cris_elf_check_relocs): Similar.
1706
1707         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
1708         <R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: Don't include the TLS size
1709         when emitting a known TP offset in the GOT.
1710
1711 2009-03-23  Alan Modra  <amodra@bigpond.net.au>
1712
1713         * elf64-ppc.c (synthetic_opd): Delete.
1714         (compare_symbols): Look for .opd name rather than section match.
1715         (ppc64_elf_get_synthetic_symtab): Likewise.
1716
1717 2009-03-21  Alan Modra  <amodra@bigpond.net.au>
1718
1719         * elf32-ppc.c (is_pic_glink_stub): Delete.
1720         (is_nonpic_glink_stub): New function.
1721         (ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather
1722         than first pic one.
1723         (struct ppc_elf_link_hash_table <glink_pltresolve>): Comment fix.
1724
1725 2009-03-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
1726             Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1727
1728         * elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_*
1729         macros for visibilty and locality checks.
1730         (elf_s390_adjust_dynamic_symbol): Likewise.
1731         (allocate_dynrelocs): Likewise.
1732         (elf_s390_relocate_section): Likewise.
1733         (elf_s390_finish_dynamic_symbol): Likewise.
1734         * elf64-s390.c (elf_s390_check_relocs): Likewise.
1735         (elf_s390_adjust_dynamic_symbol): Likewise.
1736         (allocate_dynrelocs): Likewise.
1737         (elf_s390_relocate_section): Likewise.
1738         (elf_s390_finish_dynamic_symbol): Likewise.
1739
1740 2009-03-19  Kai Tietz  <kai.tietz@onevision.com>
1741
1742         * bfd-in2.h: Regenerated.
1743         * coffcode.h (sec_to_styp_flags): For pe-coff add SEC_READONLY
1744         for debugging sections and map memory read/write dependent on
1745         SEC_COFF_NOREAD.
1746         (styp_to_sec_flags): Set SEC_COFF_NOREAD for sections
1747         without memory read flags set.
1748         * section.c: Add SEC_COFF_NOREAD to section flags.
1749
1750 2009-03-19  Andreas Schwab  <schwab@linux-m68k.org>
1751
1752         * elf32-hppa.c (final_link_relocate): Cast bfd_vma values to long
1753         for format string.
1754
1755 2009-03-19  Alan Modra  <amodra@bigpond.net.au>
1756
1757         * elf32-spu.c (spu_elf_find_overlays): Separate error return from
1758         "no overlays" return.  If there are overlays, create overlay
1759         manager entry symbols here, so that..
1760         (spu_elf_build_stubs): ..we don't need to set them up here.
1761         Simplify entry symbol tests.
1762         * elf32-spu.h (spu_elf_find_overlays): Update prototype.
1763
1764 2009-03-18  Mark Kettenis  <kettenis@gnu.org>
1765
1766         * elf.c (elfcore_grok_openbsd_procinfo)
1767         (elfcore_grok_openbsd_note): New functions.
1768         (elf_parse_notes): Handle notes from OpenBSD ELF core files.
1769
1770 2009-03-18  Alan Modra  <amodra@bigpond.net.au>
1771
1772         * vms-hdr.c: Don't include alloca.h.
1773         * elf32-m68hc1x.c: Include alloca-conf.h.
1774         * xsym.c: Likewise.
1775         * elf64-hppa.c: Likewise.  Remove existing #if's handling alloca.
1776         * som.c: Likewise.
1777         * Makefile.am: Run "make dep-am".
1778         * Makefile.in: Regenerate.
1779
1780 2009-03-17  Daniel Jacobowitz  <dan@codesourcery.com>
1781
1782         * elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.
1783
1784 2009-03-17  Alan Modra  <amodra@bigpond.net.au>
1785
1786         * elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
1787         Add compact_stub.
1788         (emum _ovly_flavour): Delete ovly_compact, ovly_none.
1789         * elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
1790         ovly_return fields with ovly_entry[2].  Adjust all users.
1791         (spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
1792         when soft-icache.
1793         (spu_elf_build_stubs): Likewise.
1794         (ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
1795         ovly_flavour changes.  Update all callers.
1796         (ovl_stub_size_log2): New function.
1797         (build_stub): Handle compact icache stubs.  Use different manager
1798         entry point for stubs in non-icache area.
1799         (spu_elf_size_stubs): Don't allocate space for indirect branch
1800         descriptors.
1801         (spu_elf_build_stubs): And don't built them.
1802
1803 2009-03-16  Andrew Stubbs  <ams@codesourcery.com>
1804
1805         * dwarf2.c (read_section): Always use rawsize, if available.
1806
1807 2009-03-16  Alan Modra  <amodra@bigpond.net.au>
1808
1809         * simple.c (bfd_simple_get_relocated_section_contents): Use larger
1810         of rawsize and size for buffer.
1811
1812 2009-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
1813
1814         * elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
1815         parameter just because fixed sections fit into local store.
1816         (spu_elf_auto_overlay): Do not declare as "noreturn".  Skip
1817         generating overlays if fixed sections plus reserved stack
1818         and heap space fit into local store.
1819
1820 2009-03-15  Alan Modra  <amodra@bigpond.net.au>
1821
1822         * elf32-spu.c (build_stub): Correct icache set_id.
1823         (spu_elf_relocate_section): Likewise.
1824
1825 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1826
1827         * xcofflink.c (xcoff_link_check_archive_element): Only free the
1828         symbol table if it was created by the current call.
1829
1830 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1831
1832         * xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
1833         class XMC_DS rather than XMC_UA.
1834
1835 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1836
1837         * bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
1838         bfd_boolean export_defineds parameter with an unsigned int
1839         auto_export_flags parameter.
1840         * bfd-in2.h: Regenerate.
1841         * xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
1842         split out from xcoff_build_ldsyms.
1843         (xcoff_covered_by_expall_p): New function.
1844         (xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
1845         but with extra code to handle -bexpfull and -bexpall.
1846         (xcoff_mark_auto_exports): New function.
1847         (xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
1848         a function should be automatically exported.
1849         (bfd_xcoff_size_dynamic_sections): Replace the export_defineds
1850         parameter with an auto_export_flags parameter.  Update ldinfo
1851         accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
1852         exported symbols.
1853
1854 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1855
1856         * xcofflink.c (xcoff_mark_symbol_by_name): New function.
1857         (bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
1858         init and fini functions.  Do garbage collection for objects
1859         without an entry point too.
1860
1861 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1862
1863         * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
1864         check whether a symbol has csect information.
1865         (coff_print_aux): Likewise.
1866         * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
1867         information for C_AIX_WEAKEXT too.
1868         (_bfd_xcoff_swap_aux_out): Likewise.
1869         (xcoff_reloc_type_br): Handle defweak symbols too.
1870         * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
1871         information for C_AIX_WEAKEXT too.
1872         (_bfd_xcoff64_swap_aux_out): Likewise.
1873         (xcoff64_reloc_type_br): Handle defweak symbols too.
1874         * coffgen.c (coff_print_symbol): Handle auxillary function
1875         information for C_AIX_WEAKEXT too.
1876         * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
1877         instead of BSF_GLOBAL if the L_WEAK flag is set.
1878         (xcoff_dynamic_definition_p): New function.
1879         (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
1880         defines h.  Don't change h if ldsym isn't the definition.  Otherwise,
1881         always take the symbol class from the ldsym.  Use weak bfd symbol
1882         types for weak ldsyms.
1883         (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
1884         Fix the check for whether a definition is from a shared object.
1885         Allow redefinitions of weak symbols.
1886         (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
1887         (xcoff_keep_symbol_p): Likewise.
1888         (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
1889         (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
1890         Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
1891         but mark them as L_WEAK.
1892         (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
1893         instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.
1894
1895 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1896
1897         * xcofflink.c (xcoff_mark): When walking the relocations,
1898         only mark the target symbol or the target section, not both.
1899         (xcoff_final_definition_p): New function.
1900         (xcoff_keep_symbol_p): Use it to check whether an external XCOFF
1901         symbol is a valid definition of the associated output symbol.
1902         Use XCOFF_ALLOCATED to stop the same hash table entry having
1903         two output symbols.
1904         (bfd_xcoff_size_dynamic_sections): Set XCOFF_ALLOCATED when
1905         keeping a symbol.
1906         (xcoff_link_input_bfd): Use xcoff_final_definition_p.
1907
1908 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1909
1910         * xcofflink.c (bfd_xcoff_import_symbol): Treat imported absolute
1911         symbols as XMC_XO.
1912
1913 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1914
1915         * libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
1916         * libcoff.h: Regenerate.
1917         * xcofflink.c (xcoff_link_add_symbols): Record per-symbol
1918         line-number counts in the bfd's lineno_counts field.
1919         Don't keep per-csect line-number counts.
1920         (xcoff_sweep): Don't update per-csect line-number counts.
1921         (bfd_xcoff_size_dynamic_sections): Count the number of line-number
1922         entries in each output section.
1923         (xcoff_link_input_bfd): Get the number of line numbers from
1924         the bfd's lineno_counts field, rather than recalculating it
1925         from scratch.  Fix the range check when updating C_BINCL and
1926         C_EINCL symbols.
1927         (_bfd_xcoff_bfd_final_link): Don't count the output line numbers
1928         here.  Don't expect csects to have line-number counts.
1929
1930 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1931
1932         * libcoff-in.h (xcoff_tdata): Change debug_indices to a signed long.
1933         * libcoff.h: Regenerate.
1934         * xcofflink.c (xcoff_keep_symbol_p): New function, using the
1935         "skip" logic from xcoff_link_input_bfd.
1936         (bfd_xcoff_size_dynamic_sections): Explicitly skip dynamic
1937         objects in a dynamic link, rather than checking whether csectpp
1938         is null.  Always allocate debug_index for other objects,
1939         and always go through the loop.  Update the type of debug_index
1940         after the change above.  Read the auxillary csect information
1941         and use xcoff_keep_symbol_p to decide whether a symbol should
1942         be kept.  Set its debug_index to -2 if not.
1943         (xcoff_link_input_bfd): Update the type of debug_index after
1944         the change above and always expect it to be nonnull.  Use it to
1945         test whether a symbol should be stripped, rather than making the
1946         decision here.  Postpone all symbol creation to the second pass.
1947
1948 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1949
1950         * xcofflink.c: (xcoff_mark_symbol): Mark the TOC section when
1951         creating a descriptor.
1952         (xcoff_sweep): Don't mark toc_section unless it's needed.
1953         (bfd_xcoff_size_dynamic_sections): Skip the toc_section
1954         when marking every bfd.
1955         (xcoff_link_input_bfd): Skip all TOC anchors.
1956         (xcoff_toc_section_p, xcoff_find_tc0): New functions.
1957         (_bfd_xcoff_bfd_final_link): Don't set the output bfd's TOC anchor
1958         to -1; call xcoff_find_tc0 instead.
1959
1960 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1961
1962         * libcoff-in.h (xcoff_section_tdata): Update commentary.
1963         * libcoff.h: Regenerate.
1964         * xcofflink.c (xcoff_link_add_symbols): Set the csect of XTY_ER
1965         symbols to bfd_und_section_ptr or bfd_abs_section_ptr, rather than
1966         the previous symbol's csect.  Treat last_symndx as an inclusive value
1967         and simplify its handling.
1968         (xcoff_mark): Treat last_symndx as an inclusive value.  Only mark
1969         symbols with the right csect.  Don't mark rsec when processing
1970         relocations against undefined or absolute sections.
1971         (bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
1972         of bfd_und_section_ptr.
1973         (xcoff_link_input_bfd): Likewise.
1974
1975 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
1976
1977         * coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
1978         against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
1979         flag is set.  Assert that all undefined symbols are either
1980         imported or defined by a dynamic object.
1981         * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
1982         * xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
1983         handling to all relocations.  Only set XCOFF_CALLED for function
1984         symbols.
1985         (xcoff_find_function): New function, split out from...
1986         (bfd_xcoff_export_symbol) ...here.
1987         (xcoff_set_import_path): New function, split out from...
1988         (bfd_xcoff_import_symbol): ...here.  Remove assertion for old
1989         meaning of XCOFF_CALLED.
1990         (xcoff_mark_symbol): If we mark an undefined and unimported
1991         symbol, find some way of defining it.  If the symbol is a function
1992         descriptor, fill in its definition automatically.  If the symbol
1993         is a function, mark its descriptor and allocate room for global
1994         linkage code.  Otherwise mark the symbol as implicitly imported.
1995         Move the code for creating function descriptors from...
1996         (xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to
1997         check for symbols that were implicitly defined.
1998         (xcoff_mark): Don't count any dynamic relocations against
1999         function symbols.
2000         (bfd_xcoff_size_dynamic_sections): Save the rtld parameter
2001         in the xcoff link info.
2002         (xcoff_link_input_bfd): Remove handling of undefined and
2003         unexported symbols.
2004
2005 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
2006
2007         * coff-rs6000.c (xcoff_reloc_type_br): Make the branch absolute
2008         if the target is absolute.  Fix comment typo.
2009         (xcoff_ppc_relocate_section): Remove FIXME.
2010         * coff64-rs6000.c (xcoff64_reloc_type_br): Make the branch absolute
2011         if the target is absolute.
2012
2013 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
2014
2015         * xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
2016         R_POS and R_NEG relocations against absolute symbols to the
2017         .loader section.
2018
2019 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
2020
2021         * coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
2022         to 2 for bfd_mach_ppc_620.
2023
2024 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
2025
2026         * config.bfd: Treat AIX 6+ in the same way as AIX 5.
2027         * configure.in: Likewise.
2028         * configure: Regenerate.
2029
2030 2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
2031
2032         PR binutils/9945
2033         * elf.c (assign_section_numbers): Generate symbol table if there
2034         is any relocation in output.
2035         (_bfd_elf_compute_section_file_positions): Likewise.
2036
2037 2009-03-13  Nick Clifton  <nickc@redhat.com>
2038
2039         PR 9934
2040         * elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
2041         * elflink.c (elf_link_read_relocs_from_section): Use
2042         NUM_SHDR_ENTRIES.  Gracefully handle the case where there are
2043         relocs but no symbol table.
2044         * elf32-arm.c (elf32_arm_check_relocs): Likewise.
2045
2046 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
2047
2048         PR ld/9938
2049         * elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
2050         to check ___tls_get_addr.
2051
2052         * elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
2053         strncmp to check __tls_get_addr.
2054
2055 2009-03-12  Andrew Stubbs  <ams@codesourcery.com>
2056
2057         * dwarf2.c (read_section): Always check the offset, even when the
2058         section has been read before.
2059
2060 2009-03-11  H.J. Lu  <hongjiu.lu@intel.com>
2061
2062         * elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
2063         comments.
2064
2065 2009-03-11  Chris Demetriou  <cgd@google.com>
2066
2067         * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
2068         * bfd-in2.h: Regenerate.
2069         * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
2070         flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
2071         mode.
2072         (bsd_write_armap): Likewise.
2073         (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
2074         flag is set, do nothing.
2075         (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
2076         for timestamp.
2077
2078 2009-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2079
2080         * elf32-spu.c (find_function_stack_adjust): Handle sf instruction
2081         used to update stack pointer.
2082
2083 2009-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2084
2085         PR binutils/9921
2086         * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
2087         for unknown symbols in absolute section.
2088
2089 2009-03-06  Nick Clifton  <nickc@redhat.com>
2090
2091         * po/es.po: Updated Spanish translation.
2092
2093 2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
2094
2095         * elf32-arm.c (group_sections): Take next section size into
2096         account before accepting to group it.
2097
2098 2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
2099
2100         * elf32-arm.c (arm_type_of_stub): Handle long branches targetting
2101         PLT entries.
2102         (elf32_arm_final_link_relocate): Likewise.
2103
2104 2009-03-05  Moritz Kroll  <Moritz.Kroll@gmx.de>
2105
2106         PR 9923
2107         * peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
2108
2109 2009-03-04  Alan Modra  <amodra@bigpond.net.au>
2110
2111         * reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
2112         * section.c (struct bfd_section): Add has_tls_get_addr_call.
2113         (BFD_FAKE_SECTION): Init new flag.
2114         * ecoff.c (bfd_debug_section): Likewise.
2115         * bfd-in2.h: Regenerate.
2116         * libbfd.h: Regenerate.
2117         * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
2118         (ppc_elf_reloc_type_lookup): Handle new relocs.
2119         (ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
2120         without marker relocs.
2121         (ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
2122         if section has no old-style calls.
2123         (ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
2124         Don't try to optimize new-style __tls_get_addr call when handling
2125         arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
2126         relocs.
2127         * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
2128         (ppc64_elf_reloc_type_lookup): Handle new relocs.
2129         (ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
2130         without marker relocs.
2131         (ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
2132         if section has no old-style calls.  Set toc_ref for new relocs as
2133         appropriate.
2134         (ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
2135         Don't try to optimize new-style __tls_get_addr call when handling
2136         arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
2137         relocs.
2138
2139 2009-03-04  Alan Modra  <amodra@bigpond.net.au>
2140
2141         PR 6768
2142         * configure.in: Test for ld --as-needed support.  Link shared
2143         libbfd against libm.
2144         * configure: Regenerate.
2145
2146 2009-03-03  Alan Modra  <amodra@bigpond.net.au>
2147
2148         * Makefile.am: Run "make dep-am".
2149         * Makefile.in: Regenerate.
2150
2151 2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>
2152
2153         * elf32-score7.c: New file.
2154         * elf32-score.h: New file.
2155         * elf32-score.c: Add code to support score 7.  Set score7 as the
2156         default.
2157         * cpu-score.c: Add score7 architecure.
2158         (compatibile): New function.
2159         * Makefile.am: Add rules for building elf32-score7 object.
2160         * Makefile.in: Regenerate.
2161         * configure.in: Add elf32-score7 object to score vectors.
2162         * configure: Regenerate.
2163         * reloc.c: Add score7 relocs.
2164         * archures.c: Add score3 and score7 machine numbers.
2165         * bfd-in2.h: Regenerate.
2166         * libbfd.h: Regenerate.
2167
2168 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2169
2170         * configure: Regenerate.
2171
2172 2009-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2173
2174         * elf32-hppa.c (hppa32_elf_local_refcounts): New function.
2175         (elf32_hppa_check_relocs): Use it.
2176
2177         * elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to
2178         elf64-hppa.c.
2179         (elf_hppa_unmark_useless_dynamic_symbols): Likewise.
2180         (elf_hppa_remark_useless_dynamic_symbols): Likewise.
2181         (elf_hppa_is_dynamic_loader_symbol): Likewise.
2182         (elf_hppa_record_segment_addrs): Likewise.
2183         (elf_hppa_final_link): Likewise.
2184         (elf_hppa_relocate_insn): Likewise.
2185         (elf_hppa_final_link_relocate): Likewise.
2186         (elf64_hppa_relocate_section): Likewise.
2187         * elf64-hppa.c: Insert above.
2188
2189 2009-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2190
2191         * elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link.
2192         (elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table.
2193         (elf_hppa_relocate_section): Likewise.
2194         * elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive
2195         from struct elf_link_hash_entry.  Add count field.
2196         (struct elf64_hppa_dyn_hash_table): Delete.
2197         (struct elf64_hppa_link_hash_table): Delete dyn_hash_table field.
2198         (elf64_hppa_hash_table): Rename to hppa_link_hash_table.
2199         (hppa_elf_hash_entry, eh_name): Define.
2200         (elf64_hppa_new_dyn_hash_entry): Delete.
2201         (elf64_hppa_dyn_hash_lookup): Delete.
2202         (elf64_hppa_dyn_hash_traverse): Delete.
2203         (get_dyn_name): Delete.
2204         (elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead
2205         of struct elf64_hppa_dyn_hash_entry *.
2206         (elf64_hppa_finalize_dlt, llocate_global_data_dlt,
2207         allocate_global_data_plt, allocate_global_data_stub,
2208         allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries):
2209         Likewise.
2210         (hppa64_link_hash_newfunc): New.
2211         (elf64_hppa_hash_table_create): Rework.
2212         (count_dyn_reloc): Likewise.
2213         (hppa64_elf_local_refcounts): New.
2214         (elf64_hppa_check_relocs): Rework using standard technique for recording
2215         local DLT, PLT and OPD reference counts.
2216         (elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct
2217         elf_link_hash_entry *.
2218         (elf64_hppa_mark_exported_functions, allocate_global_data_dlt,
2219         allocate_global_data_plt, allocate_global_data_stub,
2220         allocate_global_data_opd, allocate_dynrel_entries,
2221         elf64_hppa_adjust_dynamic_symbol,
2222         elf64_hppa_mark_milli_and_exported_functions): Likewise.
2223         (elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections):
2224         Use hppa_link_hash_table.  Rework.
2225         (elf64_hppa_link_output_symbol_hook): Rework.
2226         (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd,
2227         elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc,
2228         elf64_hppa_finish_dynamic_sections): Likewise.
2229
2230 2009-02-26  Christophe Lyon  <christophe.lyon@st.com>
2231
2232         * elf32-arm.c (stub_reloc_type): Removed.
2233         (insn_sequence): Renamed reloc_type field to r_type.
2234         (elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub.
2235         (elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise.
2236         (elf32_arm_stub_long_branch_thumb_only_pic): Likewise.
2237         (elf32_arm_stub_type): Add new enum entries for the new stubs.
2238         (arm_stub_is_thumb): Catch new stubs.
2239         (arm_type_of_stub): Handle new stubs.
2240         (arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs.
2241         (bfd_elf32_arm_process_before_allocation): Remove useless
2242         condition.
2243
2244 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
2245
2246         * elf.c (elf_find_function): Use is_function_type to check
2247         function symbol.
2248
2249 2009-02-24  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
2250
2251         * xtensa-modules.c: Revert to previous version 1.11 due
2252         to inadvertant commit.
2253
2254 2009-02-24  Sterling Augustine  <sterling@tensilica.com>
2255
2256         * elf32-xtensa.c (text_action_add): Separate test for action
2257         type.  Break if saved action is ta_widen_insn at same offset.
2258
2259 2009-02-24  Daniel Jacobowitz  <dan@codesourcery.com>
2260
2261         * elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename
2262         to elf32_arm_stub_long_branch_any_arm_pic.
2263         (elf32_arm_stub_long_branch_any_thumb_pic): New.
2264         (enum elf32_arm_stub_type, arm_type_of_stub)
2265         (arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC
2266         separately.
2267
2268 2009-02-24  Joseph Myers  <joseph@codesourcery.com>
2269
2270         * elf32-arm.c (PREV_SEC): Update comment.
2271         (group_sections): Rename argument to stubs_always_after_branch.
2272         Reverse the list and place stubs at the end of input sections.
2273         Undefine NEXT_SEC.
2274         (elf32_arm_size_stubs): Update to use stubs_always_after_branch.
2275
2276 2009-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
2277
2278         * elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset.
2279         Fix formatting.
2280         (arm_size_one_stub): Remove unnecessary break.
2281         (arm_map_one_stub): Fix formatting.  Return after BFD_FAIL.
2282
2283 2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
2284
2285         * elf32-arm.c (stub_insn_type): New type.
2286         (stub_reloc_type): Likewise.
2287         (insn_sequence): Likewise.
2288         (elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
2289         (elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
2290         (elf32_arm_stub_long_branch_thumb_only): Likewise.
2291         (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
2292         (elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
2293         (elf32_arm_stub_long_branch_any_any_pic): Likewise.
2294         (elf32_arm_stub_hash_entry): Add new helper fields.
2295         (stub_hash_newfunc): Initialize these new fields.
2296         (arm_build_one_stub): Encode Arm and Thumb instructions separately
2297         to take endianness into account.
2298         (arm_size_one_stub): Compute size of stubs using insn_sequence.
2299         (arm_map_one_stub): Code is now more generic, thanks to
2300         insn_sequence.
2301
2302 2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
2303
2304         * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub
2305         code.
2306         (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
2307         (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when
2308         BLX is not available. Fix typo in warning message. Add comments
2309         and improve formatting.
2310         (arm_build_one_stub): Adjust to new
2311         elf32_arm_stub_long_branch_v4t_thumb_arm stub.
2312         (arm_map_one_stub): Likewise.
2313
2314 2009-02-23  Tristan Gingold  <gingold@adacore.com>
2315             Eric Botcazou  <ebotcazou@adacore.com>
2316             Douglas B Rupp  <rupp@gnat.com>
2317
2318         * vms.h: Update copyright year, fix comments, reorder declarations.
2319         (_bfd_save_vms_section): Remove the prototype.
2320         (EGPS_S_V_NO_SHIFT): New constant.
2321         (bfd_vms_set_section_flags): New prototype.
2322         (EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New
2323         constants.
2324         (EGSY_S_W_FLAGS): Ditto.
2325         (EGSY_S_V_QUAD_VAL): Ditto.
2326         (ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto.
2327         (EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX,
2328         EGST_S_B_NAMLNG): Ditto.
2329         (ESRF_S_B_NAMLNG): Ditto.
2330         (ETIR_S_C_HEADER_SIZE): Ditto.
2331         (EGPS_S_V_ALLOC_64BIT): Ditto.
2332         (DST_S_C_EPILOG): Ditto.
2333         (DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto.
2334         (DST_S_C_SRC_INCRLNUM_B): Ditto.
2335         (DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto.
2336         (DST_S_L_PCLINE_UNSLONG): Ditto.
2337         (DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto
2338         (DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto
2339         (DST_S_C_SOURCE_HEADER_SIZE): Ditto.
2340         (DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto.
2341         (DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto.
2342         (DST_S_B_SRC_UNSBYTE): Ditto.
2343         (DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto.
2344         Add prototypes.
2345         (vms_section, vms_reloc): Remove types.
2346         (hdr_struc): Replaced by ...
2347         (hdr_struct): ... new type.
2348         (EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants.
2349         (EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto.
2350         (EMH_DATE_LENGTH): Ditto.
2351         (eom_struc): Replaced by ...
2352         (eom_struct): ... new type.
2353         (EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants.
2354         (EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto.
2355         (EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto.
2356         (EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto.
2357         (EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto.
2358         (EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto.
2359         (EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto.
2360         (EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto.
2361         (EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto.
2362         (EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto.
2363         (EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto.
2364         (EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto.
2365         (EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto.
2366         (EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto.
2367         (EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto.
2368         (DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto.
2369         (DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto.
2370         (DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH)
2371         (DBG_S_C_DMT_PSECT_SIZE): Ditto.
2372         (enum file_type_enum): New type.
2373         (struct location_struct): Removed.
2374         (struct fileinfo, struct srecinfo, struct lineinfo): New types.
2375         (struct funcinfo, struct module): Ditto.
2376         (struct vms_private_data_struct): Update fields.
2377         (struct vms_section_data_struct): New type.
2378
2379         * vms.c: Update copyright year, fix comments,
2380         Fix includes for DECC, add prototypes.
2381         (vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove
2382         some initializers.
2383         Use flavour to set is_vax, location_stack is removed.
2384         (struct pair): Declare.
2385         (fill_section_ptr): Initialize variables at declaration.
2386         Add guard to set SECTION_SYM flag, handlde und section.
2387         (vms_fixup_sections): Use struct pair for fill_section_ptr argument.
2388         (_bfd_vms_slurp_object_records): New function, replaces previous
2389         vms_object_p.
2390         (vms_slurp_module): New function.
2391         (vms_slurp_image): Ditto.
2392         (vms_object_p): Complete rewrite.
2393         (vms_mkobject): Use is_vax field to slect architecture.
2394         (free_reloc_stream): New function.
2395         (vms_convert_to_var): Ditto.
2396         (vms_convert_to_var_1): Ditto.
2397         (vms_convert_to_var_unix_filename): Ditto.
2398         (vms_close_and_cleanup): Call free_reloc_stream, convert file to
2399         VAR format on VMS.
2400         (vms_new_section_hook): Set alignment to 0, allocate private data.
2401         (vms_get_section_contents): Load content.
2402         (vms_get_symbol_info): Handle undefined section.
2403         (vms_find_nearest_line): Handle.
2404         (alloc_reloc_stream): New function.
2405         (vms_slurp_reloc_table): Ditto.
2406         (vms_get_reloc_upper_bound): Make it real.
2407         (vms_canonicalize_reloc): Do the real work.
2408         (alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA,
2409         ALPHA_R_BOH.
2410         (vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH.
2411         (vms_set_arch_mach): Check arch.
2412         (vms_set_section_contents): Copy the content after allocation.
2413         (vms_alpha_vec): Update object flags.
2414
2415         * vms-tir.c: Update copyright year, fix comments,
2416         add prototypes for new functions.
2417         (dst_define_location): New function.
2418         (dst_restore_location): New function.
2419         (dst_retrieve_location): New function.
2420         (dst_check_allocation): New function.
2421         (image_dump): Call dst_check_allocation.
2422         (image_write_b): Ditto.
2423         (image_write_w): Ditto.
2424         (image_write_l): Ditto.
2425         (image_write_q): Ditto.
2426         (cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW,
2427         STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC,
2428         CTL_STKDL.
2429         Call error handler instead of abort if name is not known.
2430         (etir_sta): Add quarter_relocs argument and set it.
2431         Fix cast.
2432         (etir_sto): Ditto.
2433         (etir_opr): Ditto, return FALSE in case of error.
2434         (etir_ctl): Add quarter_relocs argument and set it, fix cast.
2435         Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL.
2436         (etir_stc): Add quarter_relocs argument and set it, fix cast.
2437         Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA.
2438         Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL.
2439         Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS.
2440         Return FALSE in case of error.
2441         (tir_sta): Change sign of psect.
2442         (tir_ctl): Ditto.
2443         (tir_cmd): Fix cast. Makes tir_table static const.
2444         (etir_cmd): Add quarter_relocs argument, makes etir_table const,
2445         add argument to explain.
2446         (analyze_etir): Initialize maxptr, add quarter_relocs
2447         declaration, move some declarations into inner scopes.
2448         Handle quarter_relocs and STO_IMM.
2449         (_bfd_vms_slurp_tir): Use constant instead of hard-coded values.
2450         (_bfd_vms_slurp_relocs): New function.
2451         (_bfd_vms_decode_relocs): New function.
2452         (sto_imm): Rewritten.
2453         (start_first_etbt_record): New function.
2454         (start_another_etbt_record): Ditto.
2455         (etir_output_check): Ditto.
2456         (defer_reloc_p): Ditto.
2457         (_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to
2458         a for-loop.  Correctly deals with contents, deals with .vmsdebug,
2459         rewritte relocations handling.
2460         (_bfd_vms_write_tbt): Removed.
2461         (_bfd_vms_write_dbg): Ditto.
2462
2463         * vms-misc.c: Update copyright year, Fix comments.
2464         (_bfd_vms_get_header_values): Use 'size' instead of 'length'.
2465         (maybe_adjust_record_pointer_for_object): New function.
2466         (_bfd_vms_get_first_record): New function, replaces ...
2467         (_bfd_vms_get_record): ..  removed.
2468         (_bfd_vms_get_object_record): New function.
2469         (_bfd_vms_get_object_record): New function.
2470         (vms_get_remaining_object_record): New function, replaces ...
2471         (_bfd_vms_get_next_record): ... removed.
2472         (add_new_contents): Removed.
2473         (_bfd_save_vms_section): Removed.
2474         (_bfd_get_vms_section): Removed.
2475         (_bfd_vms_output_flush): Write in VAR format.
2476         (new_symbol): Don't make UND section.
2477
2478         * vms-hdr.c: Update copyright year, update list of record handled.
2479         (_bfd_vms_slurp_hdr): rec_length renamed to rec_size.
2480         (_bfd_vms_write_hdr): Strip vms and unix patches,
2481         add comments, truncate module name at 31 characters,
2482         use constants instead of hard-coded value,
2483         write BFD version instead of a fixed string.
2484         (_bfd_vms_slurp_ihd): New function.
2485         (_bfd_vms_slurp_isd): Ditto.
2486         (_bfd_vms_slurp_ihs): Ditto.
2487         (new_module): Ditto.
2488         (parse_module): Ditto
2489         (build_module_list): Ditto.
2490         (module_find_nearest_line): Ditto.
2491         (_bfd_vms_find_nearest_dst_line): Ditto.
2492         (vms_slurp_debug): Ditto.
2493         (_bfd_vms_slurp_dbg): Ditto.
2494         (_bfd_vms_slurp_tbt): Ditto.
2495         (_bfd_vms_write_dbg): Ditto.
2496         (_bfd_vms_write_tbt): Ditto.
2497
2498         * vms-gsd.c: Update copyright year, update list of records handled.
2499         (EVAX_LITERALS_NAME): New macro.
2500         (evax_section_flags): Add an entry for EVAX_LITERALS_NAME.
2501         (gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd.
2502         (register_universal_symbol): New function and prototype.
2503         (_bfd_vms_slurp_gsd): Fix indentations and casts,
2504         improve debug messages,
2505         use constants instead of hard-coded value,
2506         fix missing endianness conversion,
2507         handle global symbol (SYMG).
2508         (bfd_vms_set_section_flags): New function.
2509         (_bfd_vms_write_gsd): Don't write .vmsdebug section,
2510         handle section literals,
2511         fix indentation,
2512         handle section bfd and vms flags,
2513         don't output LIB$INITIALIZE symbol,
2514         fix handling of weak symbols,
2515         fix evax vs vax procedure descriptor,
2516         handle absolute symbols.
2517
2518         * reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR,
2519         BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations.
2520
2521         * makefile.vms (DEFS): Fix flags for VMS.
2522
2523         * bfdio.c (real_fopen): Handle multiple VMS fopen attributes.
2524
2525         * bfd-in2.h: Regenerated.
2526         * libbfd.h: Regenerated.
2527
2528 2009-02-20  Cary Coutant  <ccoutant@google.com>
2529
2530         * vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime
2531         in struct stat.
2532
2533 2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>
2534
2535         PR gas/7059
2536         * coffcode.h (coff_write_object_contents):  Don't let the string
2537         table offset overflow the s_name field when using long section names.
2538
2539 2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>
2540
2541         * coff-alpha.c (alpha_ecoff_backend_data):  Initialise fields which
2542         control long section name handling with ECOFF_NO_LONG_SECTION_NAMES.
2543         * coff-mips.c (mips_ecoff_backend_data):  Likewise.
2544         * coff-rs6000.c (bfd_xcoff_backend_data):  Initialise fields which
2545         control long section name handling with XCOFF_NO_LONG_SECTION_NAMES.
2546         (bfd_pmac_xcoff_backend_data):  Likewise.
2547         * coff64-rs6000.c (bfd_xcoff_backend_data):  Likewise.
2548         (bfd_xcoff_aix5_backend_data):  Likewise.
2549         (xcoff64_write_object_contents):  Delete unused long_section_names
2550         local variable.
2551         * coff-sh.c (bfd_coff_small_swap_table):  Initialise long section
2552         name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire
2553         struct non-const.
2554         * coffcode.h (documentation):  Update to describe long section names.
2555         (COFFLONGSECTIONCATHELPER):  New helper macro.
2556         (BLANKOR1TOODD):  Likewise.
2557         (COFF_ENABLE_LONG_SECTION_NAMES):  Likewise.
2558         (COFF_LONG_SECTION_NAMES_SETTER):  Likewise.
2559         (COFF_DEFAULT_LONG_SECTION_NAMES):  Likewise.
2560         (bfd_coff_set_long_section_names_allowed):  New function.
2561         (bfd_coff_set_long_section_names_disallowed):  Likewise.
2562         (struct bfd_coff_backend_data):  Add new backend hook function
2563         pointer _bfd_coff_set_long_section_names.
2564         (bfd_coff_set_long_section_names):  New backend hook.
2565         (coff_write_object_contents):  Only generate long section names if
2566         bfd_coff_long_section_names() indicates they are currently enabled.
2567         (bfd_coff_std_swap_table):  Make non-const, and initialise long
2568         section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
2569         (ticoff0_swap_table):  Likewise to both.
2570         (ticoff1_swap_table):  Again, likewise to both.
2571         * coffgen.c (make_a_section_from_file):  Allow long section names
2572         as inputs even if not currently allowed for outputs.
2573         * ecoff.c (_bfd_ecoff_no_long_sections):  New function.
2574         * efi-app-ia32.c (COFF_LONG_SECTION_NAMES):  Define to 0, not blank.
2575         * efi-app-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2576         * efi-app-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2577         * efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
2578         * efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2579         * efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2580         * efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
2581         * efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2582         * efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2583         * pei-arm.c (COFF_LONG_SECTION_NAMES):  Likewise.
2584         * pei-i386.c (COFF_LONG_SECTION_NAMES):  Likewise.
2585         * pei-mcore.c (COFF_LONG_SECTION_NAMES):  Likewise.
2586         * pei-mips.c (COFF_LONG_SECTION_NAMES):  Likewise.
2587         * pei-ppc.c (COFF_LONG_SECTION_NAMES):  Likewise.
2588         * pei-sh.c (COFF_LONG_SECTION_NAMES):  Likewise.
2589         * pei-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
2590         * libcoff-in.h:  Update copyright year to cause updated copyright
2591         year in generated libcoff.h, and fix typo.
2592         * libcoff.h:  Regenerated.
2593         * libecoff.h (ECOFF_NO_LONG_SECTION_NAMES):  New macro.
2594         (_bfd_ecoff_no_long_sections):  Add prototype.
2595         * libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES):  New macro.
2596         * pe-mips.c (COFF_LONG_SECTION_NAMES):  Define empty if not already
2597         defined by an including .c file.
2598         * ticoff.h (ticoff0_swap_table):  Make non-const, and initialise
2599         long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
2600         (ticoff1_swap_table):  Likewise to both.
2601
2602 2009-02-18  Christophe Lyon  <christophe.lyon@st.com>
2603
2604         * elf32-arm.c (arm_build_one_stub): Fix relocation target for pic
2605         stub. Catch default case error.
2606         (arm_map_one_stub): Add missing Thumb mapping symbol.
2607
2608 2009-02-18  Bjoern Haase  <bjoern.m.haase@web.de>
2609
2610         PR 9841
2611         * elf32-avr.c: Handle case where no local symbos exist correctly.
2612
2613 2009-02-16  Christophe Lyon  <christophe.lyon@st.com>
2614
2615         bfd/
2616         * elf32-arm.c (arm_long_branch_stub,
2617         arm_thumb_v4t_long_branch_stub,
2618         arm_thumb_thumb_long_branch_stub,
2619         arm_thumb_arm_v4t_long_branch_stub,
2620         arm_thumb_arm_v4t_short_branch_stub,
2621         arm_pic_long_branch_stub):
2622         Renamed to elf32_arm_stub_long_branch_any_any,
2623         elf32_arm_stub_long_branch_v4t_arm_thumb,
2624         elf32_arm_stub_long_branch_thumb_only,
2625         elf32_arm_stub_long_branch_v4t_thumb_arm,
2626         elf32_arm_stub_short_branch_v4t_thumb_arm,
2627         elf32_arm_stub_long_branch_any_any_pic.
2628         (arm_stub_long_branch, arm_thumb_v4t_stub_long_branch,
2629         arm_thumb_thumb_stub_long_branch,
2630         arm_thumb_arm_v4t_stub_long_branch,
2631         arm_thumb_arm_v4t_stub_short_branch, arm_stub_pic_long_branch):
2632         Renamed to arm_stub_long_branch_any_any,
2633         arm_stub_long_branch_v4t_arm_thumb,
2634         arm_stub_long_branch_thumb_only,
2635         arm_stub_long_branch_v4t_thumb_arm,
2636         arm_stub_short_branch_v4t_thumb_arm,
2637         arm_stub_long_branch_any_any_pic.
2638
2639 2009-02-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2640
2641         * elf-hppa.h (elf_hppa_final_link_relocate): Correct addend value used
2642         in branch offset check.
2643
2644 2009-02-15  Alan Modra  <amodra@bigpond.net.au>
2645
2646         * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
2647         add toc.symndx and toc.add.
2648         (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
2649         Set up toc.add.
2650         (get_tls_mask): Add toc_addend param, set from toc.add.  Adjust all
2651         callers.
2652         (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
2653         (branch_reloc_hash_match): New function, extracted from..
2654         (ppc64_elf_tls_optimize): ..here.
2655         (ppc64_elf_relocate_section): Properly set addends when optimizing
2656         tls sequences.  Avoid unnecessary reading and writing of insns.
2657         Only redo reloc when symbol changed.  Bypass symbol checks when
2658         using tlsld_got.
2659         * elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
2660         (branch_reloc_hash_match): New function, extracted from..
2661         (ppc_elf_tls_optimize): ..here.
2662         (ppc_elf_relocate_section): Avoid unnecessary reading of insns.
2663         Don't clear addend on zapped __tls_get_addr reloc.
2664
2665 2009-02-12  Nick Clifton  <nickc@redhat.com>
2666
2667         PR 9827
2668         * elflink.c (bfd_elf_final_link): When counting the relocations,
2669         if the header size has not been set yet then assume that it will
2670         match the output section's reloc type.
2671
2672 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
2673
2674         * elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for
2675         relocatable link.
2676
2677 2009-02-09  Alan Modra  <amodra@bigpond.net.au>
2678
2679         * elf32-spu.c (spu_elf_find_overlays): Call bfd_set_error on errors.
2680         (find_function): Likewise.
2681         (pasted_function): Don't error if no prior function found.
2682         (discover_functions): Revert 2008-12-10 change.  Extend first
2683         function range to start of section.
2684
2685 2009-02-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2686
2687         * elf64-hppa.c: Remove PARAMS macro.  Replace PTR with void *.  Convert
2688         functions to C90.
2689         * elf64-hppa.h: Likewise.
2690
2691 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
2692
2693         * elfxx-mips.c (_bfd_mips_elf_section_processing): Remove special
2694         .sbss handling.
2695
2696 2009-02-04  Alan Modra  <amodra@bigpond.net.au>
2697
2698         * elf32-spu.c (spu_elf_build_stubs): Define __icache_neg_log2_linesize.
2699         Define __icache_ptr_handler*, not __icache_ptr___icache_bi_handler*.
2700
2701 2009-02-03  Sandip Matte  <sandip@rmicorp.com>
2702
2703         * aoutx.h (NAME (aout, machine_type)): Handle bfd_mach_mips_xlr.
2704         * archures.c (bfd_mach_mips_xlr): Define.
2705         * bfd-in2.h: Regenerate.
2706         * cpu-mips.c (I_xlr): Define.
2707         (arch_info_struct): Add XLR entry.
2708         * elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_XLR.
2709         (mips_set_isa_flags): Handle bfd_mach_mips_xlr
2710         (mips_mach_extensions): Add XLR entry.
2711
2712 2009-02-03  Eric B. Weddington  <eric.weddington@atmel.com>
2713
2714         * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.
2715
2716 2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>
2717
2718         * configure.in: AC_SUBST pdfdir.
2719         * Makefile.am: Add install-pdf, install-pdf-am
2720         and install-pdf-recursive targets. Define pdfdir.
2721         * doc/Makefile.am: Define pdf__strip_dir. Add
2722         install-pdf and install-pdf-am targets.
2723         * po/Make-in: Add install-pdf target.
2724         * configure: Regenerate.
2725         * Makefile.in: Regenerate
2726         * doc/Makefile.in: Regenerate.
2727
2728 2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
2729
2730         * bfd-in2.h: Regenerate.
2731         * elf32-m68k.c: Handle 2-slot GOT entries.  Rename variables and
2732         fields from n_entries to n_slots where appropriate, update comments.
2733         (HOWTO): Add TLS relocations.
2734         (reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
2735         (enum elf_m68k_got_offset_size): New enum.
2736         (struct elf_m68k_got_entry.type): Move field to ...
2737         (struct elf_m68k_got_entry_key): ... here.  Update all uses.
2738         (elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
2739         functions.
2740         (elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
2741         functions.
2742         (struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
2743         fields into n_entries array.  Update comments.
2744         (elf_m68k_init_got): Simplify, update all uses.
2745         (elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
2746         (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
2747         GOT entries; update name, update all uses.
2748         (ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
2749         (elf_m68k_get_got_entry): Update.
2750         (elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
2751         simplify.
2752         (elf_m68k_remove_got_entry_type): Simplify.
2753         (elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
2754         (elf_m68k_can_merge_gots): Update.
2755         (elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
2756         (struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
2757         GOT entries, simplify.
2758         (elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
2759         (struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
2760         field, remove obsoleted local_n_entries field.
2761         (elf_m68k_partition_multi_got_2): New static function.
2762         (elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
2763         update.
2764         (elf_m68k_remove_got_entry_type): Update.
2765         (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
2766         (elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary
2767         update of sgot->size and srelgot->size.
2768         (elf_m68k_gc_sweep_hook): Update.
2769         (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
2770         (elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
2771         TLS relocations.
2772         * reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
2773         * libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.
2774
2775 2009-02-02  DJ Delorie  <dj@redhat.com>
2776
2777         * elf32-mep.c (config_names): Regenerate configuration.
2778
2779 2009-02-02  Alan Modra  <amodra@bigpond.net.au>
2780
2781         * elf-bfd.h (bfd_elf_get_str_section): Don't declare.
2782         (bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
2783         * elf.c (bfd_elf_get_str_section): Make static.
2784         (bfd_elf_find_section): Delete.
2785         * libbfd.h: Regenerate.
2786
2787 2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
2788
2789         * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
2790         (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.
2791
2792 2009-01-31  Alan Modra  <amodra@bigpond.net.au>
2793
2794         * elflink.c (on_needed_list): New function.
2795         (elf_link_add_object_symbols): Link in --as-needed libs if they
2796         satisfy undefined symbols in other libs.
2797
2798 2009-01-30  Julian Brown  <julian@codesourcery.com>
2799
2800         * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Skip BFDs with
2801         EXEC_P or DYNAMIC flags, and skip sections which are being linked
2802         with --just-symbols (-R).
2803
2804 2009-01-29  Adam Nemet  <anemet@caviumnetworks.com>
2805
2806         * dwarf2.c (read_rangelist): Use read_address to read low_pc and
2807         high_pc in order to properly sign-extend VMAs.
2808
2809 2009-01-29  Daniel Jacobowitz  <dan@codesourcery.com>
2810             Mark Shinwell  <shinwell@codesourcery.com>
2811             Catherine Moore  <clm@codesourcery.com>
2812
2813         * elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments.
2814
2815 2009-01-28  Catherine Moore <clm@codesourcery.com>
2816
2817         * elf32-arm.c (elf32_arm_check_relocs): Set SEC_ALLOC and
2818         SEC_LOAD for dynamic relocation sections.
2819
2820 2009-01-27  Hans-Peter Nilsson  <hp@axis.com>
2821
2822         * elf32-cris.c (cris_elf_relocate_section): Use elf_hash_table
2823         (info)->tls_size, not elf_hash_table (info)->tls_sec->size for
2824         the size of local TLS data.
2825
2826 2009-01-27  Andreas Schwab  <schwab@suse.de>
2827
2828         * mach-o.c (bfd_mach_o_archive_p): Restrict the number of
2829         architectures in the archive.
2830
2831 2009-01-27  Hans-Peter Nilsson  <hp@axis.com>
2832
2833         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>
2834         <R_CRIS_32_DTPREL>: Correct relocation value.
2835
2836         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
2837         <R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
2838         symbols with non-default visibility.
2839
2840 2009-01-26  Nathan Sidwell  <nathan@codesourcery.com>
2841
2842         * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
2843         describing the trampolines.
2844         (ppc_elf_relocate_section): Update relocs to describe the
2845         trampolines.
2846
2847 2009-01-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2848
2849         * elf-hppa.h (elf_hppa_final_link_relocate): Add check to ensure that
2850         branch targets can be reached for R_PARISC_PCREL22F, R_PARISC_PCREL17F
2851         and R_PARISC_PCREL12F relocations.
2852
2853 2009-01-24  Alan Modra  <amodra@bigpond.net.au>
2854
2855         PR 6022
2856         * elflink.c (find_version_for_sym): New function split out from,
2857         but without export_dynamic test, ..
2858         (_bfd_elf_link_assign_sym_version): ..here.
2859         (_bfd_elf_export_symbol): Use it.
2860
2861 2009-01-23  Alan Modra  <amodra@bigpond.net.au>
2862
2863         * elf-bfd.h (struct elf_assign_sym_version_info): Delete.
2864         (struct elf_info_failed, struct elf_find_verdep_info): Move to..
2865         * elflink.c: ..here, somewhat modified.
2866         * elf-bfd.h (_bfd_elf_add_default_symbol, _bfd_elf_export_symbol,
2867         _bfd_elf_link_find_version_dependencies,
2868         _bfd_elf_link_assign_sym_version, _bfd_elf_link_size_reloc_section,
2869         _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol,
2870         _bfd_elf_link_sec_merge_syms, bfd_elf_link_mark_dynamic_symbol): Don't
2871         declare..
2872         * elflink.c: ..and make static here.
2873         (_bfd_elf_link_find_version_dependencies): Adjust for removal
2874         of output_bfd from struct elf_find_verdep_info.
2875         (_bfd_elf_link_assign_sym_version): Similarly adjust to use
2876         struct elf_info_failed.
2877         (bfd_elf_size_dynamic_sections): Adjust.
2878
2879 2009-01-22  Alan Modra  <amodra@bigpond.net.au>
2880
2881         PR 6832
2882         * dwarf2.c (find_line): Don't update stash->sec_info_ptr until
2883         after comp_unit_find_line call.
2884
2885 2009-01-21  Nick Clifton  <nickc@redhat.com>
2886
2887         PR 9769
2888         * vmsutil.c (vms_file_stats_name): Remove use of unsupported
2889         tm_gmtoff field in struct tm.
2890
2891 2009-01-21  Alan Modra  <amodra@bigpond.net.au>
2892
2893         * elf32-spu.h (struct spu_elf_params): Add non_ia_text.
2894         * elf32-spu.c (mark_overlay_section): Only include .text.ia.*
2895         sections in soft-icache lines unless non_ia_text.  Don't add
2896         rodata if doing so would exceed line size.
2897
2898 2009-01-19  Hans-Peter Nilsson  <hp@axis.com>
2899
2900         * elf32-cris.c (elf_cris_copy_indirect_symbol): For other symbol
2901         types than bfd_link_hash_indirect, before early return, call
2902         _bfd_elf_link_hash_copy_indirect.
2903
2904 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
2905
2906         * elf-attrs.c (vendor_set_obj_attr_contents): Support tag ordering.
2907         * elf-bfd.h (elf_backend_data): Add obj_attrs_order.
2908         * elf32-arm.c (elf32_arm_obj_attrs_order): New function.
2909         (elf_backend_obj_attrs_order): New define.
2910         * elfxx-target.h (elf_backend_obj_attrs_order): New define.
2911         (elfNN_bed): Add elf_backend_obj_attrs_order.
2912
2913 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
2914
2915         * elf-attrs.c (is_default_attr): Substitute magic numbers with macros.
2916         (obj_attr_size): Likewise.
2917         (write_obj_attribute): Likewise.
2918         (_bfd_elf_copy_obj_attributes): Likewise.
2919         (_bfd_elf_parse_attributes): Likewise.
2920         * elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define.
2921         (ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines.
2922         (ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines.
2923         (ATTR_TYPE_HAS_NO_DEFAULT): New define.
2924         * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers
2925         with macros.
2926
2927 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
2928
2929         * elf-attrs.c (is_default_attr): Support defaultless attributes.
2930         (bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type.
2931         (bfd_elf_add_obj_attr_string): Likewise.
2932         (bfd_elf_add_obj_attr_int_string): Likewise.
2933         (_bfd_elf_parse_attributes): Allow for unknown flag bits in type.
2934         * elf-bfd.h (struct obj_attribute): Document new flag bit.
2935         * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that
2936         Tag_nodefaults has no default value.
2937         (elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults
2938         comment to reflect the new state.
2939
2940 2009-01-19  Alan Modra  <amodra@bigpond.net.au>
2941
2942         PR 9695
2943         * pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC.
2944         (some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC.
2945         (adjust_z_magix): Delete dead code handling QMAGIC.
2946
2947 2009-01-16  Kai Tietz  <kai.tietz@onevision.com>
2948
2949         * coffcode.h (styp_to_sec_flags): Correct interpretation of
2950         IMAGE_SCN_MEM_DISCARDABLE.
2951
2952 2009-01-16  Alan Modra  <amodra@bigpond.net.au>
2953
2954         * Makefile.am (libbfd_la_LIBADD, libbfd_la_LDFLAGS): Substitute
2955         SHARED_LIBADD and SHARED_LDFLAGS rather than WIN32LIBADD, WIN32LDFLAGS.
2956         * configure.in (commonbfdlib): Delete.
2957         (SHARED_LDFLAGS): Rename from WIN32LDFLAGS/
2958         (SHARED_LIBADD): Rename from WIN32LIBADD.  Add pic libiberty if such
2959         is available, not just for linux.
2960         * po/SRC-POTFILES.in: Regenerate.
2961         * Makefile.in: Regenerate.
2962         * configure: Regenerate.
2963
2964 2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
2965             Julian Brown   <julian@codesourcery.com>
2966
2967         * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 71 to include all known
2968         ARM attributes in ABI 2.07.
2969         * elf32-arm.c (get_secondary_compatible_arch): New function.
2970         (set_secondary_compatible_arch): New function.
2971         (tag_cpu_arch_combine): New function.
2972         (elf32_arm_copy_one_eabi_other_attribute): Delete function.
2973         (elf32_arm_copy_eabi_other_attribute_list): Delete function.
2974         (elf32_arm_merge_eabi_attributes): Rename order_312 to order_021 to
2975         make it fit with order_01243.
2976         Add support for Tag_also_compatible_with,
2977         Tag_CPU_unaligned_access, Tag_T2EE_use, Tag_Virtualization_use,
2978         Tag_MPextension_use, Tag_nodefaults and Tag_conformance.
2979         Improve/tidy up support for Tag_CPU_raw_name, Tag_CPU_name,
2980         Tag_CPU_arch, Tag_ABI_HardFP_use, Tag_VFP_HP_extension,
2981         Tag_ABI_FP_denormal, Tag_ABI_PCS_GOT_use, Tag_ABI_align8_needed,
2982         Tag_VFP_arch and Tag_ABI_FP_16bit_format.
2983         Rework the way unknown attributes are handled.
2984         Defer errors until all attributes have been processed.
2985
2986 2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
2987
2988         * elf-attrs.c (bfd_elf_add_obj_attr_compat): Rename to
2989         bfd_elf_add_obj_attr_int_string.
2990         Read Tag_compatibility from its new location in the attribute array,
2991         rather than the attribute list.
2992         (_bfd_elf_copy_obj_attributes): bfd_elf_add_obj_attr_compat ->
2993         bfd_elf_add_obj_attr_int_string.
2994         (_bfd_elf_parse_attributes): Likewise.
2995         (_bfd_elf_merge_object_attributes): There's now only one
2996         Tag_compatibility, and it's in the array, not the list.
2997         * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 33 to include
2998         Tag_compatibility.
2999         (bfd_elf_add_obj_attr_compat): Rename to
3000         bfd_elf_add_obj_attr_int_string.
3001         (bfd_elf_add_proc_attr_compat): Rename to
3002         bfd_elf_add_proc_attr_int_string.
3003         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Explicitly don't handle
3004         Tag_compatibility.
3005
3006 2009-01-15  Douglas B Rupp  <rupp@gnat.com>
3007
3008         * Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo
3009         (BFD32_BACKENDS_CFILES): Add new file vmsutil.c
3010         (vmsutil.lo): Add dependency rule.
3011         * Makefile.in: Regenerate.
3012         * config.bfd (ia64*-*-*vms*): Add case.
3013         * configure.in (bfd_elf64_ia64_vms_vec): Add case.
3014         * configure: Regenerate.
3015         * vmsutil.c: New file.
3016         * vmsutil.h: New file.
3017         * elf-bfd.h (struct bfd_elf_special_section): Change type of
3018         attr to bfd_vma.
3019         * elfxx-ia64.c (elfNN_vms_post_process_headers,
3020         elfNN_vms_section_processing, elfNN_vms_final_write_processing,
3021         elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr,
3022         elfNN_vms_object_p): New functions
3023         * targets.c (bfd_elf64_ia64_vms_vec): New target.
3024
3025 2009-01-14  H.J. Lu  <hongjiu.lu@intel.com>
3026
3027         PR ld/9727
3028         * elflink.c (elf_gc_sweep): Exclude the group section if the
3029         first member of the section group is excluded.
3030
3031 2009-01-14  Alan Modra  <amodra@bigpond.net.au>
3032
3033         PR 9735
3034         * syms.c (_bfd_stab_section_find_nearest_line): Don't free
3035         saved filename, use bfd_alloc rather than bfd_malloc for it.
3036
3037 2009-01-13  Alan Modra  <amodra@bigpond.net.au>
3038
3039         * elf32-spu.c (spu_elf_build_stubs): Make __icache_base absolute.
3040
3041 2009-01-13  Alan Modra  <amodra@bigpond.net.au>
3042
3043         * elf32-spu.c (remove_cycles): Always set call->max_depth.
3044
3045 2009-01-12  Alan Modra  <amodra@bigpond.net.au>
3046
3047         * elf32-spu.c (spu_elf_auto_overlay): Correct vma mask.
3048
3049 2009-01-12  Alan Modra  <amodra@bigpond.net.au>
3050
3051         * elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2,
3052         num_lines_log2.
3053         (struct got_entry): Add br_addr.
3054         (struct call_info): Add priority.
3055         (struct function_info): Add lr_store and sp_adjust.
3056         (spu_elf_setup): Init line_size_log2 and num_lines_log2.
3057         (spu_elf_find_overlays): For soft-icache, mark any section within cache
3058         area as an overlay, and check that no other overlays exist.  Look up
3059         icache overlay manager entry sym.
3060         (BRA_STUBS, BRA, BRASL): Define.
3061         (enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub.
3062         (needs_ovl_stub): Adjust for soft-icache.  Return priority encoded
3063         in branch insn.
3064         (count_stub, build_stub): Support soft-icache.
3065         (build_spuear_stubs, process_stubs): Adjust build_stub call.
3066         (spu_elf_size_stubs): Size soft-icache stubs.
3067         (overlay_index): New function.
3068         (spu_elf_build_stubs): Make static.  Support soft-icache.
3069         (spu_elf_check_vma): Don't turn off auto_overlay if soft-icache.
3070         (find_function_stack_adjust): Save lr store and stack adjust insn
3071         offsets.
3072         (maybe_insert_function): Adjust find_function_stack_adjust call.
3073         (mark_functions_via_relocs): Retrieve priority.
3074         (remove_cycles): Only warn about pruned arcs when stack_analysis.
3075         (sort_calls): Sort by priority first.
3076         (mark_overlay_section): Ignore .ovl.init.
3077         (sum_stack): Only print when stack_analysis.
3078         (print_one_overlay_section): New function, extracted from..
3079         (spu_elf_auto_overlay): ..here.  Support soft-icache overlays.
3080         (spu_elf_stack_analysis): Only print when htab->stack_analysis.
3081         (spu_elf_final_link): Call spu_elf_stack_analysis for lrlive
3082         analysis.  Call spu_elf_build_stubs.
3083         (spu_elf_relocate_section): For soft-icache encode overlay index
3084         into addresses.
3085         (spu_elf_output_symbol_hook): Support soft-icache.
3086         (spu_elf_modify_program_headers: Likewise.
3087
3088         * elf32-spu.h (struct spu_elf_params): Add lrlive_analysis.  Rename
3089         num_regions to num_lines.  Add line_size and max_branch.
3090         (enum _ovly_flavour): Add ovly_soft_icache.
3091         (spu_elf_build_stubs): Delete.
3092
3093 2009-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
3094
3095         * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
3096         relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
3097
3098 2009-01-07  Hans-Peter Nilsson  <hp@axis.com>
3099
3100         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
3101         <case R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: For a symbol defined in
3102         the program, the known offset starts at the negative size of the
3103         TLS section.
3104         <case R_CRIS_32_IE, R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL>:
3105         Similar.
3106
3107 2009-01-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3108
3109         * config.bfd: Add lm32-*-rtems*.
3110
3111 2009-01-03  H.J. Lu  <hongjiu.lu@intel.com>
3112
3113         * coff-ppc.c: Add 2009 to Copyright.
3114         * elf32-cris.c: Likewise.
3115         * elflink.c: Likewise.
3116
3117 2009-01-03  Hans-Peter Nilsson  <hp@axis.com>
3118
3119         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Rename
3120         gotplt_index to rela_plt_index.  Adjust for R_CRIS_DTPMOD entry.
3121
3122 2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>
3123
3124         PR ld/9679
3125         * elflink.c (elf_merge_st_other): New.
3126         (_bfd_elf_merge_symbol): Use it on skipped weak definitions and
3127         hide them if needed.
3128         (elf_link_add_object_symbols): Updated.
3129
3130 2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>
3131
3132         PR ld/9676
3133         * elflink.c (elf_link_add_object_symbols): Update def_dynamic,
3134         ref_dynamic and dynamic_def fields when setting def_regular
3135         to 1.
3136
3137 2009-01-02  Curtis Mackie  <curtmackevo@gmail.com>
3138
3139         PR 9682
3140         * coff-ppc.c (dump_toc): Fix up calls to fprintf without a string
3141         literal.
3142
3143 For older changes see ChangeLog-2008
3144 \f
3145 Local Variables:
3146 mode: change-log
3147 left-margin: 8
3148 fill-column: 74
3149 version-control: never
3150 End: