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