OSDN Git Service

bfd/
[pf3gnuchains/pf3gnuchains3x.git] / bfd / ChangeLog
1 2009-09-18  Alan Modra  <amodra@bigpond.net.au>
2
3         * elf64-ppc.c (follow_link, elf_follow_link, ppc_follow_link): New
4         functions.  Use throughout.
5         (ppc64_elf_copy_indirect_symbol): Set direct symbol "oh" field
6         from indirect symbol.
7         (lookup_fdh): Rename from get_fdh.  Follow indirect sym links.
8         (add_symbol_adjust): Simplify.
9         (defined_code_entry, defined_func_desc): New functions.
10         (ppc64_elf_gc_keep): Follow indirect sym links.  Use defined_code_entry.
11         (ppc64_elf_gc_mark_dynamic_ref): Use defined_func_desc and
12         defined_code_entry to follow indirect sym links.
13         (ppc64_elf_gc_mark_hook, func_desc_adjust): Likewise.
14         (ppc_type_of_stub): Follow indirect sym links.
15         (toc_adjusting_stub_needed): Likewise.
16         (ppc_build_one_stub): Likewise.  Make undefined dot-symbols weak
17         rather than defining them at stub.
18         (ppc64_elf_relocate_section): Rewrite call test to avoid multiple
19         assignments in test.
20
21 2009-09-16  Tristan Gingold  <gingold@adacore.com>
22         
23         * mach-o.h (bfd_mach_o_filetype): Add new constants from darwin10.
24         Reindent.
25         * mach-o.c (bfd_mach_o_cpu_name): Reindent.
26         (bfd_mach_o_filetype_name): Complete with new constants.  Reindent.
27         (bfd_mach_o_print_private_header): Use fputs instead of fprintf
28         when possible to avoid warnings.
29         (bfd_mach_o_print_section_map): Ditto.
30         (bfd_mach_o_section_get_entry_size): New function.
31         (bfd_mach_o_section_get_nbr_indirect): Simplify using the newly
32         added function.
33         (bfd_mach_o_print_dysymtab): Print address of indirect symbols.
34
35 2009-09-14  Nick Clifton  <nickc@redhat.com>
36
37         * po/fi.po: Updated Finnish translation.
38
39 2009-09-11  Nick Clifton  <nickc@redhat.com>
40
41         * po/bfd.pot: Updated by the Translation project.
42
43 2009-09-11  Philippe De Muyter  <phdm@macqel.be>
44
45         * binary.c (binary_object_p): Remove bfd_external_binary_architecture
46         hack.  objcopy `-B' (`--binary-architecture') option is now handled
47         in a generic way.
48
49 2009-09-11  Nick Clifton  <nickc@redhat.com>
50
51         * rs6000-core.c (read_hdr): Fix typo in recent C++ compatibility
52         changes.
53
54 2009-09-11  Jie Zhang  <jie.zhang@analog.com>
55
56         * elf32-bfin.c (bfinfdpic_relocs_info_find): Just return
57         NULL if `ht' is NULL.
58
59 2009-09-09  Martin Thuresson  <martin@mtme.org>
60
61         Update soruces to compile cleanly with -Wc++-compat:
62         * aoutx.h: Add casts.
63         * archive.c: Add casts.
64         * archive64.c: Add casts.
65         * archures.c: Add casts.
66         * bfd-in2.h: Regenerated.
67         * bfd.c: Add casts. (enum bfd_direction): Move out to top level.
68         * bfdio.c: Add casts.
69         * binary.c: Add casts.
70         * cache.c (cache_bseek,cache_bread_1,cache_bwrite): Updated
71         parameter to use enum value instead of int.
72         * coffcode.h: Add casts.
73         * coffgen.c: Add casts.
74         * cofflink.c: Add casts.
75         * compress.c: Add casts.
76         * dwarf1.c: Add casts.
77         * dwarf2.c: Add casts. (struct dwarf2_debug): Rename member bfd to
78         bfd_ptr. Update code to use new name.
79         * elf-attrs.c: Add casts.
80         * elf-bfd.h (elf_link_virtual_table_entry): Gives name to
81         anonymous struct. (union gotplt_union, struct
82         elf_link_virtual_table_entry): Move to top level.
83         * elf-eh-frame.c: Add casts.
84         * elf-strtab.c: Add casts.
85         * elf.c: Add casts. (_bfd_elm_make_Section_from_phdr): Change
86         argument name from typename to type_name.
87         * elf32-i386.c: Add casts.
88         * elf64-x86-64.c: Add casts.
89         * elfcode.h: Add casts.
90         * elfcore.h: Add casts.
91         * elflink.c: Add casts.
92         * format.c: Add casts.
93         * hash.c: Add casts.
94         * ihex.c: Add casts.
95         * libaout.h (enum aout_subformat, enum aout_magic): Move to top
96         level.
97         * libbfd.c: Add casts.
98         * linker.c: Add casts.
99         * merge.c: Add casts.
100         * opncls.c: Add casts.
101         * peXXigen.c: Add casts.
102         * peicode.h: Add casts.
103         * reloc.c: Add casts.
104         * section.c: Add casts.
105         * simple.c: Add casts.
106         * srec.c: Add casts.
107         * stabs.c: Add casts.
108         * syms.c: Add casts.
109         * targets.c: Add casts.
110         * tekhex.c: Add casts.
111         * verilog.c: Add casts.
112
113 2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
114
115         * configure: Regenerate.
116
117 2009-09-09  Daniel Jacobowitz  <dan@codesourcery.com>
118
119         * elf32-arm.c (elf32_arm_final_link_relocate): Set sym_flags
120         for the mode of target PLT entries.
121         (allocate_dynrelocs): Only adjust symbol type if setting its
122         value.
123
124 2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
125
126         * configure: Regenerate.
127
128 2009-09-09  Nick Clifton  <nickc@redhat.com>
129
130         PR 10478:
131         * elf.c (bfd_section_from_shdr): Do not reject sparc binaries with
132         section headers containing sh_link values of SHN_BEFORE or
133         SHN_AFTER.
134         * elfcode.h (elf_object_p): Likewise.
135
136 2009-09-09  Tristan Gingold  <gingold@adacore.com>
137
138         Handle DYLD_INFO introduced by Darwin10.
139         * mach-o.h (bfd_mach_o_load_command_type): Add
140         BFD_MACH_O_LC_DYLD_INFO.
141         (bfd_mach_o_dyld_info_command): New type.
142         (bfd_mach_o_load_command): Add dyld_info field.
143         * mach-o.c (bfd_mach_o_scan_read_str): Reduce size of buf.
144         (bfd_mach_o_scan_read_dyld_info): New function.
145         (bfd_mach_o_scan_read_command): Handle BFD_MACH_O_LC_DYLD_INFO.
146         (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
147         (bfd_mach_o_load_command_name): AddB FD_MACH_O_LC_DYLD_INFO.
148         (bfd_mach_o_print_dyld_info): New function.
149
150 2009-09-09  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
151
152         * elf32-cr16.c (elf32_cr16_relocate_section): Add code to discard the
153         linkonce or linker script discarded section.
154
155 2009-09-09  Alan Modra  <amodra@bigpond.net.au>
156
157         * elf32-xtensa.c (elf_xtensa_relax_section): Delete -r check.
158
159 2009-09-07  Andreas Schwab  <schwab@linux-m68k.org>
160
161         * elf32-m68k.c (rtype_to_howto): If the reloc index is out of
162         range call the bfd error hander and use R_68K_NONE instead.
163
164 2009-09-07  Tristan Gingold  <gingold@adacore.com>
165
166         * po/SRC-POTFILES.in: Regenerate.
167         * po/bfd.pot: Regenerate.
168
169         * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
170         BFD_HAVE_SYS_STAT_TYPE_MEMBER): Moved to gas/acinclude.m4
171         * configure.in: Move tests for tm_gmtoff, st_mtim.tv_sec and
172         st_mtim.tv_nsec to gas/configure.in
173         (bfd_elf64_ia64_vms_vec): Remove vmsutil.lo
174         * configure: Regenerate.
175         * config.in: Regenerate.
176         * vmsutil.c: Moved to gas/config/te-vms.c
177         * vmsutil.h: Removed.
178         * Makefile.am (BFD32_BACKENDS_CFILES): Remove vmsutil.c
179         (BFD32_BACKENDS): Remove vmsutil.lo
180         * Makefile.in: Regenerate.
181
182 2009-09-05  Eli Zaretskii  <eliz@gnu.org>
183
184         * coffcode.h: Include libiberty.h.
185
186 2009-09-05  Martin Thuresson  <martin@mtme.org>
187
188         * coff-arm.c (coff_arm_relocate_section)
189         (record_thumb_to_arm_glue, bfd_arm_process_before_allocation):
190         Change member name class to symbol_class.
191         * coff-i960.c (coff_i960_relocate_section) Rename variable
192         class to class_val. Change member name class to symbol_class.
193         * coff-rs6000.c (_bfd_xcoff_swap_aux_in)
194         (_bfd_xcoff_swap_aux_out): Rename arguments class to in_class.
195         * coff-stgo32.c (adjust_aux_in_post)
196         (adjust_aux_out_pre, adjust_aux_out_post): Rename arguments class
197         to in_class.
198         * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in)
199         (_bfd_xcoff64_swap_aux_out): Rename arguments class to in_class.
200         * coffcode.h (coff_pointerize_aux_hook): Rename variable class
201         to n_sclass.
202         * coffgen.c (coff_write_symbol, coff_pointerize_aux): Rename
203         variables named class to n_sclass. (coff_write_symbols): Rename
204         variable class to sym_class. (bfd_coff_set_symbol_class): Rename
205         argument class to symbol_class.
206         * cofflink.c (_bfd_coff_link_hash_newfunc)
207         (coff_link_add_symbols, _bfd_coff_link_input_bfd)
208         (_bfd_coff_write_global_sym, _bfd_coff_generic_relocate_section):
209         Update code to use renamed members.
210         * coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Rename
211         argument class to in_class.
212         * libcoff-in.h (struct coff_link_hash_entry, struct
213         coff_debug_merge_type) Renamed members class to symbol_class and
214         type_class.
215         * libcoff.h Regenerated.
216         * peXXigen.c: (_bfd_XXi_swap_aux_in, _bfd_XXi_swap_aux_out):
217         Rename argument class to in_class.
218         * pef.c (bfd_pef_parse_imported_symbol): Update code to use
219         renamed members.
220         * pef.h (struct bfd_pef_imported_symbol): Changed name of
221         member class to symbol_class.
222
223 2009-09-04  H.J. Lu  <hongjiu.lu@intel.com>
224
225         * configure: Regenerated.
226
227 2009-09-04  Tristan Gingold  <gingold@adacore.com>
228
229         * configure.in: Bump version to 2.20.51
230
231 2009-09-04  Alan Modra  <amodra@bigpond.net.au>
232
233         * elf32-spu.c (spu_elf_relocate_section): Correct 2009-07-24 logic.
234
235 2009-09-04  Jie Zhang  <jie.zhang@analog.com>
236
237         * elf32-bfin.c (elf32_bfinfdpic_create_dynamic_sections): Always
238         create .rela.bss.
239         (elf32_bfinfdpic_size_dynamic_sections): Set SEC_EXCLUDE flag
240         for empty .rela.bss and .rel.plt sections.
241
242 2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>
243
244         * elfxx-mips.c (mips_elf_calculate_relocation): Don't relocate
245         R_MIPS_JALR unless symbol resolves locally.
246
247 2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>
248
249         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Don't set
250         has_static_relocs for R_MIPS_JALR.
251
252 2009-09-03  Maciej W. Rozycki  <macro@codesourcery.com>
253
254         * elf64-mips.c (mips_elf64_howto_table_rela): Add support for
255         R_MIPS_TLS_DTPMOD64 and R_MIPS_TLS_TPREL64, replacing the
256         respective stubs.
257
258 2009-09-01  H.J. Lu  <hongjiu.lu@intel.com>
259
260         * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Declare
261         plt earlier.
262
263 2009-09-01  Tristan Gingold  <gingold@adacore.com>
264
265         * makefile.vms: Ported to Itanium VMS.  Remove useless variable and
266         dependencies.  Reindent.
267         * configure.com: Ported to Itanium VMS.  Now generates a build.com
268         to build without make.  Add messages but make edit silent.
269         * hosts/alphavms.h: Add a prototype for stpcpy.
270         * vms.c: Add a missing include for Alpha VMS.
271         * elfxx-ia64.c (ELF_OSABI): Define for OpenVMS.
272
273 2009-08-31  Jan Beulich  <jbeulich@novell.com>
274
275         * elf-bfd.h (bfd_elf_get_default_section_type): Declare.
276         * elf.c (bfd_elf_get_default_section_type): New.
277         (elf_fake_sections): Use bfd_elf_get_default_section_type.
278
279 2009-08-30  H.J. Lu  <hongjiu.lu@intel.com>
280
281         * elf32-i386.c (elf_i386_finish_dynamic_symbol): Revert the
282         accidental checkin.
283         * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likwise.
284
285 2009-08-30  Alan Modra  <amodra@bigpond.net.au>
286
287         PR ld/10569
288         * bfd.c (bfd_emul_get_maxpagesize): Don't abort.
289         (bfd_emul_get_commonpagesize): Likewise.
290
291 2009-08-29  Martin Thuresson  <martin@mtme.org>
292
293         * elf32-arm.c (struct stub_def): Rename member template to
294         template_sequence. (arm_build_one_stub,
295         find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub):
296         Rename variable template to template_sequence.
297         * elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl):
298         Rename variable template to template_val.
299         * aoutx.h (NAME (aout, make_empty_symbol)): Rename variable
300         new to new_symbol.
301         * coffgen.c (coff_make_empty_symbol)
302         (coff_bfd_make_debug_symbol): Rename variable new to new_symbol.
303         * cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable
304         new to new_insn.
305         * ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new
306         to new_symbol.
307         * elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument
308         new to new_reloc.
309         * hash.c (bfd_hash_lookup): Rename variable new to new_string.
310         * ieee.c (ieee_make_empty_symbol): Rename variable new to
311         new_symbol.
312         * linker.c (bfd_new_link_order): Rename variable new to
313         new_lo.
314         * mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to
315         symbol.
316         * oasys.c (oasys_make_empty_symbol): Rename variable new to
317         new_symbol_type.
318         * pdp11.c (NAME (aout, make_empty_symbol)): Rename variable
319         new to new_symbol_type.
320         * plugin.c (bfd_plugin_make_empty_symbol): Rename variable new
321         to new_symbol.
322         * rs6000-core.c (CoreHdr, VmInfo): Rename union member new to
323         new_dump.
324         (read_hdr, rs6000coff_core_p)
325         (rs6000coff_core_file_matches_executable_p)
326         (rs6000coff_core_file_failing_command)
327         (rs6000coff_core_file_failing_signal): Updated function to use new
328         union member name.
329         * som.c (som_make_empty_symbol): Rename variable new to
330         new_symbol_type.
331         * syms.c (_bfd_generic_make_empty_symbol): Rename variable new
332         to new_symbol.
333         * tekhex.c (first_phase, tekhex_make_empty_symbol): Rename
334         variable new to new_symbol.
335
336 2009-08-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
337
338         * acinclude.m4 (AM_INSTALL_LIBBFD): Call AM_SUBST_NOTMAKE for
339         bfdlibdir and bfdincludedir.
340         * Makefile.am (bfdlibdir, bfdincludedir): Move definition ...
341         [INSTALL_LIBBFD]: ... here, ...
342         [INSTALL_LIBBFD]: ... and empty overrides here.
343         [!INSTALL_LIBBFD]: (rpath_bfdlibdir): New variable.
344         [!INSTALL_LIBBFD] (libbfd_la_LDFLAGS): Use it.
345         * Makefile.in: Regenerate.
346         * configure: Regenerate.
347
348 2009-08-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
349
350         * elf32-m68k.c: Rewrite initialization of GOT entries for TLS
351         relocations.  Rewrite output of dynamic TLS relocations.
352         (DTP_OFFSET, TP_OFFSET): New constants.
353         (dtpoff_base): Update.
354         (tpoff): Rename to tpoff_base, update.
355         (elf_m68k_init_got_entry_static, elf_m68k_init_got_entry_local_shared):
356         New functions.  Move code from elf_m68k_relocate_section here.
357         (elf_m68k_relocate_section): Update.
358         (elf_m68k_finish_dynamic_symbol): Fix handling of local TLS symbols.
359
360 2009-08-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
361
362         * elf32-m68k.c (elf_m68k_copy_indirect_symbol): Propagate
363         non_got_ref value.
364         (elf_m68k_check_relocs): Handle dynamic TLS relocations.
365         Handle non_got_ref field.
366         (elf_m68k_adjust_dynamic_symbol): Handle non_got_ref field.
367
368 2009-08-26  Alan Modra  <amodra@bigpond.net.au>
369
370         PR ld/10518
371         * linker.c (bfd_find_version_for_sym): Revert warning.
372
373 2009-08-26  Alan Modra  <amodra@bigpond.net.au>
374
375         PR ld/10518
376         * linker.c (bfd_find_version_for_sym): Override a "*" match by any
377         other wildcard match.  Warn on multiple wildcard matches.
378
379 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
380
381         * Makefile.am (libbfd_la_LDFLAGS): Initialize early, to allow
382         appending.
383         [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES, bfdinclude_HEADERS): Set
384         only in this condition.
385         [!INSTALL_LIBBFD] (noinst_LTLIBRARIES, libbfd_la_LDFLAGS): New,
386         to build but not install libbfd.la in this condition.
387         (install-bfdlibLTLIBRARIES, uninstall-bfdlibLTLIBRARIES)
388         (install_libbfd, install_libbfd): Remove.
389         * Makefile.in: Regenerate.
390         * doc/Makefile.am (AM_CPPFLAGS): Renamed from ...
391         (INCLUDES): ... this.
392         ($(MKDOC)): Adjust.
393         * doc/Makefile.in: Regenerate.
394
395         * Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, instead use
396         no-dist and foreign.
397         (EXTRA_libbfd_la_SOURCES): New, list $(CFILES) to allow
398         dependency tracking to work for them.
399         (targets.lo, archures.lo, dwarf.lo): Rewrite to
400         use automake dependency tracking mechanism.
401         (MKDEP, DEP, DEP1, dep.sed, dep, dep-in, dep-am): Remove.
402         (mkdep section): Remove.
403         (BUILT_SOURCES): New, list $(BUILD_HFILES).
404         * Makefile.in: Regenerate.
405         * po/SRC-POTFILES.in, po/bfd.pot: Regenerate.
406
407         * Makefile.am (datarootdir, docdir, htmldor, pdfdir)
408         (install-pdf, install-pdf-recursive, install-html)
409         (install-html-recursive): Remove.
410         * Makefile.in: Regenerate.
411
412         * Makefile.in: Regenerate.
413         * aclocal.m4: Likewise.
414         * config.in: Likewise.
415         * configure: Likewise.
416
417 2009-08-21  Daniel Gutson  <dgutson@codesourcery.com>
418
419         * elf32-arm.c (arch_has_thumb2_nop): New function.
420         (arch_has_arm_nop): New function.
421         (elf32_arm_final_link_relocate): NOP opcodes changed.
422
423 2009-08-16  Doug Evans  <dje@google.com>
424
425         * opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec,
426         at least don't leak memory.
427
428 2009-08-13  DJ Delorie  <dj@redhat.com>
429
430         * elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes
431         if needed.
432
433 2009-08-12  Nick Clifton  <nickc@redhat.com>
434
435         * po/fi.po: Updated Finnish translation.
436
437 2009-08-11  Bernd Schmidt  <bernd.schmidt@analog.com>
438
439         Merge some FRV FDPIC changes into the Blackfin code.
440         * elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to
441         summary reloc information.
442         (bfinfdpic_dynamic_got_plt_info): New.
443         (_bfin_create_got_section): Create the PLT section here.
444         (elf32_bfinfdpic_create_dynamic_sections): Not here.
445         (_bfinfdpic_count_nontls_entries): Move out of...
446         (_bfinfdpic_count_got_plt_entries): ... here.
447         (_bfinfdpic_count_relocs_fixups): Likewise.
448         (_bfinfdpic_reset_got_plt_entries): New.
449         (_bfinfdpic_size_got_plt): Move out of...
450         (elf32_bfinfdpic_size_dynamic_sections): ... here.
451         (bfinfdpic_relocate_section): Be careful not to call
452         _bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs.
453         (bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info):
454         New functions.
455         (elf_backend_discard_info): Define for FD-PIC.
456
457 2009-08-11  Alan Modra  <amodra@bigpond.net.au>
458
459         * elflink.c: Add FIXMEs for some places that require octets_per_byte
460         adjustments.
461         * elf-eh-frame.c: Likewise.
462         * merge.c: Likewise.
463
464 2009-08-11  Alan Modra  <amodra@bigpond.net.au>
465
466         * configure.in:  Remove elf-ifunc.lo from common ELF files.  Add
467         to x86 and x86_64 configurations.
468         * configure: Regenerate.
469
470 2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
471
472         Stop using bfd_usrdata in libbfd.
473         * coff-stgo32.c (bfd_coff_go32stub): Remove.
474         (stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE.
475         (adjust_filehdr_in_post): Declare the abfd parameter as unused.
476         Replace STUBSIZE by GO32_STUBSIZE.  Save now the stub in
477         filehdr_dst->u.go32.stub.  New comment with the reason.
478         (adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE.
479         Substitute the removed macro bfd_coff_go32stub.
480         (adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre)
481         (adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre)
482         (adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE.
483         (create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data):
484         Replace STUBSIZE by GO32_STUBSIZE.  Substitute the removed macro
485         bfd_coff_go32stub.
486         * coffcode.h (coff_mkobject_hook): Initialize coff->go32stub.
487         * libcoff-in.h (coff_data_type): New field go32stub.
488         * libcoff.h: Regenerated.
489
490 2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
491
492         Fix go32 stub preservation by objcopy.
493         * coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc.
494         (go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD
495         go32stub.
496
497 2009-08-10  Nathan Sidwell  <nathan@codesourcery.com>
498
499         * elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local
500         symbols.
501         (elf32_arm_final_link_relocate): Treat local undefined symbols the
502         same as global undefined symbols.
503         (elf32_arm_relocate_section): Give an error for local undefined
504         non-weak symbols, unless the reloc will not use the symbol.
505
506 2009-08-10  Nathan Sidwell  <nathan@codesourcery.com>
507
508         * elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11.
509         (ppc_elf_relax_section): Use symbol index to distinguish
510         relocatable stubs.
511
512 2009-08-10  Alan Modra  <amodra@bigpond.net.au>
513
514         * elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections.
515
516 2009-08-10  Alan Modra  <amodra@bigpond.net.au>
517
518         * elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt
519         info for STT_GNU_IFUNC.
520         * elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry
521         on got refs in case the symbol turns out to be ifunc.
522         (ppc_elf_gc_sweep_hook): Similarly.
523         (ppc_elf_adjust_dynamic_symbol): Adjust assertion.
524         (allocate_dynrelocs): Don't specially allocate got relocs for ifunc.
525         (ppc_elf_size_dynamic_sections): Likewise.
526         (ppc_elf_relocate_section): Likewise.
527
528 2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
529
530         From Mike Frysinger <michael.frysinger@analog.com>
531         * elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs,
532         bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook,
533         _bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section,
534         bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
535         bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
536         Adjust to match the renamed reloc definitions.
537         
538 2009-08-08  Alan Modra  <amodra@bigpond.net.au>
539
540         PR 10494
541         * elf.c (_bfd_elf_make_section_from_shdr): When setting up section
542         LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers.
543
544 2009-08-07  Tom Tromey  <tromey@redhat.com>
545
546         * elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict
547         aliasing error.
548
549 2009-08-06  Michael Eager <eager@eagercon.com>
550
551         * Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
552         * Makefile.in: Regenerate.
553         * archures.c: Add bfd_arch_microblaze.
554         * bfd-in2.h: Regenerate.
555         * config.bfd: Add microblaze target.
556         * configure.in: Add bfd_elf32_microblaze_vec target.
557         * configure: Regenerate.
558         * cpu-microblaze.c: New.
559         * elf32-microblaze.c: New.
560         * libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
561         * libbfd.h: Regenerate.
562         * reloc.c: Add MICROBLAZE relocations.
563         * section.c: Add struct relax_table and relax_count to section.
564         * targets.c: Add bfd_elf32_microblaze_vec.
565
566 2009-08-06  Jakub Jelinek  <jakub@redhat.com>
567             Alan Modra  <amodra@bigpond.net.au>
568
569         PR binutils/10492
570         * elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE
571         symbols.
572         * elf32-mips.c (mips_elf_sym_is_global): Likewise.
573         * elfn32-mips.c (mips_elf_sym_is_global): Likewise.
574
575 2009-08-06  Nathan Sidwell  <nathan@codesourcery.com>
576
577         * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
578         at least once when fixing cortex-a8.
579
580 2009-08-05  Chao-ying Fu  <fu@mips.com>
581
582         * elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
583         * elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL
584         for CPUs.  It is true for RM9000.
585         (JALR_TO_BAL_P): New define to transform JALR to BAL.  It is true
586         for all CPUs.
587         (mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P
588         to guard the transformation.
589
590 2009-08-05  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
591
592         * elf32-spu.h (spu_elf_params): Add member emit_fixups.
593         (spu_elf_size_sections): Declare prototype.
594         * elf32-spu.c (spu_link_hash_table): Add member sfixup.
595         (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros.
596         (spu_elf_emit_fixup): New function.
597         (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32.
598         (spu_elf_size_sections): New function.
599
600 2009-08-05  Nathan Sidwell  <nathan@codesourcery.com>
601
602         * elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm.
603         (arm_build_one_stub): Build a8 veneers as a separate pass.
604         (cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p
605         parameters.  Use them to check if we create a different a8 fixup
606         than the previous pass.
607         (elf32_arm_size_stubs): Move scope of stub_changed and
608         prev_num_a8_fixes into main loop.
609         (elf32_arm_build_stubs): Build a8 veneers in a second pass.
610
611 2009-08-04  Alan Modra  <amodra@bigpond.net.au>
612
613         * elf32-ppc.c (ppc_elf_relax_section): Correct conditions under
614         which find_plt_ent is called.  Delete redundant code.
615
616 2009-08-03  H.J. Lu  <hongjiu.lu@intel.com>
617
618         PR binutils/10363
619         * elf.c (bfd_elf_string_from_elf_section): Return NULL on
620         invalid string offset.
621
622 2009-08-03  H.J. Lu  <hongjiu.lu@intel.com>
623
624         PR ld/10433
625         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
626         to htab->init_got_offset and plt to htab->init_plt_offset
627         when discarding space for dynamic relocations.
628
629 2009-08-03  Alan Modra  <amodra@bigpond.net.au>
630
631         * elf32-ppc.c (struct plt_entry): Revise comments.
632         (ppc_elf_check_relocs): Don't create needless plt_entry info
633         for non-pie executables.  Don't test info->pie when info->shared
634         already covers that case.
635         (ppc_elf_gc_sweep_hook): Adjust for above change.
636         (add_stub_sym): Don't test info->pie when info->shared tested.
637         (allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise.
638         (write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise.
639         (ppc_elf_relax_section): Adjust find_plt_ent arguments.
640         (ppc_elf_relocate_section): Likewise.
641
642 2009-08-03  Alan Modra  <amodra@bigpond.net.au>
643
644         * elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count
645         for local ifunc symbols in non-pie executables, regardless of
646         reloc type.  Don't specially create ifunc dyn relocs.  Tidy ifunc
647         code so that it's obvious that we only do anything special for
648         local ifunc syms.
649         (ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
650         (allocate_dynrelocs): Correct comment for syms defined in plt.
651         Don't specially allocate ifunc dyn relocs.
652         (ppc_elf_relax_section): Relax branches to ifunc plt entries too.
653         (ppc_elf_relocate_section): Set "relocation" value for ifunc
654         syms in non-pie executables.  No specially allocated dyn relocs
655         for ifunc to write.  Allow for local sym on R_PPC_RELAX32_PLT.
656         (ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in
657         a non-pie executable.
658
659 2009-08-02  H.J. Lu  <hongjiu.lu@intel.com>
660             Jakub Jelinek  <jakub@redhat.com>
661
662         PR ld/6443
663         * elf32-i386.c (elf_i386_tls_transition): Check executable
664         instead of shared for TLS when building PIE.
665         (elf_i386_check_relocs): Likewise.
666         (elf_i386_allocate_dynrelocs): Likewise.
667         (elf_i386_relocate_section): Likewise.
668
669         * elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
670         instead of shared for TLS when building PIE.
671         (elf64_x86_64_check_relocs): Likewise.
672         (elf64_x86_64_allocate_dynrelocs): Likewise.
673         (elf64_x86_64_relocate_section): Likewise.
674
675 2009-07-31  Anthony Green  <green@moxielogic.com>
676
677         * config.bfd (targ_cpu): Add moxie-uclinux support.
678
679 2009-07-31  Hans-Peter Nilsson  <hp@bitrange.com>
680
681         * linker.c (fix_syms): Consider SEC_LOAD when choosing section.
682
683 2009-07-30  Alan Modra  <amodra@bigpond.net.au>
684
685         * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
686         used by indirect function support.  Count dynamic relocs for
687         ifunc syms.
688         (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
689         (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
690         in iplt and their relocs in reliplt.  Don't make ifunc syms
691         dynamic.  Allocate got entry relocs for non-dynamic ifunc in
692         reliplt.  Handle other dynamic relocs for ifunc.
693         (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
694         ifunc in reliplt, likewise relocs for got against local ifunc.
695         Typo fix on reliplt size adjust.
696         (ppc_elf_relocate_section): Don't use plt scheme of allocating
697         relocs 1-1 with entries for iplt, instead just add using
698         reloc_count.  Write got relocs and dyn relocs for ifunc to reliplt.
699         Error on invalid ifunc dyn relocs.
700         (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
701         in iplt/reliplt.
702         * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
703         R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
704         (ppc64_elf_reloc_type_lookup): Handle new relocs.
705         (ppc64_elf_check_relocs): Likewise.  Count dyn relocs for ifunc.
706         (allocate_dynrelocs): As for elf32-ppc.c above.
707         (ppc64_elf_size_dynamic_sections): Likewise.
708         (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
709         and their relocs in reliplt.  Use R_PPC64_JMP_IREL.
710         (ppc_size_one_stub): Similarly.
711         (ppc64_elf_relocate_section): As for elf32-ppc.c above.  Handle new
712         relocs too.
713         (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
714
715 2009-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
716
717         * elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27
718         change.  Add note to head comment.
719
720 2009-07-28  Jan Beulich  <jbeulich@novell.com>
721
722         * archive.c (get_extended_arelt_filename): Remove redundant
723         range check on index.
724
725 2009-07-27  Doug Kwan  <dougkwan@google.com>
726
727         * elf32-arm.c (stub_hash_newfunc): Initialize field output_name.
728
729 2009-07-27  H.J. Lu  <hongjiu.lu@intel.com>
730
731         * archures.c bfd_*_arch): Sorted.
732         (bfd_archures_list): Likewise.
733
734 2009-07-27  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
735
736         * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
737         to R_cr16_NUM32 relocation.
738
739 2009-07-26  Michael Eager  <eager@eagercon.com>
740
741         * archures.c: Add bfd_mach_ppc_405
742         * bfd-in2.h: Same.
743
744 2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>
745
746         * cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
747         * cpu-l1om.c (bfd_l1om_arch): Likewise.
748
749 2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>
750
751         * archures.c (bfd_architecture): Add bfd_arch_l1om.
752         (bfd_l1om_arch): New.
753         (bfd_archures_list): Add &bfd_l1om_arch.
754         * bfd-in2.h: Regenerated.
755
756         * config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
757         bfd_elf64_x86_64_vec is supported.  Add bfd_elf64_l1om_freebsd_vec
758         if bfd_elf64_x86_64_freebsd_vec is supported.
759         (targ_selvecs): Likewise.
760
761         * configure.in: Support bfd_elf64_l1om_vec and
762         bfd_elf64_l1om_freebsd_vec.
763         * configure: Regenerated.
764
765         * cpu-l1om.c: New.
766
767         * elf64-x86-64.c (elf64_l1om_elf_object_p): New.
768         (bfd_elf64_l1om_vec): Likewise.
769         (bfd_elf64_l1om_freebsd_vec): Likewise.
770
771         * Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
772         (ALL_MACHINES_CFILES): Add cpu-l1om.c.
773         * Makefile.in: Regenerated.
774
775         * targets.c (bfd_elf64_l1om_vec): New.
776         (bfd_elf64_l1om_freebsd_vec): Likewise.
777         (_bfd_target_vector): Add bfd_elf64_l1om_vec and
778         bfd_elf64_l1om_freebsd_vec.
779
780 2009-07-24  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
781             Alan Modra  <amodra@bigpond.net.au>
782
783         * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
784         * bfd-in2.h: Regenerate.
785         * libbfd.h: Regenerate.
786         * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
787         (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
788         (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.
789
790 2009-07-23  H.J. Lu  <hongjiu.lu@intel.com>
791
792         PR ld/10434
793         * elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
794         instead of shared for R_X86_64_TPOFF32.
795         (elf64_x86_64_relocate_section): Likewise.
796
797 2009-07-23  Ulrich Drepper  <drepper@redhat.com>
798
799         * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
800         * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
801         with the BSF_GNU_UNIQUE flag bit set.
802         * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
803         for symbols with STB_GNU_UNIQUE binding.
804         * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
805         with the STB_GNU_UNIQUE binding.
806         (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
807         symbols with STB_GNU_UNIQUE binding.  Set STB_GNU_UNIQUE for
808         symbols with the unique_global field set.
809         (elf_link_output_extsym): Set unique_global field for symbols with
810         the STB_GNU_UNIQUE binding.
811         * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
812         (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
813         symbols.
814         (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
815         symbols.
816         * bfd-in2.h: Regenerate.
817
818 2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
819
820          * elflink.c (elf_link_output_extsym): Revert the last change.
821
822 2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
823
824          PR ld/10433
825          * elflink.c (elf_link_output_extsym): Special case ifunc syms
826          when ref_regular, not def_regular.
827
828 2009-07-21  H.J. Lu  <hongjiu.lu@intel.com>
829
830          PR ld/10426
831          * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
832          from a DSO into a normal FUNC symbol.
833          (elf_link_output_extsym): Turn an undefined IFUNC symbol into
834          a normal FUNC symbol.
835
836 2009-07-17  Chao-ying Fu  <fu@mips.com>
837
838         * elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
839         (_bfd_mips_elf_size_dynamic_sections): For CPUs without load
840         interlocking, the last PLT entry needs a nop in the branch delay slot.
841         (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
842         output the last two PLT entries in reverse order.
843
844 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
845
846         * elf32-i386.c (elf_i386_relocate_section): Don't get local
847         STT_GNU_IFUNC symbol for relocatable link.
848         * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
849
850 2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
851
852         * bfdio.c (bfd_iovec): Add comments for bmmap.
853         * bfd-in2.h: Regenerated.
854
855 2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
856
857         * Makefile.am: Run "make dep-am".
858         * Makefile.in: Regenerated.
859
860 2009-07-10  Doug Kwan  <dougkwan@google.com>
861
862         * elf32-arm.c (stub_hash_newfunc): Initialize fields
863         target_addend and orig_insn.
864
865 2009-07-10  Tom Tromey  <tromey@redhat.com>
866
867         * Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
868         (elf-eh-frame.lo): Likewise.
869         (elf32-bfin.lo): Likewise.
870         (elf32-frv.lo): Likewise.
871         (elf32-xc16x.lo): Likewise.
872         * Makefile.in: Rebuild.
873         * dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
874         * elf-eh-frame.c: Likewise.
875         * elf32-bfin.c: Likewise.
876         * elf32-frv.c: Likewise.
877         * elf32-xc16x.c: Likewise.
878
879 2009-07-10  Julian Brown  <julian@codesourcery.com>
880
881         * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
882         symbol a stub entry is derived from, not the entry for the stub
883         itself, in call to elf32_arm_final_link_relocate.
884
885 2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
886
887         * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
888         when reporting  addends.
889
890 2009-07-10  Alan Modra  <amodra@bigpond.net.au>
891
892         * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
893         data even when no stubs.
894         (spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
895
896 2009-07-10  Alan Modra  <amodra@bigpond.net.au>
897
898         * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE.
899         (ppc_elf_get_synthetic_symtab): Report addend.
900         (PLT_IFUNC): Define.
901         (struct ppc_elf_link_hash_table): Add iplt and reliplt.
902         (ppc_elf_create_glink): New function.
903         (ppc_elf_create_dynamic_sections): Use it.
904         (ppc_elf_add_symbol_hook): Set has_ifunc_symbols.
905         (update_local_sym_info): Allocate space for local_plt array.
906         Don't bump local_got_refcounts for PLT_IFUNC.  Return local_plt
907         entry pointer.
908         (is_branch_reloc): New function.
909         (ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols.
910         (ppc_elf_gc_sweep_hook): Likewise.
911         (ppc_elf_adjust_dynamic_symbol): Likewise.
912         (allocate_dynrelocs): Likewise.
913         (ppc_elf_size_dynamic_sections): Likewise.
914         (ppc_elf_relocate_section): Likewise.
915         (branch_reloc_hash_match): Use is_branch_reloc.
916         (ppc_elf_tls_optimize): Adjust for local_plt.
917         (write_glink_stub): New function, extracted from..
918         (ppc_elf_finish_dynamic_symbol): ..here.  Handle STT_GNU_IFUNC.
919         (ppc_elf_finish_dynamic_sections): Only write plt resolver and
920         branch table when dynamic.
921         (elf_backend_post_process_headers): Define.
922         * elf64-ppc.c (elf_backend_post_process_headers): Define.
923         (ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE.
924         (ppc64_elf_get_synthetic_symtab): Report addend.
925         (struct ppc_stub_hash_entry): Add plt_ent.
926         (PLT_IFUNC): Define.
927         (struct ppc_link_hash_table): Add iplt and reliplt.
928         (create_linkage_sections): Make .iplt and .rela.iplt sections.
929         (ppc64_elf_add_symbol_hook): Set has_ifunc_symbols.
930         (update_local_sym_info): Allocate space for local_plt array.
931         Don't bump local_got_ents for PLT_IFUNC.  Return local_plt
932         entry pointer.
933         (update_plt_info): Pass pointer to plt_entry rather than sym hash,
934         and don't change hash flags here.
935         (is_branch_reloc): New function.
936         (ppc64_elf_check_relocs): Handle STT_GNU_IFUNC.
937         (ppc64_elf_gc_sweep_hook): Likewise.
938         (ppc64_elf_adjust_dynamic_symbol): Likewise.
939         (allocate_dynrelocs): Likewise.
940         (ppc64_elf_size_dynamic_sections): Likewise.
941         (ppc_build_one_stub, ppc_size_one_stub): Likewise.
942         (ppc64_elf_size_stubs): Likewise.
943         (ppc64_elf_relocate_section): Likewise.
944         (get_sym_h): Adjust for local_plt.
945         (branch_reloc_hash_match): Use is_branch_reloc.
946         (ppc_type_of_stub): Pass plt_entry pointer and handle ifunc.
947         (ppc64_elf_toc): Ignore SEC_EXCLUDE sections.
948
949 2009-07-10  Alan Modra  <amodra@bigpond.net.au>
950
951         * elf.c (_bfd_elf_get_synthetic_symtab): Report addends.
952
953 2009-07-10  Alan Modra  <amodra@bigpond.net.au>
954
955         * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
956         and ref_regular_nonweak comment.
957         * elflink.c (elf_link_output_extsym): Special case ifunc syms
958         when def_regular, not ref_regular.
959         (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
960         * elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
961         * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
962
963 2009-07-09  Alan Modra  <amodra@bigpond.net.au>
964
965         * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
966         of malloc'd struct call_info.
967         (pasted_function): Likewise, priority too.
968
969 2009-07-07  Alan Modra  <amodra@bigpond.net.au>
970
971         * elf32-spu.c (spu_elf_auto_overlay): Take into account section
972         alignment when packing sections into overlays.
973
974 2009-07-03  Cary Coutant  <ccoutant@google.com>
975
976         * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
977
978 2009-07-03  Dave Korn  <dave.korn.cygwin@gmail.com>
979
980         * coffcode.h (sec_to_styp_flags):  Partially revert (functional
981         changes only) earlier patch:-
982
983   2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
984
985           * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
986           give .debug and .reloc data characteristics.
987           (DOT_RELOC): New define for .reloc section string.
988           (coff_write_object_contents): Use DOT_RELOC instead of string.
989
990 2009-07-02  Tom Tromey  <tromey@redhat.com>
991
992         * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
993         * bfdwin.c (bfd_free_window): Cast to unsigned long.
994
995 2009-07-01  Nick Clifton  <nickc@redhat.com>
996
997         * elf-m10300.c: Remove trailing white space.
998         * reloc.c: Likewise.
999
1000 2009-07-01  Douglas B Rupp  <rupp@gnat.com>
1001
1002         * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
1003         BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
1004         * configure.in: Use them.
1005         * configure: Regenerate.
1006         * config.in: Regenerate.
1007         * vmsutil.c: Include sysdep.h, remove ansidecl.h.
1008         #define _BSD_SOURCE. Add comments.
1009         (vms_file_stats_name): Calculate creation date based on available
1010         runtime data. Return 1 for version instead of 0.
1011
1012 2009-07-01  Nick Clifton  <nickc@redhat.com>
1013
1014         PR 10072
1015         * elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle
1016         to R_ARM_THM_PC8 relocation.
1017
1018 2009-06-29  Nick Clifton  <nickc@redhat.com>
1019
1020         * elf-m10300.c (mn10300_elf_relax_section): Allow for the
1021         different uses of the relocations addend when a symbol is in a
1022         merged section.
1023
1024 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1025
1026         PR ld/10337
1027         * elf.c (bfd_section_from_shdr): Don't change sh_link for
1028         SHT_REL/SHT_RELA sections on executable nor shared library.
1029         Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF
1030         as a normal section.
1031
1032 2009-06-25  Nick Clifton  <nickc@redhat.com>
1033
1034         * elf-m10300.c (mn10300_elf_relax_section): Handle non-section
1035         symbols with SEC_MERGE flag.
1036
1037 2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
1038
1039         * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
1040         give .debug and .reloc data characteristics.
1041         (DOT_RELOC): New define for .reloc section string.
1042         (coff_write_object_contents): Use DOT_RELOC instead of string.
1043
1044 2009-06-25  Tristan Gingold  <gingold@adacore.com>
1045
1046         * mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
1047         (bfd_mach_o_canonicalize_dynamic_symtab)
1048         (bfd_mach_o_get_synthetic_symtab): Defines.
1049         (TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry.
1050         (TARGET_NAME): Use Mach-O specific functions for dynamic.
1051
1052         * mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes
1053         for scattered relocations.
1054         (bfd_mach_o_i386_print_thread): New function.
1055         (bfd_mach_o_print_thread): Define.
1056
1057         * mach-o.c (text_section_names_xlat): Add an entry for __const.
1058         (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs): 
1059         New functions extracted from ...
1060         (bfd_mach_o_canonicalize_reloc): ... This.  Simplified.
1061         (bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
1062         (bfd_mach_o_canonicalize_dynamic_reloc): New function.
1063         (bfd_mach_o_i386_flavour_string): Adjusted after enum renaming.
1064         (bfd_mach_o_ppc_flavour_string): Reindentation.  Add 64 bits cases.
1065         (bfd_mach_o_scan_read_dylinker): Do not create a section anymore.
1066         Set name_str field.
1067         (bfd_mach_o_scan_read_dylib): Ditto.
1068         (bfd_mach_o_scan_read_thread): Set mdata at declaration.  Add comments,
1069         reindent.
1070         (bfd_mach_o_scan_read_dysymtab): Set mdata at declaration.  Correctly
1071         decode isym and flags on little endian targets.  Set dysymtab field.
1072         (bfd_mach_o_scan_start_address): Adjust for enum names.
1073         (bfd_mach_o_lookup_section): Do not look for segments anymore.
1074         (bfd_mach_o_print_section): Display bfd section name.
1075         (bfd_mach_o_print_segment): Display none if no name.
1076         (bfd_mach_o_print_dysymtab): Display next index for local, external
1077         and undefined symbols.
1078         (bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str.
1079         Display dylinker name. Display thread and unixthread commands content.
1080         (bfd_mach_o_print_thread): New macro.
1081
1082         * mach-o.h (bfd_mach_o_mach_header_magic): Align numbers.
1083         (bfd_mach_o_ppc_thread_flavour): Ditto.
1084         (bfd_mach_o_i386_thread_flavour): Ditto.
1085         (BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum.
1086         (BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces
1087         BFD_MACH_O_THREAD_STATE_NONE.
1088         (bfd_mach_o_segment_command): Remove segment field.
1089         (bfd_mach_o_thread_flavour): Field offset is now unsigned long.
1090         (bfd_mach_o_dylinker_command): Remove section field, add name_str.
1091         (bfd_mach_o_prebound_dylib_command): Ditto.
1092         (bfd_mach_o_dylib_command): Ditto.
1093         (bfd_mach_o_prebound_dylib_command): Remove section field.
1094         (mach_o_data_struct): Add dysymtab field.
1095         (bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field.
1096         (bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc)
1097         (bfd_mach_o_build_commands): Remove parameter names and attributes.
1098         (bfd_mach_o_get_dynamic_reloc_upper_bound)
1099         (bfd_mach_o_canonicalize_dynamic_reloc): New prototypes.
1100
1101 2009-06-25  Rafael Avila de Espindola  <espindola@google.com>
1102
1103         * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
1104         field of struct dirent.
1105
1106 2009-06-23  Tristan Gingold  <gingold@adacore.com>
1107
1108         * vms.c (vms_get_synthetic_symtab): Remove duplicate definition
1109         of this macro.  Fix indentation.
1110
1111 2009-06-22  Christophe Lyon  <christophe.lyon@st.com>
1112
1113         * elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
1114         destination for defined dynamic symbols when deciding whether to
1115         insert a stub or not.
1116         (allocate_dynrelocs): Make sure functions are not marked as Thumb
1117         when actually accessed through a PLT, even when generating a
1118         shared lib.
1119
1120 2009-06-22  Tristan Gingold  <gingold@adacore.com>
1121
1122         * mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
1123         the relocs array.
1124
1125 2009-06-22  Alan Modra  <amodra@bigpond.net.au>
1126
1127         * elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch.
1128         * elf32-v850.c (v850_elf_relocate_section): Warning fix.
1129
1130 2009-06-22  Alan Modra  <amodra@bigpond.net.au>
1131
1132         * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning.
1133
1134 2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
1135
1136         * elflink.c (elf_link_add_object_symbols): Avoid warning
1137         from -Wjump-misses-init in gcc 4.5.0.
1138
1139 2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
1140
1141         * elf32-i386.c (elf_i386_check_relocs): Properly check local
1142         symbol on error.
1143         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1144
1145 2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
1146
1147         * elf32-i386.c (elf_i386_tls_transition): Add a parameter,
1148         r_symndx.  Report local symbol name on error.
1149         (elf_i386_check_relocs): Updated.  Report local symbol name on
1150         error.
1151         (elf_i386_gc_sweep_hook): Updated.
1152         (elf_i386_relocate_section): Likewise.
1153
1154         * elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
1155         r_symndx.  Report local symbol name on error.
1156         (elf64_x86_64_check_relocs): Updated.  Report local symbol name
1157         on error.
1158         (elf64_x86_64_gc_sweep_hook): Updated.
1159         (elf64_x86_64_relocate_section): Likewise.
1160
1161 2009-06-19  Tristan Gingold  <gingold@adacore.com>
1162
1163         * mach-o.c (bfd_mach_o_print_private_header): Fix format character.
1164
1165 2009-06-19  Tristan Gingold  <gingold@adacore.com>
1166
1167         * mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype.
1168         (bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access.
1169         (bfd_mach_o_valid): Ditto.
1170         (bfd_mach_o_wide_p): Ditto.
1171         (bfd_mach_o_canonicalize_reloc): Ditto.
1172         (bfd_mach_o_build_commands): Ditto.
1173         (bfd_mach_o_scan_read_thread): Ditto.
1174         (bfd_mach_o_flatten_sections): Ditto.
1175         (bfd_mach_o_scan_start_address): Ditto.
1176         (bfd_mach_o_lookup_section): Ditto.
1177         (bfd_mach_o_core_fetch_environment): Ditto.
1178         (bfd_mach_o_write_contents): Ditto.  Handle reexport_dylib.
1179         (bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data.
1180         (bfd_mach_o_scan_write_symtab): Ditto.
1181         Use macros instead of hard-coded values.
1182         (bfd_mach_o_scan_read_symtab_symbol): Make the function static.
1183         Use bfd_mach_o_get_data instead of direct access.  Use macros
1184         instead of hard-coded values.
1185         (bfd_mach_o_scan_read_symtab_strtab): Make the function static.
1186         Remove sym argument and get section from mdata.
1187         Move code into the else branch.
1188         (bfd_mach_o_scan_read_symtab_symbols): Make the function static.
1189         Remove sym argument and get section from mdata.  Adjust code.
1190         (bfd_mach_o_scan_read_dylib): Move assertion into the created
1191         switch (which replaces consecutive if statements).
1192         (bfd_mach_o_scan_read_dysymtab): Rename seg to cmd.  Load
1193         module table, table of content, indirect symbols and external
1194         referenced symbols.
1195         (bfd_mach_o_scan_read_symtab): Renames seg to symtab.  Set symtab
1196         field.
1197         (bfd_mach_o_scan_read_linkedit): New function.
1198         (bfd_mach_o_scan_read_str): Ditto.
1199         (bfd_mach_o_count_symbols): Simplify the code by using the symtab
1200         field of mdata.
1201         (bfd_mach_o_get_symtab_upper_bound): Remove check as
1202         bfd_mach_o_count_symbols never returns an error.
1203         (bfd_mach_o_canonicalize_symtab): Simplify the code by using the
1204         symtab field (there might be only one symtab).
1205         (bfd_mach_o_scan_read_command): Handle reexported dylib.
1206         Handle sub frameworks, sub umbrella, sub library and sub client.
1207         Read code signature and segment split info commands.
1208         (bfd_mach_o_scan): Reindent.
1209         (bfd_mach_o_xlat_name): New type.
1210         (bfd_mach_o_print_flags): New function.
1211         (bfd_mach_o_get_name): Ditto.
1212         (bfd_mach_o_cpu_name): New variable.
1213         (bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name)
1214         (bfd_mach_o_section_type_name)
1215         (bfd_mach_o_section_attribute_name)
1216         (bfd_mach_o_load_command_name): New variables.
1217         (bfd_mach_o_print_private_header): New function.
1218         (bfd_mach_o_print_section_map): New function extracted from
1219         bfd_mach_o_print_private_bfd_data.
1220         (bfd_mach_o_print_section): Ditto.  Print more infos.
1221         (bfd_mach_o_print_segment): Ditto.
1222         (bfd_mach_o_print_dysymtab): Ditto.
1223         (bfd_mach_o_bfd_print_private_bfd_data): Reworked.  Handle
1224         load weak dylib, reexport dylib and id dylib.
1225         Handle code signature and segment_split info.
1226         Handle sub frameworks, sub umbrella, sub library and sub client.
1227         (bfd_mach_o_section_get_nbr_indirect): New function.
1228
1229         * mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro.  Add comment.
1230         (bfd_mach_o_header_flags): New enum to define header flags.
1231         (bfd_mach_o_section_attribute): New enum to replace ...
1232         (BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
1233         BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
1234         BFD_MACH_O_S_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT,
1235         BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS,
1236         BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ...
1237         these removed macros.
1238         (BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros.
1239         (bfd_mach_o_dylib_module): New type.
1240         (BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New
1241         macros.
1242         (bfd_mach_o_dylib_table_of_content): New type.
1243         (BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro.
1244         (bfd_mach_o_dylib_reference): New type.
1245         (BFD_MACH_O_REFERENCE_SIZE): New macro.
1246         (bfd_mach_o_dysymtab_command): Add fields for loaded and decoded
1247         modules, toc, references and indirect syms.
1248         (BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro.
1249         (bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were
1250         unused).  Add comment.
1251         (bfd_mach_o_dylib_command): Ditto.
1252         (bfd_mach_o_prebound_dylib_command): Ditto.
1253         (bfd_mach_o_linkedit_command): New type.
1254         (bfd_mach_o_str_command): New type.
1255         (bfd_mach_o_load_command): Add linkedit and str fields.
1256         (mach_o_data_struct): Add symtab field.
1257         (bfd_get_mach_o_data): Renamed to ...
1258         (bfd_mach_o_get_data): ... this new macro.
1259         (bfd_mach_o_scan_read_symtab_symbol,
1260         bfd_mach_o_scan_read_symtab_strtab,
1261         bfd_mach_o_scan_read_symtab_symbols): Prototypes removed.
1262
1263         * mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data
1264         instead of direct access.
1265
1266 2009-06-19  Alan Modra  <amodra@bigpond.net.au>
1267
1268         * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
1269         R_PPC_PLTREL24 relocs.
1270         (ppc_elf_relocate_section): Likewise.
1271
1272 2009-06-19  Alan Modra  <amodra@bigpond.net.au>
1273
1274         * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
1275         pointer to sym hash.  Update all uses.
1276         (update_plt_info): Likewise.  Don't check addend here.
1277
1278 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         * elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
1281         bfd_sym_from_r_symndx.
1282         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1283
1284 2009-06-18  Alan Modra  <amodra@bigpond.net.au>
1285
1286         * elf-bfd.h (struct sym_sec_cache): Delete.
1287         (struct sym_cache): New.
1288         (bfd_section_from_r_symndx): Delete prototype.
1289         (bfd_sym_from_r_symndx): Define prototype.
1290         * elf.c (bfd_section_from_r_symndx): Delete, replace with..
1291         (bfd_sym_from_r_symndx): ..new function.
1292         * elf32-arm.c: Update all uses of struct sym_sec_cache and
1293         bfd_section_from_r_symndx to new struct and function.
1294         * elf32-bfin.c: Likewise.
1295         * elf32-hppa.c: Likewise.
1296         * elf32-i386.c: Likewise.
1297         * elf32-m32r.c: Likewise.
1298         * elf32-m68hc1x.c: Likewise.
1299         * elf32-m68hc1x.h: Likewise.
1300         * elf32-m68k.c: Likewise.
1301         * elf32-ppc.c: Likewise.
1302         * elf32-s390.c: Likewise.
1303         * elf32-sh.c: Likewise.
1304         * elf64-ppc.c: Likewise.
1305         * elf64-s390.c: Likewise.
1306         * elf64-x86-64.c: Likewise.
1307         * elfxx-sparc.c: Likewise.
1308         * elfxx-sparc.h: Likewise.
1309
1310 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1311
1312         * elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
1313         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1314
1315 2009-06-18  Nick Clifton  <nickc@redhat.com>
1316
1317         * elflink.c (elf_link_sort_relocs): Return early if there are no
1318         relocs to sort.
1319
1320 2009-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
1321
1322         Merge cegcc and mingw32ce target name changes from
1323         CeGCC project:
1324
1325         2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>
1326
1327         * config.bfd: Add arm*-*-cegcc* target.
1328
1329         2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>
1330
1331         * config.bfd: Add arm-*-mingw32ce* target.
1332
1333 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1334
1335         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
1336         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
1337         * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
1338         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1339
1340 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1341
1342         * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
1343         * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
1344         * elf32-i386.c (elf_i386_check_relocs): Use it.
1345         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1346
1347 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1348
1349         * elf-bfd.h (elf_dyn_relocs): New.
1350
1351         * elf32-i386.c (elf_i386_dyn_relocs): Removed.
1352         (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
1353         elf_dyn_relocs.
1354         (elf_i386_copy_indirect_symbol): Likewise.
1355         (elf_i386_check_relocs): Likewise.
1356         (elf_i386_gc_sweep_hook): Likewise.
1357         (elf_i386_allocate_dynrelocs): Likewise.
1358         (elf_i386_readonly_dynrelocs): Likewise.
1359         (elf_i386_size_dynamic_sections): Likewise.
1360
1361         * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
1362         (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
1363         with elf_dyn_relocs.
1364         (elf64_x86_64_copy_indirect_symbol): Updated.
1365         (elf64_x86_64_check_relocs): Likewise.
1366         (elf64_x86_64_gc_sweep_hook): Likewise.
1367         (elf64_x86_64_adjust_dynamic_symbol): Likewise.
1368         (elf64_x86_64_allocate_dynrelocs): Likewise.
1369         (elf64_x86_64_readonly_dynrelocs): Likewise.
1370         (elf64_x86_64_size_dynamic_sections): Likewise.
1371
1372 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1373
1374         * elf32-arm.c (create_got_section): Get existing .rela.got
1375         section.
1376         * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
1377         * elf32-lm32.c (create_got_section): Likewise.
1378         * elf32-m32r.c (create_got_section): Likewise.
1379         * elf32-ppc.c (ppc_elf_create_got): Likewise.
1380         * elf32-s390.c (create_got_section): Likewise.
1381         * elf32-sh.c (create_got_section): Likewise.
1382         * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
1383         * elf64-s390.c (create_got_section): Likewise.
1384         * elfxx-sparc.c (create_got_section): Likewise.
1385
1386         * elflink.c (_bfd_elf_create_got_section): Properly initialize
1387         the GOT size.
1388
1389 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1390
1391         * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.
1392
1393         * elf32-i386.c (elf_i386_local_hash): Removed.
1394         (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
1395         (elf_i386_get_local_sym_hash): Likewise.
1396
1397         * elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
1398         (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
1399         (elf64_x86_64_get_local_sym_hash): Likewise.
1400         * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
1401         (get_local_sym_hash): Likewise.
1402
1403 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1404
1405         * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
1406         rel_got_sec and plt_sec.
1407         (elfNN_ia64_relax_section): Updated.
1408         (elfNN_ia64_create_dynamic_sections): Likewise.
1409         (get_got): Likewise.
1410         (allocate_dynrel_entries): Likewise.
1411         (elfNN_ia64_size_dynamic_sections): Likewise.
1412         (set_got_entry): Likewise.
1413         (elfNN_ia64_choose_gp): Likewise.
1414         (elfNN_ia64_relocate_section): Likewise.
1415         (elfNN_ia64_finish_dynamic_symbol): Likewise.
1416         (elfNN_ia64_finish_dynamic_sections): Likewise.
1417
1418 2009-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
1419
1420         * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
1421         also for calls.
1422
1423 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1424
1425         * configure.in (elf): Add elf-ifunc.lo.
1426
1427         * configure: Regenerated.
1428         * Makefile.in: Likewise.
1429
1430         * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
1431         srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.
1432
1433         * elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
1434         sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
1435         irelifunc.
1436         (elf_i386_link_hash_table_create): Likewise.
1437         (elf_i386_create_dynamic_sections): Likewise.
1438         (elf_i386_check_relocs): Likewise.
1439         (elf_i386_allocate_dynrelocs): Likewise.
1440         (elf_i386_size_dynamic_sections): Likewise.
1441         (elf_i386_relocate_section): Likewise.
1442         (elf_i386_finish_dynamic_symbol): Likewise.
1443         (elf_i386_finish_dynamic_sections): Likewise.
1444         (elf_i386_create_got_section): Removed.
1445
1446         * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
1447         sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
1448         irelifunc.
1449         (elf64_x86_64_compute_jump_table_size): Updated.
1450         (elf64_x86_64_link_hash_table_create): Likewise.
1451         (elf64_x86_64_create_dynamic_sections): Likewise.
1452         (elf64_x86_64_check_relocs): Likewise.
1453         (elf64_x86_64_allocate_dynrelocs): Likewise.
1454         (elf64_x86_64_size_dynamic_sections): Likewise.
1455         (elf64_x86_64_relocate_section): Likewise.
1456         (elf64_x86_64_finish_dynamic_symbol): Likewise.
1457         (elf64_x86_64_finish_dynamic_sections): Likewise.
1458         (elf64_x86_64_create_got_section): Removed.
1459
1460         * elflink.c (_bfd_elf_create_got_section): Use log_file_align
1461         for pointer alignment.  Set up section pointers.
1462         (_bfd_elf_create_dynamic_sections): Likewise.
1463         (_bfd_elf_create_ifunc_sections): Moved to ...
1464         * elf-ifunc.c: Here.  New.
1465
1466         * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
1467         (BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
1468         Run "make dep-am".
1469
1470 2009-06-16  Doug Kwan  <dougkwan@google.com>
1471
1472         * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
1473         to bfd_signed_vma.  Cast constant operands which are used in
1474         offset related expressions to bfd_signed_vma type as appropriate.
1475
1476 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1477
1478         * elf32-vax.c (elf_vax_plt_sym_val): New function.
1479         (elf_backend_plt_sym_val): Define.
1480
1481 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1482
1483         * elf32-vax.c (elf_vax_reloc_type_class): New function.
1484         (elf_backend_reloc_type_class): Define.
1485
1486 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1487
1488         * elf32-vax.c (elf_vax_relocate_section): For symbol references
1489         from an executable to a shared library treat R_VAX_PC32
1490         relocations as R_VAX_PLT32 ones.
1491
1492 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1493
1494         * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
1495         symbols in GOT space calculation.
1496         (elf_vax_relocate_section): Adjust accordingly.
1497
1498 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1499
1500         * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
1501         include <R11:R2>.
1502
1503 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
1504
1505         * elf32-vax.c (elf_vax_check_relocs): Handle the visibility
1506         attribute.
1507         (elf_vax_relocate_section): Likewise.
1508
1509 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
1510
1511         * elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
1512         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1513
1514 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
1515
1516         * elf32-i386.c (elf_i386_check_relocs): Reformat.
1517         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1518
1519 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
1520
1521         * Makefile.am: Run "make dep-am".
1522         * Makefile.in: Regenerated.
1523
1524 2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
1525
1526         * elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo.
1527         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1528
1529 2009-06-15  Nick Clifton  <nickc@redhat.com>
1530
1531         * po/ru.po: New Russian translation.
1532         * configure.in (ALL_LINGUAS): Add ru.
1533         * configure: Regenerate.
1534
1535 2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1536
1537         * elf32-i386.c: Remove duplicated comments.
1538
1539 2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1540
1541         PR ld/10270
1542         * elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow
1543         dynamic IFUNC pointer in non-shared object.  Use .got.plt
1544         for IFUNC definition in PIE.
1545         (elf_i386_allocate_dynrelocs): Resolve IFUNC definition in
1546         PIE locally.
1547
1548         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow
1549         dynamic IFUNC pointer in non-shared object.  Use .got.plt
1550         for IFUNC definition in PIE.
1551         (elf64_x86_64_relocate_section): Resolve IFUNC definition in
1552         PIE locally.
1553
1554 2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
1555
1556         * elf32-i386.c (elf_i386_check_relocs): Properly report
1557         local symbol for unhandled relocation against STT_GNU_IFUNC
1558         symbol.
1559         (elf_i386_relocate_section): Likewise.
1560         * elf64-x86-64.c (elf64_x86_64_check_relocs):  Likewise.
1561         (elf64_x86_64_relocate_section): Likewise.
1562
1563 2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
1564
1565         PR ld/10269
1566         * elf32-i386.c: Include "objalloc.h" and "hashtab.h".
1567         (elf_i386_link_hash_table): Add loc_hash_table and
1568         loc_hash_memory.
1569         (elf_i386_local_hash): New.
1570         (elf_i386_local_htab_hash): Likewise.
1571         (elf_i386_local_htab_eq): Likewise.
1572         (elf_i386_get_local_sym_hash): Likewise.
1573         (elf_i386_link_hash_table_free): Likewise.
1574         (elf_i386_allocate_local_dynrelocs): Likewise.
1575         (elf_i386_finish_local_dynamic_symbol): Likewise.
1576         (bfd_elf64_bfd_link_hash_table_free): Likewise.
1577         (elf_i386_link_hash_table_create): Create loc_hash_table and
1578         loc_hash_memory.
1579         (elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols.
1580         (elf_i386_size_dynamic_sections): Likewise.
1581         (elf_i386_relocate_section): Likewise.
1582         (elf_i386_finish_dynamic_sections): Likewise.
1583         (elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym
1584         isn't NULL.
1585
1586         * elf64-x86-64.c: Include "objalloc.h" and "hashtab.h".
1587         (elf64_x86_64_link_hash_table): Add loc_hash_table and
1588         loc_hash_memory.
1589         (elf64_x86_64_local_hash): New.
1590         (elf64_x86_64_local_htab_hash): Likewise.
1591         (elf64_x86_64_local_htab_eq): Likewise.
1592         (elf64_x86_64_get_local_sym_hash): Likewise.
1593         (elf64_x86_64_link_hash_table_free): Likewise.
1594         (elf64_x86_64_allocate_local_dynrelocs): Likewise.
1595         (elf64_x86_64_finish_local_dynamic_symbol): Likewise.
1596         (bfd_elf64_bfd_link_hash_table_free): Likewise.
1597         (elf64_x86_64_link_hash_table_create): Create loc_hash_table
1598         and loc_hash_memory.
1599         (elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC
1600         symbols.
1601         (elf64_x86_64_size_dynamic_sections): Likewise.
1602         (elf64_x86_64_relocate_section): Likewise.
1603         (elf64_x86_64_finish_dynamic_sections): Likewise.
1604         (elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if
1605         sym isn't NULL.
1606
1607 2009-06-10  Philip Blundell  <philb@gnu.org>
1608
1609         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if
1610         elf_sec->this_hdr == NULL.
1611
1612 2009-06-12  Tristan Gingold  <gingold@adacore.com>
1613
1614         * reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR.
1615         * bfd-in2.h: Regenerated.
1616         * libbfd.h: Regenerated.
1617
1618         * mach-o.c (FILE_ALIGN): New macro.
1619         (bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol.
1620         (bfd_mach_o_print_symbol): Ditto.
1621         (bfd_mach_o_scan_write_thread): Adjust type of variable offset.
1622         (bfd_mach_o_get_reloc_upper_bound): New function.
1623         (bfd_mach_o_canonicalize_reloc): Ditto.
1624         (bfd_mach_o_scan_write_relocs): Ditto.
1625         (bfd_mach_o_scan_write_section_32): Remove offset argument.
1626         (bfd_mach_o_scan_write_section_64): Ditto.
1627         (bfd_mach_o_scan_write_segment_32): Write relocs.  Fix size of data
1628         written for load command.  Do not compute section file offset.
1629         (bfd_mach_o_scan_write_segment_64): Ditto.
1630         (bfd_mach_o_scan_write_symtab): Compute file offset first.
1631         Adjust for bfd_mach_o_asymbol.  Move code to convert from BFD to
1632         Mach-O to ...
1633         (bfd_mach_o_mangle_symbols): ... this new function.
1634         (bfd_mach_o_write_contents): Be sure to have load commands built.
1635         Call bfd_mach_o_mangle_symbols.
1636         (bfd_mach_o_build_commands): Adjust for filelen field.
1637         Use FILE_ALIGN macro.  Clear section file offset if section is empty.
1638         Do not set symtab file offset anymore here.
1639         (bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol.
1640         (bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc.
1641         Set reloc_count and rel_filepos section fields.
1642         (bfd_mach_o_scan_read_section_32): Type of argument offset is now
1643         unsigned int.
1644         (bfd_mach_o_scan_read_section_64): Ditto.
1645         (bfd_mach_o_scan_read_section): Ditto.
1646         (bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now
1647         bfd_mach_o_asymbol.  Use unsigned int for file offset type.
1648         (bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol.
1649         Handle weak-ref symbols.
1650         (bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol.
1651         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1652         (bfd_mach_o_scan): Remove assignment to removed field.
1653         (bfd_mach_o_mkobject_init): Ditto.
1654         (bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter.
1655         (bfd_mach_o_bfd_reloc_type_lookup): New macro.
1656         (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
1657         (bfd_mach_o_swap_reloc_in): Ditto.
1658         (bfd_mach_o_swap_reloc_out): Ditto.
1659
1660         * mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY)
1661         (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY)
1662         (BFD_MACH_O_REFERENCE_FLAG_DEFINED)
1663         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED)
1664         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY)
1665         (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY)
1666         (BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED)
1667         (BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF)
1668         (BFD_MACH_O_N_WEAK_DEF): New macros.
1669         Add comments.
1670         (bfd_mach_o_section_type): Add new enumeration values.
1671         (BFD_MACH_O_S_SELF_MODIFYING_CODE)
1672         (BFD_MACH_O_S_ATTR_LIVE_SUPPORT)
1673         (BFD_MACH_O_S_ATTR_NO_DEAD_STRIP)
1674         (BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New
1675         macros.
1676         (BFD_MACH_O_GENERIC_RELOC_VANILLA)
1677         (BFD_MACH_O_GENERIC_RELOC_PAIR)
1678         (BFD_MACH_O_GENERIC_RELOC_SECTDIFF)
1679         (BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR)
1680         (BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto.
1681         (BFD_MACH_O_RELENT_SIZE): Ditto.
1682         (BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH)
1683         (BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE)
1684         (BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH)
1685         (BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto.
1686         (BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL)
1687         (BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE)
1688         (BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH)
1689         (BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto.
1690         (bfd_mach_o_reloc_info): New struct.
1691         (bfd_mach_o_asymbol): New struct.
1692         (bfd_mach_o_symtab_command): The symbols field is now of type
1693         bfd_mach_o_asymbol.
1694         (bfd_mach_o_load_command): The offset and len fields are now of type
1695         unsigned int.
1696         (mach_o_data_struct): Remove symbols, nsymbols and ibfd fields.
1697         Add a filelen field.  Add comments.
1698         (bfd_mach_o_backend_data): New struct.
1699         (bfd_mach_o_get_backend_data): New macro.
1700         (bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type
1701         bfd_mach_o_asymbol.
1702         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1703         (bfd_mach_o_get_reloc_upper_bound): New prototype.
1704         (bfd_mach_o_canonicalize_reloc): Ditto.
1705         
1706         * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
1707         duplicated macro.  Now defined to _bfd_generic_is_local_label.
1708         (TARGET_NAME_BACKEND): New macro...
1709         (TARGET_NAME_BACKEND): ... used to name a new variable.
1710         (TARGET_NAME): Define relocs table using bfd_mach_o, reference
1711         Mach-O backend data.
1712
1713         * mach-o-i386.c (i386_howto_table): New variable.
1714         (bfd_mach_o_i386_swap_reloc_in): New function.
1715         (bfd_mach_o_i386_swap_reloc_out): Ditto.
1716         (bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto.
1717         (bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto.
1718         (bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros.
1719         (bfd_mach_o_bfd_reloc_type_lookup)
1720         (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
1721
1722 2009-06-11  Eric Paris  <eparis@redhat.com>
1723             Nick Clifton  <nickc@redhat.com>
1724
1725         * opncls.c (_maybe_make_executable): New function.  Gives execute
1726         permission to an executable bfd that was opened for writing
1727         provided that it is a regular file.  Replaces common code found in...
1728         (bfd_close): here and ...
1729         (bfd_close_all_done): here.
1730
1731 2009-06-11  Anthony Green  <green@moxielogic.com>
1732
1733         * reloc.c: Add BFD_RELOC_MOXIE_10_PCREL.
1734         * bfd-in2.h: Rebuilt.
1735         * libbfd.h: Rebuilt.
1736         * elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10
1737         relocation support.
1738         (moxie_reloc_map): Ditto.
1739         Clean up copyright notice.
1740
1741 2009-06-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
1742         
1743         * bfd-in2.h: bfd_mmap prototype.
1744         * bfdio.c (bfd_mmap): New function.
1745         * libbfd.h (bfd_iovec): Add bmmap.
1746         * cache.c (cache_bmmap): New function.
1747         (cache_iovec): Initialize bmmap member.
1748         * opencls.c (opncls_bmmap): New function.
1749         (opncls_iovec): Initialize bmmap member.        
1750         
1751 2009-06-09  Tristan Gingold  <gingold@adacore.com>
1752
1753         * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
1754         and stabstr_segment fields.
1755         (mach_o_be_vec, mach_o_le_vec): Removed
1756         (bfd_mach_o_version): New prototype.
1757
1758         * mach-o.c (bfd_mach_o_version): Make this function public.
1759         (mach_o_wide_p): New function.
1760         (bfd_mach_o_wide_p): Ditto.
1761         (bfd_mach_o_convert_section_name_to_bfd): Add prefix only for
1762         weird names.
1763         (bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment.
1764         Search in the list only if the name starts with a dot.
1765         (bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded
1766         test.  Check bfd_seek status.
1767         (bfd_mach_o_scan_write_thread): Check bfd_seek status.
1768         (bfd_mach_o_scan_write_section_32): Ditto.
1769         (bfd_mach_o_scan_write_section_64): Ditto.
1770         (bfd_mach_o_scan_write_section): Removed.
1771         (bfd_mach_o_scan_write_segment): Split into ...
1772         (bfd_mach_o_scan_write_segment_32): ... this and ...
1773         (bfd_mach_o_scan_write_segment_64): ... this.  Check bfd_seek status.
1774         (bfd_mach_o_scan_write_symtab_symbols): Moved into ...
1775         (bfd_mach_o_scan_write_symtab): ... this.  Write symtab from BFD
1776         symbol table.  Now returns a boolean.
1777         (bfd_mach_o_write_contents): Set filetype.  Check bfd_seek status.
1778         Adjust for status type.
1779         (bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded
1780         test.  Write symbol table.  Numbers the sections.
1781         (bfd_mach_o_read_header): Check bfd_seek status.
1782         Use mach_o_wide_p instead of hard-coded test.
1783         (bfd_mach_o_scan_read_section_32): Check bfd_seek status.
1784         (bfd_mach_o_scan_read_section_64): Ditto.
1785         (bfd_mach_o_scan_read_symtab_symbol): Ditto.  Check bfd_seek status.
1786         Use BFD_MACH_O_N_TYPE instead of hard-coded value.  Correctly
1787         handled common symbols.
1788         (bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status.
1789         (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1790         (bfd_mach_o_scan_read_dylinker): Ditto.
1791         (bfd_mach_o_scan_read_dylib): Ditto.
1792         (bfd_mach_o_scan_read_thread): Ditto.
1793         (bfd_mach_o_scan_read_symtab): Ditto.
1794         Do not create a section for the stabs.
1795         (bfd_mach_o_scan_read_uuid): Check bfd_seek status.
1796         (bfd_mach_o_scan_read_segment): Ditto.
1797         (bfd_mach_o_scan_read_command): Ditto.
1798         (bfd_mach_o_scan_start_address): Ditto.
1799         (bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test.
1800         (bfd_mach_o_archive_p): Check bfd_seek status.
1801         (bfd_mach_o_core_fetch_environment): Ditto.
1802
1803         * mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype.
1804
1805 2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
1806
1807         * elf32-i386.c (elf_i386_link_hash_table): Add irelifunc.
1808         (elf_i386_link_hash_table_create): Initialize irelifunc.
1809         (elf_i386_check_relocs): Updated.  Set up irelifunc for
1810         shared objects.
1811         (elf_i386_allocate_dynrelocs): Use irelifunc for dynamic
1812         relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1813         shared objects.
1814         (elf_i386_relocate_section): Likewise.
1815
1816         * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc.
1817         (elf64_x86_64_link_hash_table_create): Initialize irelifunc.
1818         (elf64_x86_64_check_relocs): Updated.  Set up irelifunc for
1819         shared objects.
1820         (elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic
1821         relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1822         shared objects.
1823         (elf64_x86_64_relocate_section): Likewise.
1824
1825         * elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to
1826         ...
1827         (_bfd_elf_create_ifunc_sections): This.
1828
1829         * elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to
1830         ...
1831         (_bfd_elf_create_ifunc_sections): This.  Create .rel[a].ifunc
1832         for shared objects.
1833
1834 2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
1835
1836         * elf32-i386.c (elf_i386_check_relocs): Make room for dynamic
1837         relocation for R_386_32 against STT_GNU_IFUNC symbol when
1838         building shared object.  Check info->executable instead of
1839         !info->shared when setting non_got_ref.
1840         (elf_i386_allocate_dynrelocs): Allocate dynamic relocation
1841         for non-GOT reference of STT_GNU_IFUNC symbol in shared
1842         object. Allocate GOT relocation agsinst STT_GNU_IFUNC
1843         symbol if needed.
1844         (elf_i386_relocate_section): Output dynamic relocation for
1845         R_386_32 against STT_GNU_IFUNC symbol to get the real
1846         function address when building shared object.
1847         (elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT
1848         relocation for STT_GNU_IFUNC symbol in shared object.
1849
1850         * elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for
1851         dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC
1852         symbol when building shared object.  Check info->executable
1853         instead of !info->shared when setting non_got_ref.
1854         (elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation
1855         for non-GOT reference of STT_GNU_IFUNC symbol in shared
1856         library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol
1857         if needed.
1858         (elf64_x86_64_relocate_section): Output dynamic relocation
1859         for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real
1860         function address when building shared object.
1861         (elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT
1862         relocation for STT_GNU_IFUNC symbol in shared object.
1863
1864 2009-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
1865
1866         * Makefile.am: Run "make dep-am".
1867         (BFD32_BACKENDS): Add mach-o-i386.lo.
1868         (BFD32_BACKENDS_CFILES): Add mach-o-i386.c.
1869         * Makefile.in: Regenerate.
1870
1871 2009-06-06  Alan Modra  <amodra@bigpond.net.au>
1872
1873         * elf32-spu.c (spu_elf_relocate_section): Match overlay number
1874         when looking for soft-icache stubs.
1875
1876 2009-06-05  Tristan Gingold  <gingold@adacore.com>
1877
1878         * mach-o.h: Update copyright year.
1879         (bfd_mach_o_mach_header_magic): New enum.
1880         (bfd_mach_o_cpu_subtype): Now an enum.
1881         (BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros.
1882         (BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto.
1883         (BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto.
1884         (bfd_mach_o_load_command): Field type_required is now a boolean.
1885         Reindent prototypes.
1886         (bfd_mach_o_object_p, bfd_mach_o_core_p): Remove.
1887         (bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype.
1888         (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1889         (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1890         (bfd_mach_o_get_symtab_upper_bound): Ditto.
1891         (bfd_mach_o_canonicalize_symtab): Ditto.
1892         (bfd_mach_o_get_symbol_info): Ditto.
1893         (bfd_mach_o_print_symbol): Ditto.
1894         (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
1895         (bfd_mach_o_make_empty_symbol): Ditto.
1896         (bfd_mach_o_write_contents): Ditto.
1897
1898         * mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p,
1899         bfd_mach_o_mkobject): Defines.
1900         (bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1.
1901         Do not check with target vector but with flavour.
1902         (struct mach_o_section_name_xlat): New declaration.
1903         (dwarf_section_names_xlat): Ditto.
1904         (text_section_names_xlat): Ditto.
1905         (data_section_names_xlat): Ditto.
1906         (struct mach_o_segment_name_xlat): Ditto.
1907         (segsec_names_xlat): Ditto.
1908         (bfd_mach_o_convert_section_name_to_bfd): New function.
1909         (bfd_mach_o_convert_section_name_to_mach_o): Ditto.
1910         (bfd_mach_o_bfd_copy_private_symbol_data): Make it public.
1911         (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1912         (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1913         Accept any input and output flavour.  Do not share private data
1914         anymore.
1915         (bfd_mach_o_count_symbols): Add a comment.
1916         (bfd_mach_o_get_symtab_upper_bound): Make it public.
1917         (bfd_mach_o_canonicalize_symtab): Ditto.
1918         (bfd_mach_o_get_symbol_info): Ditto.
1919         (bfd_mach_o_print_symbol): Ditto.
1920         (bfd_mach_o_write_header): Now returns a boolean instead of an int.
1921         Use constants instead of hard-coded values.
1922         (bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded
1923         values.
1924         (bfd_mach_o_scan_write_section_64): Ditto.
1925         (bfd_mach_o_scan_write_segment): Ditto.
1926         Do not copy sections anymore.
1927         (bfd_mach_o_write_contents): Make it public.
1928         Remove dead code.  Rewrite typeflag assignment.
1929         (bfd_mach_o_build_commands): New function.
1930         (bfd_mach_o_set_section_contents): Ditto.
1931         (bfd_mach_o_make_empty_symbol): Make it public.
1932         (bfd_mach_o_read_header): Make it static.
1933         Convert to bfd_boolean.
1934         Use constants instead of hard-coded values.
1935         (bfd_mach_o_make_bfd_section): Call
1936         bfd_mach_o_convert_section_name_to_bfd to create name.
1937         (bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded
1938         values.
1939         (bfd_mach_o_scan_read_section_64): Ditto.
1940         (bfd_mach_o_scan_read_segment): Do not create a bfd section for
1941         a segment anymore.  Use constants instead of hard-coded values.
1942         (bfd_mach_o_scan_read_command): Fix style.
1943         (bfd_mach_o_scan): Use constants instead of hard-coded values.
1944         Get rid of BFD_IO_FUNCS.
1945         (bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject.
1946         (bfd_mach_o_header_p): Created from bfd_mach_o_object_p.
1947         (bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p.
1948         (bfd_mach_o_object_p): Removed.
1949         (bfd_mach_o_gen_core_p): New function, replaces ...
1950         (bfd_mach_o_core_p): ... deleted.
1951         (bfd_mach_o_bfd_print_private_bfd_data): Make it public.
1952
1953         * mach-o-i386.c: New file.
1954         * config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin.
1955         * configure.in (TDEFINES): Add mach_o_i386_vec.
1956         * configure: Regenerated.
1957         * targets.c: Add mach_o_i386_vec.
1958
1959         * mach-o.c: Update copyright years.
1960         (BFD_IO_FUNCS): Remove (was not used).
1961         (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap
1962         bfd_mach_o_slurp_extended_name_table,
1963         bfd_mach_o_construct_extended_name_table,
1964         bfd_mach_o_truncate_arname, bfd_mach_o_write_armap,
1965         bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt,
1966         bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup,
1967         bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook,
1968         bfd_mach_o_get_section_contents_in_window,
1969         bfd_mach_o_bfd_is_local_label_name,
1970         bfd_mach_o_bfd_is_target_special_symbol,
1971         bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno,
1972         bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info,
1973         bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols,
1974         bfd_mach_o_minisymbol_to_symbol,
1975         bfd_mach_o_bfd_get_relocated_section_contents,
1976         bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create,
1977         bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols,
1978         bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link,
1979         bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach,
1980         bfd_mach_o_bfd_merge_private_bfd_data,
1981         bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents,
1982         bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections,
1983         bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group,
1984         bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol,
1985         bfd_mach_o_bfd_copy_private_header_data,
1986         bfd_mach_o_core_file_matches_executable_p): Move these defines ...
1987         * mach-o-target.c: ... here.
1988         Update copyright years.
1989
1990 2009-06-04  Alan Modra  <amodra@bigpond.net.au>
1991
1992         * dep-in.sed: Don't use \n in replacement part of s command.
1993         * Makefile.am (DEP1): LC_ALL for uniq.
1994         Run "make dep-am".
1995         * Makefile.in: Regenerate.
1996
1997 2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1998
1999         * elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of
2000         h->plt.refcount > 0 on STT_GNU_IFUNC symbol.
2001         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
2002
2003 2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2004
2005         * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate
2006         GOT entry for STT_GNU_IFUNC symbol with pointer equality.
2007         (elf_i386_relocate_section): Adjust R_386_GOT32 relocation
2008         against STT_GNU_IFUNC symbols for static executables.
2009         (elf_i386_finish_dynamic_symbol): Load GOT entry with
2010         PLT entry for STT_GNU_IFUNC symbol with pointer equality.
2011
2012         * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate
2013         GOT entry for STT_GNU_IFUNC symbol with pointer equality.
2014         (elf64_x86_64_finish_dynamic_symbol): Load GOT entry with
2015         PLT entry for STT_GNU_IFUNC symbol with pointer equality.
2016
2017 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2018
2019         * coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined
2020         symbols to be left unimported when linking statically.
2021         * xcofflink.c (xcoff_link_add_symbols): Ignore global linkage
2022         code when linking statically.
2023
2024 2009-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2025
2026         * elf32-i386.c (elf_i386_check_relocs): Increment
2027         got.refcount for R_386_GOT32/R_386_GOTOFF relocations
2028         against STT_GNU_IFUNC symbol.
2029         (elf_i386_allocate_dynrelocs): Set got.refcount to 0 if
2030         local STT_GNU_IFUNC definition is used.
2031         (elf_i386_relocate_section): Handle got.offset != -1 for
2032         R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC
2033         symbol.
2034
2035         * elf64-x86-64.c (elf64_x86_64_check_relocs): Increment
2036         got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64
2037         relocations against STT_GNU_IFUNC symbol.
2038         (elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if
2039         local STT_GNU_IFUNC definition is used.
2040         (elf64_x86_64_relocate_section): Handle got.offset != -1
2041         for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against
2042         STT_GNU_IFUNC symbol.
2043
2044 2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
2045
2046         PR ld/10205
2047         * elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
2048         (elf_i386_reloc_type_lookup): Likewise.
2049         (R_386_tls): Removed.
2050         (R_386_irelative): New.
2051         (R_386_vt_offset): Updated.
2052         (elf_i386_rtype_to_howto): Likewise.
2053         (elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
2054         (elf_i386_link_hash_table_create): Initialize igotplt,
2055         iplt and irelplt.
2056         (elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
2057         (elf_i386_adjust_dynamic_symbol): Likewise.
2058         (elf_i386_allocate_dynrelocs): Likewise.
2059         (elf_i386_relocate_section): Likewise.
2060         (elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
2061         sections.
2062         (elf_i386_finish_dynamic_symbol): When building a static
2063         executable, use .iplt, .igot.plt and .rel.iplt sections for
2064         STT_GNU_IFUNC symbols.  Generate R_386_IRELATIVE relocation for
2065         locally defined STT_GNU_IFUNC symbol.
2066
2067         * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
2068         (x86_64_reloc_map): Likewise.
2069         (R_X86_64_standard): Updated.
2070         (elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
2071         (elf64_x86_64_link_hash_table_create): Initialize igotplt,
2072         iplt and irelplt.
2073         (elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
2074         (elf64_x86_64_adjust_dynamic_symbol): Likewise.
2075         (elf64_x86_64_allocate_dynrelocs): Likewise.
2076         (elf64_x86_64_relocate_section): Likewise.
2077         (elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
2078         sections.
2079         (elf64_x86_64_finish_dynamic_symbol): When building a static
2080         executable, use .iplt, .igot.plt and .rela.iplt sections for
2081         STT_GNU_IFUNC symbols.  Generate R_X86_64_IRELATIVE relocation
2082         for locally defined STT_GNU_IFUNC symbol.
2083
2084         * reloc.c (BFD_RELOC_386_IRELATIVE): New.
2085         (BFD_RELOC_X86_64_IRELATIVE): Likewise.
2086
2087         * bfd-in2.h: Regenerated.
2088         * libbfd.h: Likewise.
2089
2090 2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
2091
2092         * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
2093         (_bfd_elf_make_ifunc_reloc_section): Removed.
2094         (_bfd_elf_is_ifunc_symbol): Likewise.
2095         (_bfd_elf_create_static_ifunc_sections): New.
2096
2097         * elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
2098         symbol check to ...
2099         (elf_link_add_object_symbols): Here.
2100         (_bfd_elf_link_hash_hide_symbol): Don't clean plt on
2101         STT_GNU_IFUNC symbol.
2102         (elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
2103         if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
2104         (IFUNC_INFIX): Removed.
2105         (get_ifunc_reloc_section_name): Likewise.
2106         (_bfd_elf_make_ifunc_reloc_section): Likewise.
2107         (_bfd_elf_is_ifunc_symbol): Likewise.
2108         (_bfd_elf_create_static_ifunc_sections): New.
2109
2110 2009-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2111
2112         * elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix.
2113         (create_got_section): Likewise.
2114         (allocate_dynrelocs): Likewise.
2115         (readonly_dynrelocs): Likewise.
2116         (set_tls_module_base): Likewise.
2117         (dtpoff_base): Likewise.
2118         (tpoff): Likewise.
2119         (elf_i386_link_hash_table_create): Updated.
2120         (elf_i386_create_dynamic_sections): Likewise.
2121         (elf_i386_check_relocs): Likewise.
2122         (elf_i386_size_dynamic_sections): Likewise.
2123         (elf_i386_relocate_section): Likewise.
2124
2125         * elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix.
2126         (create_got_section): Likewise.
2127         (allocate_dynrelocs): Likewise.
2128         (readonly_dynrelocs): Likewise.
2129         (set_tls_module_base): Likewise.
2130         (dtpoff_base): Likewise.
2131         (tpoff): Likewise.
2132         (elf64_x86_64_link_hash_table_create): Updated.
2133         (elf64_x86_64_create_dynamic_sections): Likewise.
2134         (elf64_x86_64_check_relocs): Likewise.
2135         (elf64_x86_64_size_dynamic_sections): Likewise.
2136         (elf64_x86_64_relocate_section): Likewise.
2137
2138 2009-05-28  Nick Clifton  <nickc@redhat.com>
2139
2140         * targets.c (_bfd_target_vector): Only include plugin target in
2141         all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.
2142
2143 2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
2144
2145         * elf32-spu.c (struct call_info): New member broken_cycle.
2146         (remove_cycle): Instead of physically removing call_info structures
2147         to break call graph cycles, mark them using the broken_cycle flag.
2148         (mark_overlay_section): Respect broken_cycle flag.
2149         (unmark_overlay_section): Likewise.
2150         (collect_lib_sections): Likewise.
2151         (collect_overlays): Likewise.
2152         (sum_stack): Likewise.
2153
2154 2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
2155
2156         * elf32-spu.c (insert_callee): Accumulate incoming callee->count.
2157         (mark_functions_via_relocs): Initialize callee->count to 1.
2158         (pasted_function): Likewise.
2159         (spu_elf_auto_overlay): Honor call counts when determining number
2160         of stubs required in software i-cache mode.
2161
2162 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2163
2164         * plugin.c (program_name): Remove.
2165         (plugin_program_name): New.
2166         (bfd_plugin_set_program_name): New.
2167         (try_load_plugin): Use plugin_program_name.
2168         * plugin.h (bfd_plugin_set_program_name): New.
2169
2170 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2171
2172         * aclocal.m4: Include ../config/plugins.m4.
2173         * configure.in: Use AC_PLUGINS.
2174         * configure: Regenerate.
2175         * Makefile.in: Regenerate.
2176         * doc/Makefile.in: Regenerate.
2177
2178 2009-05-27  Nathan Sidwell  <nathan@codesourcery.com>
2179
2180         * elf32-ppc.c (ppc_elf_relax_section): Work with a partial
2181         link.
2182         * bout.c (b_out_bfd_relax_section): Reject relocatable links.
2183         * elf32-m10300.c (mn10300_elf_relax_section): Likewise.
2184         * elf32-avr.c (elf32_avr_relax_section): Likewise.
2185         * elf32-frv.c (elf32_avr_relax_section): Likewise.
2186         * elf32-xtensa.c (elf_xtensa_relax_section): Likewise.
2187         * elf64-mmix.c (mmix_elf_relax_section): Likewise.
2188         * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
2189         * elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise.
2190         * reloc.c (bfd_generic_relax_section): Likewise.
2191         * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
2192         * vms.c (vms_bfd_relax_section): Likewise.
2193
2194 2009-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2195
2196         * elf-bfd.h (_bfd_elf_is_ifunc_symbol): New.
2197
2198         * elf32-i386.c (is_indirect_symbol): Renamed to ...
2199         * elflink.c (_bfd_elf_is_ifunc_symbol): This.
2200
2201         * elf32-i386.c (allocate_dynrelocs): Updated.
2202         (elf_i386_relocate_section): Likewise.
2203         * elf64-x86-64.c (allocate_dynrelocs): Likewise.
2204         (elf64_x86_64_relocate_section): Likewise.
2205
2206         * elf64-x86-64.c (is_indirect_symbol): Removed.
2207
2208 2009-05-26  Nick Clifton  <nickc@redhat.com>
2209
2210         * po/id.po: Updated Indonesian translation.
2211
2212 2009-05-26  Rafael Avila de Espindola  <espindola@google.com>
2213
2214         * Makefile.am: Run "make dep-am".
2215         (AM_CPPFLAGS): New.
2216         (LIBDL): New.
2217         (ALL_MACHINES): Add cpu-plugin.lo.
2218         (ALL_MACHINES_CFILES): Add cpu-plugin.c.
2219         (BFD32_BACKENDS): Add plugin.lo.
2220         (BFD32_BACKENDS_CFILES): Add plugin.c.
2221         (libbfd_la_LIBADD): Add LIBDL
2222         * archures.c (bfd_architecture): Add bfd_arch_plugin.
2223         (bfd_plugin_arch): Declare.
2224         * bfd-in.h (BFD_SUPPORTS_PLUGINS): New.
2225         * bfd.c (bfd): Add plugin_data.
2226         * config.bfd: Handle the plugin target.
2227         * configure.in: Check for --enable-plugins.
2228         (LT_INIT): Use the dlopen option.
2229         * cpu-plugin.c: New.
2230         * plugin.c: New.
2231         * plugin.h: New.
2232         * targets.c (plugin_vec): Declare.
2233         (_bfd_target_vector): Add plugin_vec.
2234         * Makefile.in: Regenerate.
2235         * bfd-in2.h: Regenerate.
2236         * configure: Regenerate.
2237
2238 2009-05-26  Alan Modra  <amodra@bigpond.net.au>
2239
2240         * dep-in.sed: Don't modify .o to .lo here.  Output one filename
2241         per line with all lines having continuation backslash.  Prefix
2242         first line with "A", following lines with "B".
2243         * Makefile.am (DEP): Don't use dep.sed here.
2244         (DEP1): Run $MKDEP on single files, modify .o to .lo here.  Use
2245         dep.sed here on dependencies, sort and uniq.
2246         * Makefile.in: Regenerate.
2247
2248 2009-05-25  Tristan Gingold  <gingold@adacore.com>
2249
2250         * makefile.vms: Add verilog.obj to object list OBJS.
2251
2252 2009-05-24  Alan Modra  <amodra@bigpond.net.au>
2253
2254        * bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
2255        for BFD_IN_MEMORY is cleared.
2256        (bfd_bwrite): Zero excess memory allocated.
2257
2258 2009-05-22  Julian Brown  <julian@codesourcery.com>
2259
2260         * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
2261         macros.
2262         (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b)
2263         (elf32_arm_stub_a8_veneer_blx): New stub sequences.
2264         (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond,
2265         arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx.
2266         (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields.
2267         (a8_erratum_fix, a8_erratum_reloc): New structs.
2268         (elf32_arm_link_hash_table): Add a8_erratum_fixes,
2269         num_a8_erratum_fixes, fix_cortex_a8 fields.
2270         (elf32_arm_link_hash_table_create): Zero fix_cortex_a8.
2271         (elf32_arm_add_stub): Split into two parts, creating...
2272         (elf32_arm_create_or_find_stub_sec): New function.
2273         (elf32_arm_final_link_relocate): Add forward declaration.
2274         (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2
2275         relocations, multiple relocations per stub.
2276         (find_stub_size_and_template): New (using parts of arm_size_one_stub).
2277         (arm_size_one_stub): Use find_stub_size_and_template.
2278         (a8_reloc_compare): New.
2279         (find_thumb_glue): Add forward declaration.
2280         (cortex_a8_erratum_scan): New.
2281         (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support.
2282         (bfd_elf32_arm_set_cortex_a8_fix): New.
2283         (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument.
2284         (arm_map_one_stub): Add THUMB32_TYPE support.
2285         (a8_branch_to_stub_data): New.
2286         (make_branch_to_a8_stub): New.
2287         (elf32_arm_write_section): Add Cortex-A8 erratum workaround support.
2288         * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New.
2289         (bfd_elf32_arm_set_target_relocs): Add argument for controlling
2290         Cortex-A8 erratum workaround.
2291         * bfd-in2.h: Regenerate.
2292
2293 2009-05-22  Alan Modra  <amodra@bigpond.net.au>
2294
2295         * Makefile.am: Run "make dep-am".
2296         * Makefile.in: Regenerate.
2297         * po/SRC-POTFILES.in: Regenerate.
2298
2299 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
2300
2301         * elflink.c (elf_link_input_bfd): Correct *pindex change in last
2302         commit.
2303
2304 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
2305
2306         * elf-bfd.h (struct elf_backend_data
2307         <elf_backend_link_output_symbol_hook>): Return an int.
2308         * elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop
2309         symbols on deleted .opd entries.
2310         * elflink.c (elf_link_output_sym): Return without outputting sym
2311         if output_symbol_hook returns 2.
2312         (elf_link_output_extsym): Don't assign h->indx when symbol discarded.
2313         Abort if we must not discard sym.
2314         (elf_link_input_bfd): Similarly, don't set finfo->indices for
2315         local syms.
2316         (bfd_elf_final_link): Adjust elf_link_output_sym calls.
2317         * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for
2318         elf_backend_link_output_symbol_hook return type change.
2319         * elf32-arm.c (output_arch_syminfo): Likewise.
2320         (elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise.
2321         (elf32_arm_output_arch_local_syms): Likewise.
2322         * elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise.
2323         * elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise.
2324         (bfd_score_elf_link_output_symbol_hook): Likewise.
2325         * elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
2326         * elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
2327         * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise.
2328         * elf32-spu.c (spu_elf_output_symbol_hook): Likewise.
2329         * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
2330         * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
2331         * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
2332         * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
2333         * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
2334         * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
2335         * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
2336
2337 2009-05-21  Alan Modra  <amodra@bigpond.net.au>
2338
2339         * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on
2340         out of range .opd symbols.
2341
2342 2009-05-21  Dave Korn  <dave.korn.cygwin@gmail.com>
2343
2344         * coffgen.c (coff_print_symbol):  Use bfd_fprintf_vma, not
2345         fprintf_vma directly.
2346         * peXXigen.c (pe_print_edata):  Likewise.
2347         (pe_print_pdata):  Likewise.
2348         (_bfd_XX_print_ce_compressed_pdata):  Likewise.
2349         (_bfd_XX_print_private_bfd_data_common):  Likewise.
2350
2351 2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2352
2353         * cofflink.c (process_embedded_commands):  Ignore "-aligncomm".
2354
2355 2009-05-15  Andrew Stubbs  <ams@codesourcery.com>
2356             Paul Brook  <paul@codesourcery.com>
2357
2358         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to
2359         fix discarded sections.
2360
2361 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2362
2363         * elf32-spu.c (mark_overlay_section): Move .init and .fini
2364         sections into the software icache.
2365
2366 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2367
2368         * elf32-spu.c (build_stub): Always build "compact" sofware
2369         i-cache stubs.
2370
2371 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2372
2373         * elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2.
2374         (spu_elf_setup): Initialize it.
2375         (spu_elf_size_stubs): Move .ovtab into .bss for software i-cache.
2376         Update to new-sytle cache manager data structures.
2377         (spu_elf_build_stubs): Generate new-style cache manager data
2378         structures and symbols.
2379         (spu_elf_auto_overlay): Update size computation.
2380
2381 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2382
2383         * elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY
2384         segments first amongst the program headers.
2385
2386 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2387
2388         * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
2389         into addresses for relocation types that look at high bits.  Remove
2390         special handling of relocation overflow warnings.
2391
2392 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2393
2394         * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
2395         control flow graph between fragments of a function.
2396
2397 2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2398
2399         * elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
2400         generate only a 16-byte .toe section.
2401         (spu_elf_build_stubs, spu_elf_auto_overlay): Likewise.
2402
2403 2009-05-14  Alan Modra  <amodra@bigpond.net.au>
2404
2405         * elf32-spu.c (spu_elf_size_stubs): Split out section placement to..
2406         (spu_elf_place_overlay_data): ..here.  New function.
2407         * elf32-spu.h (spu_elf_place_overlay_data): Declare.
2408
2409 2009-05-13  Andrew Jenner  <andrew@codesourcery.com>
2410
2411         * elf32-arm.c: Move sysdep.h to start of file.
2412
2413 2009-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
2414
2415         * elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as
2416         start of overlays.
2417         (spu_elf_build_stubs): Don't define __icache_tagbase.  Define
2418         __icache_tag_array and __icache_tag_array_size.
2419
2420 2009-05-11  Masaki Muranaka  <monaka@monami-software.com>
2421
2422         * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Remove unnecessary
2423         ATTRIBUTE_UNUSED.
2424         (bfinfdpic_link_omit_section_dynsym): Likewise.
2425         (elf32_bfinfdpic_finish_dynamic_sections): Likewise.
2426
2427 2009-05-05  Paul Brook  <paul@codesourcery.com>
2428
2429         * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
2430         * bfd-in2.h: Regenerate.
2431         * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
2432         (_arm_elf_section_data): Add text and exidx fields.
2433         (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
2434         insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
2435         copy_exidx_entry): New functions.
2436         (elf32_arm_write_section): Fixup .ARM.exidx contents.
2437
2438 2009-05-05  Christophe lyon  <christophe.lyon@st.com>
2439
2440         * elf32-arm.c (DEF_STUBS): New helper define.
2441         (DEF_STUB): Likewise.
2442         (stub_def): New type.
2443         (stub_definitions): New array, containing stub template pointers
2444         and sizes.
2445         (arm_size_one_stub): Make use of stub_definitions.
2446
2447 2009-05-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2448
2449         * elflink.c (find_version_for_sym):  Remove from here, ...
2450         * linker.c (bfd_find_version_for_sym):  ... rename, replace
2451         here, make public and update all callers.
2452         * bfd-in2.h:  Regenerate.
2453
2454 2009-04-30  Nick Clifton  <nickc@redhat.com>
2455
2456         * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs
2457         section pointer.
2458         (struct elf_obj_data): Add has_ifunc_symbols boolean.
2459         * elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags
2460         into a STT_GNU_IFUNC symbol type.
2461         (_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function
2462         type.
2463         (_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if
2464         the binary contains ifunc symbols.
2465         * elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC
2466         symbol type into a BSF_GNU_INDIRECT_FUNCTION flag.
2467         * elf32-i386.c (is_indirect_function): New function.
2468         (elf_i386_check_relocs): Create an ifunc output section.
2469         (allocate_dynrelocs): Create dynamic relocs in the ifunc output
2470         section if necessary.
2471         (elf_i386_relocate_section): Emit a reloc against an ifunc symbol
2472         if necessary.
2473         (elf_i386_add_symbol_hook): New function. Set the
2474         has_ifunc_symbols field of the elf_obj_data structure if an ifunc
2475         symbol is encountered.
2476         (elf_backend_post_process_headers): Define.
2477         (elf_backend_add_symbol_hook): Define.
2478         (elf_i386_post_process_headers): Rename to
2479         elf_i388_fbsd_post_process_headers.
2480         * elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro.
2481         (is_indirect_function): New function.
2482         (elf64_x86_64_check_relocs): Create an ifunc output section.
2483         (allocate_dynrelocs): Create dynamic relocs in the ifunc output
2484         section if necessary.
2485         (elf64_x86_64_relocate_section): Emit a reloc against an ifunc
2486         symbol if necessary.
2487         (elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the
2488         elf_obj_data structure if an ifunc symbol is encountered.
2489         (elf_backend_post_process_headers): Define.
2490         * elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT
2491         if we have ifunc symbols to handle.
2492         (get_ifunc_reloc_section_name): New function.  Computes the name
2493         for an ifunc section.
2494         (_bfd_elf_make_ifunc_reloc_section): New function.  Creates a
2495         section to hold ifunc relocs.
2496         * syms.c (BSF_GNU_INDIRECT_FUNCTION): Define.
2497         (bfd_print_symbol_vandf): Handle ifunc symbols.
2498         (bfd_decode_symclass): Likewise.
2499         * bfd-in2.h: Regenerate.
2500
2501 2009-04-30  Joseph Myers  <joseph@codesourcery.com>
2502
2503         * elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute
2504         MOVW and MOVT relocations in a shared library link.
2505
2506 2009-04-27  Anthony Green  <green@moxielogic.com>
2507
2508         * verilog.c: New file.
2509         * Makefile.am (BFD32_LIBS): Add verilog.c.
2510         (BFD32_LIBS_CFILES): Add verilog.c.
2511         (verilog.lo): New build rule.
2512         * Makefile.in: Rebuilt.
2513         * targets.c: Add verilog support.
2514         * bfd.c (tdata union): Add Verilog private data field.
2515         * bfd-in2.h: Regenerate.
2516
2517 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2518
2519         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
2520         copy pe_opthdr.
2521
2522 2009-04-23  Matthias Klose  <doko@ubuntu.com>
2523
2524         * peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.
2525
2526 2009-04-22  Christophe Lyon  <christophe.lyon@st.com>
2527
2528         PR9743
2529         * elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24,
2530         R_ARM_JUMP24 and R_ARM_PLT32 relocations.
2531         (elf32_arm_size_stubs): Likewise.
2532         (record_thumb_to_arm_glue): Deleted unused function.
2533         (bfd_elf32_arm_process_before_allocation): No longer handle
2534         R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here.
2535         (elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24,
2536         R_ARM_JUMP24 and R_ARM_PLT32 relocations.
2537
2538 2009-04-21  Daniel Jacobowitz  <dan@codesourcery.com>
2539
2540         * elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
2541         (elf32_arm_write_section): Declare early.
2542         (elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
2543         (arm_allocate_glue_section_space): Exclude empty sections.
2544         (ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
2545         (bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
2546         BFD.
2547         (elf32_arm_output_glue_section, elf32_arm_final_link): New.
2548         (elf32_arm_merge_eabi_attributes): Skip the stub BFD.
2549         (elf32_arm_size_dynamic_sections): Allocate interworking
2550         sections here.
2551         (bfd_elf32_bfd_final_link): Define.
2552
2553 2009-04-21  H.J. Lu  <hongjiu.lu@intel.com>
2554
2555         * coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K.
2556
2557         * coffcode.h (coff_compute_section_file_positions): Clear
2558         D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE.
2559
2560         * libcoff-in.h (pe_tdata): Remove force_minimum_alignment and
2561         force_minimum_alignment.
2562
2563         * libcoff.h: Regenerated.
2564
2565         * pei-ia64.c (PEI_TARGET_SUBSYSTEM): Removed.
2566         (PEI_FORCE_MINIMUM_ALIGNMENT): Likewise.
2567
2568         * peicode.h (pe_mkobject): Don't set force_minimum_alignment
2569         nor target_subsystem.
2570
2571         * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't check
2572         force_minimum_alignment nor target_subsystem.
2573
2574 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2575
2576         * coff-x86_64.c (PEI_HEADERS): Protect includes.
2577         (bfd_pe_print_pdata): Remove #ifdef PE variation.
2578         * pei-x86_64.c (PEI_HEADERS): Define to prevent double
2579         include in coff-x86_64.c of headers.
2580         (PDATA_ROW_SIZE): New define.
2581         (pex_regs[]): New static array.
2582         (pex64_get_runtime_function): New static function.
2583         (pex64_get_unwind_info): Likewise.
2584         (pex64_get_scope_entry): Likewise.
2585         (pex64_xdata_print_uwd_codes): Likewise.
2586         (pex64_get_section_by_rva): Likewise.
2587         (pex64_dump_xdata): Likewise.
2588         (pex64_bfd_print_pdata): Likewise.
2589         (bfd_pe_print_pdata): Define as pex64_bfd_print_pdata.
2590         * peXXigen.c (_bfd_pex64_print_pdata): Removed implementation.
2591         * libpei.h (_bfd_pex64_print_pdata): Removed declaration.
2592
2593 2009-04-19  Peter O'Gorman  <binutils@mlists.thewrittenword.com>
2594             Alan Modra  <amodra@bigpond.net.au>
2595             Dave Korn  <dave.korn.cygwin@gmail.com>
2596
2597         * peXXigen.c (_bfd_XXi_swap_sym_in): Fix name handling w.r.t
2598         long names and non-NUL-terminated strings.
2599
2600 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2601
2602         * bfd-in2.h: Regenerated.
2603
2604 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2605
2606         * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Replace
2607         IMAGE_SUBSYSTEM_EFI_ROM with IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER.
2608
2609 2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2610
2611         PR binutils/10074
2612         * coffcode.h (bfd_pei_p): New.
2613
2614         * config.bfd: Remove bfd_efi_bsdrv_ia32_vec,
2615         bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
2616         bfd_efi_rtdrv_x86_64_vec, bfd_efi_bsdrv_ia64_vec and
2617         bfd_efi_rtdrv_ia64_vec.  Replace bfd_efi_app_ia32_vec,
2618         bfd_efi_app_x86_64_vec and bfd_efi_app_ia64_vec with
2619         i386pei_vec, x86_64pei_vec and bfd_pei_ia64_vec, respectively.
2620
2621         * configure.in: Remove bfd_efi_bsdrv_ia32_vec,
2622         bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
2623         bfd_efi_rtdrv_x86_64_vec,
2624         bfd_efi_bsdrv_ia64_vec and bfd_efi_rtdrv_ia64_vec.  Replace
2625         bfd_efi_ia64_vec with bfd_pei_ia64_vec.
2626         * targets.c: Likewise.
2627
2628         * configure: Regenerated.
2629         * libcoff.h: Likewise.
2630         * Makefile.in: Likewise.
2631
2632         * efi-app-ia32.c: Removed.
2633         * efi-app-x86_64.c: Likewise.
2634         * efi-bsdrv-ia32.c: Likewise.
2635         * efi-bsdrv-ia64.c: Likewise.
2636         * efi-bsdrv-x86_64.c: Likewise.
2637         * efi-rtdrv-ia32.c: Likewise.
2638         * efi-rtdrv-ia64.c: Likewise.
2639         * efi-rtdrv-x86_64.c: Likewise.
2640         * efi-rtdrv-ia32.c: Likewise.
2641
2642         * efi-app-ia64.c: Moved to ...
2643         * pei-ia64.c: This.
2644         (TARGET_SYM): Set to bfd_pei_ia64_vec.
2645         (TARGET_NAME): Set to pei-ia64.
2646
2647         * libpei.h (bfd_target_pei_p): Removed.
2648         (bfd_target_pei_arch): Likewise.
2649         (bfd_target_efi_app_p): Likewise.
2650         (bfd_target_efi_app_arch): Likewise.
2651         (bfd_target_efi_bsdrv_p): Likewise.
2652         (bfd_target_efi_bsdrv_arch): Likewise.
2653         (bfd_target_efi_rtdrv_p): Likewise.
2654         (bfd_target_efi_rtdrv_arch): Likewise.
2655         (bfd_pe_executable_p): Likewise.
2656
2657         * Makefile.am (BFD32_BACKENDS): Remove efi-app-ia32.lo,
2658         efi-bsdrv-ia32.lo and efi-rtdrv-ia32.lo.
2659         (BFD32_BACKENDS_CFILES): Remove efi-app-ia32.c, efi-bsdrv-ia32.c
2660         and efi-rtdrv-ia32.c.
2661         (BFD64_BACKENDS): Remove efi-app-ia64.lo, efi-bsdrv-ia64.lo,
2662         efi-rtdrv-ia64.lo, efi-app-x86_64.lo, efi-bsdrv-x86_64.lo and
2663         efi-rtdrv-x86_64.lo. Add pei-ia64.lo.
2664         (BFD64_BACKENDS_CFILES): Remove efi-app-ia64.c, efi-bsdrv-ia64.c,
2665         efi-rtdrv-ia64.c, efi-app-x86_64.c, efi-bsdrv-x86_64.c and
2666         efi-rtdrv-x86_64.c. Add pei-ia64.c.
2667         (efi-app-ia64.lo): Removed.
2668         (efi-bsdrv-ia32.lo): Likewise.
2669         (efi-rtdrv-ia32.lo): Likewise.
2670         (efi-app-ia64.lo): Likewise.
2671         (efi-bsdrv-ia64.lo): Likewise.
2672         (efi-rtdrv-ia64.lo): Likewise.
2673         (efi-app-x86_64.lo): Likewise.
2674         (efi-bsdrv-x86_64.lo): Likewise.
2675         (efi-rtdrv-x86_64.lo): Likewise.
2676         (pei-ia64.lo): New.
2677
2678         * peicode.h (coff_swap_scnhdr_in): Replace bfd_pe_executable_p
2679         with bfd_pei_p.
2680         (arch_type): Removed.
2681         (pe_arch): Likewise.
2682         (pe_bfd_object_p): Just return coff_object_p.
2683
2684         * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Replace
2685         bfd_pe_executable_p with bfd_pei_p.
2686
2687 2009-04-17  Christophe Lyon  <christophe.lyon@st.com>
2688
2689         * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through
2690         PLT entries to an undefined symbol when generating a shared
2691         library.
2692
2693 2009-04-17  Nick Clifton  <nickc@redhat.com>
2694
2695         PR 9909
2696         * coffcode.h (handle_COMDAT): Allow for external COMDAT symbols.
2697
2698 2009-04-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
2699
2700         * aout-adobe.c (aout_32_bfd_define_common_symbol): Define.
2701         * aout-target.h (MY_bfd_define_common_symbol): Likewise.
2702         * aout-tic30.c (MY_bfd_define_common_symbol): Likewise.
2703         * binary.c (binary_bfd_define_common_symbol): Likewise.
2704         * bout.c (b_out_bfd_define_common_symbol): Likewise.
2705         * coff-alpha.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
2706         * coff-mips.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
2707         * coffcode.h (coff_bfd_define_common_symbol): Likewise.
2708         * elfxx-target.h (bfd_elfNN_bfd_define_common_symbol): Likewise.
2709         * i386msdos.c (msdos_bfd_define_common_symbol): Likewise.
2710         * i386os9k.c (os9k_bfd_define_common_symbol): Likewise.
2711         * ieee.c (ieee_bfd_define_common_symbol): Likewise.
2712         * ihex.c (ihex_bfd_define_common_symbol): Likewise.
2713         * libbfd-in.h (_bfd_nolink_bfd_define_common_symbol): Likewise.
2714         * mach-o.c (bfd_mach_o_bfd_define_common_symbol): Likewise.
2715         * mmo.c (mmo_bfd_define_common_symbol): Likewise.
2716         * nlm-target.h (nlm_bfd_define_common_symbol): Likewise.
2717         * oasys.c (oasys_bfd_define_common_symbol): Likewise.
2718         * pef.c (bfd_pef_bfd_define_common_symbol): Likewise.
2719         * ppcboot.c (ppcboot_bfd_define_common_symbol): Likewise.
2720         * som.c (som_bfd_define_common_symbol): Likewise.
2721         * srec.c (srec_bfd_define_common_symbol): Likewise.
2722         * tekhex.c (tekhex_bfd_define_common_symbol): Likewise.
2723         * versados.c (versados_bfd_define_common_symbol): Likewise.
2724         * vms.c (vms_bfd_define_common_symbol): Likewise.
2725         * xcoff-target.h (_bfd_xcoff_bfd_define_common_symbol): Likewise.
2726         * xsym.c (bfd_sym_bfd_define_common_symbol): Likewise.
2727         * coff-rs6000.c (rs6000coff_vec): Add _bfd_xcoff_define_common_symbol.
2728         (pmac_xcoff_vec): Likewise.
2729         * coff64-rs6000.c (rs6000coff64_vec): Likewise.
2730         (aix5coff64_vec): Likewise.
2731         * linker.c (bfd_generic_define_common_symbol): New function.
2732         * targets.c (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_define_common_symbol.
2733         (_bfd_define_common_symbol): New field.
2734         * libcoff-in.h (_bfd_xcoff_define_common_symbol): Declare.
2735         * xcofflink.c (_bfd_xcoff_define_common_symbol): New function.
2736         (xcoff_build_ldsyms): Don't set XCOFF_DEF_REGULAR for common
2737         symbols here.
2738         * bfd-in2.h: Regenerate.
2739         * libbfd.h: Likewise.
2740         * libcoff.h: Likewise.
2741
2742 2009-04-15  Anthony Green  <green@moxielogic.com>
2743
2744         * targets.c: Add moxie support.
2745         * Makefile.am: Ditto.
2746         * Makefile.in: Rebuilt.
2747         * cpu-moxie.c, elf32-moxie.c: New files.
2748         * archures.c: Add moxie support.
2749         * configure.in: Add moxie support.
2750         * configure: Rebuilt.
2751         * config.bfd, archures.c: Add moxie support.
2752         * bfd-in2.h: Rebuilt.
2753
2754 2009-04-15  Christophe Lyon  <christophe.lyon@st.com>
2755
2756         * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
2757         branch to an undef weak symbol into a jump to next instruction if
2758         a PLT entry will be created.
2759
2760 2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2761
2762         * coffgen.c (make_a_section_from_file):  Set the backend long
2763         section names enable if long section names found on input.
2764         * coffcode.h:  Extend long section names documentation to match.
2765
2766 2009-04-08  H.J. Lu  <hongjiu.lu@intel.com>
2767
2768         * elflink.c (elf_link_add_object_symbols): Warn alternate ELF
2769         machine code.
2770
2771 2009-04-07  DJ Delorie  <dj@redhat.com>
2772
2773         * archures.c: Add bfd_mach_mep_c5.
2774         * bfd-in2.h: Likewise.
2775         * cpu-mep.c: Add bfd_c5_arch.
2776         * elf32-mep.c: Support it.
2777
2778 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2779
2780         * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
2781         info->callbacks->einfo.
2782         * linker.c (_bfd_generic_section_already_linked): Likewise.
2783
2784 2009-04-06  DJ Delorie  <dj@redhat.com>
2785
2786         * elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.
2787
2788 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2789
2790         * coff-x86_64.c (bfd_pe_print_pdata): Defined to
2791         _bfd_pex64_print_pdata only if PE is defined.
2792
2793         * libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
2794         (_bfd_pex64_print_pdata): This.
2795
2796         * peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
2797         (_bfd_pex64_print_pdata): This.  Defined only if COFF_WITH_pex64
2798         is defined.
2799
2800 2009-04-05  Kai Tietz  <kai.tietz@onevision.com>
2801
2802         * coff-x86_64.c (bfd_pe_print_pdata): Define as
2803         _bfd_pep_print_x64_pdata.
2804         * libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
2805         * peXXigen.c (_bfd_pep_print_x64_pdata): New.
2806
2807 2009-04-02  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
2808
2809         * elf32-xtensa.c (relax_property_section): Always set r_offset
2810         to zero.
2811
2812 2009-04-02  Christophe Lyon  <christophe.lyon@st.com>
2813
2814         * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
2815         elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
2816         branch stubs.
2817         (elf32_arm_stub_type): New enum values for the two new stubs.
2818         (arm_type_of_stub): Make use of the two new stubs.
2819         (arm_size_one_stub): Handle the two new stubs.
2820
2821 2009-04-01  Matt Thomas  <matt@netbsd.org>
2822
2823         * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
2824         hidden symbols into the GOT or PLT.GOT.
2825         (elf_vax_relocate_section): Do not emit a PCREL reloc
2826         into a shared object if it is against a hidden symbol.
2827
2828 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2829
2830         * xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
2831         and know_contains_shared_object_p.
2832         (xcoff_archive_contains_shared_object_p): Add an "info" parameter.
2833         Cache the result in the archive_info table.
2834         (xcoff_auto_export_p): Add an "info" parameter and update the
2835         call to xcoff_archive_contains_shared_object_p.
2836         (xcoff_mark_auto_exports): Update accordingly.
2837         (xcoff_post_gc_symbol): Likewise.
2838
2839 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2840
2841         * xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
2842         rather than C_EXT.
2843
2844 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2845
2846         * coff-rs6000.c (member_layout): New structure.
2847         (archive_iterator): Likewise.
2848         (member_layout_init): New function.
2849         (archive_iterator_begin): Likewise.
2850         (archive_iterator_next): Likewise.
2851         (xcoff_write_armap_old): Use the new iterator functions.
2852         (do_shared_object_padding): Delete.
2853         (xcoff_write_armap_big): Use the new iterator functions.  Simplify
2854         handling of arch_info.
2855         (xcoff_write_archive_contents_old): Allocate arelt_data in the
2856         first loop rather than the second.  Allocate a member header if
2857         there isn't one, then work out the stat information and length
2858         in the first loop too.  Use the new iterators for the second loop.
2859         (xcoff_write_archive_contents_big): Likewise.
2860
2861 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2862
2863         * bfd-in.h (bfd_xcoff_split_import_path): Declare.
2864         (bfd_xcoff_set_archive_import_path): Likewise.
2865         * bfd-in2.h: Regenerate.
2866         * xcofflink.c: Include libiberty.h.
2867         (xcoff_archive_info): New structure.
2868         (xcoff_archive_info_hash): New function.
2869         (xcoff_archive_info_eq): Likewise.
2870         (xcoff_get_archive_info): Likewise.
2871         (_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
2872         (bfd_xcoff_split_import_path): New function.
2873         (bfd_xcoff_set_archive_import_path): Likewise.
2874         (xcoff_set_import_path): Move earlier in file.
2875         (xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
2876         object to the the directory part of the bfd's filename.  Get the
2877         import path and filename of an archive object from the archive's
2878         xcoff_tdata, initializing it if necessary.  Update use of
2879         import_file_id.
2880         (bfd_link_input_bfd): Update use of import_file_id.
2881         (xcoff_write_global_symbol): Likewise.
2882
2883 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2884
2885         * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
2886
2887 2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2888
2889         * xcofflink.c (xcoff_link_create_extra_sections): Don't create
2890         a .loader section for relocatable links.
2891         (xcoff_need_ldrel_p): New function.
2892         (xcoff_mark): Use it.
2893         (bfd_xcoff_link_count_reloc): Only count loader relocs if there's
2894         a loader section.
2895         (xcoff_build_ldsym): New function, split out from...
2896         (xcoff_build_ldsyms): ...here.  Rename to...
2897         (xcoff_post_gc_symbol): ...this.  Only export symbols, and only
2898         call xcoff_build_ldsym, if there's a loader section.
2899         (xcoff_build_loader_section): New function, extracted verbatim from...
2900         (bfd_xcoff_size_dynamic_sections): ...here.  Only call it if
2901         there's a loader section.  Only add an __rtinit loader symbol
2902         if there's a loader section.  Update after above name change.
2903         (xcoff_symbol_section, xcoff_create_ldrel): New functions.
2904         (bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
2905         and xcoff_create_ldrel.
2906         (xcoff_write_global_symbol): Use xcoff_create_ldrel.
2907         (xcoff_reloc_link_order): Likewise, but only call it if there's
2908         a loader section.  Use xcoff_symbol_section.
2909         (_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
2910         if there's a loader section.
2911
2912 2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
2913
2914         * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
2915
2916 2009-04-01  Christophe Lyon  <christophe.lyon@st.com>
2917
2918         * elf32-arm.c (group_sections): Rewrite loops for better
2919         readability.
2920
2921 2009-03-30  DJ Delorie  <dj@redhat.com>
2922
2923         * elflink.c (elf_link_input_bfd): Don't try to resolve complex
2924         relocs when doing a relocatable link.
2925
2926 2009-03-28  Mark Mitchell  <mark@codesourcery.com>
2927
2928         * coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
2929         "ERROR:", in error messages.
2930         * cpu-arm.c (bfd_arm_merge_machines): Likewise.
2931         * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
2932         * elf32-arm.c (tag_cpu_arch_combine): Likewise.
2933         (elf32_arm_merge_eabi_attributes): Likewise.
2934         (elf32_arm_merge_private_bfd_data): Likewise.
2935
2936 2009-03-27  Nick Clifton  <nickc@redhat.com>
2937
2938         * section.c (bfd_get_section_contents): Detect and handle the case
2939         where a section has the SEC_IN_MEMORY flag set but no actual
2940         contents allocated.
2941
2942 2009-03-26  Alan Modra  <amodra@bigpond.net.au>
2943
2944         PR 6494
2945         * elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
2946         p_filesz and p_memsz are equal.  Use p_memsz as the segment size.
2947         (assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
2948         if we don't find matching PT_LOAD when copying.
2949
2950 2009-03-25  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2951
2952         * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
2953         the reloc descriptions.
2954
2955 2009-03-25  Hans-Peter Nilsson  <hp@axis.com>
2956
2957         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
2958         <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
2959         <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
2960
2961 2009-03-24  H.J. Lu  <hongjiu.lu@intel.com>
2962
2963         * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
2964         (bfd_i386_arch_intel_syntax): Likewise.
2965         (i8086_arch): Likewise.
2966         (bfd_x86_64_arch): Likewise.
2967
2968 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
2969
2970         * elf32-cris.c (cris_elf_relocate_section): <case
2971         R_CRIS_16_DTPREL, R_CRIS_32_DTPREL>: Allow use of non-local
2972         symbols for non-allocated sections.  Don't check whether to
2973         generate R_CRIS_DTPMOD for non-allocated sections.
2974         (cris_elf_gc_sweep_hook) <case R_CRIS_32_DTPREL>: Don't
2975         handle relocation GC:ing if applied to non-allocated section.
2976         (cris_elf_check_relocs): Similar.
2977
2978         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
2979         <R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: Don't include the TLS size
2980         when emitting a known TP offset in the GOT.
2981
2982 2009-03-23  Alan Modra  <amodra@bigpond.net.au>
2983
2984         * elf64-ppc.c (synthetic_opd): Delete.
2985         (compare_symbols): Look for .opd name rather than section match.
2986         (ppc64_elf_get_synthetic_symtab): Likewise.
2987
2988 2009-03-21  Alan Modra  <amodra@bigpond.net.au>
2989
2990         * elf32-ppc.c (is_pic_glink_stub): Delete.
2991         (is_nonpic_glink_stub): New function.
2992         (ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather
2993         than first pic one.
2994         (struct ppc_elf_link_hash_table <glink_pltresolve>): Comment fix.
2995
2996 2009-03-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
2997             Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2998
2999         * elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_*
3000         macros for visibilty and locality checks.
3001         (elf_s390_adjust_dynamic_symbol): Likewise.
3002         (allocate_dynrelocs): Likewise.
3003         (elf_s390_relocate_section): Likewise.
3004         (elf_s390_finish_dynamic_symbol): Likewise.
3005         * elf64-s390.c (elf_s390_check_relocs): Likewise.
3006         (elf_s390_adjust_dynamic_symbol): Likewise.
3007         (allocate_dynrelocs): Likewise.
3008         (elf_s390_relocate_section): Likewise.
3009         (elf_s390_finish_dynamic_symbol): Likewise.
3010
3011 2009-03-19  Kai Tietz  <kai.tietz@onevision.com>
3012
3013         * bfd-in2.h: Regenerated.
3014         * coffcode.h (sec_to_styp_flags): For pe-coff add SEC_READONLY
3015         for debugging sections and map memory read/write dependent on
3016         SEC_COFF_NOREAD.
3017         (styp_to_sec_flags): Set SEC_COFF_NOREAD for sections
3018         without memory read flags set.
3019         * section.c: Add SEC_COFF_NOREAD to section flags.
3020
3021 2009-03-19  Andreas Schwab  <schwab@linux-m68k.org>
3022
3023         * elf32-hppa.c (final_link_relocate): Cast bfd_vma values to long
3024         for format string.
3025
3026 2009-03-19  Alan Modra  <amodra@bigpond.net.au>
3027
3028         * elf32-spu.c (spu_elf_find_overlays): Separate error return from
3029         "no overlays" return.  If there are overlays, create overlay
3030         manager entry symbols here, so that..
3031         (spu_elf_build_stubs): ..we don't need to set them up here.
3032         Simplify entry symbol tests.
3033         * elf32-spu.h (spu_elf_find_overlays): Update prototype.
3034
3035 2009-03-18  Mark Kettenis  <kettenis@gnu.org>
3036
3037         * elf.c (elfcore_grok_openbsd_procinfo)
3038         (elfcore_grok_openbsd_note): New functions.
3039         (elf_parse_notes): Handle notes from OpenBSD ELF core files.
3040
3041 2009-03-18  Alan Modra  <amodra@bigpond.net.au>
3042
3043         * vms-hdr.c: Don't include alloca.h.
3044         * elf32-m68hc1x.c: Include alloca-conf.h.
3045         * xsym.c: Likewise.
3046         * elf64-hppa.c: Likewise.  Remove existing #if's handling alloca.
3047         * som.c: Likewise.
3048         * Makefile.am: Run "make dep-am".
3049         * Makefile.in: Regenerate.
3050
3051 2009-03-17  Daniel Jacobowitz  <dan@codesourcery.com>
3052
3053         * elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.
3054
3055 2009-03-17  Alan Modra  <amodra@bigpond.net.au>
3056
3057         * elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
3058         Add compact_stub.
3059         (emum _ovly_flavour): Delete ovly_compact, ovly_none.
3060         * elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
3061         ovly_return fields with ovly_entry[2].  Adjust all users.
3062         (spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
3063         when soft-icache.
3064         (spu_elf_build_stubs): Likewise.
3065         (ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
3066         ovly_flavour changes.  Update all callers.
3067         (ovl_stub_size_log2): New function.
3068         (build_stub): Handle compact icache stubs.  Use different manager
3069         entry point for stubs in non-icache area.
3070         (spu_elf_size_stubs): Don't allocate space for indirect branch
3071         descriptors.
3072         (spu_elf_build_stubs): And don't built them.
3073
3074 2009-03-16  Andrew Stubbs  <ams@codesourcery.com>
3075
3076         * dwarf2.c (read_section): Always use rawsize, if available.
3077
3078 2009-03-16  Alan Modra  <amodra@bigpond.net.au>
3079
3080         * simple.c (bfd_simple_get_relocated_section_contents): Use larger
3081         of rawsize and size for buffer.
3082
3083 2009-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
3084
3085         * elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
3086         parameter just because fixed sections fit into local store.
3087         (spu_elf_auto_overlay): Do not declare as "noreturn".  Skip
3088         generating overlays if fixed sections plus reserved stack
3089         and heap space fit into local store.
3090
3091 2009-03-15  Alan Modra  <amodra@bigpond.net.au>
3092
3093         * elf32-spu.c (build_stub): Correct icache set_id.
3094         (spu_elf_relocate_section): Likewise.
3095
3096 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3097
3098         * xcofflink.c (xcoff_link_check_archive_element): Only free the
3099         symbol table if it was created by the current call.
3100
3101 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3102
3103         * xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
3104         class XMC_DS rather than XMC_UA.
3105
3106 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3107
3108         * bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
3109         bfd_boolean export_defineds parameter with an unsigned int
3110         auto_export_flags parameter.
3111         * bfd-in2.h: Regenerate.
3112         * xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
3113         split out from xcoff_build_ldsyms.
3114         (xcoff_covered_by_expall_p): New function.
3115         (xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
3116         but with extra code to handle -bexpfull and -bexpall.
3117         (xcoff_mark_auto_exports): New function.
3118         (xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
3119         a function should be automatically exported.
3120         (bfd_xcoff_size_dynamic_sections): Replace the export_defineds
3121         parameter with an auto_export_flags parameter.  Update ldinfo
3122         accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
3123         exported symbols.
3124
3125 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3126
3127         * xcofflink.c (xcoff_mark_symbol_by_name): New function.
3128         (bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
3129         init and fini functions.  Do garbage collection for objects
3130         without an entry point too.
3131
3132 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3133
3134         * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
3135         check whether a symbol has csect information.
3136         (coff_print_aux): Likewise.
3137         * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
3138         information for C_AIX_WEAKEXT too.
3139         (_bfd_xcoff_swap_aux_out): Likewise.
3140         (xcoff_reloc_type_br): Handle defweak symbols too.
3141         * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
3142         information for C_AIX_WEAKEXT too.
3143         (_bfd_xcoff64_swap_aux_out): Likewise.
3144         (xcoff64_reloc_type_br): Handle defweak symbols too.
3145         * coffgen.c (coff_print_symbol): Handle auxillary function
3146         information for C_AIX_WEAKEXT too.
3147         * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
3148         instead of BSF_GLOBAL if the L_WEAK flag is set.
3149         (xcoff_dynamic_definition_p): New function.
3150         (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
3151         defines h.  Don't change h if ldsym isn't the definition.  Otherwise,
3152         always take the symbol class from the ldsym.  Use weak bfd symbol
3153         types for weak ldsyms.
3154         (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
3155         Fix the check for whether a definition is from a shared object.
3156         Allow redefinitions of weak symbols.
3157         (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
3158         (xcoff_keep_symbol_p): Likewise.
3159         (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
3160         (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
3161         Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
3162         but mark them as L_WEAK.
3163         (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
3164         instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.
3165
3166 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3167
3168         * xcofflink.c (xcoff_mark): When walking the relocations,
3169         only mark the target symbol or the target section, not both.
3170         (xcoff_final_definition_p): New function.
3171         (xcoff_keep_symbol_p): Use it to check whether an external XCOFF
3172         symbol is a valid definition of the associated output symbol.
3173         Use XCOFF_ALLOCATED to stop the same hash table entry having
3174         two output symbols.
3175         (bfd_xcoff_size_dynamic_sections): Set XCOFF_ALLOCATED when
3176         keeping a symbol.
3177         (xcoff_link_input_bfd): Use xcoff_final_definition_p.
3178
3179 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3180
3181         * xcofflink.c (bfd_xcoff_import_symbol): Treat imported absolute
3182         symbols as XMC_XO.
3183
3184 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3185
3186         * libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
3187         * libcoff.h: Regenerate.
3188         * xcofflink.c (xcoff_link_add_symbols): Record per-symbol
3189         line-number counts in the bfd's lineno_counts field.
3190         Don't keep per-csect line-number counts.
3191         (xcoff_sweep): Don't update per-csect line-number counts.
3192         (bfd_xcoff_size_dynamic_sections): Count the number of line-number
3193         entries in each output section.
3194         (xcoff_link_input_bfd): Get the number of line numbers from
3195         the bfd's lineno_counts field, rather than recalculating it
3196         from scratch.  Fix the range check when updating C_BINCL and
3197         C_EINCL symbols.
3198         (_bfd_xcoff_bfd_final_link): Don't count the output line numbers
3199         here.  Don't expect csects to have line-number counts.
3200
3201 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3202
3203         * libcoff-in.h (xcoff_tdata): Change debug_indices to a signed long.
3204         * libcoff.h: Regenerate.
3205         * xcofflink.c (xcoff_keep_symbol_p): New function, using the
3206         "skip" logic from xcoff_link_input_bfd.
3207         (bfd_xcoff_size_dynamic_sections): Explicitly skip dynamic
3208         objects in a dynamic link, rather than checking whether csectpp
3209         is null.  Always allocate debug_index for other objects,
3210         and always go through the loop.  Update the type of debug_index
3211         after the change above.  Read the auxillary csect information
3212         and use xcoff_keep_symbol_p to decide whether a symbol should
3213         be kept.  Set its debug_index to -2 if not.
3214         (xcoff_link_input_bfd): Update the type of debug_index after
3215         the change above and always expect it to be nonnull.  Use it to
3216         test whether a symbol should be stripped, rather than making the
3217         decision here.  Postpone all symbol creation to the second pass.
3218
3219 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3220
3221         * xcofflink.c: (xcoff_mark_symbol): Mark the TOC section when
3222         creating a descriptor.
3223         (xcoff_sweep): Don't mark toc_section unless it's needed.
3224         (bfd_xcoff_size_dynamic_sections): Skip the toc_section
3225         when marking every bfd.
3226         (xcoff_link_input_bfd): Skip all TOC anchors.
3227         (xcoff_toc_section_p, xcoff_find_tc0): New functions.
3228         (_bfd_xcoff_bfd_final_link): Don't set the output bfd's TOC anchor
3229         to -1; call xcoff_find_tc0 instead.
3230
3231 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3232
3233         * libcoff-in.h (xcoff_section_tdata): Update commentary.
3234         * libcoff.h: Regenerate.
3235         * xcofflink.c (xcoff_link_add_symbols): Set the csect of XTY_ER
3236         symbols to bfd_und_section_ptr or bfd_abs_section_ptr, rather than
3237         the previous symbol's csect.  Treat last_symndx as an inclusive value
3238         and simplify its handling.
3239         (xcoff_mark): Treat last_symndx as an inclusive value.  Only mark
3240         symbols with the right csect.  Don't mark rsec when processing
3241         relocations against undefined or absolute sections.
3242         (bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
3243         of bfd_und_section_ptr.
3244         (xcoff_link_input_bfd): Likewise.
3245
3246 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3247
3248         * coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
3249         against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
3250         flag is set.  Assert that all undefined symbols are either
3251         imported or defined by a dynamic object.
3252         * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
3253         * xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
3254         handling to all relocations.  Only set XCOFF_CALLED for function
3255         symbols.
3256         (xcoff_find_function): New function, split out from...
3257         (bfd_xcoff_export_symbol) ...here.
3258         (xcoff_set_import_path): New function, split out from...
3259         (bfd_xcoff_import_symbol): ...here.  Remove assertion for old
3260         meaning of XCOFF_CALLED.
3261         (xcoff_mark_symbol): If we mark an undefined and unimported
3262         symbol, find some way of defining it.  If the symbol is a function
3263         descriptor, fill in its definition automatically.  If the symbol
3264         is a function, mark its descriptor and allocate room for global
3265         linkage code.  Otherwise mark the symbol as implicitly imported.
3266         Move the code for creating function descriptors from...
3267         (xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to
3268         check for symbols that were implicitly defined.
3269         (xcoff_mark): Don't count any dynamic relocations against
3270         function symbols.
3271         (bfd_xcoff_size_dynamic_sections): Save the rtld parameter
3272         in the xcoff link info.
3273         (xcoff_link_input_bfd): Remove handling of undefined and
3274         unexported symbols.
3275
3276 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3277
3278         * coff-rs6000.c (xcoff_reloc_type_br): Make the branch absolute
3279         if the target is absolute.  Fix comment typo.
3280         (xcoff_ppc_relocate_section): Remove FIXME.
3281         * coff64-rs6000.c (xcoff64_reloc_type_br): Make the branch absolute
3282         if the target is absolute.
3283
3284 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3285
3286         * xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
3287         R_POS and R_NEG relocations against absolute symbols to the
3288         .loader section.
3289
3290 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3291
3292         * coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
3293         to 2 for bfd_mach_ppc_620.
3294
3295 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
3296
3297         * config.bfd: Treat AIX 6+ in the same way as AIX 5.
3298         * configure.in: Likewise.
3299         * configure: Regenerate.
3300
3301 2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
3302
3303         PR binutils/9945
3304         * elf.c (assign_section_numbers): Generate symbol table if there
3305         is any relocation in output.
3306         (_bfd_elf_compute_section_file_positions): Likewise.
3307
3308 2009-03-13  Nick Clifton  <nickc@redhat.com>
3309
3310         PR 9934
3311         * elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
3312         * elflink.c (elf_link_read_relocs_from_section): Use
3313         NUM_SHDR_ENTRIES.  Gracefully handle the case where there are
3314         relocs but no symbol table.
3315         * elf32-arm.c (elf32_arm_check_relocs): Likewise.
3316
3317 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3318
3319         PR ld/9938
3320         * elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
3321         to check ___tls_get_addr.
3322
3323         * elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
3324         strncmp to check __tls_get_addr.
3325
3326 2009-03-12  Andrew Stubbs  <ams@codesourcery.com>
3327
3328         * dwarf2.c (read_section): Always check the offset, even when the
3329         section has been read before.
3330
3331 2009-03-11  H.J. Lu  <hongjiu.lu@intel.com>
3332
3333         * elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
3334         comments.
3335
3336 2009-03-11  Chris Demetriou  <cgd@google.com>
3337
3338         * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
3339         * bfd-in2.h: Regenerate.
3340         * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
3341         flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
3342         mode.
3343         (bsd_write_armap): Likewise.
3344         (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
3345         flag is set, do nothing.
3346         (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
3347         for timestamp.
3348
3349 2009-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3350
3351         * elf32-spu.c (find_function_stack_adjust): Handle sf instruction
3352         used to update stack pointer.
3353
3354 2009-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3355
3356         PR binutils/9921
3357         * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
3358         for unknown symbols in absolute section.
3359
3360 2009-03-06  Nick Clifton  <nickc@redhat.com>
3361
3362         * po/es.po: Updated Spanish translation.
3363
3364 2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
3365
3366         * elf32-arm.c (group_sections): Take next section size into
3367         account before accepting to group it.
3368
3369 2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
3370
3371         * elf32-arm.c (arm_type_of_stub): Handle long branches targetting
3372         PLT entries.
3373         (elf32_arm_final_link_relocate): Likewise.
3374
3375 2009-03-05  Moritz Kroll  <Moritz.Kroll@gmx.de>
3376
3377         PR 9923
3378         * peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
3379
3380 2009-03-04  Alan Modra  <amodra@bigpond.net.au>
3381
3382         * reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
3383         * section.c (struct bfd_section): Add has_tls_get_addr_call.
3384         (BFD_FAKE_SECTION): Init new flag.
3385         * ecoff.c (bfd_debug_section): Likewise.
3386         * bfd-in2.h: Regenerate.
3387         * libbfd.h: Regenerate.
3388         * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
3389         (ppc_elf_reloc_type_lookup): Handle new relocs.
3390         (ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
3391         without marker relocs.
3392         (ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
3393         if section has no old-style calls.
3394         (ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
3395         Don't try to optimize new-style __tls_get_addr call when handling
3396         arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
3397         relocs.
3398         * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
3399         (ppc64_elf_reloc_type_lookup): Handle new relocs.
3400         (ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
3401         without marker relocs.
3402         (ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
3403         if section has no old-style calls.  Set toc_ref for new relocs as
3404         appropriate.
3405         (ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
3406         Don't try to optimize new-style __tls_get_addr call when handling
3407         arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
3408         relocs.
3409
3410 2009-03-04  Alan Modra  <amodra@bigpond.net.au>
3411
3412         PR 6768
3413         * configure.in: Test for ld --as-needed support.  Link shared
3414         libbfd against libm.
3415         * configure: Regenerate.
3416
3417 2009-03-03  Alan Modra  <amodra@bigpond.net.au>
3418
3419         * Makefile.am: Run "make dep-am".
3420         * Makefile.in: Regenerate.
3421
3422 2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>
3423
3424         * elf32-score7.c: New file.
3425         * elf32-score.h: New file.
3426         * elf32-score.c: Add code to support score 7.  Set score7 as the
3427         default.
3428         * cpu-score.c: Add score7 architecure.
3429         (compatibile): New function.
3430         * Makefile.am: Add rules for building elf32-score7 object.
3431         * Makefile.in: Regenerate.
3432         * configure.in: Add elf32-score7 object to score vectors.
3433         * configure: Regenerate.
3434         * reloc.c: Add score7 relocs.
3435         * archures.c: Add score3 and score7 machine numbers.
3436         * bfd-in2.h: Regenerate.
3437         * libbfd.h: Regenerate.
3438
3439 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3440
3441         * configure: Regenerate.
3442
3443 2009-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3444
3445         * elf32-hppa.c (hppa32_elf_local_refcounts): New function.
3446         (elf32_hppa_check_relocs): Use it.
3447
3448         * elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to
3449         elf64-hppa.c.
3450         (elf_hppa_unmark_useless_dynamic_symbols): Likewise.
3451         (elf_hppa_remark_useless_dynamic_symbols): Likewise.
3452         (elf_hppa_is_dynamic_loader_symbol): Likewise.
3453         (elf_hppa_record_segment_addrs): Likewise.
3454         (elf_hppa_final_link): Likewise.
3455         (elf_hppa_relocate_insn): Likewise.
3456         (elf_hppa_final_link_relocate): Likewise.
3457         (elf64_hppa_relocate_section): Likewise.
3458         * elf64-hppa.c: Insert above.
3459
3460 2009-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3461
3462         * elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link.
3463         (elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table.
3464         (elf_hppa_relocate_section): Likewise.
3465         * elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive
3466         from struct elf_link_hash_entry.  Add count field.
3467         (struct elf64_hppa_dyn_hash_table): Delete.
3468         (struct elf64_hppa_link_hash_table): Delete dyn_hash_table field.
3469         (elf64_hppa_hash_table): Rename to hppa_link_hash_table.
3470         (hppa_elf_hash_entry, eh_name): Define.
3471         (elf64_hppa_new_dyn_hash_entry): Delete.
3472         (elf64_hppa_dyn_hash_lookup): Delete.
3473         (elf64_hppa_dyn_hash_traverse): Delete.
3474         (get_dyn_name): Delete.
3475         (elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead
3476         of struct elf64_hppa_dyn_hash_entry *.
3477         (elf64_hppa_finalize_dlt, llocate_global_data_dlt,
3478         allocate_global_data_plt, allocate_global_data_stub,
3479         allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries):
3480         Likewise.
3481         (hppa64_link_hash_newfunc): New.
3482         (elf64_hppa_hash_table_create): Rework.
3483         (count_dyn_reloc): Likewise.
3484         (hppa64_elf_local_refcounts): New.
3485         (elf64_hppa_check_relocs): Rework using standard technique for recording
3486         local DLT, PLT and OPD reference counts.
3487         (elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct
3488         elf_link_hash_entry *.
3489         (elf64_hppa_mark_exported_functions, allocate_global_data_dlt,
3490         allocate_global_data_plt, allocate_global_data_stub,
3491         allocate_global_data_opd, allocate_dynrel_entries,
3492         elf64_hppa_adjust_dynamic_symbol,
3493         elf64_hppa_mark_milli_and_exported_functions): Likewise.
3494         (elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections):
3495         Use hppa_link_hash_table.  Rework.
3496         (elf64_hppa_link_output_symbol_hook): Rework.
3497         (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd,
3498         elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc,
3499         elf64_hppa_finish_dynamic_sections): Likewise.
3500
3501 2009-02-26  Christophe Lyon  <christophe.lyon@st.com>
3502
3503         * elf32-arm.c (stub_reloc_type): Removed.
3504         (insn_sequence): Renamed reloc_type field to r_type.
3505         (elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub.
3506         (elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise.
3507         (elf32_arm_stub_long_branch_thumb_only_pic): Likewise.
3508         (elf32_arm_stub_type): Add new enum entries for the new stubs.
3509         (arm_stub_is_thumb): Catch new stubs.
3510         (arm_type_of_stub): Handle new stubs.
3511         (arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs.
3512         (bfd_elf32_arm_process_before_allocation): Remove useless
3513         condition.
3514
3515 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
3516
3517         * elf.c (elf_find_function): Use is_function_type to check
3518         function symbol.
3519
3520 2009-02-24  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
3521
3522         * xtensa-modules.c: Revert to previous version 1.11 due
3523         to inadvertant commit.
3524
3525 2009-02-24  Sterling Augustine  <sterling@tensilica.com>
3526
3527         * elf32-xtensa.c (text_action_add): Separate test for action
3528         type.  Break if saved action is ta_widen_insn at same offset.
3529
3530 2009-02-24  Daniel Jacobowitz  <dan@codesourcery.com>
3531
3532         * elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename
3533         to elf32_arm_stub_long_branch_any_arm_pic.
3534         (elf32_arm_stub_long_branch_any_thumb_pic): New.
3535         (enum elf32_arm_stub_type, arm_type_of_stub)
3536         (arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC
3537         separately.
3538
3539 2009-02-24  Joseph Myers  <joseph@codesourcery.com>
3540
3541         * elf32-arm.c (PREV_SEC): Update comment.
3542         (group_sections): Rename argument to stubs_always_after_branch.
3543         Reverse the list and place stubs at the end of input sections.
3544         Undefine NEXT_SEC.
3545         (elf32_arm_size_stubs): Update to use stubs_always_after_branch.
3546
3547 2009-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
3548
3549         * elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset.
3550         Fix formatting.
3551         (arm_size_one_stub): Remove unnecessary break.
3552         (arm_map_one_stub): Fix formatting.  Return after BFD_FAIL.
3553
3554 2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
3555
3556         * elf32-arm.c (stub_insn_type): New type.
3557         (stub_reloc_type): Likewise.
3558         (insn_sequence): Likewise.
3559         (elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
3560         (elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
3561         (elf32_arm_stub_long_branch_thumb_only): Likewise.
3562         (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
3563         (elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
3564         (elf32_arm_stub_long_branch_any_any_pic): Likewise.
3565         (elf32_arm_stub_hash_entry): Add new helper fields.
3566         (stub_hash_newfunc): Initialize these new fields.
3567         (arm_build_one_stub): Encode Arm and Thumb instructions separately
3568         to take endianness into account.
3569         (arm_size_one_stub): Compute size of stubs using insn_sequence.
3570         (arm_map_one_stub): Code is now more generic, thanks to
3571         insn_sequence.
3572
3573 2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
3574
3575         * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub
3576         code.
3577         (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
3578         (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when
3579         BLX is not available. Fix typo in warning message. Add comments
3580         and improve formatting.
3581         (arm_build_one_stub): Adjust to new
3582         elf32_arm_stub_long_branch_v4t_thumb_arm stub.
3583         (arm_map_one_stub): Likewise.
3584
3585 2009-02-23  Tristan Gingold  <gingold@adacore.com>
3586             Eric Botcazou  <ebotcazou@adacore.com>
3587             Douglas B Rupp  <rupp@gnat.com>
3588
3589         * vms.h: Update copyright year, fix comments, reorder declarations.
3590         (_bfd_save_vms_section): Remove the prototype.
3591         (EGPS_S_V_NO_SHIFT): New constant.
3592         (bfd_vms_set_section_flags): New prototype.
3593         (EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New
3594         constants.
3595         (EGSY_S_W_FLAGS): Ditto.
3596         (EGSY_S_V_QUAD_VAL): Ditto.
3597         (ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto.
3598         (EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX,
3599         EGST_S_B_NAMLNG): Ditto.
3600         (ESRF_S_B_NAMLNG): Ditto.
3601         (ETIR_S_C_HEADER_SIZE): Ditto.
3602         (EGPS_S_V_ALLOC_64BIT): Ditto.
3603         (DST_S_C_EPILOG): Ditto.
3604         (DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto.
3605         (DST_S_C_SRC_INCRLNUM_B): Ditto.
3606         (DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto.
3607         (DST_S_L_PCLINE_UNSLONG): Ditto.
3608         (DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto
3609         (DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto
3610         (DST_S_C_SOURCE_HEADER_SIZE): Ditto.
3611         (DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto.
3612         (DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto.
3613         (DST_S_B_SRC_UNSBYTE): Ditto.
3614         (DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto.
3615         Add prototypes.
3616         (vms_section, vms_reloc): Remove types.
3617         (hdr_struc): Replaced by ...
3618         (hdr_struct): ... new type.
3619         (EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants.
3620         (EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto.
3621         (EMH_DATE_LENGTH): Ditto.
3622         (eom_struc): Replaced by ...
3623         (eom_struct): ... new type.
3624         (EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants.
3625         (EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto.
3626         (EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto.
3627         (EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto.
3628         (EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto.
3629         (EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto.
3630         (EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto.
3631         (EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto.
3632         (EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto.
3633         (EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto.
3634         (EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto.
3635         (EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto.
3636         (EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto.
3637         (EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto.
3638         (EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto.
3639         (DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto.
3640         (DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto.
3641         (DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH)
3642         (DBG_S_C_DMT_PSECT_SIZE): Ditto.
3643         (enum file_type_enum): New type.
3644         (struct location_struct): Removed.
3645         (struct fileinfo, struct srecinfo, struct lineinfo): New types.
3646         (struct funcinfo, struct module): Ditto.
3647         (struct vms_private_data_struct): Update fields.
3648         (struct vms_section_data_struct): New type.
3649
3650         * vms.c: Update copyright year, fix comments,
3651         Fix includes for DECC, add prototypes.
3652         (vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove
3653         some initializers.
3654         Use flavour to set is_vax, location_stack is removed.
3655         (struct pair): Declare.
3656         (fill_section_ptr): Initialize variables at declaration.
3657         Add guard to set SECTION_SYM flag, handlde und section.
3658         (vms_fixup_sections): Use struct pair for fill_section_ptr argument.
3659         (_bfd_vms_slurp_object_records): New function, replaces previous
3660         vms_object_p.
3661         (vms_slurp_module): New function.
3662         (vms_slurp_image): Ditto.
3663         (vms_object_p): Complete rewrite.
3664         (vms_mkobject): Use is_vax field to slect architecture.
3665         (free_reloc_stream): New function.
3666         (vms_convert_to_var): Ditto.
3667         (vms_convert_to_var_1): Ditto.
3668         (vms_convert_to_var_unix_filename): Ditto.
3669         (vms_close_and_cleanup): Call free_reloc_stream, convert file to
3670         VAR format on VMS.
3671         (vms_new_section_hook): Set alignment to 0, allocate private data.
3672         (vms_get_section_contents): Load content.
3673         (vms_get_symbol_info): Handle undefined section.
3674         (vms_find_nearest_line): Handle.
3675         (alloc_reloc_stream): New function.
3676         (vms_slurp_reloc_table): Ditto.
3677         (vms_get_reloc_upper_bound): Make it real.
3678         (vms_canonicalize_reloc): Do the real work.
3679         (alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA,
3680         ALPHA_R_BOH.
3681         (vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH.
3682         (vms_set_arch_mach): Check arch.
3683         (vms_set_section_contents): Copy the content after allocation.
3684         (vms_alpha_vec): Update object flags.
3685
3686         * vms-tir.c: Update copyright year, fix comments,
3687         add prototypes for new functions.
3688         (dst_define_location): New function.
3689         (dst_restore_location): New function.
3690         (dst_retrieve_location): New function.
3691         (dst_check_allocation): New function.
3692         (image_dump): Call dst_check_allocation.
3693         (image_write_b): Ditto.
3694         (image_write_w): Ditto.
3695         (image_write_l): Ditto.
3696         (image_write_q): Ditto.
3697         (cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW,
3698         STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC,
3699         CTL_STKDL.
3700         Call error handler instead of abort if name is not known.
3701         (etir_sta): Add quarter_relocs argument and set it.
3702         Fix cast.
3703         (etir_sto): Ditto.
3704         (etir_opr): Ditto, return FALSE in case of error.
3705         (etir_ctl): Add quarter_relocs argument and set it, fix cast.
3706         Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL.
3707         (etir_stc): Add quarter_relocs argument and set it, fix cast.
3708         Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA.
3709         Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL.
3710         Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS.
3711         Return FALSE in case of error.
3712         (tir_sta): Change sign of psect.
3713         (tir_ctl): Ditto.
3714         (tir_cmd): Fix cast. Makes tir_table static const.
3715         (etir_cmd): Add quarter_relocs argument, makes etir_table const,
3716         add argument to explain.
3717         (analyze_etir): Initialize maxptr, add quarter_relocs
3718         declaration, move some declarations into inner scopes.
3719         Handle quarter_relocs and STO_IMM.
3720         (_bfd_vms_slurp_tir): Use constant instead of hard-coded values.
3721         (_bfd_vms_slurp_relocs): New function.
3722         (_bfd_vms_decode_relocs): New function.
3723         (sto_imm): Rewritten.
3724         (start_first_etbt_record): New function.
3725         (start_another_etbt_record): Ditto.
3726         (etir_output_check): Ditto.
3727         (defer_reloc_p): Ditto.
3728         (_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to
3729         a for-loop.  Correctly deals with contents, deals with .vmsdebug,
3730         rewritte relocations handling.
3731         (_bfd_vms_write_tbt): Removed.
3732         (_bfd_vms_write_dbg): Ditto.
3733
3734         * vms-misc.c: Update copyright year, Fix comments.
3735         (_bfd_vms_get_header_values): Use 'size' instead of 'length'.
3736         (maybe_adjust_record_pointer_for_object): New function.
3737         (_bfd_vms_get_first_record): New function, replaces ...
3738         (_bfd_vms_get_record): ..  removed.
3739         (_bfd_vms_get_object_record): New function.
3740         (_bfd_vms_get_object_record): New function.
3741         (vms_get_remaining_object_record): New function, replaces ...
3742         (_bfd_vms_get_next_record): ... removed.
3743         (add_new_contents): Removed.
3744         (_bfd_save_vms_section): Removed.
3745         (_bfd_get_vms_section): Removed.
3746         (_bfd_vms_output_flush): Write in VAR format.
3747         (new_symbol): Don't make UND section.
3748
3749         * vms-hdr.c: Update copyright year, update list of record handled.
3750         (_bfd_vms_slurp_hdr): rec_length renamed to rec_size.
3751         (_bfd_vms_write_hdr): Strip vms and unix patches,
3752         add comments, truncate module name at 31 characters,
3753         use constants instead of hard-coded value,
3754         write BFD version instead of a fixed string.
3755         (_bfd_vms_slurp_ihd): New function.
3756         (_bfd_vms_slurp_isd): Ditto.
3757         (_bfd_vms_slurp_ihs): Ditto.
3758         (new_module): Ditto.
3759         (parse_module): Ditto
3760         (build_module_list): Ditto.
3761         (module_find_nearest_line): Ditto.
3762         (_bfd_vms_find_nearest_dst_line): Ditto.
3763         (vms_slurp_debug): Ditto.
3764         (_bfd_vms_slurp_dbg): Ditto.
3765         (_bfd_vms_slurp_tbt): Ditto.
3766         (_bfd_vms_write_dbg): Ditto.
3767         (_bfd_vms_write_tbt): Ditto.
3768
3769         * vms-gsd.c: Update copyright year, update list of records handled.
3770         (EVAX_LITERALS_NAME): New macro.
3771         (evax_section_flags): Add an entry for EVAX_LITERALS_NAME.
3772         (gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd.
3773         (register_universal_symbol): New function and prototype.
3774         (_bfd_vms_slurp_gsd): Fix indentations and casts,
3775         improve debug messages,
3776         use constants instead of hard-coded value,
3777         fix missing endianness conversion,
3778         handle global symbol (SYMG).
3779         (bfd_vms_set_section_flags): New function.
3780         (_bfd_vms_write_gsd): Don't write .vmsdebug section,
3781         handle section literals,
3782         fix indentation,
3783         handle section bfd and vms flags,
3784         don't output LIB$INITIALIZE symbol,
3785         fix handling of weak symbols,
3786         fix evax vs vax procedure descriptor,
3787         handle absolute symbols.
3788
3789         * reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR,
3790         BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations.
3791
3792         * makefile.vms (DEFS): Fix flags for VMS.
3793
3794         * bfdio.c (real_fopen): Handle multiple VMS fopen attributes.
3795
3796         * bfd-in2.h: Regenerated.
3797         * libbfd.h: Regenerated.
3798
3799 2009-02-20  Cary Coutant  <ccoutant@google.com>
3800
3801         * vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime
3802         in struct stat.
3803
3804 2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>
3805
3806         PR gas/7059
3807         * coffcode.h (coff_write_object_contents):  Don't let the string
3808         table offset overflow the s_name field when using long section names.
3809
3810 2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>
3811
3812         * coff-alpha.c (alpha_ecoff_backend_data):  Initialise fields which
3813         control long section name handling with ECOFF_NO_LONG_SECTION_NAMES.
3814         * coff-mips.c (mips_ecoff_backend_data):  Likewise.
3815         * coff-rs6000.c (bfd_xcoff_backend_data):  Initialise fields which
3816         control long section name handling with XCOFF_NO_LONG_SECTION_NAMES.
3817         (bfd_pmac_xcoff_backend_data):  Likewise.
3818         * coff64-rs6000.c (bfd_xcoff_backend_data):  Likewise.
3819         (bfd_xcoff_aix5_backend_data):  Likewise.
3820         (xcoff64_write_object_contents):  Delete unused long_section_names
3821         local variable.
3822         * coff-sh.c (bfd_coff_small_swap_table):  Initialise long section
3823         name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire
3824         struct non-const.
3825         * coffcode.h (documentation):  Update to describe long section names.
3826         (COFFLONGSECTIONCATHELPER):  New helper macro.
3827         (BLANKOR1TOODD):  Likewise.
3828         (COFF_ENABLE_LONG_SECTION_NAMES):  Likewise.
3829         (COFF_LONG_SECTION_NAMES_SETTER):  Likewise.
3830         (COFF_DEFAULT_LONG_SECTION_NAMES):  Likewise.
3831         (bfd_coff_set_long_section_names_allowed):  New function.
3832         (bfd_coff_set_long_section_names_disallowed):  Likewise.
3833         (struct bfd_coff_backend_data):  Add new backend hook function
3834         pointer _bfd_coff_set_long_section_names.
3835         (bfd_coff_set_long_section_names):  New backend hook.
3836         (coff_write_object_contents):  Only generate long section names if
3837         bfd_coff_long_section_names() indicates they are currently enabled.
3838         (bfd_coff_std_swap_table):  Make non-const, and initialise long
3839         section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
3840         (ticoff0_swap_table):  Likewise to both.
3841         (ticoff1_swap_table):  Again, likewise to both.
3842         * coffgen.c (make_a_section_from_file):  Allow long section names
3843         as inputs even if not currently allowed for outputs.
3844         * ecoff.c (_bfd_ecoff_no_long_sections):  New function.
3845         * efi-app-ia32.c (COFF_LONG_SECTION_NAMES):  Define to 0, not blank.
3846         * efi-app-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3847         * efi-app-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3848         * efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
3849         * efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3850         * efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3851         * efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
3852         * efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3853         * efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3854         * pei-arm.c (COFF_LONG_SECTION_NAMES):  Likewise.
3855         * pei-i386.c (COFF_LONG_SECTION_NAMES):  Likewise.
3856         * pei-mcore.c (COFF_LONG_SECTION_NAMES):  Likewise.
3857         * pei-mips.c (COFF_LONG_SECTION_NAMES):  Likewise.
3858         * pei-ppc.c (COFF_LONG_SECTION_NAMES):  Likewise.
3859         * pei-sh.c (COFF_LONG_SECTION_NAMES):  Likewise.
3860         * pei-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
3861         * libcoff-in.h:  Update copyright year to cause updated copyright
3862         year in generated libcoff.h, and fix typo.
3863         * libcoff.h:  Regenerated.
3864         * libecoff.h (ECOFF_NO_LONG_SECTION_NAMES):  New macro.
3865         (_bfd_ecoff_no_long_sections):  Add prototype.
3866         * libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES):  New macro.
3867         * pe-mips.c (COFF_LONG_SECTION_NAMES):  Define empty if not already
3868         defined by an including .c file.
3869         * ticoff.h (ticoff0_swap_table):  Make non-const, and initialise
3870         long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
3871         (ticoff1_swap_table):  Likewise to both.
3872
3873 2009-02-18  Christophe Lyon  <christophe.lyon@st.com>
3874
3875         * elf32-arm.c (arm_build_one_stub): Fix relocation target for pic
3876         stub. Catch default case error.
3877         (arm_map_one_stub): Add missing Thumb mapping symbol.
3878
3879 2009-02-18  Bjoern Haase  <bjoern.m.haase@web.de>
3880
3881         PR 9841
3882         * elf32-avr.c: Handle case where no local symbos exist correctly.
3883
3884 2009-02-16  Christophe Lyon  <christophe.lyon@st.com>
3885
3886         bfd/
3887         * elf32-arm.c (arm_long_branch_stub,
3888         arm_thumb_v4t_long_branch_stub,
3889         arm_thumb_thumb_long_branch_stub,
3890         arm_thumb_arm_v4t_long_branch_stub,
3891         arm_thumb_arm_v4t_short_branch_stub,
3892         arm_pic_long_branch_stub):
3893         Renamed to elf32_arm_stub_long_branch_any_any,
3894         elf32_arm_stub_long_branch_v4t_arm_thumb,
3895         elf32_arm_stub_long_branch_thumb_only,
3896         elf32_arm_stub_long_branch_v4t_thumb_arm,
3897         elf32_arm_stub_short_branch_v4t_thumb_arm,
3898         elf32_arm_stub_long_branch_any_any_pic.
3899         (arm_stub_long_branch, arm_thumb_v4t_stub_long_branch,
3900         arm_thumb_thumb_stub_long_branch,
3901         arm_thumb_arm_v4t_stub_long_branch,
3902         arm_thumb_arm_v4t_stub_short_branch, arm_stub_pic_long_branch):
3903         Renamed to arm_stub_long_branch_any_any,
3904         arm_stub_long_branch_v4t_arm_thumb,
3905         arm_stub_long_branch_thumb_only,
3906         arm_stub_long_branch_v4t_thumb_arm,
3907         arm_stub_short_branch_v4t_thumb_arm,
3908         arm_stub_long_branch_any_any_pic.
3909
3910 2009-02-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3911
3912         * elf-hppa.h (elf_hppa_final_link_relocate): Correct addend value used
3913         in branch offset check.
3914
3915 2009-02-15  Alan Modra  <amodra@bigpond.net.au>
3916
3917         * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
3918         add toc.symndx and toc.add.
3919         (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
3920         Set up toc.add.
3921         (get_tls_mask): Add toc_addend param, set from toc.add.  Adjust all
3922         callers.
3923         (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
3924         (branch_reloc_hash_match): New function, extracted from..
3925         (ppc64_elf_tls_optimize): ..here.
3926         (ppc64_elf_relocate_section): Properly set addends when optimizing
3927         tls sequences.  Avoid unnecessary reading and writing of insns.
3928         Only redo reloc when symbol changed.  Bypass symbol checks when
3929         using tlsld_got.
3930         * elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
3931         (branch_reloc_hash_match): New function, extracted from..
3932         (ppc_elf_tls_optimize): ..here.
3933         (ppc_elf_relocate_section): Avoid unnecessary reading of insns.
3934         Don't clear addend on zapped __tls_get_addr reloc.
3935
3936 2009-02-12  Nick Clifton  <nickc@redhat.com>
3937
3938         PR 9827
3939         * elflink.c (bfd_elf_final_link): When counting the relocations,
3940         if the header size has not been set yet then assume that it will
3941         match the output section's reloc type.
3942
3943 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3944
3945         * elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for
3946         relocatable link.
3947
3948 2009-02-09  Alan Modra  <amodra@bigpond.net.au>
3949
3950         * elf32-spu.c (spu_elf_find_overlays): Call bfd_set_error on errors.
3951         (find_function): Likewise.
3952         (pasted_function): Don't error if no prior function found.
3953         (discover_functions): Revert 2008-12-10 change.  Extend first
3954         function range to start of section.
3955
3956 2009-02-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3957
3958         * elf64-hppa.c: Remove PARAMS macro.  Replace PTR with void *.  Convert
3959         functions to C90.
3960         * elf64-hppa.h: Likewise.
3961
3962 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
3963
3964         * elfxx-mips.c (_bfd_mips_elf_section_processing): Remove special
3965         .sbss handling.
3966
3967 2009-02-04  Alan Modra  <amodra@bigpond.net.au>
3968
3969         * elf32-spu.c (spu_elf_build_stubs): Define __icache_neg_log2_linesize.
3970         Define __icache_ptr_handler*, not __icache_ptr___icache_bi_handler*.
3971
3972 2009-02-03  Sandip Matte  <sandip@rmicorp.com>
3973
3974         * aoutx.h (NAME (aout, machine_type)): Handle bfd_mach_mips_xlr.
3975         * archures.c (bfd_mach_mips_xlr): Define.
3976         * bfd-in2.h: Regenerate.
3977         * cpu-mips.c (I_xlr): Define.
3978         (arch_info_struct): Add XLR entry.
3979         * elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_XLR.
3980         (mips_set_isa_flags): Handle bfd_mach_mips_xlr
3981         (mips_mach_extensions): Add XLR entry.
3982
3983 2009-02-03  Eric B. Weddington  <eric.weddington@atmel.com>
3984
3985         * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.
3986
3987 2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>
3988
3989         * configure.in: AC_SUBST pdfdir.
3990         * Makefile.am: Add install-pdf, install-pdf-am
3991         and install-pdf-recursive targets. Define pdfdir.
3992         * doc/Makefile.am: Define pdf__strip_dir. Add
3993         install-pdf and install-pdf-am targets.
3994         * po/Make-in: Add install-pdf target.
3995         * configure: Regenerate.
3996         * Makefile.in: Regenerate
3997         * doc/Makefile.in: Regenerate.
3998
3999 2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
4000
4001         * bfd-in2.h: Regenerate.
4002         * elf32-m68k.c: Handle 2-slot GOT entries.  Rename variables and
4003         fields from n_entries to n_slots where appropriate, update comments.
4004         (HOWTO): Add TLS relocations.
4005         (reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
4006         (enum elf_m68k_got_offset_size): New enum.
4007         (struct elf_m68k_got_entry.type): Move field to ...
4008         (struct elf_m68k_got_entry_key): ... here.  Update all uses.
4009         (elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
4010         functions.
4011         (elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
4012         functions.
4013         (struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
4014         fields into n_entries array.  Update comments.
4015         (elf_m68k_init_got): Simplify, update all uses.
4016         (elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
4017         (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
4018         GOT entries; update name, update all uses.
4019         (ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
4020         (elf_m68k_get_got_entry): Update.
4021         (elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
4022         simplify.
4023         (elf_m68k_remove_got_entry_type): Simplify.
4024         (elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
4025         (elf_m68k_can_merge_gots): Update.
4026         (elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
4027         (struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
4028         GOT entries, simplify.
4029         (elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
4030         (struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
4031         field, remove obsoleted local_n_entries field.
4032         (elf_m68k_partition_multi_got_2): New static function.
4033         (elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
4034         update.
4035         (elf_m68k_remove_got_entry_type): Update.
4036         (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
4037         (elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary
4038         update of sgot->size and srelgot->size.
4039         (elf_m68k_gc_sweep_hook): Update.
4040         (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
4041         (elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
4042         TLS relocations.
4043         * reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
4044         * libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.
4045
4046 2009-02-02  DJ Delorie  <dj@redhat.com>
4047
4048         * elf32-mep.c (config_names): Regenerate configuration.
4049
4050 2009-02-02  Alan Modra  <amodra@bigpond.net.au>
4051
4052         * elf-bfd.h (bfd_elf_get_str_section): Don't declare.
4053         (bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
4054         * elf.c (bfd_elf_get_str_section): Make static.
4055         (bfd_elf_find_section): Delete.
4056         * libbfd.h: Regenerate.
4057
4058 2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
4059
4060         * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
4061         (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.
4062
4063 2009-01-31  Alan Modra  <amodra@bigpond.net.au>
4064
4065         * elflink.c (on_needed_list): New function.
4066         (elf_link_add_object_symbols): Link in --as-needed libs if they
4067         satisfy undefined symbols in other libs.
4068
4069 2009-01-30  Julian Brown  <julian@codesourcery.com>
4070
4071         * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Skip BFDs with
4072         EXEC_P or DYNAMIC flags, and skip sections which are being linked
4073         with --just-symbols (-R).
4074
4075 2009-01-29  Adam Nemet  <anemet@caviumnetworks.com>
4076
4077         * dwarf2.c (read_rangelist): Use read_address to read low_pc and
4078         high_pc in order to properly sign-extend VMAs.
4079
4080 2009-01-29  Daniel Jacobowitz  <dan@codesourcery.com>
4081             Mark Shinwell  <shinwell@codesourcery.com>
4082             Catherine Moore  <clm@codesourcery.com>
4083
4084         * elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments.
4085
4086 2009-01-28  Catherine Moore <clm@codesourcery.com>
4087
4088         * elf32-arm.c (elf32_arm_check_relocs): Set SEC_ALLOC and
4089         SEC_LOAD for dynamic relocation sections.
4090
4091 2009-01-27  Hans-Peter Nilsson  <hp@axis.com>
4092
4093         * elf32-cris.c (cris_elf_relocate_section): Use elf_hash_table
4094         (info)->tls_size, not elf_hash_table (info)->tls_sec->size for
4095         the size of local TLS data.
4096
4097 2009-01-27  Andreas Schwab  <schwab@suse.de>
4098
4099         * mach-o.c (bfd_mach_o_archive_p): Restrict the number of
4100         architectures in the archive.
4101
4102 2009-01-27  Hans-Peter Nilsson  <hp@axis.com>
4103
4104         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>
4105         <R_CRIS_32_DTPREL>: Correct relocation value.
4106
4107         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
4108         <R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
4109         symbols with non-default visibility.
4110
4111 2009-01-26  Nathan Sidwell  <nathan@codesourcery.com>
4112
4113         * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
4114         describing the trampolines.
4115         (ppc_elf_relocate_section): Update relocs to describe the
4116         trampolines.
4117
4118 2009-01-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4119
4120         * elf-hppa.h (elf_hppa_final_link_relocate): Add check to ensure that
4121         branch targets can be reached for R_PARISC_PCREL22F, R_PARISC_PCREL17F
4122         and R_PARISC_PCREL12F relocations.
4123
4124 2009-01-24  Alan Modra  <amodra@bigpond.net.au>
4125
4126         PR 6022
4127         * elflink.c (find_version_for_sym): New function split out from,
4128         but without export_dynamic test, ..
4129         (_bfd_elf_link_assign_sym_version): ..here.
4130         (_bfd_elf_export_symbol): Use it.
4131
4132 2009-01-23  Alan Modra  <amodra@bigpond.net.au>
4133
4134         * elf-bfd.h (struct elf_assign_sym_version_info): Delete.
4135         (struct elf_info_failed, struct elf_find_verdep_info): Move to..
4136         * elflink.c: ..here, somewhat modified.
4137         * elf-bfd.h (_bfd_elf_add_default_symbol, _bfd_elf_export_symbol,
4138         _bfd_elf_link_find_version_dependencies,
4139         _bfd_elf_link_assign_sym_version, _bfd_elf_link_size_reloc_section,
4140         _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol,
4141         _bfd_elf_link_sec_merge_syms, bfd_elf_link_mark_dynamic_symbol): Don't
4142         declare..
4143         * elflink.c: ..and make static here.
4144         (_bfd_elf_link_find_version_dependencies): Adjust for removal
4145         of output_bfd from struct elf_find_verdep_info.
4146         (_bfd_elf_link_assign_sym_version): Similarly adjust to use
4147         struct elf_info_failed.
4148         (bfd_elf_size_dynamic_sections): Adjust.
4149
4150 2009-01-22  Alan Modra  <amodra@bigpond.net.au>
4151
4152         PR 6832
4153         * dwarf2.c (find_line): Don't update stash->sec_info_ptr until
4154         after comp_unit_find_line call.
4155
4156 2009-01-21  Nick Clifton  <nickc@redhat.com>
4157
4158         PR 9769
4159         * vmsutil.c (vms_file_stats_name): Remove use of unsupported
4160         tm_gmtoff field in struct tm.
4161
4162 2009-01-21  Alan Modra  <amodra@bigpond.net.au>
4163
4164         * elf32-spu.h (struct spu_elf_params): Add non_ia_text.
4165         * elf32-spu.c (mark_overlay_section): Only include .text.ia.*
4166         sections in soft-icache lines unless non_ia_text.  Don't add
4167         rodata if doing so would exceed line size.
4168
4169 2009-01-19  Hans-Peter Nilsson  <hp@axis.com>
4170
4171         * elf32-cris.c (elf_cris_copy_indirect_symbol): For other symbol
4172         types than bfd_link_hash_indirect, before early return, call
4173         _bfd_elf_link_hash_copy_indirect.
4174
4175 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
4176
4177         * elf-attrs.c (vendor_set_obj_attr_contents): Support tag ordering.
4178         * elf-bfd.h (elf_backend_data): Add obj_attrs_order.
4179         * elf32-arm.c (elf32_arm_obj_attrs_order): New function.
4180         (elf_backend_obj_attrs_order): New define.
4181         * elfxx-target.h (elf_backend_obj_attrs_order): New define.
4182         (elfNN_bed): Add elf_backend_obj_attrs_order.
4183
4184 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
4185
4186         * elf-attrs.c (is_default_attr): Substitute magic numbers with macros.
4187         (obj_attr_size): Likewise.
4188         (write_obj_attribute): Likewise.
4189         (_bfd_elf_copy_obj_attributes): Likewise.
4190         (_bfd_elf_parse_attributes): Likewise.
4191         * elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define.
4192         (ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines.
4193         (ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines.
4194         (ATTR_TYPE_HAS_NO_DEFAULT): New define.
4195         * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers
4196         with macros.
4197
4198 2009-01-19  Andrew Stubbs  <ams@codesourcery.com>
4199
4200         * elf-attrs.c (is_default_attr): Support defaultless attributes.
4201         (bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type.
4202         (bfd_elf_add_obj_attr_string): Likewise.
4203         (bfd_elf_add_obj_attr_int_string): Likewise.
4204         (_bfd_elf_parse_attributes): Allow for unknown flag bits in type.
4205         * elf-bfd.h (struct obj_attribute): Document new flag bit.
4206         * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that
4207         Tag_nodefaults has no default value.
4208         (elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults
4209         comment to reflect the new state.
4210
4211 2009-01-19  Alan Modra  <amodra@bigpond.net.au>
4212
4213         PR 9695
4214         * pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC.
4215         (some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC.
4216         (adjust_z_magix): Delete dead code handling QMAGIC.
4217
4218 2009-01-16  Kai Tietz  <kai.tietz@onevision.com>
4219
4220         * coffcode.h (styp_to_sec_flags): Correct interpretation of
4221         IMAGE_SCN_MEM_DISCARDABLE.
4222
4223 2009-01-16  Alan Modra  <amodra@bigpond.net.au>
4224
4225         * Makefile.am (libbfd_la_LIBADD, libbfd_la_LDFLAGS): Substitute
4226         SHARED_LIBADD and SHARED_LDFLAGS rather than WIN32LIBADD, WIN32LDFLAGS.
4227         * configure.in (commonbfdlib): Delete.
4228         (SHARED_LDFLAGS): Rename from WIN32LDFLAGS/
4229         (SHARED_LIBADD): Rename from WIN32LIBADD.  Add pic libiberty if such
4230         is available, not just for linux.
4231         * po/SRC-POTFILES.in: Regenerate.
4232         * Makefile.in: Regenerate.
4233         * configure: Regenerate.
4234
4235 2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
4236             Julian Brown   <julian@codesourcery.com>
4237
4238         * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 71 to include all known
4239         ARM attributes in ABI 2.07.
4240         * elf32-arm.c (get_secondary_compatible_arch): New function.
4241         (set_secondary_compatible_arch): New function.
4242         (tag_cpu_arch_combine): New function.
4243         (elf32_arm_copy_one_eabi_other_attribute): Delete function.
4244         (elf32_arm_copy_eabi_other_attribute_list): Delete function.
4245         (elf32_arm_merge_eabi_attributes): Rename order_312 to order_021 to
4246         make it fit with order_01243.
4247         Add support for Tag_also_compatible_with,
4248         Tag_CPU_unaligned_access, Tag_T2EE_use, Tag_Virtualization_use,
4249         Tag_MPextension_use, Tag_nodefaults and Tag_conformance.
4250         Improve/tidy up support for Tag_CPU_raw_name, Tag_CPU_name,
4251         Tag_CPU_arch, Tag_ABI_HardFP_use, Tag_VFP_HP_extension,
4252         Tag_ABI_FP_denormal, Tag_ABI_PCS_GOT_use, Tag_ABI_align8_needed,
4253         Tag_VFP_arch and Tag_ABI_FP_16bit_format.
4254         Rework the way unknown attributes are handled.
4255         Defer errors until all attributes have been processed.
4256
4257 2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
4258
4259         * elf-attrs.c (bfd_elf_add_obj_attr_compat): Rename to
4260         bfd_elf_add_obj_attr_int_string.
4261         Read Tag_compatibility from its new location in the attribute array,
4262         rather than the attribute list.
4263         (_bfd_elf_copy_obj_attributes): bfd_elf_add_obj_attr_compat ->
4264         bfd_elf_add_obj_attr_int_string.
4265         (_bfd_elf_parse_attributes): Likewise.
4266         (_bfd_elf_merge_object_attributes): There's now only one
4267         Tag_compatibility, and it's in the array, not the list.
4268         * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 33 to include
4269         Tag_compatibility.
4270         (bfd_elf_add_obj_attr_compat): Rename to
4271         bfd_elf_add_obj_attr_int_string.
4272         (bfd_elf_add_proc_attr_compat): Rename to
4273         bfd_elf_add_proc_attr_int_string.
4274         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Explicitly don't handle
4275         Tag_compatibility.
4276
4277 2009-01-15  Douglas B Rupp  <rupp@gnat.com>
4278
4279         * Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo
4280         (BFD32_BACKENDS_CFILES): Add new file vmsutil.c
4281         (vmsutil.lo): Add dependency rule.
4282         * Makefile.in: Regenerate.
4283         * config.bfd (ia64*-*-*vms*): Add case.
4284         * configure.in (bfd_elf64_ia64_vms_vec): Add case.
4285         * configure: Regenerate.
4286         * vmsutil.c: New file.
4287         * vmsutil.h: New file.
4288         * elf-bfd.h (struct bfd_elf_special_section): Change type of
4289         attr to bfd_vma.
4290         * elfxx-ia64.c (elfNN_vms_post_process_headers,
4291         elfNN_vms_section_processing, elfNN_vms_final_write_processing,
4292         elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr,
4293         elfNN_vms_object_p): New functions
4294         * targets.c (bfd_elf64_ia64_vms_vec): New target.
4295
4296 2009-01-14  H.J. Lu  <hongjiu.lu@intel.com>
4297
4298         PR ld/9727
4299         * elflink.c (elf_gc_sweep): Exclude the group section if the
4300         first member of the section group is excluded.
4301
4302 2009-01-14  Alan Modra  <amodra@bigpond.net.au>
4303
4304         PR 9735
4305         * syms.c (_bfd_stab_section_find_nearest_line): Don't free
4306         saved filename, use bfd_alloc rather than bfd_malloc for it.
4307
4308 2009-01-13  Alan Modra  <amodra@bigpond.net.au>
4309
4310         * elf32-spu.c (spu_elf_build_stubs): Make __icache_base absolute.
4311
4312 2009-01-13  Alan Modra  <amodra@bigpond.net.au>
4313
4314         * elf32-spu.c (remove_cycles): Always set call->max_depth.
4315
4316 2009-01-12  Alan Modra  <amodra@bigpond.net.au>
4317
4318         * elf32-spu.c (spu_elf_auto_overlay): Correct vma mask.
4319
4320 2009-01-12  Alan Modra  <amodra@bigpond.net.au>
4321
4322         * elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2,
4323         num_lines_log2.
4324         (struct got_entry): Add br_addr.
4325         (struct call_info): Add priority.
4326         (struct function_info): Add lr_store and sp_adjust.
4327         (spu_elf_setup): Init line_size_log2 and num_lines_log2.
4328         (spu_elf_find_overlays): For soft-icache, mark any section within cache
4329         area as an overlay, and check that no other overlays exist.  Look up
4330         icache overlay manager entry sym.
4331         (BRA_STUBS, BRA, BRASL): Define.
4332         (enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub.
4333         (needs_ovl_stub): Adjust for soft-icache.  Return priority encoded
4334         in branch insn.
4335         (count_stub, build_stub): Support soft-icache.
4336         (build_spuear_stubs, process_stubs): Adjust build_stub call.
4337         (spu_elf_size_stubs): Size soft-icache stubs.
4338         (overlay_index): New function.
4339         (spu_elf_build_stubs): Make static.  Support soft-icache.
4340         (spu_elf_check_vma): Don't turn off auto_overlay if soft-icache.
4341         (find_function_stack_adjust): Save lr store and stack adjust insn
4342         offsets.
4343         (maybe_insert_function): Adjust find_function_stack_adjust call.
4344         (mark_functions_via_relocs): Retrieve priority.
4345         (remove_cycles): Only warn about pruned arcs when stack_analysis.
4346         (sort_calls): Sort by priority first.
4347         (mark_overlay_section): Ignore .ovl.init.
4348         (sum_stack): Only print when stack_analysis.
4349         (print_one_overlay_section): New function, extracted from..
4350         (spu_elf_auto_overlay): ..here.  Support soft-icache overlays.
4351         (spu_elf_stack_analysis): Only print when htab->stack_analysis.
4352         (spu_elf_final_link): Call spu_elf_stack_analysis for lrlive
4353         analysis.  Call spu_elf_build_stubs.
4354         (spu_elf_relocate_section): For soft-icache encode overlay index
4355         into addresses.
4356         (spu_elf_output_symbol_hook): Support soft-icache.
4357         (spu_elf_modify_program_headers: Likewise.
4358
4359         * elf32-spu.h (struct spu_elf_params): Add lrlive_analysis.  Rename
4360         num_regions to num_lines.  Add line_size and max_branch.
4361         (enum _ovly_flavour): Add ovly_soft_icache.
4362         (spu_elf_build_stubs): Delete.
4363
4364 2009-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
4365
4366         * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
4367         relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
4368
4369 2009-01-07  Hans-Peter Nilsson  <hp@axis.com>
4370
4371         * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
4372         <case R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: For a symbol defined in
4373         the program, the known offset starts at the negative size of the
4374         TLS section.
4375         <case R_CRIS_32_IE, R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL>:
4376         Similar.
4377
4378 2009-01-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4379
4380         * config.bfd: Add lm32-*-rtems*.
4381
4382 2009-01-03  H.J. Lu  <hongjiu.lu@intel.com>
4383
4384         * coff-ppc.c: Add 2009 to Copyright.
4385         * elf32-cris.c: Likewise.
4386         * elflink.c: Likewise.
4387
4388 2009-01-03  Hans-Peter Nilsson  <hp@axis.com>
4389
4390         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Rename
4391         gotplt_index to rela_plt_index.  Adjust for R_CRIS_DTPMOD entry.
4392
4393 2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>
4394
4395         PR ld/9679
4396         * elflink.c (elf_merge_st_other): New.
4397         (_bfd_elf_merge_symbol): Use it on skipped weak definitions and
4398         hide them if needed.
4399         (elf_link_add_object_symbols): Updated.
4400
4401 2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>
4402
4403         PR ld/9676
4404         * elflink.c (elf_link_add_object_symbols): Update def_dynamic,
4405         ref_dynamic and dynamic_def fields when setting def_regular
4406         to 1.
4407
4408 2009-01-02  Curtis Mackie  <curtmackevo@gmail.com>
4409
4410         PR 9682
4411         * coff-ppc.c (dump_toc): Fix up calls to fprintf without a string
4412         literal.
4413
4414 For older changes see ChangeLog-2008
4415 \f
4416 Local Variables:
4417 mode: change-log
4418 left-margin: 8
4419 fill-column: 74
4420 version-control: never
4421 End: