2011-06-24 Tristan Gingold <gingold@adacore.com>
[binutils.git] / bfd / ChangeLog
blob96297a3dda636ef673b20d44fb909c0b57b76a6a
1 2011-06-24  Tristan Gingold  <gingold@adacore.com>
3         * vms-alpha.c (alpha_vms_slurp_relocs): Add a guard for relocs in the
4         absolute section.
6 2011-06-24  Alan Modra  <amodra@gmail.com>
8         PR ld/12921
9         * elf.c (assign_file_positions_for_load_sections): Don't align
10         sh_offset for all SHT_NOBITS sections here, just .tbss sections
11         that don't get a PT_LOAD.
13 2011-06-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
15         * elf32-sh.c (sh_elf_relocate_section): Allow R_SH_TLS_LE_32 for PIE.
16         (sh_elf_check_relocs): Likewise.
18 2011-06-22  Richard Henderson  <rth@redhat.com>
20         * elf64-alpha.c (elf64_alpha_check_relocs): No dynamic reloc for
21         TPREL in a PIE image.
22         (alpha_dynamic_entries_for_reloc): Likewise.
23         (elf64_alpha_relocate_section): Allow TPREL in PIE images.
24         (elf64_alpha_relax_got_load): Likewise.
26 2011-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
28        * elf32-arm.c (elf32_arm_final_link_relocate): Allow R_ARM_TLS_LE32
29        for PIE.
31 2011-06-22  Alan Modra  <amodra@gmail.com>
33         * elflink.c (_bfd_elf_merge_symbol): Allow type changes for
34         plugin symbols.  Fix segfault on linker scrip defined syms.
36 2011-06-20  Jakub Jelinek  <jakub@redhat.com>
38         PR ld/12570
39         * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Allow no relocations
40         at all for linker created .eh_frame sections.
41         (_bfd_elf_discard_section_eh_frame): Handle linker created
42         .eh_frame sections with no relocations.
43         * elf64-x86-64.c: Include dwarf2.h.
44         (elf_x86_64_eh_frame_plt): New variable.
45         (PLT_CIE_LENGTH, PLT_FDE_LENGTH, PLT_FDE_START_OFFSET,
46         PLT_FDE_LEN_OFFSET): Define.
47         (struct elf_x86_64_link_hash_table): Add plt_eh_frame field.
48         (elf_x86_64_create_dynamic_sections): Create and fill in
49         .eh_frame section for .plt section.
50         (elf_x86_64_size_dynamic_sections): Write .plt section size
51         into .eh_frame FDE covering .plt section.
52         (elf_x86_64_finish_dynamic_sections): Write .plt section
53         start into .eh_frame FDE covering .plt section.  Call
54         _bfd_elf_write_section_eh_frame on htab->plt_eh_frame section.
55         (elf_backend_plt_alignment): Define to 4.
56         * elf32-i386.c: Include dwarf2.h.
57         (elf_i386_eh_frame_plt): New variable.
58         (PLT_CIE_LENGTH, PLT_FDE_LENGTH, PLT_FDE_START_OFFSET,
59         PLT_FDE_LEN_OFFSET): Define.
60         (struct elf_i386_link_hash_table): Add plt_eh_frame field.
61         (elf_i386_create_dynamic_sections): Create and fill in
62         .eh_frame section for .plt section.
63         (elf_i386_size_dynamic_sections): Write .plt section size
64         into .eh_frame FDE covering .plt section.
65         (elf_i386_finish_dynamic_sections): Write .plt section
66         start into .eh_frame FDE covering .plt section.  Call
67         _bfd_elf_write_section_eh_frame on htab->plt_eh_frame section.
68         (elf_backend_plt_alignment): Define to 4.
70 2011-06-19  H.J. Lu  <hongjiu.lu@intel.com>
72         * elf64-x86-64.c (elf_backend_post_process_headers): Defined
73         for x32.
75 2011-06-16  H.J. Lu  <hongjiu.lu@intel.com>
77         * elf64-x86-64.c: Include <stdarg.h> and CORE_HEADER if
78         CORE_HEADER is defined.
79         (elf_x86_64_write_core_note): New.
80         (elf_backend_write_core_note): Likewise.
82         * hosts/x86-64linux.h (uint64_t): New.
83         (user_regsx32_struct): Likewise.
84         (elf_gregx32_t): Likewise.
85         (ELF_NGREGX32): Likewise.
86         (elf_gregsetx32_t): Likewise.
87         (elf_prstatusx32): Likewise.
88         (prstatusx32_t): Likewise.
89         (user_fpregs32_struct): Removed.
90         (user_fpxregs32_struct): Likewise.
91         (user32): Likewise.
92         (elf_fpregset32_t): Likewise.
93         (elf_fpxregset32_t): Likewise.
94         (prgregset32_t): Likewise.
95         (prfpregset32_t): Likewise.
97 2011-06-16  H.J. Lu  <hongjiu.lu@intel.com>
99         * elf64-x86-64.c (elf_x86_64_grok_prstatus): Support x32.
100         (elf_x86_64_grok_psinfo): Likewise.
102 2011-06-16  Nick Clifton  <nickc@redhat.com>
104         * elf.c (elf_find_function): Fail if not provided with a symbol
105         table.
107 2011-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
109         * elf-bfd.h (elfcore_write_arm_vfp): Add prototype.
110         * elf.c (elfcore_grok_arm_vfp): New function.
111         (elfcore_grok_note): Call it to handle NT_ARM_VFP notes.
112         (elfcore_write_arm_vfp): New function.
113         (elfcore_write_register_note): Call it to handle .reg-arm-vfp.
115 2011-06-14  Richard Henderson  <rth@redhat.com>
117         * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Rename from
118         elf64_alpha_merge_ind_symbols; adjust for the generic interface.
119         (elf64_alpha_always_size_sections): Don't call
120         elf64_alpha_merge_ind_symbols.
121         (elf_backend_copy_indirect_symbol): New.
123 2011-06-14  Alan Modra  <amodra@gmail.com>
125         PR ld/12887
126         * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Check sec_info_type
127         before doing anything.
128         (_bfd_elf_discard_section_eh_frame): Likewise.
130 2011-06-14  Alan Modra  <amodra@gmail.com>
132         * Makefile.am: Formatting.
133         * Makefile.in: Regenerate.
134         * configure.in (bfd_elf64_tilegx_vec): Add elfxx-tilegx.lo.
135         * po/SRC-POTFILES.in: Regnerate.
137 2011-06-14  Alan Modra  <amodra@gmail.com>
139         * elf32-tilepro.c (tilepro_elf_size_dynamic_sections): Don't use PTR.
140         (allocate_dynrelocs, readonly_dynrelocs): Replace PTR with void *.
141         Don't handle warning symbols here.
142         * elfxx-tilegx.c (tilegx_elf_size_dynamic_sections): As above.
143         (allocate_dynrelocs, readonly_dynrelocs): As above.
145 2011-06-14  Alan Modra  <amodra@gmail.com>
147         PR ld/12851
148         * elflink.c (_bfd_elf_gc_mark_extra_sections): New function.
149         (elf_gc_sweep): Don't treat debug and sections like .comment
150         specially here.
151         (bfd_elf_gc_sections): Treat note sections as gc roots only when
152         not part of a group.  Always call gc_mark_extra_sections.
153         * elf-bfd.h (_bfd_elf_gc_mark_extra_sections): Declare.
154         * elfxx-target.h (elf_backend_gc_mark_extra_sections): Default to
155         _bfd_elf_gc_mark_extra_sections.
156         * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Call
157         _bfd_elf_gc_mark_extra_sections.
158         * elf32-tic6x.c (elf32_tic6x_gc_mark_extra_sections): Likewise.
160 2011-06-13  Nick Clifton  <nickc@redhat.com>
162         * elf32-tilepro.c (tilepro_elf_check_relocs): Delete unused local
163         variable 'local_got_offsets'.
164         * elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise.
165         (tilegx_finish_dyn): Delete unused local variable 'abi_64_p'.
167 2011-06-13  Walter Lee  <walt@tilera.com>
169         * Makefile.am (ALL_MACHINES): Add cpu-tilegx.lo and cpu-tilepro.lo.
170         (ALL_MACHINE_CFILES): Add cpu-tilegx.c and cpu-tilepro.c.
171         (BFD32_BACKENDS): Add elf32-tilegx.lo, elf32-tilepro.lo,
172         and elfxx-tilegx.lo.
173         (BFD32_BACKENDS_CFILES): Add elf32-tilegx.c elf32-tilepro.c, and
174         elfxx-tilegx.c.
175         (BFD64_BACKENDS): Add elf64-tilegx.lo.
176         (BFD64_BACKENDS_CFILES): Add elf64-tilegx.c.
177         * Makefile.in: Regenerate.
178         * arctures.c (bfd_architecture): Define bfd_arch_tilepro,
179         bfd_arch_tilegx, bfd_mach_tilepro, bfd_mach_tilegx.
180         (bfd_arch_info): Add bfd_tilegx_arch, bfd_tilepro_arch.
181         (bfd_archures_list): Add bfd_tilegx_arch, bfd_tilepro_arch.
182         bfd-in2.h: Regenerate.
183         * config.bfd: Handle tilegx-*-* and tilepro-*-*.
184         * configure.in: Handle bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
185         and bfd_elf64_tilegx_vec.
186         * configure: Regenerate.
187         * elf-bfd.h (enum elf_target_id): Define TILEGX_ELF_DATA and
188         TILEPRO_ELF_DATA.
189         * libbfd.h: Regenerate.
190         * reloc.c: Add BFD_RELOC_TILEPRO_{COPY, GLOB_DAT, JMP_SLOT,
191         RELATIVE, BROFF_X1, JOFFLONG_X1, JOFFLONG_X1_PLT, IMM8_X0,
192         IMM8_Y0, IMM8_X1, IMM8_Y1, DEST_IMM8_X1, MT_IMM15_X1, MF_IMM15_X1,
193         IMM16_X0, IMM16_X1, IMM16_X0_LO, IMM16_X1_LO, IMM16_X0_HI,
194         IMM16_X1_HI, IMM16_X0_HA, IMM16_X1_HA, IMM16_X0_PCREL,
195         IMM16_X1_PCREL, IMM16_X0_LO_PCREL, IMM16_X1_LO_PCREL,
196         IMM16_X0_HI_PCREL, IMM16_X1_HI_PCREL, IMM16_X0_HA_PCREL,
197         IMM16_X1_HA_PCREL, IMM16_X0_GOT, IMM16_X1_GOT, IMM16_X0_GOT_LO,
198         IMM16_X1_GOT_LO, IMM16_X0_GOT_HI, IMM16_X1_GOT_HI,
199         IMM16_X0_GOT_HA, IMM16_X1_GOT_HA, MMSTART_X0, MMEND_X0,
200         MMSTART_X1, MMEND_X1, SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1,
201         IMM16_X0_TLS_GD, IMM16_X1_TLS_GD, IMM16_X0_TLS_GD_LO,
202         IMM16_X1_TLS_GD_LO, IMM16_X0_TLS_GD_HI, IMM16_X1_TLS_GD_HI,
203         IMM16_X0_TLS_GD_HA, IMM16_X1_TLS_GD_HA, IMM16_X0_TLS_IE,
204         IMM16_X1_TLS_IE, IMM16_X0_TLS_IE_LO, IMM16_X1_TLS_IE_LO,
205         IMM16_X0_TLS_IE_HI, IMM16_X1_TLS_IE_HI, IMM16_X0_TLS_IE_HA,
206         IMM16_X1_TLS_IE_HA, TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
207         Add BFD_RELOC_TILEGX_{HW0, HW1, HW2, HW3, HW0_LAST, HW1_LAST,
208         HW2_LAST, COPY, GLOB_DAT, JMP_SLOT, RELATIVE, BROFF_X1,
209         JUMPOFF_X1, JUMPOFF_X1_PLT, IMM8_X0, IMM8_Y0, IMM8_X1, IMM8_Y1,
210         DEST_IMM8_X1, MT_IMM14_X1, MF_IMM14_X1, MMSTART_X0, MMEND_X0,
211         SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1, IMM16_X0_HW0,
212         IMM16_X1_HW0, IMM16_X0_HW1, IMM16_X1_HW1, IMM16_X0_HW2,
213         IMM16_X1_HW2, IMM16_X0_HW3, IMM16_X1_HW3, IMM16_X0_HW0_LAST,
214         IMM16_X1_HW0_LAST, IMM16_X0_HW1_LAST, IMM16_X1_HW1_LAST,
215         IMM16_X0_HW2_LAST, IMM16_X1_HW2_LAST, IMM16_X0_HW0_PCREL,
216         IMM16_X1_HW0_PCREL, IMM16_X0_HW1_PCREL, IMM16_X1_HW1_PCREL,
217         IMM16_X0_HW2_PCREL, IMM16_X1_HW2_PCREL, IMM16_X0_HW3_PCREL,
218         IMM16_X1_HW3_PCREL, IMM16_X0_HW0_LAST_PCREL,
219         IMM16_X1_HW0_LAST_PCREL, IMM16_X0_HW1_LAST_PCREL,
220         IMM16_X1_HW1_LAST_PCREL, IMM16_X0_HW2_LAST_PCREL,
221         IMM16_X1_HW2_LAST_PCREL, IMM16_X0_HW0_GOT, IMM16_X1_HW0_GOT,
222         IMM16_X0_HW1_GOT, IMM16_X1_HW1_GOT, IMM16_X0_HW2_GOT,
223         IMM16_X1_HW2_GOT, IMM16_X0_HW3_GOT, IMM16_X1_HW3_GOT,
224         IMM16_X0_HW0_LAST_GOT, IMM16_X1_HW0_LAST_GOT,
225         IMM16_X0_HW1_LAST_GOT, IMM16_X1_HW1_LAST_GOT,
226         IMM16_X0_HW2_LAST_GOT, IMM16_X1_HW2_LAST_GOT, IMM16_X0_HW0_TLS_GD,
227         IMM16_X1_HW0_TLS_GD, IMM16_X0_HW1_TLS_GD, IMM16_X1_HW1_TLS_GD,
228         IMM16_X0_HW2_TLS_GD, IMM16_X1_HW2_TLS_GD, IMM16_X0_HW3_TLS_GD,
229         IMM16_X1_HW3_TLS_GD, IMM16_X0_HW0_LAST_TLS_GD,
230         IMM16_X1_HW0_LAST_TLS_GD, IMM16_X0_HW1_LAST_TLS_GD,
231         IMM16_X1_HW1_LAST_TLS_GD, IMM16_X0_HW2_LAST_TLS_GD,
232         IMM16_X1_HW2_LAST_TLS_GD, IMM16_X0_HW0_TLS_IE,
233         IMM16_X1_HW0_TLS_IE, IMM16_X0_HW1_TLS_IE, IMM16_X1_HW1_TLS_IE,
234         IMM16_X0_HW2_TLS_IE, IMM16_X1_HW2_TLS_IE, IMM16_X0_HW3_TLS_IE,
235         IMM16_X1_HW3_TLS_IE, IMM16_X0_HW0_LAST_TLS_IE,
236         IMM16_X1_HW0_LAST_TLS_IE, IMM16_X0_HW1_LAST_TLS_IE,
237         IMM16_X1_HW1_LAST_TLS_IE, IMM16_X0_HW2_LAST_TLS_IE,
238         IMM16_X1_HW2_LAST_TLS_IE, TLS_DTPMOD64, TLS_DTPOFF64, TLS_TPOFF64,
239         TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
240         * targets.c (bfd_elf32_tilegx_vec): Declare.
241         (bfd_elf32_tilepro_vec): Declare.
242         (bfd_elf64_tilegx_vec): Declare.
243         (bfd_target_vector): Add bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
244         and bfd_elf64_tilegx_vec.
245         * cpu-tilegx.c: New file.
246         * cpu-tilepro.c: New file.
247         * elf32-tilepro.h: New file.
248         * elf32-tilepro.c: New file.
249         * elf32-tilegx.c: New file.
250         * elf32-tilegx.h: New file.
251         * elf64-tilegx.c: New file.
252         * elf64-tilegx.h: New file.
253         * elfxx-tilegx.c: New file.
254         * elfxx-tilegx.h: New file.
256 2011-06-13  Alan Modra  <amodra@gmail.com>
258         * linker.c (bfd_link_hash_traverse): Follow warning symbol link.
259         (_bfd_generic_link_write_global_symbol, fix_syms): Don't handle
260         warning symbols here.
261         * elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Likewise.
262         * elf32-arm.c (allocate_dynrelocs_for_symbol,
263         elf32_arm_readonly_dynrelocs): Likewise.
264         * elf32-bfin.c (bfin_discard_copies): Likewise.
265         * elf32-cris.c (elf_cris_adjust_gotplt_to_got,
266         elf_cris_discard_excess_dso_dynamics,
267         elf_cris_discard_excess_program_dynamics): Likewise.
268         * elf32-hppa.c (allocate_plt_static, allocate_dynrelocs,
269         clobber_millicode_symbols, readonly_dynrelocs): Likewise.
270         * elf32-i370.c (i370_elf_adjust_dynindx): Likewise.
271         * elf32-i386.c (elf_i386_allocate_dynrelocs,
272         elf_i386_readonly_dynrelocs): Likewise.
273         * elf32-lm32.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
274         * elf32-m32c.c (m32c_relax_plt_check, m32c_relax_plt_realloc): Likewise.
275         * elf32-m32r.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
276         * elf32-m68k.c (elf_m68k_discard_copies): Likewise.
277         * elf32-microblaze.c (allocate_dynrelocs): Likewise.
278         * elf32-ppc.c (allocate_dynrelocs, maybe_set_textrel): Likewise.
279         * elf32-s390.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
280         * elf32-score.c (score_elf_sort_hash_table_f): Likewise.
281         * elf32-score7.c (score_elf_sort_hash_table_f): Likewise.
282         * elf32-sh.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
283         * elf32-tic6x.c (elf32_tic6x_allocate_dynrelocs,
284         elf32_tic6x_readonly_dynrelocs): Likewise.
285         * elf32-vax.c (elf_vax_discard_copies): Likewise.
286         * elf32-xstormy16.c (xstormy16_relax_plt_check,
287         xstormy16_relax_plt_realloc): Likewise.
288         * elf32-xtensa.c (elf_xtensa_allocate_dynrelocs): Likewise.
289         * elf64-alpha.c (elf64_alpha_output_extsym,
290         elf64_alpha_calc_got_offsets_for_symbol,
291         elf64_alpha_calc_dynrel_sizes, elf64_alpha_size_rela_got_1): Likewise.
292         * elf64-hppa.c (elf64_hppa_mark_exported_functions,
293         allocate_global_data_opd, elf64_hppa_mark_milli_and_exported_functions,
294         elf_hppa_unmark_useless_dynamic_symbols,
295         elf_hppa_remark_useless_dynamic_symbols): Likewise.
296         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref, func_desc_adjust,
297         adjust_opd_syms, adjust_toc_syms, allocate_dynrelocs,
298         readonly_dynrelocs, merge_global_got, reallocate_got,
299         undo_symbol_twiddle): Likewise.
300         * elf64-s390.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
301         * elf64-sh64.c (sh64_elf64_discard_copies): Likewise.
302         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs,
303         elf_x86_64_readonly_dynrelocs): Likewise.
304         * elflink.c (elf_link_renumber_hash_table_dynsyms,
305         elf_link_renumber_local_hash_table_dynsyms, _bfd_elf_export_symbol,
306         _bfd_elf_link_find_version_dependencies,
307         _bfd_elf_link_assign_sym_version, _bfd_elf_adjust_dynamic_symbol,
308         _bfd_elf_link_sec_merge_syms, elf_adjust_dynstr_offsets,
309         elf_collect_hash_codes, elf_collect_gnu_hash_codes,
310         elf_renumber_gnu_hash_syms, elf_gc_sweep_symbol,
311         elf_gc_propagate_vtable_entries_used,
312         elf_gc_smash_unused_vtentry_relocs, bfd_elf_gc_mark_dynamic_ref_symbol,
313         elf_gc_allocate_got_offsets): Likewise.
314         * elfnn-ia64.c (elfNN_ia64_global_dyn_info_free,
315         elfNN_ia64_global_dyn_sym_thunk): Likewise.
316         * elfxx-mips.c (mips_elf_check_symbols, mips_elf_output_extsym,
317         mips_elf_sort_hash_table_f, allocate_dynrelocs): Likewise.
318         * elfxx-sparc.c (allocate_dynrelocs, readonly_dynrelocs): Likewise.
319         * i386linux.c (linux_tally_symbols): Likewise.
320         * m68klinux.c (linux_tally_symbols): Likewise.
321         * sparclinux.c (linux_tally_symbols): Likewise.
322         * sunos.c (sunos_scan_dynamic_symbol): Likewise.
323         * xcofflink.c (xcoff_post_gc_symbol): Likewise.
325         * elflink.c (elf_link_output_extsym): Make it a bfd_hash_traverse
326         function.  Update all callers.
327         * aoutx.h (aout_link_write_other_symbol): Likewise.
328         * pdp11.c (aout_link_write_other_symbol): Likewise.
329         * cofflink.c (_bfd_coff_write_global_sym): Likewise.
330         * ecoff.c (ecoff_link_write_external): Likewise.
331         * xcofflink.c (xcoff_write_global_symbol): Likewise.
332         * vms-alpha.c (alpha_vms_link_output_symbol): Likewise.  Handle
333         warning symbols.
334         * ecoff.c (ecoff_link_hash_traverse): Delete.
335         * coff-ppc.c (ppc_bfd_coff_final_link): Use bfd_hash_traverse for
336         _bfd_coff_write_global_sym.
337         * libcoff-in.h (_bfd_coff_write_global_sym): Update prototype.
338         * libcoff.h: Regenerate.
340 2011-06-10  Nick Clifton  <nickc@redhat.com>
342         * elflink.c (_bfd_elf_link_create_dynamic_sections): If the
343         backend does not provide a function for creating dynamic sections
344         then fail.
345         (bfd_elf_final_link): Issue a warning message if a dynamic section
346         has the SHT_NOTE type.
347         (bfd_elf_final_link): Do not look for dynamic strings in a section
348         that does not have the SHT_STRTAB type or the name .dynstr.
349         * elf32-arm.c (elf32_arm_finish_dynamic_sections): Fail if the got
350         section is not in the output binary.
351         * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Likewise.
353 2011-06-09  Tristan Gingold  <gingold@adacore.com>
355         * elfnn-ia64.c (elfNN_ia64_relax_section, elfNN_ia64_choose_gp)
356         (elfNN_ia64_relocate_section, elfNN_vms_object_p): Remove trailing
357         spaces.
359 2011-06-09  Tristan Gingold  <gingold@adacore.com>
361         * bfd.c (bfd_get_sign_extend_vma): Handle aixcoff.
363 2011-06-09  Nick Clifton  <nickc@redhat.com>
365         PR ld/12845
366         * elf.c (_bfd_elf_init_private_section_data): Add an assertion
367         that the output section has an allocated bfd_elf_section_data
368         structure.
369         * elfxx-mips.c (mips_elf_check_symbols): Do not create a stub for
370         symbols in sections that have been removed by garbage collection.
372 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
374         * elf64-x86-64.c (elf_x86_64_check_relocs): Allow R_X86_64_64
375         relocations in SEC_DEBUGGING sections when building shared
376         libraries.
378 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
380         PR ld/12851
381         * elflink.c (elf_gc_sweep): Don't check SHT_NOTE sections here.
382         (bfd_elf_gc_sections): Also check SHT_NOTE sections.
384 2011-06-08  Tristan Gingold  <gingold@adacore.com>
386         * makefile.vms (OBJS): Add elfxx-ia64.obj
387         Remove vax case.
389 2011-06-08  Alan Modra  <amodra@gmail.com>
391         * aix386-core.c, * cisco-core.c, * hpux-core.c, * osf-core.c,
392         * sco5-core.c: Init match_priority field.
394 2011-06-08  Alan Modra  <amodra@gmail.com>
396         * elflink.c (_bfd_elf_archive_symbol_lookup): Follow warning and
397         indirect links here.
399 2011-06-07  Joel Brobecker  <brobecker@adacore.com>
401         * irix-core.c (irix_core_vec): Add match_priority field.
403 2011-06-06  Alan Modra  <amodra@gmail.com>
405         * targets.c (bfd_target): Make ar_max_namelen an unsigned char.
406         Add match_priority.
407         * configure.in: Bump bfd version.
408         * elfcode.h (elf_object_p): Delete hacks preventing match of
409         EM_NONE and ELFOSABI_NONE targets when a better match exists.
410         * elfxx-target.h (elf_match_priority): Define and use.
411         * format.c (bfd_check_format_matches): Use target match_priority
412         to choose best of multiple matching targets.  In cases with multiple
413         matches rerun _bfd_check_format if we don't choose the last match.
414         * aout-adobe.c, * aout-arm.c, * aout-target.h, * aout-tic30.c,
415         * binary.c, * bout.c, * coff-alpha.c, * coff-i386.c, * coff-i860.c,
416         * coff-i960.c, * coff-ia64.c, * coff-mips.c, * coff-or32.c,
417         * coff-ppc.c, * coff-rs6000.c, * coff-sh.c, * coff-tic30.c,
418         * coff-tic54x.c, * coff-x86_64.c, * coff64-rs6000.c, * coffcode.h,
419         * i386msdos.c, * i386os9k.c, * ieee.c, * ihex.c, * mach-o-target.c,
420         * mipsbsd.c, * mmo.c, * nlm-target.h, * oasys.c, * pdp11.c,
421         * pe-mips.c, * pef.c, * plugin.c, * ppcboot.c, * som.c, * srec.c,
422         * tekhex.c, * trad-core.c, * verilog.c, * versados.c, * vms-alpha.c,
423         * vms-lib.c, * xsym.c: Init match_priority field.
424         * configure: Regenerate.
425         * bfd-in2.h: Regenerate.
427 2011-06-04  H.J. Lu  <hongjiu.lu@intel.com>
429         PR ld/12842
430         * elfcode.h (elf_object_p): Revert the last change.
432 2011-06-04  Alan Modra  <amodra@gmail.com>
434         * archures.c (bfd_arch_get_compatible): If one arch is unknown,
435         return the other arch.
436         * elfcode.h (elf_object_p): Allow explicit match to generic ELF
437         target.
439 2011-06-03  Bertram Felgenhauer  <bertram.felgenhauer@gmail.com>
441         PR ld/12682
442         * hash.c (higher_primer_number): Add more, small, prime numbers.
443         (bfd_hash_set_default_size): Likewise.
445 2011-06-02  Nick Clifton  <nickc@redhat.com>
447         * coff-mcore.c: Fix spelling typo.
448         * coff-stgo32.c: Likewise.
449         * elf32-arm.c: Likewise.
450         * elf32-avr.c: Likewise.
451         * elf-m68hc1x.c: Likewise.
452         * elf32-mcore.c: Likewise.
453         * elf32-mep.c: Likewise.
454         * elf32-mt.c: Likewise.
455         * elf32-ppc.c: Likewise.
456         * elf32-xtensa.c: Likewise.
457         * elf64-ppc.c: Likewise.
458         * elfxx-mips.c: Likewise.
459         * netbsd.h: Likewise.
460         * nlmcode.h: Likewise.
461         * vms-alpha.c: Likewise.
462         * po/bfd.pot: Regenerate.
463         * po/SRC-POTFILES.in: Regenerate.
465 2011-06-01  DJ Delorie  <dj@redhat.com>
467         * config.bfd: Add bfd_elf32_rx_be_ns_vec.
468         * target.c: Likewise.
469         * configure.in: Likewise.
470         * configure.in: Regenerate.
471         * elf32-rx.c: Add elf32-rx-be-ns target.
472         (rx_elf_object_p): Never allow the be-ns target by default,
473         only allow it if the user requests it.
475 2011-06-01  H.J. Lu  <hongjiu.lu@intel.com>
477         * elf32-i386.c (elf_i386_size_dynamic_sections): Properly warn
478         relocation in readonly section in a shared object.
479         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Likewise.
481 2011-05-31  Nick Clifton  <nickc@redhat.com>
483         * archive.c (adjust_relative_path): Fix comment to prevent it
484         corrupting the auto-generated bfd.h.
486 2011-05-31  Paul Brook  <paul@codesourcery.com>
488         * elf32-arm.c (elf32_arm_final_link_relocate): Only do bl conversion
489         for known functions.
490         (elf32_arm_swap_symbol_in): Only set ST_BRANCH_TO_ARM for function
491         symbols.
493 2011-05-31  Paul Brook  <paul@codesourcery.com>
495         * elf32-arm.c (arm_stub_is_thumb): Add
496         arm_stub_long_branch_v4t_thumb_tls_pic.
497         (elf32_arm_final_link_relocate): TLS stubs are always ARM.
498         Handle Thumb stubs.
500 2011-05-27  Nick Clifton  <nickc@redhat.com>
502         PR binutils/12710
503         * archive.c (_bfd_get_elt_at_filepos): Set correct error value if
504         unable to read a file pointed to by an entry in a thin archive.
505         (adjust_relative_path): Use lrealpath to canonicalize paths.
506         Handle the case where the reference path is above the current
507         path in the directory tree.
509 2011-05-26  H.J. Lu  <hongjiu.lu@intel.com>
511         PR ld/12809
512         * elf64-x86-64.c (elf_x86_64_relocate_section): Handle
513         R_X86_64_TPOFF64 in executable.
515 2011-05-26  Alan Modra  <amodra@gmail.com>
517         * elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Remove most of comment.
518         * elflink.c (_bfd_elf_symbol_refs_local_p): Expand
519         local_protected comment.
521 2011-05-25  Tristan Gingold  <gingold@adacore.com>
523         * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec)
524         (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec)
525         (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo
526         * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo
527         (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c
528         (elf32-ia64.c): Created from elfnn-ia64.c
529         (elf64-ia64.c): Likewise.
530         * elfxx-ia64.h: New file.
531         * elfxx-ia64.c: Split with elfnn-ia64.c.  Keep only the following
532         functions.Includes elfxx-ia64.h.
533         (elfNN_ia64_reloc): Renames to ia64_elf_reloc.  Adjust error message.
534         (IA64_HOWTO): Adjust.
535         (lookup_howto): Renames to ia64_elf_lookup_howto.  Make it public.
536         (elfNN_ia64_reloc_type_lookup): Renames to
537         ia64_elf_reloc_type_lookup. Make it public. Adjust calls.
538         (elfNN_ia64_reloc_name_lookup): Renames to
539         ia64_elf_reloc_name_lookup. Make it public.
540         (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br.  Make it public.
541         (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it
542         public.
543         (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov.
544         Move it and make it public.  Move prototype to elfxx-ia64.h
545         (elfNN_ia64_install_value): Renames to ia64_elf_install_value.
546         Move prototype to elfxx-ia64.h
547         * elfnn-ia64.c: New file, split from elfxx-ia64.c.
548         (elfNN_ia64_info_to_howto): Adjust calls.
549         (elfNN_ia64_relax_section): Adjust calls.
550         (count_dyn_reloc): Fix typo.
551         (elfNN_ia64_relocate_section): Adjust calls.
552         (elfNN_ia64_finish_dynamic_symbol): Likewise.
553         (bfd_elfNN_bfd_reloc_type_lookup)
554         (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
555         * configure: Regenerate.
556         * Makefile.in: Regenerate.
558 2011-05-23  DJ Delorie  <dj@redhat.com>
560         * elf32-rx.c (rx_elf_object_p): When reading an RX object in, undo
561         the vma/lma swapping done in elf32_rx_modify_program_headers.
563 2011-05-23  Nick Clifton  <nickc@redhat.com>
565         * elf-m10300.c (mn10300_elf_mkobject): New function.
566         (bfd_elf32_mkobject): Define.
568 2011-05-23  Alan Modra  <amodra@gmail.com>
570         * elf-bfd.h: Comment typo fix.
571         * elf32-ppc.c (struct ppc_elf_dyn_relocs): Delete.  Replace with
572         struct elf_dyn_relocs throughout.
573         * elf64-ppc.c (struct ppc_dyn_relocs): Likewise.
575 2011-05-23  Alan Modra  <amodra@gmail.com>
577         * elf32-frv.c: Use info->callbacks->einfo throughout file in linker
578         functions rather than warning callback or _bfd_error_handler.
579         * elf32-ppc.c: Likewise.
580         * elf64-ppc.c: Likewise.
581         * elf32-ppc.c (ppc_elf_tls_optimize): Use %H in __tls_get_addr lost
582         arg error.
583         * elf64-ppc.c (ppc64_elf_tls_optimize): Likewise.
585 2011-05-23  Alan Modra  <amodra@gmail.com>
587         PR 12763
588         * elf.c (assign_file_positions_for_load_sections): Set sh_offset for
589         .tbss, and page align same for all SHT_NOBITS sections.
591 2011-05-21  Alan Modra  <amodra@gmail.com>
593         PR 12763
594         * elf.c (_bfd_elf_make_section_from_shdr): Set up TLS section LMAs
595         from PT_TLS header.
596         (_bfd_elf_map_sections_to_segments): Don't create a final PT_LOAD
597         segment if just for .tbss.
598         (assign_file_positions_for_load_sections): Don't report "can't
599         allocate in segment" errors for .tbss.
600         (assign_file_positions_for_non_load_sections): Don't set p_filesz
601         from SHT_NOBITS section filepos.
603 2011-05-20  Bernd Schmidt  <bernds@codesourcery.com>
605         * elf32-tic6x.c (elf32_tic6x_howto_table): Add entries for
606         R_C6000_PCR_H16 and R_C6000_PCR_L16.
607         (elf32_tic6x_relocate_section): Handle them.
609 2011-05-18  Nick Clifton  <nickc@redhat.com>
611         PR ld/12761
612         * elflink.c (elf_link_add_object_symbols): Process .gnu.warning
613         sections when building shared libraries.
615 2011-05-18  Rafał Krypa  <r.krypa@samsung.com>
617         PR ld/12778
618         * elf32-arm.c (elf32_arm_gc_sweep_hook): Use the computed dynamic
619         reloc pointer.
621 2011-05-18  Tristan Gingold  <gingold@adacore.com>
623         * xcofflink.c (xcoff_link_add_symbols): Handle C_DWARF symbols.
624         (xcoff_sweep): Always keep dwarf sections.
625         (xcoff_link_input_bfd): Handle dwarf symbols and sections.
627 2011-05-18  Tristan Gingold  <gingold@adacore.com>
629         * libxcoff.h (struct xcoff_dwsect_name): New type.
630         (XCOFF_DWSECT_NBR_NAMES): New macro.
631         (xcoff_dwsect_names): Declare.
632         * coffcode.h (sec_to_styp_flags): Handle xcoff dwarf sections.
633         (styp_to_sec_flags): Ditto.
634         (coff_new_section_hook): Ditto.
635         (coff_slurp_symbol_table): Handle C_DWARF and C_INFO.
636         * coff-rs6000.c (xcoff_dwsect_name): New variable.
638 2011-05-17  Tomohiro Kashiwada  <kikairoya@gmail.com>
640         PR ld/12759
641         * elf32-rx.c (ignore_lma): New variable.
642         (bfd_elf32_rx_set_target_flags): Add ignore_lma parameter.
643         (rx_modify_program_headers): Only copy the LMA into the VMA if
644         ignore_lma is true.
646 2011-05-17  Alan Modra  <amodra@gmail.com>
648         PR ld/12760
649         * coff-aux.c (coff_m68k_aux_link_add_one_symbol): Adjust "notice" call.
650         * elflink.c (elf_link_add_object_symbols): Likewise.
651         * linker.c (_bfd_generic_link_add_one_symbol): Likewise.
653 2011-05-16  Alan Modra  <amodra@gmail.com>
655         * linker.c (_bfd_generic_link_add_one_symbol): Don't init u.undef.weak.
657 2011-05-15  Richard Sandiford  <rdsandiford@googlemail.com>
659         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Record both local and
660         global GOT entries for GOT_PAGE relocations against global symbols.
662 2011-05-13  Bernd Schmidt  <bernds@codesourcery.com>
664         * config.bfd (tic6x-*-elf, tic6x-*-uclinux): New.
665         (tic6x-*-*): Replaced by these.
666         * elf32-tic6x.c (elf32_tic6x_set_osabi): New static function.
667         (elf32_tic6x_check_relocs): Create dynamic sections if -shared.
668         (elf_backend_relocs_compatible, elf_backend_post_process_headers):
669         Define.
670         (elf32_bed, TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, TARGET_BIG_SYM,
671         TARGET_BIG_NAME, ELF_OSABI): Redefine twice, and include
672         "elf32-target.h" two more times.
673         * configure.in: Handle bfd_elf32_tic6x_linux_be_vec,
674         bfd_elf32_tic6x_linux_le_vec, bfd_elf32_tic6x_elf_be_vec and
675         bfd_elf32_tic6x_elf_le_vec.
676         * configure: Regenerate.
678 2011-05-13  Jan Beulich  <jbeulich@novell.com>
680         * config.bfd: Add targets x86_64-*-pe and x86_64-*-pep.
682 2011-05-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
684         * config.in: Regenerated.
685         * configure: Regenerated.
686         * configure.in: New tests for HAVE_PRPSINFO_T_PR_PID,
687         HAVE_PRPSINFO32_T_PR_PID, HAVE_PSINFO_T_PR_PID and
688         HAVE_PSINFO32_T_PR_PID.
689         * elf.c (elfcore_grok_psinfo): Protect reading psinfo.pr_pid by
690         HAVE_PRPSINFO_T_PR_PID, HAVE_PRPSINFO32_T_PR_PID, HAVE_PSINFO_T_PR_PID
691         and HAVE_PSINFO32_T_PR_PID.
692         * hosts/x86-64linux.h (HAVE_PRPSINFO32_T_PR_PID): New redefinition.
694 2011-05-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
696         * elf.c (elfcore_grok_psinfo): Initialize CORE_PID for both native and
697         32bit psinfo.
698         * elf32-ppc.c (ppc_elf_grok_psinfo): Initialize core_pid.
699         * elf64-ppc.c (ppc64_elf_grok_psinfo): Likewise.
701 2011-05-09  Paul Brook  <paul@codesourcery.com>
703         * bfd-in.h (elf32_tic6x_fix_exidx_coverage): Add prototype.
704         * bfd-in2.h: Regenerate.
705         * elf32-tic6x.c: Include limits.h.
706         (tic6x_unwind_edit_type, tic6x_unwind_table_edit,
707         _tic6x_elf_section_data): New.
708         (elf32_tic6x_section_data): Define.
709         (elf32_tic6x_new_section_hook): Allocate target specific data.
710         (elf32_tic6x_add_unwind_table_edit): New function.
711         (get_tic6x_elf_section_data, elf32_tic6x_adjust_exidx_size,
712         elf32_tic6x_insert_cantunwind_after, elf32_tic6x_add_low31,
713         elf32_tic6x_copy_exidx_entry): New functions.
714         (elf_backend_write_section): Define.
716 2011-05-09  Paul Brook  <paul@codesourcery.com>
718         * elf32-tic6x.c (is_tic6x_elf_unwind_section_name,
719         elf32_tic6x_fake_sections): New functions.
720         (elf_backend_fake_sections): Define.
722 2011-05-09  Paul Brook  <paul@codesourcery.com>
724         * elf32-tic6x.c (elf32_tic6x_gc_mark_extra_sections): New function.
725         (elf_backend_gc_mark_extra_sections): Define.
727 2011-05-07  Dave Korn  <dave.korn.cygwin@gmail.com>
729         PR ld/12365
730         * cofflink.c (bfd_coff_link_input_bfd): Check for and warn about
731         references to symbols defined in discarded sections.
733 2011-05-07  Dave Korn  <dave.korn.cygwin@gmail.com>
735         PR ld/12365
736         * coffgen.c (coff_write_symbol): Assume input section is its own
737         output section if output_section member not set.
738         (coff_write_alien_symbol): Likewise.
740 2011-05-07  H.J. Lu  <hongjiu.lu@intel.com>
742         PR ld/12730
743         * elf.c (_bfd_elf_section_offset): Check SEC_ELF_REVERSE_COPY.
745         * elflink.c (elf_link_input_bfd): Reverse copy .ctors/.dtors
746         sections if needed.
748         * section.c (SEC_ELF_REVERSE_COPY): New.
749         * bfd-in2.h: Regenerated.
751 2011-05-07  Anders Kaseorg  <andersk@ksplice.com>
753         PR 12739
754         * libbfd.c (bfd_get_8, bfd_get_signed_8): Use const cast.
755         * bfd-in2.h: Regenerate.
757 2011-05-06  Tristan Gingold  <gingold@adacore.com>
759         * vms-alpha.c (evax_section_flags): Remove SEC_IN_MEMORY.
760         (_bfd_vms_slurp_egsd): Rename old_flags to vms_flags.  Handle
761         any code section.  Add comments.
762         (alpha_vms_object_p): Use void * instead of PTR.
763         (alpha_vms_create_eisd_for_section): Fix test for setting DZRO.
764         (build_module_list): Guard against no DST section.  Add comments.
765         (alpha_vms_link_output_symbol): Discard undefined symbols.
766         (alpha_vms_get_section_contents): Simply memcpy if the section was
767         already loaded.  Fix typo.
768         (vms_new_section_hook): Use void * instead of PTR.
769         (vms_alpha_vec): Ditto.
771 2011-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
773         * elf32-arm.c (cortex_a8_erratum_scan): If the stub is a Thumb
774         branch to a PLT entry, redirect it to the PLT's Thumb entry point.
776 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
778         * elf32-tic6x.c (elf32_tic6x_final_link): New function.
779         (elf32_tic6x_merge_attributes): Do not warn for PID or PIC
780         mismatch.  Choose the lower of the two values.
781         (bfd_elf32_bfd_final_link): New macro.
783 2011-04-28  Tristan Gingold  <gingold@adacore.com>
785         * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Adjust for x_file.
786         (bfd_xcoff_swap_aux_out): Ditto.
787         * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Ditto.
788         (bfd_xcoff64_swap_aux_out): Ditto.
790 2011-05-04  Alan Modra  <amodra@gmail.com>
792         PR ld/12727
793         * elf64-ppc.c (ppc_build_one_stub <ppc_sub_plt_call>): Clear
794         was_undefined on dot-symbols.
796 2011-05-03  Paul Brook  <paul@codesourcery.com>
799         * elf32-tic6x.c (elf32_tic6x_howto_table,
800         elf32_tic6x_howto_table_rel, (elf32_tic6x_gc_sweep_hook,
801         elf32_tic6x_relocate_section, elf32_tic6x_check_relocs):
802         Add R_C6000_EHTYPE.
804 2011-05-01  Alan Modra  <amodra@gmail.com>
806         PR ld/12718
807         * elf32-i386.c (elf_i386_check_relocs): Ensure dynobj set before
808         creating ifunc sections.
809         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
811 2011-04-30  H.J. Lu  <hongjiu.lu@intel.com>
813         * elf64-x86-64.c (elf_x86_64_merge_symbol): Correct parameter
814         names.
816 2011-04-28  Tom Tromey  <tromey@redhat.com>
818         * bfdio.c (memory_bstat): Pass correct size to memset.
820 2011-04-28  Mike Frysinger  <vapier@gentoo.org>
822         * dwarf2.c (dwarf_debug_sections): Mark const.
823         * elf.c (special_sections): Likewise.
824         * libbfd-in.h (dwarf_debug_sections): Likewise.
825         * libbfd.h: Regenerate.
827 2011-04-26  Kai Tietz  <ktietz@redhat.com>
829         * coffcode.h (sec_to_styp_flags): Allow linkonce for
830         debugging sections.
832 2011-04-26  Tristan Gingold  <gingold@adacore.com>
834         * coff64-rs6000.c: Convert to ISO-C.  Remove PARAMS and PTR macros.
836 2011-04-24  Alan Modra  <amodra@gmail.com>
838         PR ld/12365
839         PR ld/12696
840         * coff-aux.c (coff_m68k_aux_link_add_one_symbol): Update "notice" call.
841         * linker.c (_bfd_link_hash_newfunc): Clear bitfields.
842         (_bfd_generic_link_add_one_symbol): Update "notice" call.
843         * elflink.c (_bfd_elf_merge_symbol): Don't skip weak redefs when
844         it is a redef of an IR symbol in a real BFD.
846 2011-04-22  H.J. Lu  <hongjiu.lu@intel.com>
848         * elf32-i386.c (elf_i386_readonly_dynrelocs): Warn relocation
849         in readonly section in a shared object.
850         (elf_i386_size_dynamic_sections): Likewise.
851         * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
852         (elf_x86_64_size_dynamic_sections): Likewise.
854 2011-04-21  H.J. Lu  <hongjiu.lu@intel.com>
856         PR ld/12694
857         * elf32-i386.c (elf_i386_readonly_dynrelocs): Skip local IFUNC
858         symbols.
859         * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
861 2011-04-21  H.J. Lu  <hongjiu.lu@intel.com>
863         * elf32-i386.c (elf_i386_finish_dynamic_symbol): Return false
864         on dynamic symbol error.
865         * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
867 2011-04-20  Tristan Gingold  <gingold@adacore.com>
869         * config.bfd (alpha*-*-*vms*, ia64*-*-*vms*): Define targ_selvecs.
871 2011-04-20  Alan Modra  <amodra@gmail.com>
873         * hash.c (bfd_default_hash_table_size): Make it an unsigned long.
874         (bfd_hash_table_init_n): Overflow checking.
875         (bfd_hash_set_default_size): Return current size.  Take unsigned long
876         arg.  Add 65537 to hash_size primes.
877         * bfd-in.h (bfd_hash_set_default_size): Update prototype.
878         * bfd-in2.h: Regenerate.
880 2011-04-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
882         * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Fix +1 overrun of
883         memmove elements.
885 2011-04-20  Alan Modra  <amodra@gmail.com>
887         * libbfd.c (bfd_log2): Do return rounded up value.
888         * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Replace bfd_log2
889         call with expanded old round down version of the function.
891         * archive.c (_bfd_get_elt_at_filepos): Don't release n_nfd.
892         * elflink.c (elf_link_add_object_symbols): Delete redundant code.
894 2011-04-20  Alan Modra  <amodra@gmail.com>
896         PR ld/12365
897         * elfcode.h (elf_slurp_symbol_table): Put common plugin IR symbols
898         in their own common section.
899         * elflink.c (elf_link_add_object_symbols): Likewise.
900         * linker.c (generic_link_check_archive_element): Don't lose flags
901         if common section is pre-existing.
902         (_bfd_generic_link_add_one_symbol): Likewise.
904 2011-04-20  Alan Modra  <amodra@gmail.com>
906         PR ld/12365
907         * elflink.c (_bfd_elf_merge_symbol): Update multiple_common calls.
908         * linker.c (_bfd_generic_link_add_one_symbol): Likewise.  Call
909         multiple_definition regardless of allow_multiple_definition.
910         * simple.c (simple_dummy_multiple_definition): Update.
911         * xcofflink.c (xcoff_link_add_symbols): Update multiple_definition
912         calls.
914 2011-04-18  Tristan Gingold  <gingold@adacore.com>
916         * coff-rs6000.c: Convert to ISO-C.  Remove PARAMS macro.
918 2011-04-18  Alan Modra  <amodra@gmail.com>
920         PR ld/12365
921         PR ld/12672
922         * bfd.c (BFD_PLUGIN): Define.
923         (BFD_FLAGS_SAVED, BFD_FLAGS_FOR_BFD_USE_MASK): Add BFD_PLUGIN.
924         * bfd-in2.h: Regenerate.
925         * elflink.c (elf_link_output_extsym): Strip undefined plugin syms.
926         * opncls.c (bfd_make_readable): Don't lose original bfd flags.
928 2011-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
930         * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Do not check for
931         SEC_LOAD.
933 2011-04-15  Sergio Durigan Junior  <sergiodj@redhat.com>
935         * elf-bfd.h (struct sdt_note): New struct.
936         (struct elf_obj_tdata) <sdt_note_head>: New field.
937         * elf.c (elfobj_grok_stapsdt_note_1): New function.
938         (elfobj_grok_stapsdt_note): Likewise.
939         (elf_parse_notes): Added code to treat SystemTap note
940         sections.
942 2011-04-12  Richard Henderson  <rth@redhat.com>
944         * elf64-alpha.c (elf64_alpha_size_dynamic_sections): Do not
945         exclude empty .got sections.
947 2011-04-11  H.J. Lu  <hongjiu.lu@intel.com>
949         * elf32-i386.c (elf_i386_reloc_type_lookup): Fix the out of bound
950         array access for BFD_RELOC_386_IRELATIVE.
952 2011-04-11  Bernd Schmidt  <bernds@codesourcery.com>
954         * elf32-tic6x.c (elf32_tic6x_check_relocs): Initialize pc_count field.
956 2011-04-11  Mark Wielaard  <mjw@redhat.com>
958         PR 10549
959         * elf-bfd.h (has_ifunc_symbols): Renamed to has_gnu_symbols.
960         (has_gnu_symbols): Renamed from has_ifunc_symbols.
961         * elf.c (_bfd_elf_set_osabi): Use new has_gnu_symbols name.
962         * elf32-arm.c (elf32_arm_add_symbol_hook): Set has_gnu_symbols
963         also if STB_GNU_UNIQUE symbol binding was seen.
964         * elf32-i386.c (elf_i386_add_symbol_hook): Likewise.
965         * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
966         * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
967         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
968         * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
969         * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise.
971 2011-04-11  Alan Modra  <amodra@gmail.com>
973         * bfd-in.h (bfd_get_section_limit): Don't use rawsize with output
974         sections.
975         * libbfd.c (_bfd_generic_get_section_contents): Likewise.
976         (_bfd_generic_get_section_contents_in_window): Likewise.
977         * section.c (bfd_get_section_contents): Likewise.
978         * compress.c (bfd_get_full_section_contents): Likewise.
979         * elf32-rx.c (rx_final_link): Ignore rawsize.
980         * elf32-microblaze.c (microblaze_elf_relocate_section): Use correct
981         bfd with bfd_get_section_limit.
982         * elfxx-ia64.c (elfNN_ia64_choose_gp): Add "final" parameter.  Use
983         os->size during final link.  Update callers.
984         * bfd-in2.h: Regenerate.
986 2011-04-10  Richard Sandiford  <rdsandiford@googlemail.com>
988         PR ld/12637
989         * elfxx-mips.c (mips_elf_merge_got_with): Use arg->global_count
990         as the number of global entries when merging with the primary GOT.
992 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
994         * elf32-i386.c: Update copyright year.
995         * elf64-x86-64.c: Likewise.
997 2011-04-09  Kai Tietz  <ktietz@redhat.com>
999         * peXXigen.c (_bfd_XXi_final_link_postscripte): Sort pdata in temporary
1000         buffer and use rawsize for sorting.
1001         * coffcode.h (coff_compute_section_file_positions): Set rawsize
1002         before doing alignment.
1004 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1006         * elf32-i386.c (elf_i386_relocate_section): Return relocation
1007         error on unsupported relocation.
1008         * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
1010 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1012         PR binutils/12657
1013         * hosts/x86-64linux.h (elf_prstatus32): Replace __pid_t with
1014         pid_t.
1016 2011-04-08  H.J. Lu  <hongjiu.lu@intel.com>
1018         PR ld/12654
1019         * elf32-i386.c (elf_i386_relocate_section): Check !executable
1020         instead of shared for R_386_TLS_LDO_32.
1022 2011-04-08  Tristan Gingold  <gingold@adacore.com>
1024         * Makefile.am (SOURCE_HFILES): Remove xcoff-target.h
1025         * coff-pmac: Remove
1026         * xcoff-target.h: Remove
1027         * Makefile.in: Regenerate.
1029 2011-04-07  Cary Coutant  <ccoutant@google.com>
1031         * dwarf2.c (scan_unit_for_symbols): Check for DW_AT_specification.
1033 2011-04-07  Paul Brook  <paul@codesourcery.com>
1035         * elf32-tic6x.c (elf32_tic6x_howto_table): R_C6000_PREL31 is
1036         pc-relative.
1037         (elf32_tic6x_howto_table_rel): Ditto.
1038         (elf32_tic6x_relocate_section): Implement R_C6000_PREL31.
1039         (elf32_tic6x_check_relocs): Ditto.
1041 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1043         * config.bfd (thumb-*-oabi): Don't handle in list of obsolete
1044         targets.
1045         (strongarm*, thumb*, xscale*): Remove architectures.
1046         (strongarm-*-kaos*, thumb-*-coff, thumb-*-elf, thumb-epoc-pe*,
1047         thumb-*-pe*, strongarm-*-elf, strongarm-*-coff, xscale-*-elf,
1048         xscale-*-coff): Remove targets.
1050 2011-04-01  Tristan Gingold  <gingold@adacore.com>
1052         * elfxx-ia64.c: include bfd_stdint.h
1054 2011-03-31  Jan Kratochvil  <jan.kratochvil@redhat.com>
1056         * elf32-tic6x.c (elf32_tic6x_relocate_section): Remove unused variable
1057         dynobj and its initialization.
1059 2011-03-31  Tristan Gingold  <gingold@adacore.com>
1061         * makefile.vms (DEFS): Add HAVE_bfd_elf64_ia64_vms_vec.
1062         * configure.com: Set BFD_HOST_64BIT_LONG_LONG and
1063         BFD_HOST_LONG_LONG to 1.
1065 2011-03-31  Tristan Gingold  <gingold@adacore.com>
1067         * vms-alpha.c (vms_get_remaining_object_record): Fix dec-c warning.
1068         (_bfd_vms_write_etir): Ditto.
1069         (_bfd_vms_slurp_etir): Avoid to use intptr_t
1070         * configure.com: Generate bfd_stdint.h
1072 2011-03-31  Bernd Schmidt  <bernds@codesourcery.com>
1074         * elf32-tic6x.h (struct elf32_tic6x_params): New.
1075         (elf32_tic6x_setup): Declare.
1076         * elf32-tic6x.c: Include <limits.h>.
1077         (ELF_DYNAMIC_LINKER, DEFAULT_STACK_SIZE, PLT_ENTRY_SIZE): Define.
1078         (struct elf32_tic6x_link_hash_table, struct elf32_link_hash_entry):
1079         New structures.
1080         (elf32_tic6x_link_hash_table, is_tic6x_elf): New macros.
1081         (tic6x_elf_scom_section, tic6x_elf_scom_symbol,
1082         tic6x_elf_scom_symbol_ptr): New static variables.
1083         (elf32_tic6x_howto_table, elf32_tic6x_howto_table_rel,
1084         elf32_tic6x_reloc_map): Add R_C6000_JUMP_SLOT, R_C6000_EHTYPE,
1085         R_C6000_PCR_H16 and R_C6000_PCR_L16.
1086         (elf32_tic6x_link_hash_newfunc, elf32_tic6x_link_hash_table_create,
1087         elf32_tic6x_link_hash_table_free, elf32_tic6x_setup,
1088         elf32_tic6x_using_dsbt, elf32_tic6x_install_rela,
1089         elf32_tic6x_create_dynamic_sections, elf32_tic6x_make_got_dynreloc,
1090         elf32_tic6x_finish_dynamic_symbol, elf32_tic6x_gc_sweep_hook,
1091         elf32_tic6x_adjust_dynamic_symbol): New static functions.
1092         (elf32_tic6x_relocate_section): For R_C6000_PCR_S21, convert branches
1093         to weak symbols as required by the ABI.
1094         Handle GOT and DSBT_INDEX relocs, and copy relocs to the output file
1095         as needed when generating DSBT output.
1096         (elf32_tic6x_check_relocs, elf32_tic6x_add_symbol_hook,
1097         elf32_tic6x_symbol_processing, elf32_tic6x_section_from_bfd_section,
1098         elf32_tic6x_allocate_dynrelocs, elf32_tic6x_size_dynamic_sections,
1099         elf32_tic6x_always_size_sections, elf32_tic6x_modify_program_headers,
1100         elf32_tic6x_finish_dynamic_sections, elf32_tic6x_plt_sym_val,
1101         elf32_tic6x_copy_private_data, elf32_tic6x_link_omit_section_dynsym):
1102         New static functions.
1103         (ELF_MAXPAGESIZE): Define to 0x1000.
1104         (bfd_elf32_bfd_copy_private_bfd_data,
1105         bfd_elf32_bfd_link_hash_table_create,
1106         bfd_elf32_bfd_link_hash_table_free, elf_backend_can_refcount,
1107         elf_backend_want_got_plt, elf_backend_want_dynbss,
1108         elf_backend_plt_readonly, elf_backend_got_header_size,
1109         elf_backend_gc_sweep_hook, elf_backend_modify_program_headers,
1110         elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
1111         elf_backend_check_relocs, elf_backend_add_symbol_hook,
1112         elf_backend_symbol_processing, elf_backend_link_output_symbol_hook,
1113         elf_backend_section_from_bfd_section,
1114         elf_backend_finish_dynamic_symbol, elf_backend_always_size_sections,
1115         elf32_tic6x_size_dynamic_sections, elf_backend_finish_dynamic_sections,
1116         elf_backend_omit_section_dynsym, elf_backend_plt_sym_val): Define.
1118         * bfd/reloc.c (BFD_RELOC_C6000_JUMP_SLOT, BFD_RELOC_C6000_EHTYPE,
1119         BFD_RELOC_C6000_PCR_H16, BFD_RELOC_C6000_PCR_S16): Add.
1120         * bfd/bfd-in2.h: Regenerate.
1121         * bfd/libbfd.h: Regenerate.
1122         * config.bfd: Accept tic6x-*-* instead of tic6x-*-elf.
1124 2011-03-31  Tristan Gingold  <gingold@adacore.com>
1126         * coffcode.h (coff_slurp_symbol_table): Silently discard C_NULL
1127         entry on xcoff when value is C_NULL_VALUE.
1129 2011-03-31  Tristan Gingold  <gingold@adacore.com>
1131         * libcoff-in.h (exec_hdr): Remove.
1132         * libcoff.h: Regenerate.
1134 2011-03-30  Nick Clifton  <nickc@redhat.com>
1136         * po/da.po: Updated Danish translation.
1138 2011-03-29  Richard Henderson  <rth@redhat.com>
1140         * elf64-alpha.c (elf64_alpha_gc_mark_hook): New.
1141         (elf64_alpha_gc_sweep_hook): New.
1142         (elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook): New.
1143         (elf_backend_can_gc_sections): New.
1145 2011-03-26  John Marino  <binutils@marino.st>
1147         * config.bfd: Add x86_64-*-dragonfly*, fix i386-*-dragonfly*.
1148         * configure.in: Delete unused bfd_elf32_i386_dragonfly_vec.
1149         * configure: Regenerate.
1151 2011-03-25  Michael Snyder  <msnyder@vmware.com>
1153         * coffcode.h (coff_set_alignment_hook): Check return of bfd_seek.
1155 2011-03-25  Tristan Gingold  <gingold@adacore.com>
1157         * vms-alpha.c (_bfd_vms_find_nearest_dst_line): Allow the use
1158         of find_nearest_line on object files.
1160 2011-03-25  Tristan Gingold  <gingold@adacore.com>
1162         * vms-alpha.c (evax_section_flags): Make $CODE$ section read-only.
1163         Minor reordering.
1164         (alpha_vms_create_eisd_for_section): Make code sections read-only.
1166 2011-03-24  Alan Modra  <amodra@gmail.com>
1168         * elf32-ppc.c (ppc_elf_tls_optimize): Catch more cases where
1169         old-style __tls_get_addr calls without marker relocs don't match
1170         their arg setup insn one for one.  If such mismatches are found
1171         report the reloc and don't do any tls optimization.
1172         * elf64-ppc.c (ppc64_elf_tls_optimize): Likewise.
1174 2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>
1176         * bfd-in2.h: Regenerate.
1178 2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>
1180         * archures.c: Add AVR XMEGA architecture information.
1181         * cpu-avr.c (arch_info_struct): Likewise.
1182         * elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
1183         (elf32_avr_object_p): Likewise.
1185 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1187         * reloc.c (BFD_RELOC_ARM_IRELATIVE): New relocation.
1188         * bfd-in2.h: Regenerate.
1189         * elf32-arm.c (elf32_arm_howto_table_2): Rename existing definition
1190         to elf32_arm_howto_table_3 and replace with a single R_ARM_IRELATIVE
1191         entry.
1192         (elf32_arm_howto_from_type): Update accordingly.
1193         (elf32_arm_reloc_map): Map BFD_RELOC_ARM_IRELATIVE to R_ARM_IRELATIVE.
1194         (elf32_arm_reloc_name_lookup): Handle elf32_arm_howto_table_3.
1195         (arm_plt_info): New structure, split out from elf32_arm_link_hash_entry
1196         with an extra noncall_refcount field.
1197         (arm_local_iplt_info): New structure.
1198         (elf_arm_obj_tdata): Add local_iplt.
1199         (elf32_arm_local_iplt): New accessor macro.
1200         (elf32_arm_link_hash_entry): Replace plt_thumb_refcount,
1201         plt_maybe_thumb_refcount and plt_got_offset with an arm_plt_info.
1202         Change tls_type to a bitfield and add is_iplt.
1203         (elf32_arm_link_hash_newfunc): Update accordingly.
1204         (elf32_arm_allocate_local_sym_info): New function.
1205         (elf32_arm_create_local_iplt): Likewise.
1206         (elf32_arm_get_plt_info): Likewise.
1207         (elf32_arm_plt_needs_thumb_stub_p): Likewise.
1208         (elf32_arm_get_local_dynreloc_list): Likewise.
1209         (create_ifunc_sections): Likewise.
1210         (elf32_arm_copy_indirect_symbol): Update after the changes to
1211         elf32_arm_link_hash_entry.  Assert the is_iplt has not yet been set.
1212         (arm_type_of_stub): Add an st_type argument.  Use elf32_arm_get_plt_info
1213         to get PLT information.  Assert that all STT_GNU_IFUNC references
1214         are turned into PLT references.
1215         (arm_build_one_stub): Pass the symbol type to
1216         elf32_arm_final_link_relocate.
1217         (elf32_arm_size_stubs): Pass the symbol type to arm_type_of_stub.
1218         (elf32_arm_allocate_irelocs): New function.
1219         (elf32_arm_add_dynreloc): In static objects, use .rel.iplt for
1220         all R_ARM_IRELATIVE.
1221         (elf32_arm_allocate_plt_entry): New function.
1222         (elf32_arm_populate_plt_entry): Likewise.
1223         (elf32_arm_final_link_relocate): Add an st_type parameter.
1224         Set srelgot to null for static objects.  Use separate variables
1225         to record which st_value and st_type should be used when generating
1226         a dynamic relocation.  Use elf32_arm_get_plt_info to find the
1227         symbol's PLT information, setting has_iplt_entry, splt,
1228         plt_offset and gotplt_offset accordingly.  Check whether
1229         STT_GNU_IFUNC symbols should resolve to an .iplt entry, and change
1230         the relocation target accordingly.  Broaden assert to include
1231         .iplts.  Don't set sreloc for static relocations.  Assert that
1232         we only generate dynamic R_ARM_RELATIVE relocations for R_ARM_ABS32
1233         and R_ARM_ABS32_NOI.  Generate R_ARM_IRELATIVE relocations instead
1234         of R_ARM_RELATIVE relocations if the target is an STT_GNU_IFUNC
1235         symbol.  Pass the symbol type to arm_type_of_stub.  Conditionally
1236         resolve GOT references to the .igot.plt entry.
1237         (elf32_arm_relocate_section): Update the call to
1238         elf32_arm_final_link_relocate.
1239         (elf32_arm_gc_sweep_hook): Use elf32_arm_get_plt_info to get PLT
1240         information.  Treat R_ARM_REL32 and R_ARM_REL32_NOI as call
1241         relocations in shared libraries and relocatable executables.
1242         Count non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
1243         to get the list of dynamic relocations for a local symbol.
1244         (elf32_arm_check_relocs): Always create ifunc sections.  Set isym
1245         at the same time as setting h.  Use elf32_arm_allocate_local_sym_info
1246         to allocate local symbol information.  Treat R_ARM_REL32 and
1247         R_ARM_REL32_NOI as call relocations in shared libraries and
1248         relocatable executables.  Record PLT information for local
1249         STT_GNU_IFUNC functions as well as global functions.   Count
1250         non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
1251         to get the list of dynamic relocations for a local symbol.
1252         (elf32_arm_adjust_dynamic_symbol): Handle STT_GNU_IFUNC symbols.
1253         Don't remove STT_GNU_IFUNC PLTs unless all references have been
1254         removed.  Update after the changes to elf32_arm_link_hash_entry.
1255         (allocate_dynrelocs_for_symbol): Decide whether STT_GNU_IFUNC PLT
1256         entries should live in .plt or .iplt.  Check whether the .igot.plt
1257         and .got entries can be combined.  Use elf32_arm_allocate_plt_entry
1258         to allocate .plt and .(i)got.plt entries.  Detect which .got
1259         entries will need R_ARM_IRELATIVE relocations and use
1260         elf32_arm_allocate_irelocs to allocate them.  Likewise other
1261         non-.got dynamic relocations.
1262         (elf32_arm_size_dynamic_sections): Allocate .iplt, .igot.plt
1263         and dynamic relocations for local STT_GNU_IFUNC symbols.
1264         Check whether the .igot.plt and .got entries can be combined.
1265         Detect which .got entries will need R_ARM_IRELATIVE relocations
1266         and use elf32_arm_allocate_irelocs to allocate them.  Use stashed
1267         section pointers intead of strcmp checks.  Handle iplt and igotplt.
1268         (elf32_arm_finish_dynamic_symbol): Use elf32_arm_populate_plt_entry
1269         to fill in .plt, .got.plt and .rel(a).plt entries.  Point
1270         STT_GNU_IFUNC symbols at an .iplt entry if non-call relocations
1271         resolve to it.
1272         (elf32_arm_output_plt_map_1): New function, split out from
1273         elf32_arm_output_plt_map.  Handle .iplt entries.  Use
1274         elf32_arm_plt_needs_thumb_stub_p.
1275         (elf32_arm_output_plt_map): Call it.
1276         (elf32_arm_output_arch_local_syms): Add mapping symbols for
1277         local .iplt entries.
1278         (elf32_arm_swap_symbol_in): Handle Thumb STT_GNU_IFUNC symbols.
1279         (elf32_arm_swap_symbol_out): Likewise.
1280         (elf32_arm_add_symbol_hook): New function.
1281         (elf_backend_add_symbol_hook): Define for all targets.
1283 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1285         * elf-bfd.h (elf_link_hash_entry): Add target_internal.
1286         * elf.c (swap_out_syms): Set st_target_internal for each
1287         Elf_Internal_Sym.
1288         * elfcode.h (elf_swap_symbol_in): Likewise.
1289         * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
1290         * elf32-sh-symbian.c (sh_symbian_relocate_section): Likewise.
1291         * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
1292         * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
1293         * elflink.c (elf_link_output_extsym): Likewise.
1294         (bfd_elf_final_link): Likewise.
1295         (elf_link_add_object_symbols): Copy st_target_internal
1296         to the hash table if we see a definition.
1297         (_bfd_elf_copy_link_hash_symbol_type): Copy target_internal.
1298         * elf32-arm.c (elf32_arm_stub_hash_entry): Replace st_type with
1299         a branch_type field.
1300         (a8_erratum_fix, a8_erratum_reloc): Likewise.
1301         (arm_type_of_stub): Replace actual_st_type with an
1302         actual_branch_type parameter.
1303         (arm_build_one_stub): Use branch types rather than st_types to
1304         determine the type of branch.
1305         (cortex_a8_erratum_scan): Likewise.
1306         (elf32_arm_size_stubs): Likewise.
1307         (bfd_elf32_arm_process_before_allocation): Likewise.
1308         (allocate_dynrelocs_for_symbol): Likewise.
1309         (elf32_arm_finish_dynamic_sections): Likewise.
1310         (elf32_arm_final_link_relocate): Replace sym_flags parameter with
1311         a branch_type parameter.
1312         (elf32_arm_relocate_section): Update call accordingly.
1313         (elf32_arm_adjust_dynamic_symbol): Don't check STT_ARM_TFUNC.
1314         (elf32_arm_output_map_sym): Initialize st_target_internal.
1315         (elf32_arm_output_stub_sym): Likewise.
1316         (elf32_arm_symbol_processing): Delete.
1317         (elf32_arm_swap_symbol_in): Convert STT_ARM_TFUNCs into STT_FUNCs.
1318         Use st_target_internal to record the branch type.
1319         (elf32_arm_swap_symbol_out): Use st_target_internal to test for
1320         Thumb functions.
1321         (elf32_arm_is_function_type): Delete.
1322         (elf_backend_symbol_processing): Likewise.
1323         (elf_backend_is_function_type): Likewise.
1325 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1327         * elf32-arm.c (elf32_arm_check_relocs): Always assign a dynobj.
1328         (elf32_arm_finish_dynamic_sections): Move sgot != NULL assertion
1329         into the PLT block.
1331 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1333         * elf32-arm.c (elf32_arm_check_relocs): Use call_reloc_p,
1334         may_need_local_target_p and may_become_dynamic_p to classify
1335         the relocation type.  Don't check info->symbolic or h->def_regular
1336         when deciding whether to record a potential dynamic reloc.
1337         Don't treat potential dynamic relocs as PLT references.
1338         (elf32_arm_gc_sweep_hook): Update to match.  Assert that we don't
1339         try to make the PLT reference count go negative.
1341 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1343         * elf32-arm.c (elf32_arm_final_link_relocate): Always fill in the
1344         GOT entry here, rather than leaving it to finish_dynamic_symbol.
1345         Only create a dynamic relocation for local references if
1346         info->shared.
1347         (allocate_dynrelocs_for_symbol): Update dynamic relocation
1348         allocation accordingly.
1349         (elf32_arm_finish_dynamic_symbol): Don't initialise the GOT entry here.
1351 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
1353         * elf32-arm.c (elf32_arm_allocate_dynrelocs): New function.
1354         (elf32_arm_add_dynreloc): Likewise.
1355         (elf32_arm_adjust_dynamic_symbol): Use elf32_arm_allocate_dynrelocs
1356         to allocate dynamic relocations.
1357         (elf32_arm_size_dynamic_sections): Likewise.
1358         (allocate_dynrelocs): Likewise.  Rename to
1359         allocate_dynrelocs_for_symbol.
1360         (elf32_arm_final_link_relocate): Use elf32_arm_add_dynreloc to
1361         create dynamic relocations.
1362         (elf32_arm_finish_dynamic_symbol): Likewise.
1364 2011-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1366         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS
1367         x32 GD->IE and GD->LE transitions.
1368         (elf_x86_64_relocate_section): Supprt TLS x32 GD->IE, GD->LE
1369         and LD->LE transitions.
1371 2011-03-10  Alan Modra  <amodra@gmail.com>
1373         * elf64-ppc.c (ppc64_elf_relocate_section): Provide section/offset
1374         for LO_DS error message and correct multiple.
1376 2011-03-10  Alan Modra  <amodra@gmail.com>
1378         * elf64-ppc.c (bfd_elf64_bfd_link_just_syms): Define.
1379         (ppc64_elf_link_just_syms): New function.
1380         (opd_entry_value): Don't assume big-endian host.
1381         (get_r2off): New function.
1382         (ppc_build_one_stub, ppc_size_one_stub): Use it here.
1384 2011-03-06  Michael Snyder  <msnyder@vmware.com>
1386         * compress.c (bfd_compress_section_contents): Check for out of mem.
1388         * elf64-x86-64.c (elf_x86_64_relocate_section): Document
1389         that case statement falls through intentionally.
1391         * elf32-i386.c (elf_i386_relocate_section): Document fall through.
1393 2011-03-04  Alan Modra  <amodra@gmail.com>
1395         * archive.c (bsd_write_armap): Don't call stat in deterministic
1396         mode, and don't use st_mtime if stat returns error.
1398 2011-03-03  Michael Snyder  <msnyder@vmware.com>
1400         * elf64-x86-64.c (elf_x86_64_relocate_section): Remove dead code.
1402         * coff-x86_64.c (coff_amd64_rtype_to_howto): Fencepost error.
1404         * aoutx.h (aout_final_link): Use sizeof int not sizeof int*.
1405         (aout_link_write_other_symbol): Missing break statement.
1407         * dwarf2.c (scan_unit_for_symbols): Stop memory leak.
1409         * archive.c (_bfd_slurp_extended_name_table): Fail if bfd_seek fails.
1411 2011-03-03  H.J. Lu  <hongjiu.lu@intel.com>
1413         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS
1414         x32 IE->LE transition.
1415         (elf_x86_64_relocate_section): Likewise.
1417 2011-03-02  Bernd Schmidt  <bernds@codesourcery.com>
1419         * elflink.c (is_reloc_section): Remove function.
1420         (get_dynamic_reloc_section_name): Construct string manually.
1422 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
1424         * archive.c (_bfd_find_nested_archive): Use filename_(n)cmp.
1425         (adjust_relative_path): Likewise.
1426         (_bfd_construct_extended_name_table): Likewise.
1427         * corefile.c (generic_core_file_matches_executable_p): Likewise.
1428         * elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
1429         * elf32-frv.c (elf32_frv_relocate_section): Likewise.
1430         * elf32-spu.c (sort_bfds): Likewise.
1431         (spu_elf_auto_overlay): Likewise.
1432         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
1433         * xcofflink.c (xcoff_set_import_path): Likewise.
1434         * xtensa-isa.c (xtensa_regfile_lookup): Likewise.
1435         (xtensa_regfile_lookup_shortname): Likewise.
1437 2011-02-28  Alan Modra  <amodra@gmail.com>
1439         PR 12513
1440         * archive.c (bfd_slurp_bsd_armap_f2): Sanity check parsed_size and
1441         stringsize.  Properly sanity check symdef_count.  Remove redundant
1442         bfd_release.
1444 2011-02-25  Rafael Ávila de Espíndola <respindola@mozilla.com>
1446         * plugin.c (bfd_plugin_object_p): Correctly set the filesize
1447         and handle claim_file seeking. Only try to load the plugin once.
1449 2011-02-22  Andreas Schwab  <schwab@redhat.com>
1451         * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): For a TLS_GD
1452         relocation read the value from the second GOT slot.
1454 2011-02-15  Tristan Gingold  <gingold@adacore.com>
1456         * vms-alpha.c (alpha_vms_link_add_archive_symbols): Add a comment.
1458 2011-02-15  Alan Modra  <amodra@gmail.com>
1460         * elf64-ppc.c (ppc64_elf_edit_toc): Reinstate second read of
1461         toc relocs.  Fuss over free(NULL).
1463 2011-02-14  Mike Frysinger  <vapier@gentoo.org>
1465         * elflink.c (bfd_elf_size_dynamic_sections): Add
1466         bfd_get_symbol_leading_char to the start of newname.
1468 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1470         * configure: Regenerate.
1472 2011-02-09  Alan Modra  <amodra@gmail.com>
1474         * elf64-ppc.c (ppc64_elf_edit_toc): Don't free toc relocs until
1475         we are done.  When optimising large toc, check that a global
1476         symbol on a toc reloc is defined in a kept section.
1478 2011-02-08  Nick Clifton  <nickc@redhat.com>
1480         PR binutils/12467
1481         * elf.c (assign_file_positions_for_load_sections): Set the program
1482         header offset and entry size to zero if there are no program
1483         headers.
1485 2011-02-08  Alan Modra  <amodra@gmail.com>
1487         * elf64-ppc.c (ppc64_elf_edit_toc): Don't segfault on NULL
1488         local_syms when looking for local symbols in .toc.
1490 2011-02-01  Alan Modra  <amodra@gmail.com>
1492         * elf64-ppc.c (ppc64_elf_next_input_section): Use elf_gp value
1493         for toc pointer on any section having makes_toc_func_call set.
1494         (check_pasted_section): Ensure pasted .init/.fini fragments use
1495         the same toc if any has makes_toc_func_call set.
1497 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
1499         * elf32-ppc.c (ppc_elf_link_hash_newfunc): Initialize has_sda_refs
1500         field.
1502 2011-01-22  Richard Sandiford  <rdsandiford@googlemail.com>
1504         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Ignore
1505         common sections too.
1507 2011-01-18  H.J. Lu  <hongjiu.lu@intel.com>
1509         * elf64-x86-64.c (elf_backend_want_plt_sym): Redefine to 0 after
1510         Solaris target.
1512 2011-01-18  Pierre Muller  <muller@ics.u-strasbg.fr>
1514         Fix compilation for mingw64.
1515         * coffcode.h (coff_slurp_symbol_table): Add intptr_t intermediate
1516         typecast to avoid warning.
1517         * elf32-rx.c: Add "bfd_stdint.h" include required for int32_t type
1518         usage.
1519         * elfxx-ia64.c (elfNN_ia64_relax_br): Use intptr_t typeacast instead
1520         of long for pointer to avoid warning.
1521         (elfNN_ia64_relax_brl): Idem.
1522         (elfNN_ia64_install_value): Idem.
1523         * vms-alpha.c (_bfd_vms_slurp_etir): Idem.
1525 2011-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
1527         * elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
1528         h->needs_plt when deciding whether to record a possible dynamic reloc.
1530 2011-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
1532         * elf32-arm.c (elf32_arm_gc_sweep_hook): Remove all registered
1533         dynamic relocs for the removed section.
1535 2011-01-15  H.J. Lu  <hongjiu.lu@intel.com>
1537         * elf64-x86-64.c (elf_x86_64_check_relocs): Check invalid x32
1538         relocations.
1540 2011-01-14  H.J. Lu  <hongjiu.lu@intel.com>
1542         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add pointer_r_type.
1543         (elf_x86_64_link_hash_table_create): Set pointer_r_type.
1544         (elf_x86_64_check_relocs): Handle R_X86_64_32 like R_X86_64_64
1545         for ILP32.  Remove ABI_64_P PIC check for R_X86_64_8,
1546         R_X86_64_16, R_X86_64_32 and R_X86_64_32S.
1547         (elf_x86_64_relocate_section):  Handle R_X86_64_32 like R_X86_64_64
1548         for ILP32.
1550 2011-01-14  Alan Modra  <amodra@gmail.com>
1552         * bfd.c (bfd_perror): Flush stdout before and stderr after printing
1553         error.
1554         (_bfd_default_error_handler): Likewise.
1555         * elf.c (print_segment_map): Likewise.
1556         * libbfd.c (warn_deprecated): Likewise.
1557         * som.c (som_sizeof_headers): No need to do so here.
1558         * coff-i860.c: Replace use of printf for error messages with
1559         _bfd_error_handler.
1560         * coff-ppc.c: Likewise.
1561         * coff-sh.c: Likewise.
1562         * elf32-bfin.c: Likewise.
1563         * elf32-dlx.c: Likewise.
1564         * elf32-mep.c: Likewise.
1565         * elf32-v850.c: Likewise.
1566         * mach-o.c: Likewise.
1567         * pef.c: Likewise.
1569 2011-01-13  H.J. Lu  <hongjiu.lu@intel.com>
1571         * elf64-x86-64.c (elf_x86_64_link_hash_table): Remove
1572         swap_reloca_out.
1573         (elf_x86_64_link_hash_table_create): Don't set swap_reloca_out.
1574         (elf_x86_64_check_relocs): Align relocation section to 4 byte
1575         for 32bit.
1576         (elf_x86_64_gc_sweep_hook): Replace ELF64_ST_TYPE with
1577         ELF_ST_TYPE.
1578         (elf_x86_64_finish_dynamic_symbol): Updated.
1579         (elf_x86_64_finish_dynamic_sections): Don't use
1580         Elf64_External_Dyn, bfd_elf64_swap_dyn_in, nor
1581         bfd_elf64_swap_dyn_out.
1583 2011-01-14  J. Park  <grassman@gmail.com>
1585         PR ld/12339
1586         * elf32-arm.c (allocate_dynrelocs): Don't set up eh before
1587         following bfd_link_hash_warning symbol link.
1589 2011-01-10  Nathan Sidwell  <nathan@codesourcery.com>
1590             Glauber de Oliveira Costa  <glommer@gmail.com>
1592         * reloc.c (BFD_RELOC_ARM_TLS_GOTDESC, BFD_RELOC_ARM_TLS_CALL,
1593         BFD_RELOC_ARM_THM_TLS_CALL, BFD_RELOC_ARM_TLS_DESCSEQ,
1594         BFD_RELOC_ARM_THM_TLS_DESCSEQ, BFD_RELOC_ARM_TLS_DESC): New
1595         relocations.
1596         * libbfd.h: Rebuilt.
1597         * bfd-in2.h: Rebuilt.
1598         * elf32-arm.c (elf32_arm_howto_table_1): Add new relocations.
1599         (elf32_arm_reloc_map): Likewise.
1600         (tls_trampoline, dl_tlsdesc_lazy_trampoline): New PLT templates.
1601         (elf32_arm_stub_long_branch_any_tls_pic,
1602         elf32_arm_stub_long_branch_v4t_thumb_tls_pic): New stub templates.
1603         (DEF_STUBS): Add new stubs.
1604         (struct_elf_arm_obj_data): Add local_tlsdesc_gotent field.
1605         (elf32_arm_local_tlsdesc_gotent): New.
1606         (GOT_TLS_GDESC): New mask.
1607         (GOT_TLS_GD_ANY): Define.
1608         (struct elf32_arm_link_hash_entry): Add tlsdesc_got field.
1609         (elf32_arm_compute_jump_table_size): New.
1610         (struct elf32_arm_link_hash_table): Add next_tls_desc_index,
1611         num_tls_desc, dt_tlsdesc_plt, dt_tlsdesc_got, tls_trampoline,
1612         sgotplt_jump_table_size fields.
1613         (elf32_arm_link_hash_newfunc): Initialize tlsdesc_got field.
1614         (elf32_arm_link_hash_table_create): Initialize new fields.
1615         (arm_type_of_stub): Check TLS desc relocs too.
1616         (elf32_arm_stub_name): TLS desc relocs can be shared.
1617         (elf32_arm_tls_transition): Determine relaxation.
1618         (arm_stub_required_alignment): Add tls stubs.
1619         (elf32_arm_size_stubs): Likewise.
1620         (elf32_arm_tls_relax): Perform TLS relaxing.
1621         (elf32_arm_final_link_relocate): Process TLS DESC relocations.
1622         (IS_ARM_TLS_GNU_RELOC): New.
1623         (IS_ARM_TLS_RELOC): Use it.
1624         (elf32_arm_relocate_section): Perform TLS relaxing.
1625         (elf32_arm_check_relocs): Anticipate TLS relaxing, process tls
1626         desc relocations.
1627         (allocate_dynrelocs): Allocate tls desc relcoations.
1628         (elf32_arm_output_arch_local_syms): Emit tls trampoline mapping
1629         symbols.
1630         (elf32_arm_size_dynamic_sections): Allocate tls trampolines and
1631         got slots.
1632         (elf32_arm_always_size_sections): New. Create _TLS_MODULE_BASE
1633         symbol.
1634         (elf32_arm_finish_dynamic_symbol): Adjust.
1635         (arm_put_trampoline): New.
1636         (elf32_arm_finish_dynamic_sections): Emit new dynamic tags and tls
1637         trampolines.
1638         (elf_backend_always_size_sections): Define.
1640 2011-01-06  H.J. Lu  <hongjiu.lu@intel.com>
1642         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Optimized.
1644 2011-01-06  H.J. Lu  <hongjiu.lu@intel.com>
1646         PR ld/12366
1647         PR ld/12371
1648         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly
1649         handle symbols marked with regular reference, but not non-GOT
1650         reference when building shared library.
1652         * elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle
1653         local and global STT_GNU_IFUNC symols when building shared
1654         library.
1655         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
1657 2011-01-05  DJ Delorie  <dj@redhat.com>
1659         * reloc.c: Add BFD_RELOC_RX_OP_NEG.
1660         * libbfd.h: Regenerate.
1661         * bfd-in2.h: Regenerate.
1662         * elf32-rx.c: Add it to the list, corresponding to R_RX_OPneg.
1664 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
1666         * cpu-i386.c (bfd_i386_compatible): New.
1667         (bfd_x64_32_arch_intel_syntax): Replace bfd_default_compatible
1668         with bfd_i386_compatible.
1669         (bfd_x86_64_arch_intel_syntax): Likewise.
1670         (bfd_i386_arch_intel_syntax): Likewise.
1671         (i8086_arch): Likewise.
1672         (bfd_x64_32_arch): Likewise.
1673         (bfd_x86_64_arch): Likewise.
1674         (bfd_i386_arch): Likewise.
1676 For older changes see ChangeLog-2010
1678 Local Variables:
1679 mode: change-log
1680 left-margin: 8
1681 fill-column: 74
1682 version-control: never
1683 End: