Fix PR ld/20254
[external/binutils.git] / bfd / ChangeLog
1 2016-06-14  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2
3         PR ld/20254
4         * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc
5         offsets until reloc_toaddr.
6
7 2016-06-14  H.J. Lu  <hongjiu.lu@intel.com>
8
9         * elf32-i386.c (elf_i386_reloc_type_class): Check R_386_IRELATIVE.
10         Don't check symbol type for STN_UNDEF symbol index.
11         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Check
12         R_X86_64_IRELATIVE.  Don't check symbol type for STN_UNDEF symbol
13         index.
14
15 2016-06-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16
17         * elf32-arm.c (using_thumb_only): Force review of arch check logic for
18         new architecture.
19         (using_thumb2): Try Tag_THUMB_ISA_use first and check
20         for exact arch value then.  Force review of arch check logic for new
21         architecture.
22         (arch_has_arm_nop): Update and fix arch check logic.  Force review of
23         that logic for new architecture.
24         (arch_has_thumb2_nop): Remove.
25         (elf32_arm_tls_relax): Use using_thumb2 instead of above function.
26         (elf32_arm_final_link_relocate): Likewise but using thumb2.
27
28 2016-06-14  Alan Modra  <amodra@gmail.com>
29
30         * bfd-in.h (bfd_my_archive): Delete.
31         * bfd-in2.h: Regenerate.
32
33 2016-06-14  Alan Modra  <amodra@gmail.com>
34
35         PR ld/20241
36         * archive.c (open_nested_file): Set my_archive.
37         * bfd.c (_bfd_default_error_handler <%B>): Exclude archive file name
38         for thin archives.
39         * bfdio.c (bfd_tell): Don't adjust origin for thin archives.
40         (bfd_seek): Likewise.
41         * bfdwin.c (bfd_get_file_window): Likewise.
42         * cache.c (cache_bmmap): Likewise.
43         (bfd_cache_lookup_worker): Don't look in my_archive for thin archives.
44         * mach-o.c (bfd_mach_o_follow_dsym): Don't open my_archive for
45         thin archives.
46         * plugin.c (try_claim): Likewise.
47         * xcofflink.c (xcoff_link_add_dynamic_symbols): Use import path of
48         file within thin archive, not the archive.
49
50 2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
51
52         PR ld/20244
53         * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
54         section address for R_386_GOT32/R_386_GOT32X relocations against
55         IFUNC symbols if there is no base register and return error for
56         PIC.
57
58 2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
59
60         * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC
61         GOT32 adjustment for static executables.
62
63 2016-06-13  Maciej W. Rozycki  <macro@imgtec.com>
64
65         * elf32-mips.c (elf_mips_gnu_pcrel32): Update comment.
66
67 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
68
69         * elf32-arc.c (elf_arc_relocate_section): Fixed condition.
70
71 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
72
73         * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
74
75 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
76
77         * elf32-arc.c (arc_local_data, arc_local_data): Removed.
78         (SECTSTART): Changed.
79         (elf_arc_relocate_section): Fixed mistake in PIE related
80         condition.
81         (elf_arc_size_dynamic_sections): Changed DT_RELENT to DT_RELAENT.
82
83 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
84
85         * elf32-arc.c (elf32_arc_reloc_type_class): Defined function to
86         enable support for "-z combreloc" and DT_RELACOUNT.
87         (elf_backend_reloc_type_class): Likewise
88
89 2016-06-11  H.J. Lu  <hongjiu.lu@intel.com>
90
91         PR ld/20244
92         * elf32-i386.c (elf_i386_relocate_section): When relocating
93         R_386_GOT32, return error without a base register for PIC and
94         subtract the .got.plt section address only with a base register.
95
96 2016-06-10  Alan Modra  <amodra@gmail.com>
97
98         * elf-strtab.c (struct strtab_save): Use size_t for "size".
99         (struct elf_strtab_hash): Likewise for "size" and "alloced".
100         (_bfd_elf_strtab_init): Formatting.
101         (_bfd_elf_strtab_add): Return size_t rather than bfd_size_type.
102         (_bfd_elf_strtab_addref): Take size_t idx param.
103         (_bfd_elf_strtab_delref, _bfd_elf_strtab_refcount): Likewise.
104         (_bfd_elf_strtab_offset): Likewise.
105         (_bfd_elf_strtab_clear_all_refs): Use size_t idx.
106         (_bfd_elf_strtab_save): Use size_t "idx" and "size" vars.
107         (_bfd_elf_strtab_restore, _bfd_elf_strtab_emit): Similarly.
108         (_bfd_elf_strtab_finalize): Similarly.
109         * elf-bfd.h (_bfd_elf_strtab_add): Update prototypes.
110         (_bfd_elf_strtab_addref, _bfd_elf_strtab_delref): Likewise.
111         (_bfd_elf_strtab_refcount, _bfd_elf_strtab_offset): Likewise.
112         * elf.c (bfd_elf_get_elf_syms): Calculate symbol buffer size
113         using bfd_size_type.
114         (bfd_section_from_shdr): Delete amt.
115         (_bfd_elf_init_reloc_shdr): Likewise.
116         (_bfd_elf_link_assign_sym_version): Likewise.
117         (assign_section_numbers): Use size_t reloc_count.
118         * elflink.c (struct elf_symbuf_head): Use size_t "count".
119         (bfd_elf_link_record_dynamic_symbol): Use size_t for some vars.
120         (elf_link_is_defined_archive_symbol): Likewise.
121         (elf_add_dt_needed_tag): Likewise.
122         (elf_finalize_dynstr): Likewise.
123         (elf_link_add_object_symbols): Likewise.
124         (bfd_elf_size_dynamic_sections): Likewise.
125         (elf_create_symbuf): Similarly.
126         (bfd_elf_match_symbols_in_sections): Likewise.
127         (elf_link_swap_symbols_out): Likewise.
128         (elf_link_check_versioned_symbol): Likewise.
129         (bfd_elf_gc_record_vtinherit): Likewise.
130         (bfd_elf_gc_common_finalize_got_offsets): Likewise.
131
132 2016-06-08  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
133
134         PR ld/20221
135         * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms
136         and relocs only if shrinking occurred.
137
138 2016-06-08  H.J. Lu  <hongjiu.lu@intel.com>
139
140         * elf64-i386.c (elf_i386_link_hash_entry): Add tls_get_addr.
141         (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 2.
142         (elf_i386_check_tls_transition): Check indirect call and direct
143         call with the addr32 prefix for general and local dynamic models.
144         Set the tls_get_addr feild.
145         (elf_i386_convert_load_reloc): Always use addr32 prefix for
146         indirect ___tls_get_addr call via GOT.
147         (elf_i386_relocate_section): Handle GD->LE, GD->IE and LD->LE
148         transitions with indirect call and direct call with the addr32
149         prefix.
150
151 2016-06-07  Marcin Koƛcielnicki  <koriakin@0x04.net>
152
153         * elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment.
154         * elf64-s390.c (elf_s390x_plt_entry): Fix comment.
155         (elf_s390_relocate_section): Fix comment.
156         (elf_s390_finish_dynamic_sections): Fix initialization of fixed
157         .got.plt entries.
158
159 2016-06-07  Ulrich Weigand  <ulrich.weigand@de.ibm.com>
160
161         * elf64-s390.c (elf_s390_finish_dynamic_sections): Subtract plt
162         section offset when calculation the larl operand in the first PLT
163         entry.
164
165 2016-06-07  Alan Modra  <amodra@gmail.com>
166
167         * cpu-powerpc.c (powerpc_compatible): Allow bfd_mach_ppc_vle entry
168         to match other 32-bit archs.
169         * elf32-ppc.c (_bfd_elf_ppc_set_arch): New function.
170         (ppc_elf_object_p): Call it.
171         (ppc_elf_special_sections): Use APUINFO_SECTION_NAME.  Fix
172         overlong line.
173         (APUINFO_SECTION_NAME, APUINFO_LABEL): Don't define here.
174         * elf64-ppc.c (ppc64_elf_object_p): Call _bfd_elf_ppc_set_arch.
175         * bfd-in.h (_bfd_elf_ppc_at_tls_transform,
176         _bfd_elf_ppc_at_tprel_transform): Move to..
177         * elf-bfd.h: ..here.
178         (_bfd_elf_ppc_set_arch): Declare.
179         * bfd-in2.h: Regenerate.
180
181 2016-06-06  H.J. Lu  <hongjiu.lu@intel.com>
182
183         * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add tls_get_addr.
184         (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 2.
185         (elf_x86_64_check_tls_transition): Check indirect call and
186         direct call with the addr32 prefix for general and local dynamic
187         models.  Set the tls_get_addr feild.
188         (elf_x86_64_convert_load_reloc): Always use addr32 prefix for
189         indirect __tls_get_addr call via GOT.
190         (elf_x86_64_relocate_section): Handle GD->LE, GD->IE and LD->LE
191         transitions with indirect call and direct call with the addr32
192         prefix.
193
194 2016-06-04  Christian Groessler  <chris@groessler.org>
195
196         * coff-z8k.c (extra_case): Fix range check for R_JR relocation.
197
198 2016-06-02  Nick Clifton  <nickc@redhat.com>
199
200         PR target/20088
201         * cpu-arm.c (processors): Add "arm_any" type to match any ARM
202         architecture.
203         (arch_info_struct): Likewise.
204         (architectures): Likewise.
205
206 2016-06-02  Vineet Gupta  <Vineet.Gupta1@synopsys.com>
207
208         * config.bfd: Replace -uclibc with *.
209
210 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
211
212         * elf64-x86-64.c: Replace data32 with data16 in comments.
213
214 2016-05-31  Alan Modra  <amodra@gmail.com>
215
216         PR ld/20159
217         PR ld/16467
218         * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change.
219         (_bfd_elf_add_default_symbol): Don't indirect to/from defined
220         symbol given a version by a script different to the version
221         of the symbol being added.
222         (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and
223         _bfd_elf_strtab_restore.  Don't fudge dynstr references.
224         * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete.
225         (struct strtab_save): New.
226         (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions.
227         * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete.
228         (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
229
230 2016-06-01  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
231
232         * elf32-hppa.h: Add extern "C".
233         * elf32-nds32.h: Likewise.
234         * elf32-tic6x.h: Likewise.
235
236 2016-06-01  Nick Clifton  <nickc@redhat.com>
237
238         * po/sr.po: New Serbian translation.
239         * configure.ac (ALL_LINGUAS): Add sr.
240         * configure: Regenerate.
241
242 2016-05-28  Maciej W. Rozycki  <macro@imgtec.com>
243
244         * elfxx-mips.c (b_reloc_p): New function.
245         (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Handle
246         branch relocations.
247
248 2016-05-28  Maciej W. Rozycki  <macro@imgtec.com>
249
250         * elfxx-mips.c (mips_elf_calculate_relocation): <R_MIPS16_26>
251         <R_MIPS_26, R_MICROMIPS_26_S1>: Drop the region bits of the
252         reloc location from calculation, treat the addend as signed with
253         local non-section symbols and enable overflow detection.
254
255 2016-05-28  Alan Modra  <amodra@gmail.com>
256
257         * aoutx.h: Adjust linker callback calls throughout file,
258         removing dead code.
259         * bout.c: Likewise.
260         * coff-alpha.c: Likewise.
261         * coff-arm.c: Likewise.
262         * coff-h8300.c: Likewise.
263         * coff-h8500.c: Likewise.
264         * coff-i960.c: Likewise.
265         * coff-mcore.c: Likewise.
266         * coff-mips.c: Likewise.
267         * coff-ppc.c: Likewise.
268         * coff-rs6000.c: Likewise.
269         * coff-sh.c: Likewise.
270         * coff-tic80.c: Likewise.
271         * coff-w65.c: Likewise.
272         * coff-z80.c: Likewise.
273         * coff-z8k.c: Likewise.
274         * coff64-rs6000.c: Likewise.
275         * cofflink.c: Likewise.
276         * ecoff.c: Likewise.
277         * elf-bfd.h: Likewise.
278         * elf-m10200.c: Likewise.
279         * elf-m10300.c: Likewise.
280         * elf32-arc.c: Likewise.
281         * elf32-arm.c: Likewise.
282         * elf32-avr.c: Likewise.
283         * elf32-bfin.c: Likewise.
284         * elf32-cr16.c: Likewise.
285         * elf32-cr16c.c: Likewise.
286         * elf32-cris.c: Likewise.
287         * elf32-crx.c: Likewise.
288         * elf32-d10v.c: Likewise.
289         * elf32-epiphany.c: Likewise.
290         * elf32-fr30.c: Likewise.
291         * elf32-frv.c: Likewise.
292         * elf32-ft32.c: Likewise.
293         * elf32-h8300.c: Likewise.
294         * elf32-hppa.c: Likewise.
295         * elf32-i370.c: Likewise.
296         * elf32-i386.c: Likewise.
297         * elf32-i860.c: Likewise.
298         * elf32-ip2k.c: Likewise.
299         * elf32-iq2000.c: Likewise.
300         * elf32-lm32.c: Likewise.
301         * elf32-m32c.c: Likewise.
302         * elf32-m32r.c: Likewise.
303         * elf32-m68hc1x.c: Likewise.
304         * elf32-m68k.c: Likewise.
305         * elf32-mep.c: Likewise.
306         * elf32-metag.c: Likewise.
307         * elf32-microblaze.c: Likewise.
308         * elf32-moxie.c: Likewise.
309         * elf32-msp430.c: Likewise.
310         * elf32-mt.c: Likewise.
311         * elf32-nds32.c: Likewise.
312         * elf32-nios2.c: Likewise.
313         * elf32-or1k.c: Likewise.
314         * elf32-ppc.c: Likewise.
315         * elf32-s390.c: Likewise.
316         * elf32-score.c: Likewise.
317         * elf32-score7.c: Likewise.
318         * elf32-sh.c: Likewise.
319         * elf32-sh64.c: Likewise.
320         * elf32-spu.c: Likewise.
321         * elf32-tic6x.c: Likewise.
322         * elf32-tilepro.c: Likewise.
323         * elf32-v850.c: Likewise.
324         * elf32-vax.c: Likewise.
325         * elf32-visium.c: Likewise.
326         * elf32-xstormy16.c: Likewise.
327         * elf32-xtensa.c: Likewise.
328         * elf64-alpha.c: Likewise.
329         * elf64-hppa.c: Likewise.
330         * elf64-ia64-vms.c: Likewise.
331         * elf64-mmix.c: Likewise.
332         * elf64-ppc.c: Likewise.
333         * elf64-s390.c: Likewise.
334         * elf64-sh64.c: Likewise.
335         * elf64-x86-64.c: Likewise.
336         * elflink.c: Likewise.
337         * elfnn-aarch64.c: Likewise.
338         * elfnn-ia64.c: Likewise.
339         * elfxx-mips.c: Likewise.
340         * elfxx-sparc.c: Likewise.
341         * elfxx-tilegx.c: Likewise.
342         * linker.c: Likewise.
343         * pdp11.c: Likewise.
344         * pe-mips.c: Likewise.
345         * reloc.c: Likewise.
346         * reloc16.c: Likewise.
347         * simple.c: Likewise.
348         * vms-alpha.c: Likewise.
349         * xcofflink.c: Likewise.
350         * elf32-rl78.c (get_symbol_value, get_romstart, get_ramstart): Delete
351         status param.  Adjust calls to these and linker callbacks throughout.
352         * elf32-rx.c: (get_symbol_value, get_gp, get_romstart,
353         get_ramstart): Delete status param.  Adjust calls to these and
354         linker callbacks throughout.
355
356 2016-05-27  Maciej W. Rozycki  <macro@imgtec.com>
357
358         * elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS16_26>
359         <R_MIPS_26, R_MICROMIPS_26_S1>: Include the addend in JALX's
360         target alignment verification.
361
362 2016-05-27  Maciej W. Rozycki  <macro@imgtec.com>
363
364         * elfxx-mips.c (mips_elf_calculate_relocation): Also use the
365         section name if `bfd_elf_string_from_elf_section' returns an
366         empty string.
367
368 2016-05-26  Maciej W. Rozycki  <macro@imgtec.com>
369
370         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
371         <bfd_reloc_outofrange>: Use the `%X%H' rather than `%C' format
372         for message.  Continue processing rather than returning failure.
373
374 2016-05-25  Maciej W. Rozycki  <macro@imgtec.com>
375
376         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
377         <bfd_reloc_outofrange>: Call `->einfo' rather than `->warning'.
378         Call `bfd_set_error'.
379
380 2016-05-25  H.J. Lu  <hongjiu.lu@intel.com>
381
382         PR binutils/14625
383         * archive.c (bfd_slurp_armap): Replace
384         bfd_elf64_archive_slurp_armap with
385         _bfd_archive_64_bit_slurp_armap.
386         (bsd_write_armap): Call _bfd_archive_64_bit_write_armap if
387         BFD64 is defined and the archive is too big.
388         (coff_write_armap): Likewise.
389         * archive64.c (bfd_elf64_archive_slurp_armap): Renamed to ...
390         (_bfd_archive_64_bit_slurp_armap): This.
391         (bfd_elf64_archive_write_armap): Renamed to ...
392         (_bfd_archive_64_bit_write_armap): This.
393         * configure.ac: Add --enable-64-bit-archive.
394         (want_64_bit_archive): New.  Set to true by default for 64-bit
395         MIPS and s390 ELF targets.
396         (USE_64_BIT_ARCHIVE): New AC_DEFINE.
397         * config.in: Regenerated.
398         * configure: Likewise.
399         * elf64-mips.c (bfd_elf64_archive_functions): Removed.
400         (bfd_elf64_archive_slurp_armap): Likewise.
401         (bfd_elf64_archive_write_armap): Likewise.
402         (bfd_elf64_archive_slurp_extended_name_table): Likewise.
403         (bfd_elf64_archive_construct_extended_name_table): Likewise.
404         (bfd_elf64_archive_truncate_arname): Likewise.
405         (bfd_elf64_archive_read_ar_hdr): Likewise.
406         (bfd_elf64_archive_write_ar_hdr): Likewise.
407         (bfd_elf64_archive_openr_next_archived_file): Likewise.
408         (bfd_elf64_archive_get_elt_at_index): Likewise.
409         (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
410         (bfd_elf64_archive_update_armap_timestamp): Likewise.
411         * elf64-s390.c (bfd_elf64_archive_functions): Removed.
412         (bfd_elf64_archive_slurp_armap): Likewise.
413         (bfd_elf64_archive_write_armap): Likewise.
414         (bfd_elf64_archive_slurp_extended_name_table): Likewise.
415         (bfd_elf64_archive_construct_extended_name_table): Likewise.
416         (bfd_elf64_archive_truncate_arname): Likewise.
417         (bfd_elf64_archive_read_ar_hdr): Likewise.
418         (bfd_elf64_archive_write_ar_hdr): Likewise.
419         (bfd_elf64_archive_openr_next_archived_file): Likewise.
420         (bfd_elf64_archive_get_elt_at_index): Likewise.
421         (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
422         (bfd_elf64_archive_update_armap_timestamp): Likewise.
423         * elfxx-target.h (TARGET_BIG_SYM): Use _bfd_archive_64_bit on
424         BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined and
425         bfd_elfNN_archive_functions isn't defined.
426         (TARGET_LITTLE_SYM): Likewise.
427         * libbfd-in.h (_bfd_archive_64_bit_slurp_armap): New prototype.
428         (_bfd_archive_64_bit_write_armap): Likewise.
429         (_bfd_archive_64_bit_slurp_extended_name_table): New macro.
430         (_bfd_archive_64_bit_construct_extended_name_table): Likewise.
431         (_bfd_archive_64_bit_truncate_arname): Likewise.
432         (_bfd_archive_64_bit_read_ar_hdr): Likewise.
433         (_bfd_archive_64_bit_write_ar_hdr): Likewise.
434         (_bfd_archive_64_bit_openr_next_archived_file): Likewise.
435         (_bfd_archive_64_bit_get_elt_at_index): Likewise.
436         (_bfd_archive_64_bit_generic_stat_arch_elt): Likewise.
437         (_bfd_archive_64_bit_update_armap_timestamp): Likewise.
438         * libbfd.h: Regenerated.
439         * plugin.c (plugin_vec): Use _bfd_archive_64_bit on
440         BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined.
441
442 2016-05-25  H.J. Lu  <hongjiu.lu@intel.com>
443
444         PR ld/20103
445         * cofflink.c (coff_link_check_archive_element): Return TRUE if
446         linker add_archive_element callback returns FALSE.
447         * ecoff.c (ecoff_link_check_archive_element): Likewise.
448         * elf64-ia64-vms.c (elf64_vms_link_add_archive_symbols): Skip
449         archive element if linker add_archive_element callback returns
450         FALSE.
451         * elflink.c (elf_link_add_archive_symbols): Likewise.
452         * pdp11.c (aout_link_check_ar_symbols): Likewise.
453         * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise.
454         * xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Likewise.
455         (xcoff_link_check_ar_symbols): Likewise.
456
457 2016-05-24  Maciej W. Rozycki  <macro@imgtec.com>
458
459         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
460         <bfd_reloc_outofrange>: Unify error reporting code.
461
462 2016-05-23  Jim Wilson  <jim.wilson@linaro.org>
463
464         * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and
465         R_AARCH64_NONE.  Use HOWTO64 for R_AARCH64_NULL.
466         * relocs.c: Add BFD_RELOC_AARCH64_NULL.
467         * bfd-in2.h: Regenerate.
468         * libbfd.h: Likewise.
469
470 2016-05-23  Kuba Sejdak  <jakub.sejdak@phoesys.com>
471
472         * config.bfd: Add entry for arm-phoenix.
473
474 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
475
476         * elf32-arm.c (arm_dedicated_stub_section_padding): New function.
477         (elf32_arm_size_stubs): Declare stub_type in a more outer scope and
478         account for padding for stub section requiring one.
479         (elf32_arm_build_stubs): Add comment to stress the importance of
480         zeroing veneer section content.
481
482 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
483
484         * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare
485         bfd hook.
486         * bfd-in2.h: Regenerate.
487         * elf32-arm.c (arm_dedicated_stub_output_section_required): New
488         function.
489         (arm_dedicated_stub_output_section_required_alignment): Likewise.
490         (arm_dedicated_stub_output_section_name): Likewise.
491         (arm_dedicated_stub_input_section_ptr): Likewise.
492         (elf32_arm_create_or_find_stub_sec): Add stub type parameter and
493         function description comment. Add support for dedicated output stub
494         section to given stub types.
495         (elf32_arm_add_stub): Add a stub type parameter and pass it down to
496         elf32_arm_create_or_find_stub_sec.
497         (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub.
498         (elf32_arm_size_stubs): Pass stub type when calling
499         elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers.
500         (bfd_elf32_arm_keep_private_stub_output_sections): New function.
501
502 2016-05-20  H.J. Lu  <hongjiu.lu@intel.com>
503
504         * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32
505         when setting need_convert_load.
506
507 2016-05-20  Maciej W. Rozycki  <macro@imgtec.com>
508
509         * elfxx-mips.c (mips_elf_read_rel_addend): Adjust the addend for
510         microMIPS JALX.
511
512 2016-05-19  H.J. Lu  <hongjiu.lu@intel.com>
513
514         PR ld/20117
515         * elf32-i386.c (elf_i386_convert_load_reloc): Don't check
516         R_386_GOT32X.
517         (elf_i386_convert_load): Don't convert R_386_GOT32.
518
519 2016-05-20  Alan Modra  <amodra@gmail.com>
520
521         PR gas/20118
522         * elf.c (elf_fake_sections): Set sh_entsize for SHT_INIT_ARRAY,
523         SHT_FINI_ARRAY, and SHT_PREINIT_ARRAY.
524
525 2016-05-19  Cupertino Miranda  <cmiranda@synopsys.com>
526
527         * elf32-arc.c (arc_elf_final_write_processing): Changed.
528         (debug_arc_reloc): Likewise.
529         (elf_arc_relocate_section): Likewise.
530         (elf_arc_check_relocs): Likewise.
531         (elf_arc_adjust_dynamic_symbol): Likewise.
532         (elf_arc_add_symbol_hook): Likewise.
533
534 2016-05-19  Maciej W. Rozycki  <macro@imgtec.com>
535
536         * config.bfd: Remove `am34-*-linux*' support.
537
538 2016-05-19  Alan Modra  <amodra@gmail.com>
539
540         * elf64-ppc.c (allocate_dynrelocs): Allocate got and other dynamic
541         relocs before plt relocs.
542
543 2016-05-19  Alan Modra  <amodra@gmail.com>
544
545         * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner
546         before dereferencing.
547
548 2016-05-18  Nick Clifton  <nickc@redhat.com>
549
550         * po/sv.po: Updated Swedish translation.
551
552 2016-05-18  Alan Modra  <amodra@gmail.com>
553
554         * elf32-arm.c (elf32_arm_size_stubs): Free or cache local syms
555         for each BFD.  Don't goto error_ret_free_local from outside loop.
556
557 2016-05-17  Maciej W. Rozycki  <macro@imgtec.com>
558
559         * elf-s390-common.c (elf_s390_add_symbol_hook): Remove
560         STB_GNU_UNIQUE handling.
561         * elf32-arc.c (elf_arc_add_symbol_hook): Likewise.
562         * elf32-arm.c (elf32_arm_add_symbol_hook): Likewise.
563         * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise.
564         * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
565         * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
566         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
567         * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
568         * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise.
569         * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise.
570         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Likewise.
571         * elf32-i386.c (elf_i386_add_symbol_hook): Remove function.
572         (elf_backend_add_symbol_hook): Remove macro.
573         * elflink.c (elf_link_add_object_symbols): Set `has_gnu_symbols'
574         for STB_GNU_UNIQUE symbols.
575
576 2016-05-16  Maciej W. Rozycki  <macro@imgtec.com>
577
578         * elf32-v850.c (v850_elf_copy_notes): New function, factored out
579         from...
580         (v850_elf_copy_private_bfd_data): ... here.  Call the new
581         function and `_bfd_elf_copy_private_bfd_data'.
582
583 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
584
585         PR ld/20093
586         * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert
587         GOTPCREL relocation against large section.
588
589 2016-05-13  Alan Modra  <amodra@gmail.com>
590
591         * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use
592         linker dynamic sections in calculating size and address of
593         dynamic tags rather than using output sections.  Remove asserts.
594         * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise.
595         * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise.
596         * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise.
597         * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
598         * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise.
599         * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise.
600         * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise.
601         * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise.
602         * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise.
603         * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise.
604         * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise.
605         * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise.
606         * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise.
607         * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise.
608         * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise.
609         * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise.
610         * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise.
611         * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise.
612         * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
613         * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
614         * elflink.c (bfd_elf_final_link): Likewise.
615         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise.
616         * elfxx-sparc.c (sparc_finish_dyn): Likewise.  Adjust error message.
617         * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and
618         don't set doit.  Look up dynobj section.
619         (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION
620         invocation and dynamic tag vma calculation.  Don't test
621         boolean var == TRUE.
622         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix
623         DT_JMPREL calc.
624
625 2016-05-13  Alan Modra  <amodra@gmail.com>
626
627         * elflink.c (elf_link_sort_relocs): Wrap overlong lines.  Fix
628         octets_per_byte.  Put dynamic .rela.plt last in link orders.
629         Assign output_offset for reloc sections rather than writing
630         sorted relocs from block corresponding to output_offset.
631
632 2016-05-12  Alan Modra  <amodra@gmail.com>
633
634         * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last.
635
636 2016-05-11  Andrew Bennett  <andrew.bennett@imgtec.com>
637
638         * elfxx-mips.c (print_mips_ases): Add DSPR3.
639
640 2016-05-11  Alan Modra  <amodra@gmail.com>
641
642         * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function.
643         (elf32_hppa_check_relocs): Don't set dynobj.
644         (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections.
645         (elf32_hppa_build_stubs): Likewise.
646         * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare.
647
648 2016-05-11  Alan Modra  <amodra@gmail.com>
649
650         PR 20060
651         * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local.
652         * elf32-ppc.c (ppc_elf_tls_setup): Likewise.
653
654 2016-05-10  Jiong Wang  <jiong.wang@arm.com>
655
656         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant
657         aarch64_tls_transition check.
658
659 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
660
661         * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type
662         enumerator.
663         (arm_stub_sym_claimed): New function.
664         (elf32_arm_create_stub): Use veneered symbol name and section if
665         veneer needs to claim its symbol, and keep logic unchanged otherwise.
666         (arm_stub_claim_sym): New function.
667         (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim
668         veneered symbol, otherwise create local symbol as before.
669
670 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
671
672         * elf32-arm.c (elf32_arm_size_stubs): Use new macros
673         ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get
674         and set branch type of a symbol.
675         (bfd_elf32_arm_process_before_allocation): Likewise.
676         (elf32_arm_relocate_section): Likewise and fix identation along the
677         way.
678         (allocate_dynrelocs_for_symbol): Likewise.
679         (elf32_arm_finish_dynamic_symbol): Likewise.
680         (elf32_arm_swap_symbol_in): Likewise.
681         (elf32_arm_swap_symbol_out): Likewise.
682
683 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
684
685         * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter.
686         * bfd-in2.h: Regenerated.
687         * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section
688         parameter to add_stub_section callback.
689         (elf32_arm_create_or_find_stub_sec): Get output section from link_sec
690         and pass it down to add_stub_section.
691         (elf32_arm_add_stub): Set section to stub_sec if NULL before using it
692         for error message.
693         (elf32_arm_size_stubs): Add output section parameter to
694         add_stub_section function pointer parameter.
695
696 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
697
698         * elf32-arm.c (elf32_arm_create_stub): New function.
699         (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation.
700
701 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
702
703         * elf32-arm.c (enum elf32_arm_stub_type): Delete
704         arm_stub_a8_veneer_lwm enumerator.
705         (arm_stub_a8_veneer_lwm): New unsigned constant to replace
706         aforementioned enumerator.
707         (struct elf32_arm_stub_hash_entry): Delete target_addend
708         field and add source_value.
709         (struct a8_erratum_fix): Delete addend field and add target_offset.
710         (stub_hash_newfunc): Initialize source_value field amd remove
711         initialization for target_addend.
712         (arm_build_one_stub): Stop special casing Thumb relocations: promote
713         the else to being always executed, moving the
714         arm_stub_a8_veneer_b_cond specific code in it.  Remove
715         stub_entry->target_addend from points_to computation.
716         (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset
717         to target symbol from start of section rather than the offset from the
718         stub address.
719         (elf32_arm_size_stubs): Set stub_entry's source_value and target_value
720         fields from struct a8_erratum_fix's offset and target_offset
721         respectively.
722         (make_branch_to_a8_stub): Rename target variable to loc.  Compute
723         veneered_insn_loc and loc using stub_entry's source_value.
724
725 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
726
727         (elf32_arm_merge_eabi_attributes): Add merging logic for
728         Tag_DSP_extension.
729
730 2016-05-10  Pip Cet  <pipcet@gmail.com>
731
732         PR ld/20059
733         * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type):
734         Define as _bfd_generic_copy_link_hash_symbol_type when using
735         generic hash table.
736
737 2016-05-09  Nick Clifton  <nickc@redhat.com>
738
739         PR binutils/20063
740         * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link
741         field before accessing sections array.
742
743 2016-05-09  Christophe Monat  <christophe.monat@st.com>
744
745         PR ld/20030
746         * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
747         (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
748         to nb_words.
749         (create_instruction_vldmia): Add is_dp to disambiguate SP/DP
750         encoding.
751         (create_instruction_vldmdb): Likewise.
752         (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
753         uses it to re-encode.
754
755 2016-05-09  Nick Clifton  <nickc@redhat.com>
756
757         PR 19938
758         * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental
759         commit.
760
761 2016-05-09  Alan Modra  <amodra@gmail.com>
762
763         * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check.
764
765 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
766
767         PR ld/17550
768         * elf-bfd.h (elf_link_hash_entry): Update comments for indx,
769         documenting that indx == -3 if symbol is defined in a discarded
770         section.
771         * elflink.c (elf_link_add_object_symbols): Set indx to -3 if
772         symbol is defined in a discarded section.
773         (elf_link_output_extsym): Strip a global symbol defined in a
774         discarded section.
775
776 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
777
778         * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel
779         MCU.
780
781 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
782
783         * elf32-i386.c (elf_i386_convert_load): Extract the GOT load
784         conversion to ...
785         (elf_i386_convert_load_reloc): This.  New function.
786         * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load
787         conversion to ...
788         (elf_x86_64_convert_load_reloc): This.  New function.
789
790 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
791
792         * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd.
793         Don't check if contents == NULL.
794         (elf_i386_tls_transition): Add from_relocate_section.  Check
795         from_relocate_section instead of contents != NULL.  Update
796         elf_i386_check_tls_transition call.
797         (elf_i386_check_relocs): Cache the section contents if
798         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
799         elf_i386_tls_transition.
800         (elf_i386_relocate_section): Pass TRUE as from_relocate_section
801         to elf_i386_tls_transition.
802         (elf_backend_caches_rawsize): New.
803         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check
804         if contents == NULL.
805         (elf_x86_64_tls_transition): Add from_relocate_section.  Check
806         from_relocate_section instead of contents != NULL.
807         (elf_x86_64_check_relocs): Cache the section contents if
808         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
809         elf_x86_64_tls_transition.
810         (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section
811         to elf_x86_64_tls_transition.
812         (elf_backend_caches_rawsize): New.
813
814 2016-05-03  Maciej W. Rozycki  <macro@imgtec.com>
815
816         PR 10549
817         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle
818         STB_GNU_UNIQUE.
819
820 2016-05-03  Jiong Wang  <jiong.wang@arm.com>
821
822         * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype.
823         * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
824         * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize
825         no_apply_dynamic_relocs.
826         (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though
827         dynamic relocations generated.
828
829 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
830
831         * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp
832         setting to ...
833         (elf_i386_create_dynamic_sections): Here.
834         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move
835         interp setting to ...
836         (elf_x86_64_create_dynamic_sections): Here.
837
838 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
839
840         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC
841         and replace (EH)->has_got_reloc with GOT_RELOC.
842         (elf_i386_fixup_symbol): Pass has_got_reloc to
843         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
844         (elf_i386_allocate_dynrelocs): Likewise.
845         (elf_i386_relocate_section): Likewise.
846         (elf_i386_finish_dynamic_symbol): Likewise.
847         (elf_i386_convert_load): Pass TRUE to
848         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
849         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take
850         GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC.
851         (elf_x86_64_fixup_symbol): Pass has_got_reloc to
852         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
853         (elf_x86_64_allocate_dynrelocs): Likewise.
854         (elf_x86_64_relocate_section): Likewise.
855         (elf_x86_64_finish_dynamic_symbol): Likewise.
856         (elf_x86_64_convert_load): Pass TRUE to
857         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
858
859 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
860
861         * elf32-i386.c (check_relocs_failed): New.
862         (elf_i386_check_relocs): Set check_relocs_failed on error.
863         (elf_i386_relocate_section): Skip if check_relocs failed.
864
865 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
866
867         * elf64-x86-64.c (elf_x86_64_check_relocs): Set
868         check_relocs_failed on error.
869
870 2016-04-29  Nick Clifton  <nickc@redhat.com>
871
872         PR 19938
873         * elf-bfd.h (struct elf_backend_data): Rename
874         elf_backend_set_special_section_info_and_link to
875         elf_backend_copy_special_section_fields.
876         * elfxx-target.h: Likewise.
877         * elf.c (section_match): Ignore the SHF_INFO_LINK flag when
878         comparing section flags.
879         (copy_special_section_fields): New function.
880         (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field.
881         Perform two scans over special sections.  The first one looks for
882         a direct mapping between the output section and an input section.
883         The second scan looks for a possible match based upon section
884         characteristics.
885         * elf32-arm.c (elf32_arm_copy_special_section_fields): New
886         function.  Handle setting the sh_link field of SHT_ARM_EXIDX
887         sections.
888         * elf32-i386.c (elf32_i386_set_special_info_link): Rename to
889         elf32_i386_copy_solaris_special_section_fields.
890         * elf32-sparc.c (elf32_sparc_set_special_section_info_link):
891         Rename to elf32_sparc_copy_solaris_special_section_fields.
892         * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to
893         elf64_x86_64_copy_solaris_special_section_fields.
894
895 2016-04-28  Nick Clifton  <nickc@redhat.com>
896
897         * po/zh_CN.po: Updated Chinese (simplified) translation.
898
899 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
900
901         PR ld/20006
902         * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
903         when estimating distances between output sections.
904
905 2016-04-27  Alan Modra  <amodra@gmail.com>
906
907         * elflink.c (_bfd_elf_is_start_stop): New function.
908         (_bfd_elf_gc_mark_rsec): Use it.
909         * elf-bfd.h (_bfd_elf_is_start_stop): Declare.
910
911 2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
912
913         * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
914         * mmo.c (mmo_get_section_contents): Likewise.
915         (mmo_set_section_contents): Likewise.
916
917 2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
918
919         * elf-bfd.h (elf_link_hash_table): Update comments for
920         dynsymcount.
921         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for
922         the unused NULL entry at the head of dynamic symbol table.
923         (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0
924         checks.
925
926 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
927
928         * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker
929         created file from dynobj.
930
931 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
932
933         * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a
934         normal input file if possible.
935
936 2016-04-21  Nick Clifton  <nickc@redhat.com>
937
938         * aout-adobe.c: Use _bfd_generic_link_check_relocs.
939         * aout-target.h: Likewise.
940         * aout-tic30.c: Likewise.
941         * binary.c: Likewise.
942         * bout.c: Likewise.
943         * coff-alpha.c: Likewise.
944         * coff-rs6000.c: Likewise.
945         * coff64-rs6000.c: Likewise.
946         * coffcode.h: Likewise.
947         * i386msdos.c: Likewise.
948         * i386os9k.c: Likewise.
949         * ieee.c: Likewise.
950         * ihex.c: Likewise.
951         * libbfd-in.h: Likewise.
952         * libecoff.h: Likewise.
953         * mach-o-target.c: Likewise.
954         * mmo.c: Likewise.
955         * nlm-target.h: Likewise.
956         * oasys.c: Likewise.
957         * pef.c: Likewise.
958         * plugin.c: Likewise.
959         * ppcboot.c: Likewise.
960         * som.c: Likewise.
961         * srec.c: Likewise.
962         * tekhex.c: Likewise.
963         * versados.c: Likewise.
964         * vms-alpha.c: Likewise.
965         * xsym.c: Likewise.
966         * elfxx-target.h: Use _bfd_elf_link_check_relocs.
967         * linker.c (bfd_link_check_relocs): New function.
968         (_bfd_generic_link_check_relocs): New function.
969         * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of
970         _bfd_link_check_relocs field.
971         (struct bfd_target)L Add _bfd_link_check_relocs field.
972         * bfd-in2.h: Regenerate.
973         * libbfd.h: Regenerate.
974
975 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
976
977         * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.
978         (elf_backend_gc_sweep_hook): Likewise.
979         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
980         (elf_backend_gc_sweep_hook): Likewise.
981
982 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
983
984         * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
985         in excluded sections
986
987 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
988
989         PR ld/19969
990         * elf64-x86-64.c (check_relocs_failed): New.
991         (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
992         Support relocation agaist local symbol.  Set check_relocs_failed.
993         (elf_x86_64_check_relocs): Use elf_x86_64_need_pic.  Check
994         R_X86_64_32 relocation overflow.
995         (elf_x86_64_relocate_section): Skip if check_relocs failed.
996         Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic.
997
998 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
999
1000         * elf32-i386.c (elf_i386_check_relocs): Call
1001         _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol.
1002         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
1003
1004 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1005
1006         * elf-bfd.h (_bfd_elf_link_check_relocs): New.
1007         * elflink.c (_bfd_elf_link_check_relocs): New function.
1008         (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs
1009         if check_relocs_after_open_input is FALSE.
1010
1011 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1012
1013         * cache.c: Update old style function definitions.
1014         * elf32-m68k.c: Likewise.
1015         * elf64-mmix.c: Likewise.
1016         * stab-syms.c: Likewise.
1017
1018 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1019
1020         * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *.
1021
1022 2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1023
1024         * Makefile.in: Regenerated with automake 1.11.6.
1025         * aclocal.m4: Likewise.
1026         * doc/Makefile.in: Likewise.
1027
1028 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
1029
1030         * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry.
1031         * bfd-in2.h: Regenerate.
1032         * libbfd.h: Regenerate.
1033         * elf32-arc.c: Add 'opcode/arc.h' include.
1034         (struct arc_relocation_data): Add symbol_name.
1035         (arc_special_overflow_checks): New function.
1036         (arc_do_relocation): Use arc_special_overflow_checks, reindent as
1037         required, add an extra comment.
1038         (elf_arc_relocate_section): Setup symbol_name in reloc_data.
1039
1040 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
1041
1042         * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all
1043         entries.
1044         (elf_arc_relocate_section): Update enum uses.
1045         (elf_arc_check_relocs): Likewise.
1046         (elf_arc_finish_dynamic_symbol): Likewise.
1047
1048 2016-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1049
1050         * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with
1051         "sh_link".
1052
1053 2016-04-14  Nick Clifton  <nickc@redhat.com>
1054
1055         PR target/19938
1056         * elf-bbfd.h (struct elf_backend_data): New field:
1057         elf_strtab_flags.
1058         New field: elf_backend_set_special_section_info_and_link
1059         * elfxx-target.h (elf_backend_strtab_flags): Define if not already
1060         defined.
1061         (elf_backend_set_special_section_info_and_link): Define if not
1062         already defined.
1063         (elfNN_bed): Use elf_backend_set_special_section_info_and_link and
1064         elf_backend_strtab_flags macros to initialise fields in structure.
1065         * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS
1066         being set even if SHF_MERGE is not set.
1067         (elf_fake_sections): Likewise.
1068         (section_match): New function.  Matches two ELF sections based
1069         upon fixed characteristics.
1070         (find_link): New function.  Locates a section in a BFD that
1071         matches a section in a different BFD.
1072         (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link
1073         fields of reserved sections.
1074         (bfd_elf_compute_section_file_positions): Set the flags for the
1075         .shstrtab section based upon the elf_strtab_flags field in the
1076         elf_backend_data structure.
1077         (swap_out_syms): Likewise for the .strtab section.
1078         * elflink.c (bfd_elf_final_link): Set the flags for the
1079         .strtab section based upon the elf_strtab_flags field in the
1080         elf_backend_data structure.
1081         * elf32-i386.c (elf32_i386_set_special_info_link): New function.
1082         (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris
1083         targets.
1084         (elf_backend_set_special_section_info_and_link): Define for
1085         Solaris targets.
1086         * elf32-sparc.c: Likewise.
1087         * elf64-x86-64.c: Likewise.
1088
1089 2016-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1090
1091         PR ld/19939
1092         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer
1093         to bfd_boolean.
1094         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.
1095         Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc
1096         applies to read-only section.
1097         * elf32-i386.c (elf_i386_link_hash_table): Add
1098         readonly_dynrelocs_against_ifunc.
1099         (elf_i386_allocate_dynrelocs): Updated.
1100         (elf_i386_size_dynamic_sections): Issue an error for read-only
1101         segment with dynamic IFUNC relocations only if
1102         readonly_dynrelocs_against_ifunc is TRUE.
1103         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
1104         readonly_dynrelocs_against_ifunc.
1105         (elf_x86_64_allocate_dynrelocs): Updated.
1106         (elf_x86_64_size_dynamic_sections): Issue an error for read-only
1107         segment with dynamic IFUNC relocations only if
1108         readonly_dynrelocs_against_ifunc is TRUE.
1109         * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
1110         Updated.
1111
1112 2016-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1113
1114         * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be
1115         a fall through from error_ret_free_internal.  Free local_syms in
1116         error_ret_free_local if allocated from bfd_elf_get_elf_syms ().
1117
1118 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1119
1120         * elf32-arc.c (plt_do_relocs_for_symbol): Changed.
1121         (relocate_plt_for_entry): Likewise.
1122
1123 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1124
1125         * elf32-arc.c (elf_arc_check_relocs): Changed
1126
1127 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1128
1129         * elf32-arc.c (name_for_global_symbol): Changed assert.
1130         (get_replace_function): Created.:
1131         (struct arc_relocation_data): Changed to signed types.
1132         (defines S, L, P, PDATA): Casted to signed type.
1133         (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise.
1134         (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed.
1135         (arc_do_relocation): Changed.
1136
1137 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1138
1139         * elf32-arc.c (name_for_global_symbol): Added assert to check for
1140         symbol index.
1141         (elf_arc_relocate_section): Added and changed asserts, validating
1142         the synamic symbol index.
1143         (elf_arc_finish_dynamic_symbol): Do not fill the dynamic
1144         relocation if symbol has dynindx set to -1.
1145
1146 2016-04-05  Maciej W. Rozycki  <macro@imgtec.com>
1147
1148         * elflink.c (elf_link_add_object_symbols): Always turn hidden
1149         and internal symbols which have a dynamic index into local
1150         ones.
1151
1152 2016-04-04  Nick Clifton  <nickc@redhat.com>
1153
1154         PR 19872
1155         * dwarf2.c (parse_comp_unit): Skip warning about unrecognised
1156         version number if the version is zero.
1157
1158 2016-04-01  Alan Modra  <amodra@gmail.com>
1159
1160         PR 19886
1161         * elflink.c (on_needed_list): Recursively check needed status.
1162         (elf_link_add_object_symbols): Adjust.
1163
1164 2016-03-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1165
1166         * elf32-avr.c (avr_elf32_load_records_from_section): Free
1167         internal_relocs only if they aren't cached.
1168
1169 2016-03-29  Nick Clifton  <nickc@redhat.com>
1170
1171         PR 17334
1172         * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax
1173         assertion on the size of the got section to allow it to be bigger
1174         than the number of relocs.
1175
1176 2016-03-29  Toni Spets  <toni.spets@iki.fi>
1177
1178         PR 19878
1179         * coffcode.h (coff_write_object_contents): Revert accidental
1180         2014-11-10 change.
1181
1182 2016-03-22  Alan Modra  <amodra@gmail.com>
1183
1184         PR 19850
1185         * dwarf2.c (read_attribute_value): Skip info_ptr check for
1186         DW_FORM_flag_present.
1187
1188 2016-03-22  Nick Clifton  <nickc@redhat.com>
1189
1190         * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an
1191         architecture name for backwards compatibility.
1192
1193         * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible
1194         unbounded stack use.
1195
1196         * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a
1197         sufficiently recent version of GCC.
1198         * configure: Regenerate.
1199
1200 2016-03-22  Alan Modra  <amodra@gmail.com>
1201
1202         PR 19851
1203         * plugin.c (try_load_plugin): Avoid -Wstack-usage warning.
1204
1205 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1206
1207         * archures.c (bfd_mach_arc_nps400): Define.
1208         * bfd-in2.h: Regenerate.
1209         * cpu-arc.c (arch_info_struct): New entry for nps400, renumber
1210         some existing entries to make space.
1211         * elf32-arc.c (arc_elf_object_p): Add nps400 case.
1212         (arc_elf_final_write_processing): Likewise.
1213
1214 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1215
1216         * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
1217         EF_ARC_CPU_GENERIC.
1218         (arc_elf_final_write_processing): Don't bother setting cpu field
1219         in e_flags, this will have been set elsewhere.
1220
1221 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1222
1223         * elf32-arc.c (arc_elf_final_write_processing): Switch to using
1224         EF_ARC_MACH_MSK.
1225
1226 2016-03-21  Nick Clifton  <nickc@redhat.com>
1227
1228         * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
1229         * configure: Regenerate.
1230         * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
1231         alloca with call to xmalloc.
1232         * elf32-nds32.c: Likewise.
1233         * elf64-hppa.c: Likewise.
1234         * elfxx-mips.c: Likewise.
1235         * pef.c: Likewise.
1236         * pei-x86_64.c: Likewise.
1237         * som.c: Likewise.
1238         * xsym.c: Likewise.
1239
1240 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
1241
1242         PR ld/19827
1243         * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
1244         locally in PIE.
1245         (elf_i386_relocate_section): Likewise.
1246         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
1247         (elf_x86_64_relocate_section): Likewise.
1248
1249 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
1250
1251         PR ld/19807
1252         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
1253         no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S
1254         relocation overflow check.
1255
1256 2016-03-14  H.J. Lu  <hongjiu.lu@intel.com>
1257
1258         * bfd-in2.h: Regenerated.
1259
1260 2016-03-11  Dan Gissel  <dgisselq@ieee.org>
1261
1262         PR 19713
1263         * elf.c (_bfd_elf_section_offset): Ensure that the returned offset
1264         uses bytes not octets.
1265         * elflink.c (resolve_section): Likewise.
1266         Add a bfd parameter.
1267         (eval_section): Pass the input_bfd to resolve_section.
1268         (bfd_elf_perform_complex_relocation): Convert byte offset to
1269         octets before read and writing values.
1270         (elf_link_input_bfd): Add byte to octet conversions.
1271         (elf_reloc_link_order): Likewise.
1272         (elf_fixup_link_order): Likewise.
1273         (bfd_elf_final_link): Likewise.
1274         * reloc.c (_bfd_final_link_relocate): Likewise.
1275         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
1276
1277 2016-03-10  Nick Clifton  <nickc@redhat.com>
1278
1279         * config.bfd: Mark the i370 target as obsolete.
1280
1281 2016-03-09  Pedro Alves  <palves@redhat.com>
1282
1283         * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old
1284         gcc ABI)" to printable name.
1285         * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead
1286         of "v850-rh850" as printable name.
1287
1288 2016-03-09  Leon Winter  <winter-gcc@bfw-online.de>
1289
1290         PR ld/19623
1291         * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply
1292         relocations against absolute symbols.
1293
1294 2016-03-09  Alan Modra  <amodra@gmail.com>
1295
1296         PR binutils/19775
1297         * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero
1298         length elements in the archive.
1299
1300 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
1301
1302         PR ld/19789
1303         * elflink.c (elf_link_add_object_symbols): Create dynamic sections
1304         for -E/--dynamic-list only when not relocatable.
1305
1306 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
1307
1308         PR ld/19784
1309         * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
1310         count for locally defined local IFUNC symbols in shared object.
1311         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
1312
1313 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
1314
1315         PR ld/19579
1316         * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
1317         together.
1318
1319 2016-03-08  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
1320             Andrew Burgess  <andrew.burgess@embecosm.com>
1321
1322         * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32.
1323         (arc_bfd_put_32): Becomes an alias for bfd_put_32.
1324         (arc_elf_howto_init): Added assert to validate relocations.
1325         (get_middle_endian_relocation): Delete.
1326         (middle_endian_convert): New function.
1327         (ME): Redefine, now does nothing.
1328         (IS_ME): New define.
1329         (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO'
1330         definition to call middle_endian_convert.  Add a new local
1331         variable and make use of this throughout. Added call to
1332         arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations.
1333
1334 2016-03-07  Nick Clifton  <nickc@redhat.com>
1335
1336         PR binutils/19775
1337         * archive.c (bfd_generic_openr_next_archived_file): Allow zero
1338         length elements in the archive.
1339
1340 2016-03-07  Jiong Wang  <jiong.wang@arm.com>
1341
1342         * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
1343         section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
1344
1345 2016-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1346
1347         PR ld/19579
1348         * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
1349         executable as definition if the new definition comes from a
1350         shared library.
1351
1352 2016-03-02  Alan Modra  <amodra@gmail.com>
1353
1354         * Makefile.in: Regenerate.
1355         * po/SRC-POTFILES.in: Regenerate.
1356
1357 2016-02-29  Cupertino Miranda  <cmiranda@synopsys.com>
1358
1359         * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the
1360         relocation addend when sections get merged.
1361
1362 2016-02-29  Cupertino Miranda <Cupertino.Miranda@synopsys.com>
1363
1364         * elf32-arc.c (arc_elf_final_write_processing): Add condition to
1365         the flag change.
1366         (elf_arc_relocate_section): Fixes and conditions to support PIE.
1367         Assert for code sections dynamic relocs.
1368
1369 2016-02-26  Renlin Li  <renlin.li@arm.com>
1370
1371         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
1372         check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
1373
1374 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
1375
1376         PR ld/19609
1377         * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
1378         load with locally bound symbols if PIC is false or there is no
1379         base register.  Optimize branch to 0 if PIC is false.
1380         (elf_i386_relocate_section): Don't generate dynamic relocations
1381         against undefined weak symbols if PIC is false.
1382         * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
1383         if we can't estimate relocation overflow with --no-relax.
1384         Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
1385         symbols if PIC is false.  Optimize branch to 0 if PIC is false.
1386         (elf_x86_64_relocate_section): Don't generate dynamic relocations
1387         against undefined weak symbols if PIC is false.
1388
1389 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
1390
1391         PR ld/19645
1392         * bfd.c (bfd): Change flags to 20 bits.
1393         (BFD_CONVERT_ELF_COMMON): New.
1394         (BFD_USE_ELF_STT_COMMON): Likewise.
1395         (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
1396         BFD_USE_ELF_STT_COMMON.
1397         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
1398         * configure.ac: Remove --enable-elf-stt-common.
1399         * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
1400         common symbol depending on BFD_CONVERT_ELF_COMMON and
1401         BFD_USE_ELF_STT_COMMON.
1402         * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
1403         STT_COMMON.
1404         * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
1405         STT_COMMON.
1406         (elf_link_convert_common_type): New function.
1407         (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
1408         common symbol depending on BFD_CONVERT_ELF_COMMON and
1409         BFD_USE_ELF_STT_COMMON.  Set sym.st_info after sym.st_shndx.
1410         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
1411         and BFD_USE_ELF_STT_COMMON to object_flags.
1412         (TARGET_LITTLE_SYM): Likewise.
1413         * syms.c (BSF_KEEP_G): Renamed to ...
1414         (BSF_ELF_COMMON): This.
1415         * bfd-in2.h: Regenerated.
1416         * config.in: Likewise.
1417         * configure: Likewise.
1418
1419 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
1420
1421         PR ld/19636
1422         PR ld/19704
1423         PR ld/19719
1424         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
1425         (elf_i386_link_hash_entry): Add has_got_reloc and
1426         has_non_got_reloc.
1427         (elf_i386_link_hash_table): Add interp.
1428         (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
1429         has_non_got_reloc.
1430         (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
1431         has_non_got_reloc.
1432         (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
1433         (elf_i386_fixup_symbol): New function.
1434         (elf_i386_pie_finish_undefweak_symbol): Likewise.
1435         (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
1436         relocations and discard relocations against resolved undefined
1437         weak symbols in executable.  Don't make resolved undefined weak
1438         symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
1439         relocation against undefined weak symbols in PIE.
1440         (elf_i386_size_dynamic_sections): Set interp to .interp section.
1441         (elf_i386_relocate_section): Don't generate dynamic relocations
1442         against resolved undefined weak symbols in PIE, except for
1443         R_386_PC32.
1444         (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
1445         dynamic PLT/GOT relocations for resolved undefined weak symbols.
1446         Don't generate dynamic relocation against resolved undefined weak
1447         symbol in executable.
1448         (elf_i386_finish_dynamic_sections): Call
1449         elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
1450         (elf_backend_fixup_symbol): New.
1451         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
1452         (elf_x86_64_link_hash_entry): Add has_got_reloc and
1453         has_non_got_reloc.
1454         (elf_x86_64_link_hash_table): Add interp.
1455         (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
1456         has_non_got_reloc.
1457         (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
1458         has_non_got_reloc.
1459         (elf_x86_64_check_relocs): Set has_got_reloc and
1460         has_non_got_reloc.
1461         (elf_x86_64_fixup_symbol): New function.
1462         (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
1463         (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
1464         relocations and discard relocations against resolved undefined
1465         weak symbols in executable.  Don't make resolved undefined weak
1466         symbols in executable dynamic.
1467         (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
1468         (elf_x86_64_relocate_section): Check relocation overflow for
1469         dynamic relocations against unresolved weak undefined symbols.
1470         Don't generate dynamic relocations against resolved weak
1471         undefined symbols in PIE.
1472         (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
1473         dynamic PLT/GOT relocations for resolved undefined weak symbols.
1474         Don't generate dynamic relocation against resolved undefined weak
1475         symbol in executable.
1476         (elf_x86_64_finish_dynamic_sections): Call
1477         elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
1478         (elf_backend_fixup_symbol): New.
1479
1480 2016-02-26  Alan Modra  <amodra@gmail.com>
1481
1482         * elf64-ppc.c (create_linkage_sections): Create sfpr when
1483         save_restore_funcs, rest of sections when not relocatable.
1484         (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
1485         (sfpr_define): Define all symbols on emitted code.
1486         (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
1487         when relocatable.  Move sfpr_define loop earlier.
1488
1489 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1490
1491         * elf64-x86-64.c (elf_x86_64_need_pic): New function.
1492         (elf_x86_64_relocate_section): Use it.  Replace
1493         x86_64_elf_howto_table[r_type] with howto.
1494
1495 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1496
1497         PR ld/19698
1498         * elflink.c (bfd_elf_record_link_assignment): Set versioned if
1499         symbol version is unknown.
1500
1501 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1502
1503         * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
1504         to (bfd_vma) -1 when setting needs_plt to 0.
1505         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
1506
1507 2016-02-23  H.J. Lu  <hongjiu.lu@intel.com>
1508
1509         * elflink.c (bfd_elf_record_link_assignment): Check for shared
1510         library, instead of PIC, and don't check PDE when making linker
1511         assigned symbol dynamic.
1512
1513 2016-02-23  Faraz Shahbazker  <faraz.shahbazker@imgtec.com>
1514
1515         * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
1516         ABIVERSION for non-executable stack.
1517
1518 2016-02-23  Rich Felker  <bugdal@aerifal.cx>
1519
1520         PR target/19516
1521         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
1522         Always produce a RELATIVE reloc for a local symbol.
1523
1524 2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
1525
1526         Fix test-case ld-elf/pr19617b
1527         * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
1528         discard unused non-function symbols when --dynamic-list-data.
1529
1530 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
1531
1532         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
1533         dynsym section, even if it is empty, with dynamic sections.
1534
1535 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
1536
1537         * syms.c: Remove BSF_COMMON from comments.
1538         * bfd-in2.h: Regenerated.
1539
1540 2016-02-22  Jiong Wang  <jiong.wang@arm.com>
1541
1542         * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
1543         for destination.  Remove useless function parameters.
1544         (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
1545
1546 2016-02-19  Nick Clifton  <nickc@redhat.com>
1547
1548         PR ld/19629
1549         * aoutx.h (aout_link_add_symbols): Check for out of range string
1550         table offsets.
1551
1552         PR ld/19628
1553         * reloc.c (bfd_generic_get_relocated_section_contents): Stop
1554         processing if we encounter a reloc without an associated symbol.
1555
1556 2016-02-18  H.J. Lu  <hongjiu.lu@intel.com>
1557
1558         PR ld/19617
1559         * elflink.c (elf_link_add_object_symbols): Always create dynamic
1560         sections for -E/--dynamic-list.
1561
1562 2016-02-17  H.J. Lu  <hongjiu.lu@intel.com>
1563
1564         * elf64-x86-64.c (elf_backend_omit_section_dynsym): New.  Defined
1565         to bfd_true.
1566
1567 2016-02-16  Joseph Myers  <joseph@codesourcery.com>
1568
1569         * plugin.c (plugin_vec): Set match priority to 255.
1570         * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
1571         matching against the plugin vector, take priority from there not
1572         from TEMP.
1573
1574 2016-02-15  Nick Clifton  <nickc@redhat.com>
1575
1576         * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
1577         for length and type fields.  Use a signed value for the
1578         suffix_length field.
1579
1580 2016-02-10  H.J. Lu  <hongjiu.lu@intel.com>
1581
1582         PR ld/19601
1583         * elf32-i386.c (elf_i386_relocate_section): Mask off the least
1584         significant bit in GOT offset for R_386_GOT32X.
1585
1586 2016-02-10  Nick Clifton  <nickc@redhat.com>
1587
1588         PR 19405
1589         * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
1590         immediate values.
1591         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
1592         number of messages about FDE encoding preventing .eh_frame_hdr
1593         generation.
1594
1595 2016-02-09  Nick Clifton  <nickc@redhat.com>
1596
1597         * oasys.c (oasys_archive_p): Fix indentation.
1598         * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
1599         constant for left shifting.
1600
1601         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
1602         helpful warning message to explain why certain AArch64 relocs
1603         might overflow.
1604
1605 2016-02-05  Simon Marchi  <simon.marchi@ericsson.com>
1606
1607         * pe-mips.c (coff_mips_reloc): Fix formatting.
1608
1609 2016-02-05  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
1610
1611         * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
1612         to bfd_mach_arc_arc600.
1613
1614 2016-02-04  Alan Modra  <amodra@gmail.com>
1615
1616         * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
1617         for big-endian.
1618
1619 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1620
1621         PR ld/19542
1622         * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
1623         distances in the compressed_size field of the output section.
1624
1625 2016-02-02  Alan Modra  <amodra@gmail.com>
1626
1627         * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
1628         ELFv2 entry optimization.
1629
1630 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1631
1632         PR binutils/19547
1633         * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
1634         no relocations in relocatable files.
1635
1636 2016-02-01  H.J. Lu  <hongjiu.lu@intel.com>
1637
1638         PR ld/19553
1639         * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
1640         if a symbol from a library loaded via DT_NEEDED doesn't match
1641         the symbol referenced by regular object.
1642
1643 2016-02-01  Nathaniel Smith  <njs@pobox.com>
1644
1645         * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
1646         CODE and DATA.
1647
1648 2016-02-01  Alan Modra  <amodra@gmail.com>
1649
1650         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
1651         an out of range reloc_index.
1652         * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
1653
1654 2016-02-01  Kamil Rytarowski  <n54@gmx.com>
1655
1656         * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
1657         (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
1658         * Makefile.in: Regenerated.
1659
1660 2016-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
1661
1662         * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
1663
1664 2016-01-31  John David Anglin  <danglin@gcc.gnu.org>
1665
1666         PR ld/19526
1667         * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
1668         files.
1669         * elf64-hppa.c (elf32_hppa_final_link): Likewise.  Remove retval.
1670
1671 2016-01-30  H.J. Lu  <hongjiu.lu@intel.com>
1672
1673         PR ld/19539
1674         * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
1675         against STT_GNU_IFUNC symbol only with dynamic symbols.
1676         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
1677
1678 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
1679
1680         PR binutils/19523
1681         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
1682         decompress debug sections.
1683
1684 2016-01-25  Maciej W. Rozycki  <macro@imgtec.com>
1685
1686         * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
1687         `dynindx'.
1688
1689 2016-01-25  Nick Clifton  <nickc@redhat.com>
1690
1691         PR target/19435
1692         * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
1693         dsym filename buffer.
1694
1695 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
1696
1697         * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
1698
1699 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
1700
1701         * elfxx-mips.c (BZ16_REG): Correct calculation.
1702
1703 2016-01-21  Nick Clifton  <nickc@redhat.com>
1704
1705         * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
1706         changing the type of _loc to be bfd_byte *.
1707         (elf_arc_finish_dynamic_symbol): Likewise.
1708
1709 2016-01-21  Nick Clifton  <nickc@redhat.com>
1710
1711         PR ld/19455
1712         * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
1713         class of the linker stub bfd.
1714         (elf32_arm_check_relocs): Skip check for pic format after
1715         processing a vxWorks R_ARM_ABS12 reloc.
1716         * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
1717         reporting a class mismatch.
1718
1719 2016-01-21  Jiong Wang  <jiong.wang@arm.com>
1720
1721         * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
1722         veneer for sym_sec != input_sec.
1723         (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
1724         (elfNN_aarch64_final_link_relocate): Take rela addend into account when
1725         calculation destination.
1726
1727 2016-01-21  Alan Modra  <amodra@gmail.com>
1728
1729         * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
1730         (swap_linux_prpsinfo64_out): New function.
1731         (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
1732         (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
1733         * elf.c (elfcore_write_linux_prpsinfo32): Adjust.  Don't memset.
1734         (elfcore_write_linux_prpsinfo64): Likewise.
1735         * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
1736         (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
1737         (elfcore_write_ppc_linux_prpsinfo32): Adjust.  Don't memset.
1738
1739 2016-01-21  Alan Modra  <amodra@gmail.com>
1740
1741         * elf-linux-core.h: Rename from elf-linux-psinfo.h.
1742         * elf.c: Adjust #include.
1743         * elf32-ppc.c: Don't #include elf-linux-psinfo.h
1744         * Makefile.am (SOURCE_HFILES): Update.
1745         * Makefile.in: Regenerate.
1746         * po/SRC-PORFILES.in: Regenerate.
1747
1748 2016-01-21  Alan Modra  <amodra@gmail.com>
1749
1750         * configure.ac: Move corefile selection later in file.  Move
1751         tdefaults code immediately after other target vector code.
1752         * configure: Regenerate.
1753
1754 2016-01-20  Mickael Guene  <mickael.guene@st.com>
1755
1756         * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
1757         section using '.text.noread' pattern.
1758
1759 2016-01-19  John Baldwin  <jhb@FreeBSD.org>
1760
1761         * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
1762
1763 2016-01-18  Miranda Cupertino  <Cupertino.Miranda@synopsys.com>
1764             Zissulescu Claudiu  <Claudiu.Zissulescu@synopsys.com>
1765
1766         * arc-plt.def: New file.
1767         * arc-plt.h: Likewise.
1768         * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
1769                        elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
1770                        elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
1771                        elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
1772         (name_for_global_symbol): Added.
1773         (ADD_RELA): Helper to create dynamic relocs.
1774         (new_got_entry_to_list): Create a new got entry in linked list.
1775         (symbol_has_entry_of_type): Search for specific type of entry in
1776         list.
1777         (is_reloc_for_GOT): return FALSE for any TLS related relocs.
1778         (is_reloc_for_TLS, arc_elf_set_private_flags)
1779         (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
1780         (arc_elf_merge_private_bfd_data): New functions.
1781         (debug_arc_reloc): Cleaned debug info printing.
1782         (PDATA reloc): Changed not to perform address alignment.
1783         (reverse_me): Added. Fix for ARC_32 relocs.
1784         (arc_do_relocation): Return bfd_reloc_of when no relocation should
1785         occur.
1786         (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
1787         Changed function to access an array of list of GOT entries instead
1788         of just an array of offsets.
1789         (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
1790         (elf_arc_check_relocs): Likewise.
1791         (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
1792         (elf_arc_finish_dynamic_sections): Likewise
1793         (arc_create_dynamic_sections): Modified conditions to create
1794         dynamic sections.
1795         (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
1796         (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
1797         (relocate_plt_for_entry): Changed to support new way to define PLT
1798         related code.
1799         (add_symbol_to_plt): Likewise.
1800         (arc_elf_link_hash_table_create): New function.
1801
1802 2016-01-18  Nick Clifton  <nickc@redhat.com>
1803
1804         PR ld/19440
1805         * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
1806         section number into internal section number.
1807         * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
1808         * coffswap.h (coff_swap_sym_in): Likewise.
1809         * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
1810         * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
1811         section number field is big enough to hold the external value.
1812
1813 2016-01-17  Alan Modra  <amodra@gmail.com>
1814
1815         * configure: Regenerate.
1816
1817 2016-01-12  Yury Usishchev  <y.usishchev@samsung.com>
1818
1819         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
1820         when address in first unwind entry does not match start of
1821         section.
1822
1823 2016-01-08  Richard Sandiford  <richard.sandiford@arm.com>
1824             Jiong Wang  <jiong.wang@arm.com>
1825
1826         PR ld/19368
1827         * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
1828         reloc_class_ifunc.
1829
1830 2016-01-06  Andrew Burgess  <andrew.burgess@embecosm.com>
1831
1832         * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
1833         place 'R_' before the reloc name returned.
1834         (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
1835         the relocation string.
1836
1837 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1838
1839         * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
1840         factored out from...
1841         (_bfd_mips_elf_merge_private_bfd_data): ... here.
1842
1843 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1844
1845         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
1846         attribute check after ELF file header flag check.
1847
1848 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1849
1850         * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
1851         return status from `_bfd_elf_merge_object_attributes'.
1852
1853 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1854
1855         * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
1856         factored out from...
1857         (_bfd_mips_elf_merge_private_bfd_data): ... here.
1858
1859 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1860
1861         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
1862         handling of input MIPS ABI flags together.
1863
1864 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1865
1866         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
1867         attribute checks for null input.
1868
1869 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1870
1871         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
1872         pointers to target data.
1873
1874 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1875
1876         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
1877         an FP ABI warning.
1878
1879 2016-01-01  Alan Modra  <amodra@gmail.com>
1880
1881         Update year range in copyright notice of all files.
1882
1883 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
1884 \f
1885 Copyright (C) 2016 Free Software Foundation, Inc.
1886
1887 Copying and distribution of this file, with or without modification,
1888 are permitted in any medium without royalty provided the copyright
1889 notice and this notice are preserved.
1890
1891 Local Variables:
1892 mode: change-log
1893 left-margin: 8
1894 fill-column: 74
1895 version-control: never
1896 End: