* elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
[platform/upstream/binutils.git] / bfd / ChangeLog
1 2013-02-18  Alan Modra  <amodra@gmail.com>
2
3         * elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
4         local_call_stubs, elf_data_symbol, elf_text_symbol, elf_data_section,
5         and elf_text_section to..
6         * elfxx-mips.c (struct mips_elf_obj_tdata): ..here.  Update all refs.
7         * elf64-alpha.c (struct mips_elf_find_line): Rename to..
8         (struct alpha_elf_find_line): ..this.
9         (struct alpha_elf_obj_tdata): Add find_line_info, update refs.
10
11 2013-02-16  H.J. Lu  <hongjiu.lu@intel.com>
12
13         PR ld/15146
14         * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
15         for references from the dummy bfd.
16
17 2013-02-16  H.J. Lu  <hongjiu.lu@intel.com>
18
19         PR ld/15149
20         * elflink.c (elf_link_add_object_symbols): Also track weak
21         references.
22
23 2013-02-15  H.J. Lu  <hongjiu.lu@intel.com>
24
25         PR binutils/15151
26         * archive.c (_bfd_find_nested_archive): Don't allow a nested
27         archive pointing to itself.
28         (_bfd_get_elt_at_filepos): Revert the last 2 changes.
29
30 2013-02-15  Nick Clifton  <nickc@redhat.com>
31
32         PR binutils/15140
33         * archive.c (_bfd_get_elt_at_filepos): Prevent an infinite loop
34         accessing a corrupt nested archive.
35
36 2013-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
37
38         * elfxx-mips.c (mips_got_page_ref): New structure.
39         (mips_got_page_entry): Use a section rather than a (bfd, symndx)
40         pair to represent the anchor point.
41         (mips_got_info): Add a got_page_refs field.
42         (mips_elf_link_hash_table): Add a sym_cache field.
43         (mips_got_page_ref_hash, mips_got_page_ref_eq): New functions.
44         (mips_got_page_entry_hash, mips_got_page_entry_eq): Update for
45         new anchor representation.
46         (mips_elf_create_got_info): Create got_page_refs rather than
47         got_page_entries.
48         (mips_elf_record_got_page_ref): New function.
49         (mips_elf_pages_for_range): Move further down file.
50         (mips_elf_record_got_page_entry): Likewise.  Take a got as argument.
51         Use a section rather than a (bfd, symndx) pair to represent the
52         anchor point.
53         (mips_elf_resolve_got_page_ref): New function.
54         (mips_elf_resolve_final_got_entries): Use it to populate
55         got_page_entries.
56         (_bfd_mips_elf_check_relocs): Call mips_elf_record_got_page_ref
57         rather than mips_elf_record_got_page_entry.  Only nullify h
58         afterwards.
59         (mips_elf_lay_out_got): Call mips_elf_resolve_final_got_entries
60         earlier.
61
62 2013-02-12  Richard Sandiford  <rdsandiford@googlemail.com>
63
64         * elfxx-mips.c (mips_elf_lay_out_got): Count VxWorks GOT relocs
65         in g->relocs.
66
67 2013-02-12  Alan Modra  <amodra@gmail.com>
68
69         * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Provide
70         suitable definition when using generic linker hash table.
71
72 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
73
74         * elfxx-mips.c (mips_elf_count_got_entries): Delete.
75         (mips_elf_check_recreate_got, mips_elf_recreate_got): Take a
76         mips_elf_traverse_got_arg.  Count GOT entries.
77         (mips_elf_resolve_final_got_entries): Take the bfd_link_info
78         as argument.  Update after above changes.
79         (mips_elf_merge_got, mips_elf_lay_out_got): Don't call
80         mips_elf_count_got_entries.  Update the calls to
81         mips_elf_resolve_final_got_entries.
82
83 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
84
85         * elfxx-mips.c (mips_got_tls_type): New enum.
86         (mips_got_entry): Add tls_initialized.
87         (mips_elf_got_entry_hash, mips_elf_got_entry_eq, mips_tls_got_relocs)
88         (mips_elf_count_got_entry, mips_elf_initialize_tls_index): Remove
89         GOT_TLS_TYPE masks.
90         (mips_elf_reloc_tls_type, mips_tls_got_entries)
91         (mips_elf_record_global_got_symbol, mips_elf_initialize_tls_index)
92         (_bfd_mips_elf_finish_dynamic_symbol): Use GOT_TLS_NONE rather
93         than GOT_NORMAL.
94         (mips_elf_initialize_tls_slots): Replace got_offset and tls_type_p
95         arguments with a GOT entry.  Remove GOT_TLS_TYPE masks.  Use
96         tls_initialized rather than GOT_TLS_DONE.
97         (mips_tls_got_index): Delete.
98         (mips_elf_local_got_index, mips_elf_global_got_index): Use
99         mips_elf_initialize_tls_slots rather than mips_tls_got_index.
100         (mips_elf_record_got_entry): Initialize tls_initialized.
101
102 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
103
104         * elfxx-mips.c (mips_got_entry): Remove tls_ldm_offset.
105         (mips_elf_link_hash_entry): Remove tls_ie_type, tls_gd_type,
106         tls_ie_got_offset and tls_gd_got_offset.
107         (mips_elf_link_hash_newfunc): Remove initialization.
108         (mips_elf_create_got_info): Likewise.
109         (mips_elf_count_local_got_entries, mips_elf_count_global_tls_entries)
110         (mips_tls_single_got_index): Delete.
111         (mips_elf_local_got_index): Always use the GOT entry to track
112         GOT indices.
113         (mips_elf_global_got_index): Likewise.
114         (mips_elf_create_local_got_entry): Assert that TLS entries have
115         already been allocated.
116         (mips_elf_record_global_got_symbol): Don't initialize
117         tls_ie_type or tls_gd_type.
118         (mips_elf_count_got_symbols): Only count reloc-only GOT entries here.
119         (mips_elf_initialize_tls_index): Allocate a GOT index for every TLS
120         entry.
121         (mips_elf_lay_out_got): Use mips_elf_count_got_entries to count
122         the GOT entries.
123         (_bfd_mips_elf_finish_dynamic_symbol): Assert that TLS GOT offsets
124         have been allocated.
125         (_bfd_mips_elf_copy_indirect_symbol): Remove handling of
126         tls_ie_type and tls_gd_type.
127
128 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
129
130         * elfxx-mips.c (mips_elf_create_local_got_entry): Tidy.  Avoid
131         aliasing violation.  Check for htab allocation failures.
132
133 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
134
135         * elfxx-mips.c (mips_elf_primary_global_got_index): New function,
136         split out from...
137         (mips_elf_global_got_index): ...here.  Reorder arguments so that
138         the output bfd and info come first.
139         (mips_elf_calculate_relocation): Update the call to
140         mips_elf_global_got_index accordingly.
141         (_bfd_mips_elf_finish_dynamic_symbol): Use
142         mips_elf_primary_global_got_index rather than
143         mips_elf_global_got_index.
144         (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
145
146 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
147
148         * elfxx-mips.c (mips_got_entry): Update comments.
149         (mips_elf_multi_got_entry_eq): Rename to...
150         (mips_elf_got_entry_eq): ...this, deleting the old definition.
151         (mips_elf_create_got_info): Remove master_got_p argument.
152         Always use mips_elf_got_entry_eq.
153         (mips_elf_bfd_got, mips_elf_multi_got, mips_elf_create_got_section):
154         Update calls accordingly.
155
156 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
157
158         * elfxx-mips.c (mips_got_info): Remove bfd2got.
159         (mips_elf_bfd2got_hash): Delete.
160         (mips_elf_got_per_bfd_arg): Remove bfd2got.
161         (mips_elf_replace_bfd_got, mips_elf_count_got_entries): New functions.
162         (mips_elf_global_got_index, mips_elf_create_local_got_entry): Use
163         g->next to test for the multigot case.  Use mips_elf_bfd_got rather
164         than mips_elf_got_for_ibfd.
165         (mips_elf_bfd2got_entry_hash, mips_elf_bfd2got_entry_eq)
166         (mips_elf_got_for_ibfd, mips_elf_get_got_for_bfd): Delete.
167         (mips_elf_make_got_per_bfd): Replace with...
168         (mips_elf_add_got_entry): ...this new function.
169         (mips_elf_make_got_pages_per_bfd): Replace with...
170         (mips_elf_add_got_page_entry): ...this new function.
171         (mips_elf_merge_got_with): Replace bfd2got argument with separate
172         bfd and GOT arguments.  Use mips_elf_add_got_entry and
173         mips_elf_add_got_page_entry instead of mips_elf_make_got_per_bfd
174         and mips_elf_make_got_pages_per_bfd.  Use mips_elf_replace_bfd_got
175         to set the BFD's GOT and free the old table.
176         (mips_elf_merge_got): Replace bfd2got argument with separate
177         bfd and GOT arguments.  Apply mips_elf_resolve_final_got_entries.
178         Use mips_elf_count_got_entries to count the number of entries in
179         each GOT.  Update the calls to mips_elf_merge_got_with.
180         (mips_elf_adjust_gp): Use g->next to test for the multigot case.
181         Use mips_elf_bfd_got rather than mips_elf_got_for_ibfd.
182         (mips_elf_multi_got): Don't create the bfd2got hash table.
183         Replace hash table traversal with a walk over the input bfds,
184         updating the call to mips_elf_merge_got.  Use mips_elf_replace_bfd_got
185         to set the output bfd's GOT.
186         (mips_elf_lay_out_got): Rename "sub" to "ibfd".  Record that all
187         bfds use the master GOT in the single-GOT case.
188         (_bfd_mips_elf_finish_dynamic_sections): Use mips_elf_bfd_got
189         rather than mips_elf_got_for_ibfd.
190
191 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
192
193         * elfxx-mips.c (mips_elf_obj_tdata): Add a got field.
194         (mips_elf_bfd_got, mips_elf_record_got_entry): New functions.
195         (mips_elf_record_global_got_symbol): Update the hash entry before
196         adding the mips_got_entry.  Use mips_elf_record_got_entry to do
197         the latter.
198         (mips_elf_record_local_got_symbol): Use mips_elf_record_got_entry.
199         (mips_elf_record_got_page_entry): Record the entry in both the
200         master and bfd GOTs.
201
202 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
203
204         * elfxx-mips.c (mips_elf_recreate_got): Don't change the entry;
205         create another one if necessary.
206         (mips_elf_set_gotidx): New function.
207         (mips_elf_set_global_gotidx): Use it.
208         (mips_elf_initialize_tls_index): Likewise.  Take a
209         mips_elf_traverse_got_arg as argument.
210         (mips_elf_lay_out_got): Update use of mips_elf_initialize_tls_index.
211         (mips_elf_multi_got): Likewise.  Cope with error returns from
212         mips_elf_set_global_gotidx.
213
214 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
215
216         * elfxx-mips.c (mips_got_info): Add relocs field.
217         (mips_elf_set_global_got_offset_arg, mips_elf_count_tls_arg): Replace
218         with...
219         (mips_elf_traverse_got_arg): ...this new structure.
220         (mips_elf_count_local_tls_relocs): Delete.
221         (mips_elf_count_global_tls_relocs): Likewise.
222         (mips_elf_count_got_entry): New function.
223         (mips_elf_count_local_got_entries): Likewise.
224         (mips_elf_count_global_tls_entries): Take a mips_elf_traverse_got_arg
225         rather than a mips_elf_count_tls_arg.  Count both relocs and entries.
226         (mips_elf_record_local_got_symbol): Don't count got entries here.
227         (mips_elf_make_got_per_bfd): Use mips_elf_count_got_entry.
228         (mips_elf_set_global_got_offset): Split into...
229         (mips_elf_set_global_got_area, mips_elf_set_global_gotidx): ...these
230         new functions.  Take a mips_elf_traverse_got_arg rather than a
231         mips_elf_set_global_got_offset_arg.  Don't count TLS relocs here.
232         Use g->relocs to record the number of relocs needed for global GOT
233         entries.
234         (mips_elf_multi_got): Use mips_elf_traverse_got_arg rather than
235         mips_elf_set_global_got_offset_arg.  Use the relocs field to count
236         relocations.  Update for above function split.
237         (mips_elf_lay_out_got): Use mips_elf_count_local_got_entries
238         to count both the number of GOT entries and the number of TLS
239         relocs required by local entries.  Likewise
240         mips_elf_count_global_tls_entries and global entries.
241         Remove uses of mips_elf_count_local_tls_relocs and
242         mips_elf_count_global_tls_relocs.
243
244 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
245
246         * elfxx-mips.c (mips_got_entry): Update comment above tls_type entry
247         to say that each structure represents only one type of TLS reference.
248         (GOT_TLS_TYPE): New define.
249         (mips_elf_link_hash_entry): Temporarily split tls_type and
250         tls_got_offset into two variables each.
251         (mips_elf_link_hash_newfunc): Update accordingly.
252         (mips_elf_got_entry_eq, mips_elf_got_entry_hash)
253         (mips_elf_multi_got_entry_eq): Require the tls_type to be the same.
254         (mips_elf_reloc_tls_type, mips_tls_got_entries): New functions.
255         (mips_tls_got_relocs): Use a switch statement.
256         (mips_elf_count_global_tls_entries): Handle the new hash entry fields.
257         (mips_elf_initialize_tls_slots): Use a switch statement.  Avoid
258         local "offset" variable.
259         (mips_tls_got_index): Remove r_type argument and assert.  Remove
260         code that handled entries with two TLS types; always use the
261         original got_index instead.
262         (mips_tls_single_got_index): New function.
263         (mips_elf_local_got_index): Use entry->tls_type to check for
264         TLS entries.  Use mips_tls_single_got_index.  Update call to
265         mips_tls_got_index.
266         (mips_elf_global_got_index): Use mips_elf_reloc_tls_type.
267         Use p->tls_type to check for TLS entries.  Update call to
268         mips_tls_got_index.  Use mips_tls_single_got_index.
269         (mips_elf_create_local_got_entry): Use mips_elf_reloc_tls_type.
270         Use entry.tls_type to check for TLS entries.
271         (mips_elf_record_global_got_symbol): Replace tls_flag argument
272         with r_type argument.  Use mips_elf_reloc_tls_type.
273         Set up the new hash entry fields.
274         (mips_elf_record_local_got_symbol): Replace tls_flag argument
275         with r_type argument.  Use mips_elf_reloc_tls_type and
276         mips_tls_got_entries.  Remove code that handled entries
277         with multiple TLS types.
278         (mips_elf_make_got_per_bfd): Use mips_tls_got_entries.
279         (mips_elf_initialize_tls_index): Handle new hash entry fields.
280         Use equality rather than masks when checking for specific TLS types.
281         Use mips_tls_got_entries.  Remove code that handled entries
282         with multiple TLS types.
283         (mips_elf_calculate_relocation): Use TLS_RELOC_P instead of
284         testing the hash table entry.
285         (_bfd_mips_elf_check_relocs): Update calls to
286         mips_elf_record_global_got_symbol and mips_elf_record_local_got_symbol.
287         (_bfd_mips_elf_finish_dynamic_symbol): Don't check h->type.
288         (_bfd_mips_elf_copy_indirect_symbol): Handle new hash entry fields.
289
290 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
291
292         * elfxx-mips.c (mips_elf_multi_got_entry_hash): Rename to...
293         (mips_elf_got_entry_hash): ...this, deleting the old version.
294         (mips_elf_create_got_info): Use mips_elf_got_entry_hash for
295         both types of GOT.
296
297 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
298
299         * elfxx-mips.c (mips_elf_create_got_info): New function.
300         (mips_elf_get_got_for_bfd, mips_elf_multi_got): Use it.
301         (mips_elf_create_got_section): Likewise.
302
303 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
304
305         * elfxx-mips.c (mips_elf_record_local_got_symbol): Always set
306         gotidx to -1.
307
308 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
309
310         * elfxx-mips.c (mips_elf_multi_got): Simplify size calculation.
311
312 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
313
314         * elfxx-mips.c (mips_got_info): Move global_gotsym to...
315         (mips_elf_link_hash_table): ...here.  Update rest of file accordingly.
316
317 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
318
319         * elfxx-mips.c (mips_elf_count_global_tls_entries)
320         (mips_elf_count_global_tls_relocs): Don't count indirect or
321         warning symbols.
322         (mips_elf_multi_got, mips_elf_lay_out_got): Assert that the right
323         number of TLS entries were allocated.
324
325 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
326
327         * elfxx-mips.c (mips_elf_sort_hash_table_f): Remove asserts.
328
329 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
330
331         * elfxx-mips.c (mips_elf_merge_got_with): Only use arg->global_count
332         if there are TLS relocations.
333
334 2013-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
335
336         * elfxx-mips.c (mips_elf_recreate_got): Remove free.
337         (mips_elf_resolve_final_got_entries): Remove bogus comment.
338
339 2013-02-11  Alan Modra  <amodra@gmail.com>
340
341         * elfcode.h (elf_checksum_contents): Free contents.
342         * elf-bfd.h (_bfd_elf_link_hash_table_free): Declare.
343         * elflink.c (_bfd_elf_link_hash_table_free): New function.
344         (elf_final_link_free): New function, extracted from..
345         (bfd_elf_final_link): ..here.  Always call
346         _bfd_elf_write_section_eh_frame_hdr.
347         * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Default to
348         _bfd_elf_link_hash_table_free.
349         * libbfd-in.h (_bfd_merge_sections_free): Declare.
350         * libbfd.h: Regenerate.
351         * merge.c (_bfd_merge_sections_free): New function.
352         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame_hdr): Free
353         hdr_info->array.
354         * elf-m10300.c (elf32_mn10300_link_hash_table_free): Call
355         _bfd_elf_link_hash_table_free.
356         * elf32-arm.c (elf32_arm_link_hash_table_free): Likewise.
357         * elf32-avr.c (elf32_avr_link_hash_table_free): Likewise.
358         * elf32-hppa.c (elf32_hppa_link_hash_table_free): Likewise.
359         * elf32-i386.c (elf_i386_link_hash_table_free): Likewise.
360         * elf32-m68hc1x.c (m68hc11_elf_hash_table_free): Likewise.
361         * elf32-m68k.c (elf_m68k_link_hash_table_free): Likewise.
362         * elf32-metag.c (elf_metag_link_hash_table_free): Likewise.
363         * elf32-xgate.c (xgate_elf_bfd_link_hash_table_free): Likewise.
364         * elf64-aarch64.c (elf64_aarch64_link_hash_table_free): Likewise.
365         * elf64-ia64-vms.c (elf64_ia64_hash_table_free): Likewise.
366         * elf64-ppc.c (ppc64_elf_link_hash_table_free): Likewise.
367         * elf64-x86-64.c (elf_x86_64_link_hash_table_free): Likewise.
368         * elfnn-ia64.c (elfNN_ia64_hash_table_free): Likewise.
369         * elf32-cr16.c (elf32_cr16_link_hash_table_free): Delete.
370         (bfd_elf32_bfd_link_hash_table_free): Don't define.
371         * elf32-tic6x.c (elf32_tic6x_link_hash_table_free): Delete.
372         (bfd_elf32_bfd_link_hash_table_free): Dont' define.
373
374 2013-02-10  Alan Modra  <amodra@gmail.com>
375
376         * coff-arm.c (coff_arm_link_hash_table_create): Use bfd_zmalloc.
377         * coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
378         * m68klinux.c (linux_link_hash_table_create): Likewise.
379         * sparclinux.c (linux_link_hash_table_create): Likewise.
380         * sunos.c (sunos_link_hash_table_create): Likewise.
381         * xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.
382         * elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
383         * elf32-arm.c (elf32_arm_link_hash_table_create): Likewise.
384         * elf32-avr.c (elf32_avr_link_hash_table_create): Likewise.
385         * elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
386         * elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
387         * elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
388         * elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
389         * elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
390         * elf32-m32r.c (m32r_elf_link_hash_table_create): Likewise.
391         * elf32-m68hc1x.c (m68hc11_elf_hash_table_create): Likewise.
392         * elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
393         * elf32-metag.c (elf_metag_link_hash_table_create): Likewise.
394         * elf32-nios2.c (nios2_elf32_link_hash_table_create): Likewise.
395         * elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
396         * elf32-score.c (elf32_score_link_hash_table_create): Likewise.
397         * elf32-spu.c (spu_elf_link_hash_table_create): Likewise.
398         * elf32-tic6x.c (elf32_tic6x_link_hash_table_create): Likewise.
399         * elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
400         * elf32-xgate.c (xgate_elf_bfd_link_hash_table_create): Likewise.
401         * elf32-xtensa.c (elf_xtensa_link_hash_table_create): Likewise.
402         * elf64-aarch64.c (elf64_aarch64_link_hash_table_create): Likewise.
403         * elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
404         * elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
405         * elf64-x86-64.c (elf_x86_64_link_hash_table_create): Likewise.
406         * elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
407         * elflink.c (_bfd_elf_link_hash_table_create): Likewise.
408         (_bfd_elf_link_hash_table_init): Assume zero fill table on entry.
409
410 2013-02-10  Alan Modra  <amodra@gmail.com>
411
412         * i386linux.c (linux_link_hash_table_create): Allocate table
413         with bfd_zmalloc, not bfd_alloc.
414         * pdp11.c (link_hash_table_create): Allocate table with
415         bfd_malloc, not bfd_alloc.
416         * elf32-bfin.c (bfinfdpic_elf_link_hash_table_create): Allocate table
417         with bfd_zmalloc, not bfd_zalloc.
418         (bfin_link_hash_table_create): Likewise.
419         * elf32-frv.c (frvfdpic_elf_link_hash_table_create): Likewise.
420         * elf64-hppa.c (elf64_hppa_hash_table_create): Likewise.
421
422 2013-02-10  Alan Modra  <amodra@gmail.com>
423
424         PR ld/15113
425         * elf32-sh.c (sh_elf_link_hash_table_create): Use bfd_zmalloc.
426
427 2013-02-08  Markos Chandras  <markos.chandras@imgtec.com>
428
429         * elf32-metag.c: Use bfd_get_linker_section to get SEC_LINKER_CREATED
430         sections.
431         (elf_metag_adjust_dynamic_symbol): Don't error on zero size dynbss
432         symbol.
433
434 2013-02-08  Yufeng Zhang  <yufeng.zhang@arm.com>
435
436         * elf64-aarch64.c (elf64_aarch64_grok_prstatus): Change 'size' from
437         288 to 272.
438
439 2013-02-08  Alan Modra  <amodra@gmail.com>
440
441         PR binutils/15106
442         * elf-bfd.h (struct elf_obj_tdata): Add elf_find_function_cache.
443         * elf.c (elf_find_function): Revert last change.  Use new
444         tdata field rather than static vars for cache.
445
446 2013-02-07  H.J. Lu  <hongjiu.lu@intel.com>
447
448         PR ld/15107
449         * elflink.c (elf_link_output_extsym): Set STB_GNU_UNIQUE only if
450         symbol is defined in regular object.
451
452 2013-02-07  Roberto Agostino Vitillo  <ra.vitillo@gmail.com>
453
454         PR binutils/15106
455         * elf.c (elf_find_function): Don't cache if symbols change.
456
457 2013-02-07  Alan Modra  <amodra@gmail.com>
458
459         PR binutils/14873
460         * elf-attrs.c (_bfd_elf_copy_obj_attributes): Don't attempt to
461         copy attributes from or to non-ELF.
462
463 2013-02-06  H.J. Lu  <hongjiu.lu@intel.com>
464
465         * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't clear pc_count
466         for non-zero TLS symbol.
467         (elf_i386_relocate_section): Don't resolve size relocation against
468         non-zero TLS symbol.
469         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Don't clear
470         pc_count for non-zero TLS symbol.
471         (elf_x86_64_relocate_section): Don't resolve size relocation
472         against non-zero TLS symbol.
473
474 2013-02-06  Sandra Loosemore  <sandra@codesourcery.com>
475             Andrew Jenner <andrew@codesourcery.com>
476
477         Based on patches from Altera Corporation.
478
479         * Makefile.am (ALL_MACHINES): Add cpu-nios2.lo.
480         (ALL_MACHINES_CFILES): Add cpu-nios2.c.
481         (BFD_BACKENDS): Add elf32-nios2.lo.
482         (BFD32_BACKENDS_CFILES): Add elf32-nios2.c.
483         * Makefile.in: Regenerated.
484         * configure.in: Add entries for bfd_elf32_bignios2_vec and
485         bfd_elf32_littlenios2_vec.
486         * configure: Regenerated.
487         * config.bfd: Add cases for nios2.
488         * archures.c (enum bfd_architecture): Add bfd_arch_nios2.
489         (bfd_mach_nios2): Define.
490         (bfd_nios2_arch): Declare.
491         (bfd_archures_list): Add bfd_nios2_arch.
492         * targets.c (bfd_elf32_bignios2_vec): Declare.
493         (bfd_elf32_littlenios2_vec): Declare.
494         (_bfd_target_vector): Add entries for bfd_elf32_bignios2_vec and
495         bfd_elf32_littlenios2_vec.
496         * elf-bfd.h (enum elf_target_id): Add NIOS2_ELF_DATA.
497         * reloc.c (enum bfd_reloc_code_real): Add Nios II relocations.
498         * bfd-in2.h: Regenerated.
499         * libbfd.h: Regenerated.
500         * cpu-nios2.c: New file.
501         * elf32-nios2.c: New file.
502
503 2013-02-06  Alan Modra  <amodra@gmail.com>
504
505         * elf32-arm.c (elf32_arm_final_link_relocate): Only test for
506         stubs in stub_bfd.
507
508 2013-02-06  Alan Modra  <amodra@gmail.com>
509
510         * Makefile.am (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
511         * Makefile.in: Regenerate.
512
513 2013-02-04  Sergio Durigan Junior  <sergiodj@redhat.com>
514             Pedro Alves  <palves@redhat.com>
515
516         * Makefile.in (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
517         * elf-bfd.h (elf_internal_linux_prpsinfo): New structure
518         declaration.
519         (elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64)
520         (elfcore_write_ppc32_linux_prpsinfo32): New declarations.
521         * elf-linux-psinfo.h: New file.
522         * elf.c: Include elf-linux-psinfo.h.
523         (elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64):
524         New functions.
525         * elf32-ppc.c: Include `elf-linux-psinfo.h'.
526         (elf_external_ppc_linux_prpsinfo32): New structure declaration.
527         (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): New macro.
528         (elfcore_write_ppc_linux_prpsinfo32): New function.
529
530 2013-02-04  Tristan Gingold  <gingold@adacore.com>
531
532         * mach-o.c (bfd_mach_o_scan_start_address): Do not fail if no
533         start address.
534
535 2013-02-04  Alan Modra  <amodra@gmail.com>
536
537         * Makefile.am (BFD64_BACKENDS): Remove elf-nacl.lo.
538         (BFD64_BACKENDS_CFILES): Remove elf-nacl.c.
539         * Makefile.in: Regenerate.
540         * po/SRC-POTFILES.in: Regenerate.
541
542 2013-02-04  Alan Modra  <amodra@gmail.com>
543
544         * coff-tic54x.c (SWAP_OUT_RELOC_EXTRA): Delete.
545         * coff-tic80.c (SWAP_OUT_RELOC_EXTRA): Delete.
546
547 2013-02-01  Alan Modra  <amodra@gmail.com>
548
549         * elf64-ppc.c (dec_dynrel_count): Don't error when elf_gc_sweep_symbol
550         clears def_regular.
551
552 2013-01-31  Tristan Gingold  <gingold@adacore.com>
553
554         * mach-o.c (bfd_mach_o_scan): Call bfd_mach_o_flatten_sections
555         earlier.  Fix status checking of bfd_mach_o_scan_start_address.
556         (bfd_mach_o_scan_start_address): Handle LC_MAIN.
557
558 2013-01-31  Alan Modra  <amodra@gmail.com>
559             David S. Miller  <davem@davemloft.net>
560
561         PR ld/15056
562         * elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Handle implicit
563         references to __tls_get_addr.
564         * elf32-tilpro.c (tilepro_elf_gc_mark_hook): Likewise.  Correct
565         vtinherit and vtentry reloc handling too.
566         * elfxx-tilegx.c (tilegx_elf_gc_mark_hook): As for tilepro.
567
568 2013-01-31  Alan Modra  <amodra@gmail.com>
569
570         * elf64-ppc.c (ppc_stub_name): Trim off trailing "+0".
571
572 2013-01-31  Alan Modra  <amodra@gmail.com>
573
574         * elf64-ppc.c (build_plt_stub): Correct plt stub branch to glink.
575
576 2013-01-28  Alan Modra  <amodra@gmail.com>
577
578         * elf64-ppc.c: Use %T to print symbols names and remove redundant
579         "relocation" in error messages throughout file.
580         (ppc64_elf_relocate_section): Remove sibling call error message,
581         replace with "call lacks nop".  Specially report errors for
582         branches to function entry points via OPD lookup and branches
583         to stubs.  Remove NULL symbol handling now done by %T.
584
585 2013-01-28  Alan Modra  <amodra@gmail.com>
586
587         * archive.c (bfd_generic_archive_p): Return target and keep
588         ardata on partial matches.
589         * format.c (bfd_check_format_matches): Adjust for above
590         change.  Remove bfd_error_file_ambiguously_recognized dead
591         code.
592
593 2013-01-26  Alan Modra  <amodra@gmail.com>
594
595         * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore,
596         bfd_preserve_finish): Move to..
597         * format.c: ..here, splitting out..
598         (bfd_reinit): ..this.  New function.
599         (bfd_check_format_matches): Use bfd_preserve_save/restore to
600         keep bfd state for a match.
601         * elfcode.h (elf_object_p): Don't use bfd_preserve_save/restore.
602         * elfcore.h (elf_core_file_p): Likewise.
603         * mach-o.c (bfd_mach_o_header_p): Likewise.
604         * pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise.
605         * xsym.c (bfd_sym_object_p): Likewise.
606         * mmo.c (mmo_scan): Clear abfd->symcount.
607         * opncls.c (_bfd_new_bfd): Use a smaller section hash table.
608         * section.c (bfd_section_list_clear): Clear section_htab.count.
609         * bfd-in2.h: Regenerate.
610
611 2013-01-25  Michael Schewe  <michael.schewe@gmx.net>
612
613         * elf32-h8300.c (elf32_h8_relax_section): When checking for a
614         second reloc, make sure that the reloc potentially exists first.
615
616 2013-01-24  Nick Clifton  <nickc@redhat.com>
617
618         * archures.c: Add bfd_mach_v850e3v5.
619         * bfd-in2.h: Regenerate.
620         * cpu-v850.c: Add entries for v850e2v5 and v850e3v5.
621         * cpu-v850_rh850.c: Likewise.
622         * elf32-v850.c: Add support for v850e3v5 architecture.
623
624 2013-01-23  Markos Chandras  <markos.chandras@imgtec.com>
625
626         * elf32-metag.c: Error on HIADDR16/LOADDR16 in shared link.
627
628 2013-01-23  Leif Ekblad  <leif@rdos.net>
629
630         * config.bfd (x86_64-*-rdos*): Remove targ_selvecs.
631
632 2013-01-18  H.J. Lu  <hongjiu.lu@intel.com>
633
634         * elf32-i386.c (elf_i386_allocate_dynrelocs): Clear pc_count for
635         non-zero TLS symbol.
636         (elf_i386_relocate_section): Resolve size relocation against
637         non-zero TLS symbol.
638         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Clear pc_count
639         for non-zero TLS symbol.
640         (elf_x86_64_relocate_section): Resolve size relocation against
641         non-zero TLS symbol.
642
643 2013-01-18  Mike Frysinger  <vapier@gentoo.org>
644
645         * elflink.c (bfd_elf_size_dynamic_sections): Only add DT_RPATH
646         when new_dtags is false.  Only add DT_RUNPATH when new_dtags is
647         true.
648
649 2013-01-17  H.J. Lu  <hongjiu.lu@intel.com>
650
651         * elf32-i386.c (elf_i386_check_relocs): Count size relocation as
652         PC-relative relocation.
653         * elf64-x86-64.c (elf_x86_64_check_relocs): Count size relocation
654         as PC-relative relocation.
655
656 2013-01-16  H.J. Lu  <hongjiu.lu@intel.com>
657
658         * elf32-i386.c (elf_i386_check_relocs): Update R_386_SIZE32
659         check.
660         (elf_i386_relocate_section): Don't check TLS for R_386_SIZE32.
661
662         * elf64-x86-64.c (elf_x86_64_check_relocs): Update R_X86_64_SIZE32
663         and R_X86_64_SIZE64 check.
664         (elf_x86_64_relocate_section): Don't check TLS for R_X86_64_SIZE32
665         nor R_X86_64_SIZE64.
666
667 2013-01-16  H.J. Lu  <hongjiu.lu@intel.com>
668
669         * bfd-in2.h: Regenerated.
670         * libbfd.h: Likewise.
671
672         * elf32-i386.c (elf_howto_table): Fill R_386_SIZE32 entry.
673         (elf_i386_reloc_type_lookup): Support BFD_RELOC_SIZE32.
674         (elf_i386_check_relocs): Handle R_386_SIZE32.
675         (elf_i386_gc_sweep_hook): Likewise.
676         (elf_i386_relocate_section): Likewise.
677
678         * elf64-x86-64.c (x86_64_elf_howto_table): Fill R_X86_64_SIZE32
679         and R_X86_64_SIZE64 entries.
680         (x86_64_reloc_map): Add BFD_RELOC_SIZE32 and BFD_RELOC_SIZE64,
681         (elf_x86_64_rtype_to_howto): Handle R_X86_64_SIZE32 for x32.
682         (elf_x86_64_reloc_name_lookup): Likewise.
683         (elf_x86_64_check_relocs): Handle R_X86_64_SIZE32 and
684         R_X86_64_SIZE64.
685         (elf_x86_64_gc_sweep_hook): Likewise.
686         (elf_x86_64_relocate_section): Likewise.
687
688         * reloc.c (bfd_reloc_code_type): Add BFD_RELOC_SIZE32 and
689         BFD_RELOC_SIZE64.
690
691 2013-01-15  H.J. Lu  <hongjiu.lu@intel.com>
692
693         * elf64-x86-64.c (R_X86_64_standard): Replace R_X86_64_IRELATIVE
694         with R_X86_64_RELATIVE64.
695
696 2013-01-15  Nick Clifton  <nickc@redhat.com>
697
698         * elf32-msp430.c: Fix spelling typo.
699
700 2013-01-15  Alan Modra  <amodra@gmail.com>
701
702         * elf64-ppc.c (ppc64_elf_size_stubs): Default shared libs to
703         plt-thread-safe.
704
705 2013-01-14  Alan Modra  <amodra@gmail.com>
706
707         PR binutils/14813
708         * bfdio.c (struct bfd_iovec <bclose>): Revert 2012-11-06.
709         (memory_bclose): Likewise.  Return 0 on success.
710         * cache.c (cache_bclose): Likewise.
711         * opncls.c (opncls_bclose, bfd_close): Likewise.
712         * vms-lib.c (vms_lib_bclose): Likewise.
713         * libbfd.h: Regenerate.
714
715 2013-01-13  Alan Modra  <amodra@gmail.com>
716
717         * elf-bfd.h (struct elf_link_hash_entry): Delete dynamic_weak.
718         Add ref_dynamic_nonweak.
719         * elflink.c (_bfd_elf_mark_dynamic_def_weak): Delete.
720         (_bfd_elf_merge_symbol): Don't call above function.  Move
721         setting of ref_dynamic_nonweak and dynamic_def earlier.  Don't
722         clear dynamic_def.
723         (elf_link_add_object_symbols): Delete redundant "override" test.
724         Don't set dynamic_def here.
725         (elf_link_output_extsym): Update.
726
727 2013-01-12  H.J. Lu  <hongjiu.lu@intel.com>
728
729         * elf32-i386.c (elf_i386_check_relocs): Set bfd errror for
730         normal and TLS symbol access.
731         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
732
733 2013-01-12  Alan Modra  <amodra@gmail.com>
734
735         * elf-bfd.h (_bfd_elf_strtab_refcount): Declare.
736         * elf-strtab.c (_bfd_elf_strtab_refcount): New function.
737         * elflink.c (elf_add_dt_needed_tag): Use _bfd_elf_strtab_refcount.
738
739 2013-01-12  Alan Modra  <amodra@gmail.com>
740
741         PR ld/12549
742         * elf-bfd.h (_bfd_elf_strtab_clear_refs): Declare.
743         (_bfd_elf_strtab_clear_all_refs): Define.
744         * elf-strtab.c (_bfd_elf_strtab_clear_refs): New function.
745         (_bfd_elf_strtab_clear_all_refs): Delete.
746         * elflink.c (elf_link_add_object_symbols): Clear out added
747         strtab refs.  Correct handling of warning common symbols.
748
749 2013-01-10  H.J. Lu  <hongjiu.lu@intel.com>
750
751         * aout0.c: Remove trailing white spaces.
752         * archive.c: Likewise.
753         * archures.c: Likewise.
754         * bfd-in.h: Likewise.
755         * bfd-in2.h: Likewise.
756         * coff-alpha.c: Likewise.
757         * coff-i860.c: Likewise.
758         * coff-mips.c: Likewise.
759         * coff-ppc.c: Likewise.
760         * coff-tic80.c: Likewise.
761         * coff-x86_64.c: Likewise.
762         * coff-z80.c: Likewise.
763         * coffcode.h: Likewise.
764         * coffgen.c: Likewise.
765         * cofflink.c: Likewise.
766         * compress.c: Likewise.
767         * corefile.c: Likewise.
768         * cpu-arm.c: Likewise.
769         * cpu-avr.c: Likewise.
770         * cpu-bfin.c: Likewise.
771         * cpu-cr16.c: Likewise.
772         * cpu-cr16c.c: Likewise.
773         * cpu-crx.c: Likewise.
774         * cpu-h8300.c: Likewise.
775         * cpu-i386.c: Likewise.
776         * cpu-lm32.c: Likewise.
777         * cpu-m68k.c: Likewise.
778         * cpu-moxie.c: Likewise.
779         * cpu-msp430.c: Likewise.
780         * cpu-sh.c: Likewise.
781         * cpu-xc16x.c: Likewise.
782         * dwarf2.c: Likewise.
783         * ecofflink.c: Likewise.
784         * ecoffswap.h: Likewise.
785         * elf-ifunc.c: Likewise.
786         * elf-m10300.c: Likewise.
787         * elf-vxworks.c: Likewise.
788         * elf32-avr.c: Likewise.
789         * elf32-avr.h: Likewise.
790         * elf32-cr16.c: Likewise.
791         * elf32-cr16c.c: Likewise.
792         * elf32-cris.c: Likewise.
793         * elf32-crx.c: Likewise.
794         * elf32-frv.c: Likewise.
795         * elf32-hppa.c: Likewise.
796         * elf32-i860.c: Likewise.
797         * elf32-ip2k.c: Likewise.
798         * elf32-iq2000.c: Likewise.
799         * elf32-m32c.c: Likewise.
800         * elf32-m68hc1x.c: Likewise.
801         * elf32-msp430.c: Likewise.
802         * elf32-mt.c: Likewise.
803         * elf32-ppc.c: Likewise.
804         * elf32-rl78.c: Likewise.
805         * elf32-s390.c: Likewise.
806         * elf32-score.h: Likewise.
807         * elf32-sh-symbian.c: Likewise.
808         * elf32-sh.c: Likewise.
809         * elf32-spu.c: Likewise.
810         * elf32-tic6x.c: Likewise.
811         * elf32-v850.c: Likewise.
812         * elf32-xc16x.c: Likewise.
813         * elf32-xtensa.c: Likewise.
814         * elf64-alpha.c: Likewise.
815         * elf64-hppa.c: Likewise.
816         * elf64-ppc.c: Likewise.
817         * elf64-s390.c: Likewise.
818         * elfcore.h: Likewise.
819         * elflink.c: Likewise.
820         * elfxx-mips.c: Likewise.
821         * elfxx-sparc.c: Likewise.
822         * elfxx-tilegx.c: Likewise.
823         * ieee.c: Likewise.
824         * libcoff.h: Likewise.
825         * libpei.h: Likewise.
826         * libxcoff.h: Likewise.
827         * linker.c: Likewise.
828         * mach-o-i386.c: Likewise.
829         * mach-o-target.c: Likewise.
830         * mach-o.c: Likewise.
831         * mach-o.h: Likewise.
832         * mmo.c: Likewise.
833         * opncls.c: Likewise.
834         * pdp11.c: Likewise.
835         * pe-x86_64.c: Likewise.
836         * peXXigen.c: Likewise.
837         * pef-traceback.h: Likewise.
838         * pei-x86_64.c: Likewise.
839         * peicode.h: Likewise.
840         * plugin.c: Likewise.
841         * reloc.c: Likewise.
842         * riscix.c: Likewise.
843         * section.c: Likewise.
844         * som.c: Likewise.
845         * syms.c: Likewise.
846         * tekhex.c: Likewise.
847         * ticoff.h: Likewise.
848         * vaxbsd.c: Likewise.
849         * xcofflink.c: Likewise.
850         * xtensa-isa.c: Likewise.
851
852 2013-01-10  Will Newton <will.newton@imgtec.com>
853
854         * Makefile.am: Add Meta.
855         * Makefile.in: Regenerate.
856         * archures.c (bfd_mach_metag): New.
857         * bfd-in2.h: Regenerate.
858         * config.bfd: Add Meta.
859         * configure: Regenerate.
860         * configure.in: Add Meta.
861         * cpu-metag.c: New file.
862         * elf-bfd.h: Add Meta.
863         * elf32-metag.c: New file.
864         * elf32-metag.h: New file.
865         * libbfd.h: Regenerate.
866         * reloc.c: Add Meta relocations.
867         * targets.c: Add Meta.
868
869 2013-01-08  Yufeng Zhang  <yufeng.zhang@arm.com>
870
871         * elf-bfd.h (elfcore_write_aarch_tls): Add prototype.
872         (elfcore_write_aarch_hw_break): Likewise.
873         (elfcore_write_aarch_hw_watch): Likewise.
874         * elf.c (elfcore_grok_aarch_tls): New function.
875         (elfcore_grok_aarch_hw_break): Likewise.
876         (elfcore_grok_aarch_hw_watch): Likewise.
877         (elfcore_grok_note): Call the new functions to handle the
878         corresponding notes.
879         (elfcore_write_aarch_tls): New function.
880         (elfcore_write_aarch_hw_break): Likewise.
881         (elfcore_write_aarch_hw_watch): Likewise.
882         (elfcore_write_register_note): Call the new functions to handle the
883         corresponding pseudo sections.
884
885 2013-01-07  Tom Tromey  <tromey@redhat.com>
886
887         * section.c (_bfd_std_section): Rename from std_section.
888         (bfd_com_section_ptr, bfd_und_section_ptr, bfd_abs_section_ptr)
889         (STD_SECTION): Update.
890         * bfd-in2.h: Rebuild.
891
892 2013-01-04  Juergen Urban <JuergenUrban@gmx.de>
893
894         * archures.c (bfd_mach_mips5900): Define.
895         * bfd-in2.h: Regenerate.
896         * config.bfd: Add mips64-ps2-elf and mips-ps2-elf targets.
897         * cpu-mips.c: Add support for MIPS r5900.
898         * elfxx-mips.c: Add support for MIPS r5900 (extension of r4000).
899
900 2013-01-03  Nickolai Zeldovich  <nickolai@csail.mit.edu>
901             Nick Clifton  <nickc@redhat.com>
902
903         * elflink.c (get_value): Prevent the use of an undefined shift
904         operation.  Add sanity checks.
905
906 2013-01-02  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
907
908         * config.bfd (cr16*-*-uclinux*): New target support.
909
910
911 For older changes see ChangeLog-2012
912 \f
913 Copyright (C) 2013 Free Software Foundation, Inc.
914
915 Copying and distribution of this file, with or without modification,
916 are permitted in any medium without royalty provided the copyright
917 notice and this notice are preserved.
918
919 Local Variables:
920 mode: change-log
921 left-margin: 8
922 fill-column: 74
923 version-control: never
924 End: