* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Do not
[platform/upstream/binutils.git] / bfd / ChangeLog
1 2011-04-12  Richard Henderson  <rth@redhat.com>
2
3         * elf64-alpha.c (elf64_alpha_size_dynamic_sections): Do not
4         exclude empty .got sections.
5
6 2011-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7
8         * elf32-i386.c (elf_i386_reloc_type_lookup): Fix the out of bound
9         array access for BFD_RELOC_386_IRELATIVE.
10
11 2011-04-11  Bernd Schmidt  <bernds@codesourcery.com>
12
13         * elf32-tic6x.c (elf32_tic6x_check_relocs): Initialize pc_count field.
14
15 2011-04-11  Mark Wielaard  <mjw@redhat.com>
16
17         PR 10549
18         * elf-bfd.h (has_ifunc_symbols): Renamed to has_gnu_symbols.
19         (has_gnu_symbols): Renamed from has_ifunc_symbols.
20         * elf.c (_bfd_elf_set_osabi): Use new has_gnu_symbols name.
21         * elf32-arm.c (elf32_arm_add_symbol_hook): Set has_gnu_symbols
22         also if STB_GNU_UNIQUE symbol binding was seen.
23         * elf32-i386.c (elf_i386_add_symbol_hook): Likewise.
24         * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
25         * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
26         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
27         * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
28         * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise.
29
30 2011-04-11  Alan Modra  <amodra@gmail.com>
31
32         * bfd-in.h (bfd_get_section_limit): Don't use rawsize with output
33         sections.
34         * libbfd.c (_bfd_generic_get_section_contents): Likewise.
35         (_bfd_generic_get_section_contents_in_window): Likewise.
36         * section.c (bfd_get_section_contents): Likewise.
37         * compress.c (bfd_get_full_section_contents): Likewise.
38         * elf32-rx.c (rx_final_link): Ignore rawsize.
39         * elf32-microblaze.c (microblaze_elf_relocate_section): Use correct
40         bfd with bfd_get_section_limit.
41         * elfxx-ia64.c (elfNN_ia64_choose_gp): Add "final" parameter.  Use
42         os->size during final link.  Update callers.
43         * bfd-in2.h: Regenerate.
44
45 2011-04-10  Richard Sandiford  <rdsandiford@googlemail.com>
46
47         PR ld/12637
48         * elfxx-mips.c (mips_elf_merge_got_with): Use arg->global_count
49         as the number of global entries when merging with the primary GOT.
50
51 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
52
53         * elf32-i386.c: Update copyright year.
54         * elf64-x86-64.c: Likewise.
55
56 2011-04-09  Kai Tietz  <ktietz@redhat.com>
57
58         * peXXigen.c (_bfd_XXi_final_link_postscripte): Sort pdata in temporary
59         buffer and use rawsize for sorting.
60         * coffcode.h (coff_compute_section_file_positions): Set rawsize
61         before doing alignment.
62
63 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
64
65         * elf32-i386.c (elf_i386_relocate_section): Return relocation
66         error on unsupported relocation.
67         * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
68
69 2011-04-09  H.J. Lu  <hongjiu.lu@intel.com>
70
71         PR binutils/12657
72         * hosts/x86-64linux.h (elf_prstatus32): Replace __pid_t with
73         pid_t.
74
75 2011-04-08  H.J. Lu  <hongjiu.lu@intel.com>
76
77         PR ld/12654
78         * elf32-i386.c (elf_i386_relocate_section): Check !executable
79         instead of shared for R_386_TLS_LDO_32.
80
81 2011-04-08  Tristan Gingold  <gingold@adacore.com>
82
83         * Makefile.am (SOURCE_HFILES): Remove xcoff-target.h
84         * coff-pmac: Remove
85         * xcoff-target.h: Remove
86         * Makefile.in: Regenerate.
87
88 2011-04-07  Cary Coutant  <ccoutant@google.com>
89
90         * dwarf2.c (scan_unit_for_symbols): Check for DW_AT_specification.
91
92 2011-04-07  Paul Brook  <paul@codesourcery.com>
93
94         * elf32-tic6x.c (elf32_tic6x_howto_table): R_C6000_PREL31 is
95         pc-relative.
96         (elf32_tic6x_howto_table_rel): Ditto.
97         (elf32_tic6x_relocate_section): Implement R_C6000_PREL31.
98         (elf32_tic6x_check_relocs): Ditto.
99
100 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
101
102         * config.bfd (thumb-*-oabi): Don't handle in list of obsolete
103         targets.
104         (strongarm*, thumb*, xscale*): Remove architectures.
105         (strongarm-*-kaos*, thumb-*-coff, thumb-*-elf, thumb-epoc-pe*,
106         thumb-*-pe*, strongarm-*-elf, strongarm-*-coff, xscale-*-elf,
107         xscale-*-coff): Remove targets.
108
109 2011-04-01  Tristan Gingold  <gingold@adacore.com>
110
111         * elfxx-ia64.c: include bfd_stdint.h
112
113 2011-03-31  Jan Kratochvil  <jan.kratochvil@redhat.com>
114
115         * elf32-tic6x.c (elf32_tic6x_relocate_section): Remove unused variable
116         dynobj and its initialization.
117
118 2011-03-31  Tristan Gingold  <gingold@adacore.com>
119
120         * makefile.vms (DEFS): Add HAVE_bfd_elf64_ia64_vms_vec.
121         * configure.com: Set BFD_HOST_64BIT_LONG_LONG and
122         BFD_HOST_LONG_LONG to 1.
123
124 2011-03-31  Tristan Gingold  <gingold@adacore.com>
125
126         * vms-alpha.c (vms_get_remaining_object_record): Fix dec-c warning.
127         (_bfd_vms_write_etir): Ditto.
128         (_bfd_vms_slurp_etir): Avoid to use intptr_t
129         * configure.com: Generate bfd_stdint.h
130
131 2011-03-31  Bernd Schmidt  <bernds@codesourcery.com>
132
133         * elf32-tic6x.h (struct elf32_tic6x_params): New.
134         (elf32_tic6x_setup): Declare.
135         * elf32-tic6x.c: Include <limits.h>.
136         (ELF_DYNAMIC_LINKER, DEFAULT_STACK_SIZE, PLT_ENTRY_SIZE): Define.
137         (struct elf32_tic6x_link_hash_table, struct elf32_link_hash_entry):
138         New structures.
139         (elf32_tic6x_link_hash_table, is_tic6x_elf): New macros.
140         (tic6x_elf_scom_section, tic6x_elf_scom_symbol,
141         tic6x_elf_scom_symbol_ptr): New static variables.
142         (elf32_tic6x_howto_table, elf32_tic6x_howto_table_rel,
143         elf32_tic6x_reloc_map): Add R_C6000_JUMP_SLOT, R_C6000_EHTYPE,
144         R_C6000_PCR_H16 and R_C6000_PCR_L16.
145         (elf32_tic6x_link_hash_newfunc, elf32_tic6x_link_hash_table_create,
146         elf32_tic6x_link_hash_table_free, elf32_tic6x_setup,
147         elf32_tic6x_using_dsbt, elf32_tic6x_install_rela,
148         elf32_tic6x_create_dynamic_sections, elf32_tic6x_make_got_dynreloc,
149         elf32_tic6x_finish_dynamic_symbol, elf32_tic6x_gc_sweep_hook,
150         elf32_tic6x_adjust_dynamic_symbol): New static functions.
151         (elf32_tic6x_relocate_section): For R_C6000_PCR_S21, convert branches
152         to weak symbols as required by the ABI.
153         Handle GOT and DSBT_INDEX relocs, and copy relocs to the output file
154         as needed when generating DSBT output.
155         (elf32_tic6x_check_relocs, elf32_tic6x_add_symbol_hook,
156         elf32_tic6x_symbol_processing, elf32_tic6x_section_from_bfd_section,
157         elf32_tic6x_allocate_dynrelocs, elf32_tic6x_size_dynamic_sections,
158         elf32_tic6x_always_size_sections, elf32_tic6x_modify_program_headers,
159         elf32_tic6x_finish_dynamic_sections, elf32_tic6x_plt_sym_val,
160         elf32_tic6x_copy_private_data, elf32_tic6x_link_omit_section_dynsym):
161         New static functions.
162         (ELF_MAXPAGESIZE): Define to 0x1000.
163         (bfd_elf32_bfd_copy_private_bfd_data,
164         bfd_elf32_bfd_link_hash_table_create,
165         bfd_elf32_bfd_link_hash_table_free, elf_backend_can_refcount,
166         elf_backend_want_got_plt, elf_backend_want_dynbss,
167         elf_backend_plt_readonly, elf_backend_got_header_size,
168         elf_backend_gc_sweep_hook, elf_backend_modify_program_headers,
169         elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
170         elf_backend_check_relocs, elf_backend_add_symbol_hook,
171         elf_backend_symbol_processing, elf_backend_link_output_symbol_hook,
172         elf_backend_section_from_bfd_section,
173         elf_backend_finish_dynamic_symbol, elf_backend_always_size_sections,
174         elf32_tic6x_size_dynamic_sections, elf_backend_finish_dynamic_sections,
175         elf_backend_omit_section_dynsym, elf_backend_plt_sym_val): Define.
176
177         * bfd/reloc.c (BFD_RELOC_C6000_JUMP_SLOT, BFD_RELOC_C6000_EHTYPE,
178         BFD_RELOC_C6000_PCR_H16, BFD_RELOC_C6000_PCR_S16): Add.
179         * bfd/bfd-in2.h: Regenerate.
180         * bfd/libbfd.h: Regenerate.
181         * config.bfd: Accept tic6x-*-* instead of tic6x-*-elf.
182
183 2011-03-31  Tristan Gingold  <gingold@adacore.com>
184
185         * coffcode.h (coff_slurp_symbol_table): Silently discard C_NULL
186         entry on xcoff when value is C_NULL_VALUE.
187
188 2011-03-31  Tristan Gingold  <gingold@adacore.com>
189
190         * libcoff-in.h (exec_hdr): Remove.
191         * libcoff.h: Regenerate.
192
193 2011-03-30  Nick Clifton  <nickc@redhat.com>
194
195         * po/da.po: Updated Danish translation.
196
197 2011-03-29  Richard Henderson  <rth@redhat.com>
198
199         * elf64-alpha.c (elf64_alpha_gc_mark_hook): New.
200         (elf64_alpha_gc_sweep_hook): New.
201         (elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook): New.
202         (elf_backend_can_gc_sections): New.
203
204 2011-03-26  John Marino  <binutils@marino.st>
205
206         * config.bfd: Add x86_64-*-dragonfly*, fix i386-*-dragonfly*.
207         * configure.in: Delete unused bfd_elf32_i386_dragonfly_vec.
208         * configure: Regenerate.
209
210 2011-03-25  Michael Snyder  <msnyder@vmware.com>
211
212         * coffcode.h (coff_set_alignment_hook): Check return of bfd_seek.
213
214 2011-03-25  Tristan Gingold  <gingold@adacore.com>
215
216         * vms-alpha.c (_bfd_vms_find_nearest_dst_line): Allow the use
217         of find_nearest_line on object files.
218
219 2011-03-25  Tristan Gingold  <gingold@adacore.com>
220
221         * vms-alpha.c (evax_section_flags): Make $CODE$ section read-only.
222         Minor reordering.
223         (alpha_vms_create_eisd_for_section): Make code sections read-only.
224
225 2011-03-24  Alan Modra  <amodra@gmail.com>
226
227         * elf32-ppc.c (ppc_elf_tls_optimize): Catch more cases where
228         old-style __tls_get_addr calls without marker relocs don't match
229         their arg setup insn one for one.  If such mismatches are found
230         report the reloc and don't do any tls optimization.
231         * elf64-ppc.c (ppc64_elf_tls_optimize): Likewise.
232
233 2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>
234
235         * bfd-in2.h: Regenerate.
236
237 2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>
238
239         * archures.c: Add AVR XMEGA architecture information.
240         * cpu-avr.c (arch_info_struct): Likewise.
241         * elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
242         (elf32_avr_object_p): Likewise.
243
244 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
245
246         * reloc.c (BFD_RELOC_ARM_IRELATIVE): New relocation.
247         * bfd-in2.h: Regenerate.
248         * elf32-arm.c (elf32_arm_howto_table_2): Rename existing definition
249         to elf32_arm_howto_table_3 and replace with a single R_ARM_IRELATIVE
250         entry.
251         (elf32_arm_howto_from_type): Update accordingly.
252         (elf32_arm_reloc_map): Map BFD_RELOC_ARM_IRELATIVE to R_ARM_IRELATIVE.
253         (elf32_arm_reloc_name_lookup): Handle elf32_arm_howto_table_3.
254         (arm_plt_info): New structure, split out from elf32_arm_link_hash_entry
255         with an extra noncall_refcount field.
256         (arm_local_iplt_info): New structure.
257         (elf_arm_obj_tdata): Add local_iplt.
258         (elf32_arm_local_iplt): New accessor macro.
259         (elf32_arm_link_hash_entry): Replace plt_thumb_refcount,
260         plt_maybe_thumb_refcount and plt_got_offset with an arm_plt_info.
261         Change tls_type to a bitfield and add is_iplt.
262         (elf32_arm_link_hash_newfunc): Update accordingly.
263         (elf32_arm_allocate_local_sym_info): New function.
264         (elf32_arm_create_local_iplt): Likewise.
265         (elf32_arm_get_plt_info): Likewise.
266         (elf32_arm_plt_needs_thumb_stub_p): Likewise.
267         (elf32_arm_get_local_dynreloc_list): Likewise.
268         (create_ifunc_sections): Likewise.
269         (elf32_arm_copy_indirect_symbol): Update after the changes to
270         elf32_arm_link_hash_entry.  Assert the is_iplt has not yet been set.
271         (arm_type_of_stub): Add an st_type argument.  Use elf32_arm_get_plt_info
272         to get PLT information.  Assert that all STT_GNU_IFUNC references
273         are turned into PLT references.
274         (arm_build_one_stub): Pass the symbol type to
275         elf32_arm_final_link_relocate.
276         (elf32_arm_size_stubs): Pass the symbol type to arm_type_of_stub.
277         (elf32_arm_allocate_irelocs): New function.
278         (elf32_arm_add_dynreloc): In static objects, use .rel.iplt for
279         all R_ARM_IRELATIVE.
280         (elf32_arm_allocate_plt_entry): New function.
281         (elf32_arm_populate_plt_entry): Likewise.
282         (elf32_arm_final_link_relocate): Add an st_type parameter.
283         Set srelgot to null for static objects.  Use separate variables
284         to record which st_value and st_type should be used when generating
285         a dynamic relocation.  Use elf32_arm_get_plt_info to find the
286         symbol's PLT information, setting has_iplt_entry, splt,
287         plt_offset and gotplt_offset accordingly.  Check whether
288         STT_GNU_IFUNC symbols should resolve to an .iplt entry, and change
289         the relocation target accordingly.  Broaden assert to include
290         .iplts.  Don't set sreloc for static relocations.  Assert that
291         we only generate dynamic R_ARM_RELATIVE relocations for R_ARM_ABS32
292         and R_ARM_ABS32_NOI.  Generate R_ARM_IRELATIVE relocations instead
293         of R_ARM_RELATIVE relocations if the target is an STT_GNU_IFUNC
294         symbol.  Pass the symbol type to arm_type_of_stub.  Conditionally
295         resolve GOT references to the .igot.plt entry.
296         (elf32_arm_relocate_section): Update the call to
297         elf32_arm_final_link_relocate.
298         (elf32_arm_gc_sweep_hook): Use elf32_arm_get_plt_info to get PLT
299         information.  Treat R_ARM_REL32 and R_ARM_REL32_NOI as call
300         relocations in shared libraries and relocatable executables.
301         Count non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
302         to get the list of dynamic relocations for a local symbol.
303         (elf32_arm_check_relocs): Always create ifunc sections.  Set isym
304         at the same time as setting h.  Use elf32_arm_allocate_local_sym_info
305         to allocate local symbol information.  Treat R_ARM_REL32 and
306         R_ARM_REL32_NOI as call relocations in shared libraries and
307         relocatable executables.  Record PLT information for local
308         STT_GNU_IFUNC functions as well as global functions.   Count
309         non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
310         to get the list of dynamic relocations for a local symbol.
311         (elf32_arm_adjust_dynamic_symbol): Handle STT_GNU_IFUNC symbols.
312         Don't remove STT_GNU_IFUNC PLTs unless all references have been
313         removed.  Update after the changes to elf32_arm_link_hash_entry.
314         (allocate_dynrelocs_for_symbol): Decide whether STT_GNU_IFUNC PLT
315         entries should live in .plt or .iplt.  Check whether the .igot.plt
316         and .got entries can be combined.  Use elf32_arm_allocate_plt_entry
317         to allocate .plt and .(i)got.plt entries.  Detect which .got
318         entries will need R_ARM_IRELATIVE relocations and use
319         elf32_arm_allocate_irelocs to allocate them.  Likewise other
320         non-.got dynamic relocations.
321         (elf32_arm_size_dynamic_sections): Allocate .iplt, .igot.plt
322         and dynamic relocations for local STT_GNU_IFUNC symbols.
323         Check whether the .igot.plt and .got entries can be combined.
324         Detect which .got entries will need R_ARM_IRELATIVE relocations
325         and use elf32_arm_allocate_irelocs to allocate them.  Use stashed
326         section pointers intead of strcmp checks.  Handle iplt and igotplt.
327         (elf32_arm_finish_dynamic_symbol): Use elf32_arm_populate_plt_entry
328         to fill in .plt, .got.plt and .rel(a).plt entries.  Point
329         STT_GNU_IFUNC symbols at an .iplt entry if non-call relocations
330         resolve to it.
331         (elf32_arm_output_plt_map_1): New function, split out from
332         elf32_arm_output_plt_map.  Handle .iplt entries.  Use
333         elf32_arm_plt_needs_thumb_stub_p.
334         (elf32_arm_output_plt_map): Call it.
335         (elf32_arm_output_arch_local_syms): Add mapping symbols for
336         local .iplt entries.
337         (elf32_arm_swap_symbol_in): Handle Thumb STT_GNU_IFUNC symbols.
338         (elf32_arm_swap_symbol_out): Likewise.
339         (elf32_arm_add_symbol_hook): New function.
340         (elf_backend_add_symbol_hook): Define for all targets.
341
342 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
343
344         * elf-bfd.h (elf_link_hash_entry): Add target_internal.
345         * elf.c (swap_out_syms): Set st_target_internal for each
346         Elf_Internal_Sym.
347         * elfcode.h (elf_swap_symbol_in): Likewise.
348         * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
349         * elf32-sh-symbian.c (sh_symbian_relocate_section): Likewise.
350         * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
351         * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
352         * elflink.c (elf_link_output_extsym): Likewise.
353         (bfd_elf_final_link): Likewise.
354         (elf_link_add_object_symbols): Copy st_target_internal
355         to the hash table if we see a definition.
356         (_bfd_elf_copy_link_hash_symbol_type): Copy target_internal.
357         * elf32-arm.c (elf32_arm_stub_hash_entry): Replace st_type with
358         a branch_type field.
359         (a8_erratum_fix, a8_erratum_reloc): Likewise.
360         (arm_type_of_stub): Replace actual_st_type with an
361         actual_branch_type parameter.
362         (arm_build_one_stub): Use branch types rather than st_types to
363         determine the type of branch.
364         (cortex_a8_erratum_scan): Likewise.
365         (elf32_arm_size_stubs): Likewise.
366         (bfd_elf32_arm_process_before_allocation): Likewise.
367         (allocate_dynrelocs_for_symbol): Likewise.
368         (elf32_arm_finish_dynamic_sections): Likewise.
369         (elf32_arm_final_link_relocate): Replace sym_flags parameter with
370         a branch_type parameter.
371         (elf32_arm_relocate_section): Update call accordingly.
372         (elf32_arm_adjust_dynamic_symbol): Don't check STT_ARM_TFUNC.
373         (elf32_arm_output_map_sym): Initialize st_target_internal.
374         (elf32_arm_output_stub_sym): Likewise.
375         (elf32_arm_symbol_processing): Delete.
376         (elf32_arm_swap_symbol_in): Convert STT_ARM_TFUNCs into STT_FUNCs.
377         Use st_target_internal to record the branch type.
378         (elf32_arm_swap_symbol_out): Use st_target_internal to test for
379         Thumb functions.
380         (elf32_arm_is_function_type): Delete.
381         (elf_backend_symbol_processing): Likewise.
382         (elf_backend_is_function_type): Likewise.
383
384 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
385
386         * elf32-arm.c (elf32_arm_check_relocs): Always assign a dynobj.
387         (elf32_arm_finish_dynamic_sections): Move sgot != NULL assertion
388         into the PLT block.
389
390 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
391
392         * elf32-arm.c (elf32_arm_check_relocs): Use call_reloc_p,
393         may_need_local_target_p and may_become_dynamic_p to classify
394         the relocation type.  Don't check info->symbolic or h->def_regular
395         when deciding whether to record a potential dynamic reloc.
396         Don't treat potential dynamic relocs as PLT references.
397         (elf32_arm_gc_sweep_hook): Update to match.  Assert that we don't
398         try to make the PLT reference count go negative.
399
400 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
401
402         * elf32-arm.c (elf32_arm_final_link_relocate): Always fill in the
403         GOT entry here, rather than leaving it to finish_dynamic_symbol.
404         Only create a dynamic relocation for local references if
405         info->shared.
406         (allocate_dynrelocs_for_symbol): Update dynamic relocation
407         allocation accordingly.
408         (elf32_arm_finish_dynamic_symbol): Don't initialise the GOT entry here.
409
410 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
411
412         * elf32-arm.c (elf32_arm_allocate_dynrelocs): New function.
413         (elf32_arm_add_dynreloc): Likewise.
414         (elf32_arm_adjust_dynamic_symbol): Use elf32_arm_allocate_dynrelocs
415         to allocate dynamic relocations.
416         (elf32_arm_size_dynamic_sections): Likewise.
417         (allocate_dynrelocs): Likewise.  Rename to
418         allocate_dynrelocs_for_symbol.
419         (elf32_arm_final_link_relocate): Use elf32_arm_add_dynreloc to
420         create dynamic relocations.
421         (elf32_arm_finish_dynamic_symbol): Likewise.
422
423 2011-03-12  H.J. Lu  <hongjiu.lu@intel.com>
424
425         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS
426         x32 GD->IE and GD->LE transitions.
427         (elf_x86_64_relocate_section): Supprt TLS x32 GD->IE, GD->LE
428         and LD->LE transitions.
429
430 2011-03-10  Alan Modra  <amodra@gmail.com>
431
432         * elf64-ppc.c (ppc64_elf_relocate_section): Provide section/offset
433         for LO_DS error message and correct multiple.
434
435 2011-03-10  Alan Modra  <amodra@gmail.com>
436
437         * elf64-ppc.c (bfd_elf64_bfd_link_just_syms): Define.
438         (ppc64_elf_link_just_syms): New function.
439         (opd_entry_value): Don't assume big-endian host.
440         (get_r2off): New function.
441         (ppc_build_one_stub, ppc_size_one_stub): Use it here.
442
443 2011-03-06  Michael Snyder  <msnyder@vmware.com>
444
445         * compress.c (bfd_compress_section_contents): Check for out of mem.
446
447         * elf64-x86-64.c (elf_x86_64_relocate_section): Document
448         that case statement falls through intentionally.
449
450         * elf32-i386.c (elf_i386_relocate_section): Document fall through.
451
452 2011-03-04  Alan Modra  <amodra@gmail.com>
453
454         * archive.c (bsd_write_armap): Don't call stat in deterministic
455         mode, and don't use st_mtime if stat returns error.
456
457 2011-03-03  Michael Snyder  <msnyder@vmware.com>
458
459         * elf64-x86-64.c (elf_x86_64_relocate_section): Remove dead code.
460
461         * coff-x86_64.c (coff_amd64_rtype_to_howto): Fencepost error.
462
463         * aoutx.h (aout_final_link): Use sizeof int not sizeof int*.
464         (aout_link_write_other_symbol): Missing break statement.
465
466         * dwarf2.c (scan_unit_for_symbols): Stop memory leak.
467
468         * archive.c (_bfd_slurp_extended_name_table): Fail if bfd_seek fails.
469
470 2011-03-03  H.J. Lu  <hongjiu.lu@intel.com>
471
472         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS
473         x32 IE->LE transition.
474         (elf_x86_64_relocate_section): Likewise.
475
476 2011-03-02  Bernd Schmidt  <bernds@codesourcery.com>
477
478         * elflink.c (is_reloc_section): Remove function.
479         (get_dynamic_reloc_section_name): Construct string manually.
480
481 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
482
483         * archive.c (_bfd_find_nested_archive): Use filename_(n)cmp.
484         (adjust_relative_path): Likewise.
485         (_bfd_construct_extended_name_table): Likewise.
486         * corefile.c (generic_core_file_matches_executable_p): Likewise.
487         * elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
488         * elf32-frv.c (elf32_frv_relocate_section): Likewise.
489         * elf32-spu.c (sort_bfds): Likewise.
490         (spu_elf_auto_overlay): Likewise.
491         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
492         * xcofflink.c (xcoff_set_import_path): Likewise.
493         * xtensa-isa.c (xtensa_regfile_lookup): Likewise.
494         (xtensa_regfile_lookup_shortname): Likewise.
495
496 2011-02-28  Alan Modra  <amodra@gmail.com>
497
498         PR 12513
499         * archive.c (bfd_slurp_bsd_armap_f2): Sanity check parsed_size and
500         stringsize.  Properly sanity check symdef_count.  Remove redundant
501         bfd_release.
502
503 2011-02-25  Rafael Ávila de Espíndola <respindola@mozilla.com>
504
505         * plugin.c (bfd_plugin_object_p): Correctly set the filesize
506         and handle claim_file seeking. Only try to load the plugin once.
507
508 2011-02-22  Andreas Schwab  <schwab@redhat.com>
509
510         * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): For a TLS_GD
511         relocation read the value from the second GOT slot.
512
513 2011-02-15  Tristan Gingold  <gingold@adacore.com>
514
515         * vms-alpha.c (alpha_vms_link_add_archive_symbols): Add a comment.
516
517 2011-02-15  Alan Modra  <amodra@gmail.com>
518
519         * elf64-ppc.c (ppc64_elf_edit_toc): Reinstate second read of
520         toc relocs.  Fuss over free(NULL).
521
522 2011-02-14  Mike Frysinger  <vapier@gentoo.org>
523
524         * elflink.c (bfd_elf_size_dynamic_sections): Add
525         bfd_get_symbol_leading_char to the start of newname.
526
527 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
528
529         * configure: Regenerate.
530
531 2011-02-09  Alan Modra  <amodra@gmail.com>
532
533         * elf64-ppc.c (ppc64_elf_edit_toc): Don't free toc relocs until
534         we are done.  When optimising large toc, check that a global
535         symbol on a toc reloc is defined in a kept section.
536
537 2011-02-08  Nick Clifton  <nickc@redhat.com>
538
539         PR binutils/12467
540         * elf.c (assign_file_positions_for_load_sections): Set the program
541         header offset and entry size to zero if there are no program
542         headers.
543
544 2011-02-08  Alan Modra  <amodra@gmail.com>
545
546         * elf64-ppc.c (ppc64_elf_edit_toc): Don't segfault on NULL
547         local_syms when looking for local symbols in .toc.
548
549 2011-02-01  Alan Modra  <amodra@gmail.com>
550
551         * elf64-ppc.c (ppc64_elf_next_input_section): Use elf_gp value
552         for toc pointer on any section having makes_toc_func_call set.
553         (check_pasted_section): Ensure pasted .init/.fini fragments use
554         the same toc if any has makes_toc_func_call set.
555
556 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
557
558         * elf32-ppc.c (ppc_elf_link_hash_newfunc): Initialize has_sda_refs
559         field.
560
561 2011-01-22  Richard Sandiford  <rdsandiford@googlemail.com>
562
563         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Ignore
564         common sections too.
565
566 2011-01-18  H.J. Lu  <hongjiu.lu@intel.com>
567
568         * elf64-x86-64.c (elf_backend_want_plt_sym): Redefine to 0 after
569         Solaris target.
570
571 2011-01-18  Pierre Muller  <muller@ics.u-strasbg.fr>
572
573         Fix compilation for mingw64.
574         * coffcode.h (coff_slurp_symbol_table): Add intptr_t intermediate
575         typecast to avoid warning.
576         * elf32-rx.c: Add "bfd_stdint.h" include required for int32_t type
577         usage.
578         * elfxx-ia64.c (elfNN_ia64_relax_br): Use intptr_t typeacast instead
579         of long for pointer to avoid warning.
580         (elfNN_ia64_relax_brl): Idem.
581         (elfNN_ia64_install_value): Idem.
582         * vms-alpha.c (_bfd_vms_slurp_etir): Idem.
583
584 2011-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
585
586         * elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
587         h->needs_plt when deciding whether to record a possible dynamic reloc.
588
589 2011-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
590
591         * elf32-arm.c (elf32_arm_gc_sweep_hook): Remove all registered
592         dynamic relocs for the removed section.
593
594 2011-01-15  H.J. Lu  <hongjiu.lu@intel.com>
595
596         * elf64-x86-64.c (elf_x86_64_check_relocs): Check invalid x32
597         relocations.
598
599 2011-01-14  H.J. Lu  <hongjiu.lu@intel.com>
600
601         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add pointer_r_type.
602         (elf_x86_64_link_hash_table_create): Set pointer_r_type.
603         (elf_x86_64_check_relocs): Handle R_X86_64_32 like R_X86_64_64
604         for ILP32.  Remove ABI_64_P PIC check for R_X86_64_8,
605         R_X86_64_16, R_X86_64_32 and R_X86_64_32S.
606         (elf_x86_64_relocate_section):  Handle R_X86_64_32 like R_X86_64_64
607         for ILP32.
608
609 2011-01-14  Alan Modra  <amodra@gmail.com>
610
611         * bfd.c (bfd_perror): Flush stdout before and stderr after printing
612         error.
613         (_bfd_default_error_handler): Likewise.
614         * elf.c (print_segment_map): Likewise.
615         * libbfd.c (warn_deprecated): Likewise.
616         * som.c (som_sizeof_headers): No need to do so here.
617         * coff-i860.c: Replace use of printf for error messages with
618         _bfd_error_handler.
619         * coff-ppc.c: Likewise.
620         * coff-sh.c: Likewise.
621         * elf32-bfin.c: Likewise.
622         * elf32-dlx.c: Likewise.
623         * elf32-mep.c: Likewise.
624         * elf32-v850.c: Likewise.
625         * mach-o.c: Likewise.
626         * pef.c: Likewise.
627
628 2011-01-13  H.J. Lu  <hongjiu.lu@intel.com>
629
630         * elf64-x86-64.c (elf_x86_64_link_hash_table): Remove
631         swap_reloca_out.
632         (elf_x86_64_link_hash_table_create): Don't set swap_reloca_out.
633         (elf_x86_64_check_relocs): Align relocation section to 4 byte
634         for 32bit.
635         (elf_x86_64_gc_sweep_hook): Replace ELF64_ST_TYPE with
636         ELF_ST_TYPE.
637         (elf_x86_64_finish_dynamic_symbol): Updated.
638         (elf_x86_64_finish_dynamic_sections): Don't use
639         Elf64_External_Dyn, bfd_elf64_swap_dyn_in, nor
640         bfd_elf64_swap_dyn_out.
641
642 2011-01-14  J. Park  <grassman@gmail.com>
643
644         PR ld/12339
645         * elf32-arm.c (allocate_dynrelocs): Don't set up eh before
646         following bfd_link_hash_warning symbol link.
647
648 2011-01-10  Nathan Sidwell  <nathan@codesourcery.com>
649             Glauber de Oliveira Costa  <glommer@gmail.com>
650
651         * reloc.c (BFD_RELOC_ARM_TLS_GOTDESC, BFD_RELOC_ARM_TLS_CALL,
652         BFD_RELOC_ARM_THM_TLS_CALL, BFD_RELOC_ARM_TLS_DESCSEQ,
653         BFD_RELOC_ARM_THM_TLS_DESCSEQ, BFD_RELOC_ARM_TLS_DESC): New
654         relocations.
655         * libbfd.h: Rebuilt.
656         * bfd-in2.h: Rebuilt.
657         * elf32-arm.c (elf32_arm_howto_table_1): Add new relocations.
658         (elf32_arm_reloc_map): Likewise.
659         (tls_trampoline, dl_tlsdesc_lazy_trampoline): New PLT templates.
660         (elf32_arm_stub_long_branch_any_tls_pic,
661         elf32_arm_stub_long_branch_v4t_thumb_tls_pic): New stub templates.
662         (DEF_STUBS): Add new stubs.
663         (struct_elf_arm_obj_data): Add local_tlsdesc_gotent field.
664         (elf32_arm_local_tlsdesc_gotent): New.
665         (GOT_TLS_GDESC): New mask.
666         (GOT_TLS_GD_ANY): Define.
667         (struct elf32_arm_link_hash_entry): Add tlsdesc_got field.
668         (elf32_arm_compute_jump_table_size): New.
669         (struct elf32_arm_link_hash_table): Add next_tls_desc_index,
670         num_tls_desc, dt_tlsdesc_plt, dt_tlsdesc_got, tls_trampoline,
671         sgotplt_jump_table_size fields.
672         (elf32_arm_link_hash_newfunc): Initialize tlsdesc_got field.
673         (elf32_arm_link_hash_table_create): Initialize new fields.
674         (arm_type_of_stub): Check TLS desc relocs too.
675         (elf32_arm_stub_name): TLS desc relocs can be shared.
676         (elf32_arm_tls_transition): Determine relaxation.
677         (arm_stub_required_alignment): Add tls stubs.
678         (elf32_arm_size_stubs): Likewise.
679         (elf32_arm_tls_relax): Perform TLS relaxing.
680         (elf32_arm_final_link_relocate): Process TLS DESC relocations.
681         (IS_ARM_TLS_GNU_RELOC): New.
682         (IS_ARM_TLS_RELOC): Use it.
683         (elf32_arm_relocate_section): Perform TLS relaxing.
684         (elf32_arm_check_relocs): Anticipate TLS relaxing, process tls
685         desc relocations.
686         (allocate_dynrelocs): Allocate tls desc relcoations.
687         (elf32_arm_output_arch_local_syms): Emit tls trampoline mapping
688         symbols.
689         (elf32_arm_size_dynamic_sections): Allocate tls trampolines and
690         got slots.
691         (elf32_arm_always_size_sections): New. Create _TLS_MODULE_BASE
692         symbol.
693         (elf32_arm_finish_dynamic_symbol): Adjust.
694         (arm_put_trampoline): New.
695         (elf32_arm_finish_dynamic_sections): Emit new dynamic tags and tls
696         trampolines.
697         (elf_backend_always_size_sections): Define.
698
699 2011-01-06  H.J. Lu  <hongjiu.lu@intel.com>
700
701         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Optimized.
702
703 2011-01-06  H.J. Lu  <hongjiu.lu@intel.com>
704
705         PR ld/12366
706         PR ld/12371
707         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly
708         handle symbols marked with regular reference, but not non-GOT
709         reference when building shared library.
710
711         * elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle
712         local and global STT_GNU_IFUNC symols when building shared
713         library.
714         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
715
716 2011-01-05  DJ Delorie  <dj@redhat.com>
717
718         * reloc.c: Add BFD_RELOC_RX_OP_NEG.
719         * libbfd.h: Regenerate.
720         * bfd-in2.h: Regenerate.
721         * elf32-rx.c: Add it to the list, corresponding to R_RX_OPneg.
722
723 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
724
725         * cpu-i386.c (bfd_i386_compatible): New.
726         (bfd_x64_32_arch_intel_syntax): Replace bfd_default_compatible
727         with bfd_i386_compatible.
728         (bfd_x86_64_arch_intel_syntax): Likewise.
729         (bfd_i386_arch_intel_syntax): Likewise.
730         (i8086_arch): Likewise.
731         (bfd_x64_32_arch): Likewise.
732         (bfd_x86_64_arch): Likewise.
733         (bfd_i386_arch): Likewise.
734
735 For older changes see ChangeLog-2010
736 \f
737 Local Variables:
738 mode: change-log
739 left-margin: 8
740 fill-column: 74
741 version-control: never
742 End: