Always count the NULL entry in dynamic symbol table
[external/binutils.git] / bfd / ChangeLog
1 2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * elf-bfd.h (elf_link_hash_table): Update comments for
4         dynsymcount.
5         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for
6         the unused NULL entry at the head of dynamic symbol table.
7         (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0
8         checks.
9
10 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
11
12         * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker
13         created file from dynobj.
14
15 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
16
17         * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a
18         normal input file if possible.
19
20 2016-04-21  Nick Clifton  <nickc@redhat.com>
21
22         * aout-adobe.c: Use _bfd_generic_link_check_relocs.
23         * aout-target.h: Likewise.
24         * aout-tic30.c: Likewise.
25         * binary.c: Likewise.
26         * bout.c: Likewise.
27         * coff-alpha.c: Likewise.
28         * coff-rs6000.c: Likewise.
29         * coff64-rs6000.c: Likewise.
30         * coffcode.h: Likewise.
31         * i386msdos.c: Likewise.
32         * i386os9k.c: Likewise.
33         * ieee.c: Likewise.
34         * ihex.c: Likewise.
35         * libbfd-in.h: Likewise.
36         * libecoff.h: Likewise.
37         * mach-o-target.c: Likewise.
38         * mmo.c: Likewise.
39         * nlm-target.h: Likewise.
40         * oasys.c: Likewise.
41         * pef.c: Likewise.
42         * plugin.c: Likewise.
43         * ppcboot.c: Likewise.
44         * som.c: Likewise.
45         * srec.c: Likewise.
46         * tekhex.c: Likewise.
47         * versados.c: Likewise.
48         * vms-alpha.c: Likewise.
49         * xsym.c: Likewise.
50         * elfxx-target.h: Use _bfd_elf_link_check_relocs.
51         * linker.c (bfd_link_check_relocs): New function.
52         (_bfd_generic_link_check_relocs): New function.
53         * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of
54         _bfd_link_check_relocs field.
55         (struct bfd_target)L Add _bfd_link_check_relocs field.
56         * bfd-in2.h: Regenerate.
57         * libbfd.h: Regenerate.
58
59 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
60
61         * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.
62         (elf_backend_gc_sweep_hook): Likewise.
63         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
64         (elf_backend_gc_sweep_hook): Likewise.
65
66 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
67
68         * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
69         in excluded sections
70
71 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
72
73         PR ld/19969
74         * elf64-x86-64.c (check_relocs_failed): New.
75         (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
76         Support relocation agaist local symbol.  Set check_relocs_failed.
77         (elf_x86_64_check_relocs): Use elf_x86_64_need_pic.  Check
78         R_X86_64_32 relocation overflow.
79         (elf_x86_64_relocate_section): Skip if check_relocs failed.
80         Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic.
81
82 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
83
84         * elf32-i386.c (elf_i386_check_relocs): Call
85         _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol.
86         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
87
88 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
89
90         * elf-bfd.h (_bfd_elf_link_check_relocs): New.
91         * elflink.c (_bfd_elf_link_check_relocs): New function.
92         (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs
93         if check_relocs_after_open_input is FALSE.
94
95 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
96
97         * cache.c: Update old style function definitions.
98         * elf32-m68k.c: Likewise.
99         * elf64-mmix.c: Likewise.
100         * stab-syms.c: Likewise.
101
102 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
103
104         * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *.
105
106 2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>
107
108         * Makefile.in: Regenerated with automake 1.11.6.
109         * aclocal.m4: Likewise.
110         * doc/Makefile.in: Likewise.
111
112 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
113
114         * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry.
115         * bfd-in2.h: Regenerate.
116         * libbfd.h: Regenerate.
117         * elf32-arc.c: Add 'opcode/arc.h' include.
118         (struct arc_relocation_data): Add symbol_name.
119         (arc_special_overflow_checks): New function.
120         (arc_do_relocation): Use arc_special_overflow_checks, reindent as
121         required, add an extra comment.
122         (elf_arc_relocate_section): Setup symbol_name in reloc_data.
123
124 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
125
126         * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all
127         entries.
128         (elf_arc_relocate_section): Update enum uses.
129         (elf_arc_check_relocs): Likewise.
130         (elf_arc_finish_dynamic_symbol): Likewise.
131
132 2016-04-14  H.J. Lu  <hongjiu.lu@intel.com>
133
134         * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with
135         "sh_link".
136
137 2016-04-14  Nick Clifton  <nickc@redhat.com>
138
139         PR target/19938
140         * elf-bbfd.h (struct elf_backend_data): New field:
141         elf_strtab_flags.
142         New field: elf_backend_set_special_section_info_and_link
143         * elfxx-target.h (elf_backend_strtab_flags): Define if not already
144         defined.
145         (elf_backend_set_special_section_info_and_link): Define if not
146         already defined.
147         (elfNN_bed): Use elf_backend_set_special_section_info_and_link and
148         elf_backend_strtab_flags macros to initialise fields in structure.
149         * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS
150         being set even if SHF_MERGE is not set.
151         (elf_fake_sections): Likewise.
152         (section_match): New function.  Matches two ELF sections based
153         upon fixed characteristics.
154         (find_link): New function.  Locates a section in a BFD that
155         matches a section in a different BFD.
156         (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link
157         fields of reserved sections.
158         (bfd_elf_compute_section_file_positions): Set the flags for the
159         .shstrtab section based upon the elf_strtab_flags field in the
160         elf_backend_data structure.
161         (swap_out_syms): Likewise for the .strtab section.
162         * elflink.c (bfd_elf_final_link): Set the flags for the
163         .strtab section based upon the elf_strtab_flags field in the
164         elf_backend_data structure.
165         * elf32-i386.c (elf32_i386_set_special_info_link): New function.
166         (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris
167         targets.
168         (elf_backend_set_special_section_info_and_link): Define for
169         Solaris targets.
170         * elf32-sparc.c: Likewise.
171         * elf64-x86-64.c: Likewise.
172
173 2016-04-11  H.J. Lu  <hongjiu.lu@intel.com>
174
175         PR ld/19939
176         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer
177         to bfd_boolean.
178         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.
179         Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc
180         applies to read-only section.
181         * elf32-i386.c (elf_i386_link_hash_table): Add
182         readonly_dynrelocs_against_ifunc.
183         (elf_i386_allocate_dynrelocs): Updated.
184         (elf_i386_size_dynamic_sections): Issue an error for read-only
185         segment with dynamic IFUNC relocations only if
186         readonly_dynrelocs_against_ifunc is TRUE.
187         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
188         readonly_dynrelocs_against_ifunc.
189         (elf_x86_64_allocate_dynrelocs): Updated.
190         (elf_x86_64_size_dynamic_sections): Issue an error for read-only
191         segment with dynamic IFUNC relocations only if
192         readonly_dynrelocs_against_ifunc is TRUE.
193         * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
194         Updated.
195
196 2016-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
197
198         * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be
199         a fall through from error_ret_free_internal.  Free local_syms in
200         error_ret_free_local if allocated from bfd_elf_get_elf_syms ().
201
202 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
203
204         * elf32-arc.c (plt_do_relocs_for_symbol): Changed.
205         (relocate_plt_for_entry): Likewise.
206
207 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
208
209         * elf32-arc.c (elf_arc_check_relocs): Changed
210
211 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
212
213         * elf32-arc.c (name_for_global_symbol): Changed assert.
214         (get_replace_function): Created.:
215         (struct arc_relocation_data): Changed to signed types.
216         (defines S, L, P, PDATA): Casted to signed type.
217         (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise.
218         (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed.
219         (arc_do_relocation): Changed.
220
221 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
222
223         * elf32-arc.c (name_for_global_symbol): Added assert to check for
224         symbol index.
225         (elf_arc_relocate_section): Added and changed asserts, validating
226         the synamic symbol index.
227         (elf_arc_finish_dynamic_symbol): Do not fill the dynamic
228         relocation if symbol has dynindx set to -1.
229
230 2016-04-05  Maciej W. Rozycki  <macro@imgtec.com>
231
232         * elflink.c (elf_link_add_object_symbols): Always turn hidden
233         and internal symbols which have a dynamic index into local
234         ones.
235
236 2016-04-04  Nick Clifton  <nickc@redhat.com>
237
238         PR 19872
239         * dwarf2.c (parse_comp_unit): Skip warning about unrecognised
240         version number if the version is zero.
241
242 2016-04-01  Alan Modra  <amodra@gmail.com>
243
244         PR 19886
245         * elflink.c (on_needed_list): Recursively check needed status.
246         (elf_link_add_object_symbols): Adjust.
247
248 2016-03-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
249
250         * elf32-avr.c (avr_elf32_load_records_from_section): Free
251         internal_relocs only if they aren't cached.
252
253 2016-03-29  Nick Clifton  <nickc@redhat.com>
254
255         PR 17334
256         * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax
257         assertion on the size of the got section to allow it to be bigger
258         than the number of relocs.
259
260 2016-03-29  Toni Spets  <toni.spets@iki.fi>
261
262         PR 19878
263         * coffcode.h (coff_write_object_contents): Revert accidental
264         2014-11-10 change.
265
266 2016-03-22  Alan Modra  <amodra@gmail.com>
267
268         PR 19850
269         * dwarf2.c (read_attribute_value): Skip info_ptr check for
270         DW_FORM_flag_present.
271
272 2016-03-22  Nick Clifton  <nickc@redhat.com>
273
274         * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an
275         architecture name for backwards compatibility.
276
277         * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible
278         unbounded stack use.
279
280         * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a
281         sufficiently recent version of GCC.
282         * configure: Regenerate.
283
284 2016-03-22  Alan Modra  <amodra@gmail.com>
285
286         PR 19851
287         * plugin.c (try_load_plugin): Avoid -Wstack-usage warning.
288
289 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
290
291         * archures.c (bfd_mach_arc_nps400): Define.
292         * bfd-in2.h: Regenerate.
293         * cpu-arc.c (arch_info_struct): New entry for nps400, renumber
294         some existing entries to make space.
295         * elf32-arc.c (arc_elf_object_p): Add nps400 case.
296         (arc_elf_final_write_processing): Likewise.
297
298 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
299
300         * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
301         EF_ARC_CPU_GENERIC.
302         (arc_elf_final_write_processing): Don't bother setting cpu field
303         in e_flags, this will have been set elsewhere.
304
305 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
306
307         * elf32-arc.c (arc_elf_final_write_processing): Switch to using
308         EF_ARC_MACH_MSK.
309
310 2016-03-21  Nick Clifton  <nickc@redhat.com>
311
312         * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
313         * configure: Regenerate.
314         * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
315         alloca with call to xmalloc.
316         * elf32-nds32.c: Likewise.
317         * elf64-hppa.c: Likewise.
318         * elfxx-mips.c: Likewise.
319         * pef.c: Likewise.
320         * pei-x86_64.c: Likewise.
321         * som.c: Likewise.
322         * xsym.c: Likewise.
323
324 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
325
326         PR ld/19827
327         * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
328         locally in PIE.
329         (elf_i386_relocate_section): Likewise.
330         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
331         (elf_x86_64_relocate_section): Likewise.
332
333 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
334
335         PR ld/19807
336         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
337         no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S
338         relocation overflow check.
339
340 2016-03-14  H.J. Lu  <hongjiu.lu@intel.com>
341
342         * bfd-in2.h: Regenerated.
343
344 2016-03-11  Dan Gissel  <dgisselq@ieee.org>
345
346         PR 19713
347         * elf.c (_bfd_elf_section_offset): Ensure that the returned offset
348         uses bytes not octets.
349         * elflink.c (resolve_section): Likewise.
350         Add a bfd parameter.
351         (eval_section): Pass the input_bfd to resolve_section.
352         (bfd_elf_perform_complex_relocation): Convert byte offset to
353         octets before read and writing values.
354         (elf_link_input_bfd): Add byte to octet conversions.
355         (elf_reloc_link_order): Likewise.
356         (elf_fixup_link_order): Likewise.
357         (bfd_elf_final_link): Likewise.
358         * reloc.c (_bfd_final_link_relocate): Likewise.
359         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
360
361 2016-03-10  Nick Clifton  <nickc@redhat.com>
362
363         * config.bfd: Mark the i370 target as obsolete.
364
365 2016-03-09  Pedro Alves  <palves@redhat.com>
366
367         * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old
368         gcc ABI)" to printable name.
369         * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead
370         of "v850-rh850" as printable name.
371
372 2016-03-09  Leon Winter  <winter-gcc@bfw-online.de>
373
374         PR ld/19623
375         * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply
376         relocations against absolute symbols.
377
378 2016-03-09  Alan Modra  <amodra@gmail.com>
379
380         PR binutils/19775
381         * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero
382         length elements in the archive.
383
384 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
385
386         PR ld/19789
387         * elflink.c (elf_link_add_object_symbols): Create dynamic sections
388         for -E/--dynamic-list only when not relocatable.
389
390 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
391
392         PR ld/19784
393         * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
394         count for locally defined local IFUNC symbols in shared object.
395         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
396
397 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
398
399         PR ld/19579
400         * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
401         together.
402
403 2016-03-08  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
404             Andrew Burgess  <andrew.burgess@embecosm.com>
405
406         * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32.
407         (arc_bfd_put_32): Becomes an alias for bfd_put_32.
408         (arc_elf_howto_init): Added assert to validate relocations.
409         (get_middle_endian_relocation): Delete.
410         (middle_endian_convert): New function.
411         (ME): Redefine, now does nothing.
412         (IS_ME): New define.
413         (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO'
414         definition to call middle_endian_convert.  Add a new local
415         variable and make use of this throughout. Added call to
416         arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations.
417
418 2016-03-07  Nick Clifton  <nickc@redhat.com>
419
420         PR binutils/19775
421         * archive.c (bfd_generic_openr_next_archived_file): Allow zero
422         length elements in the archive.
423
424 2016-03-07  Jiong Wang  <jiong.wang@arm.com>
425
426         * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
427         section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
428
429 2016-03-04  H.J. Lu  <hongjiu.lu@intel.com>
430
431         PR ld/19579
432         * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
433         executable as definition if the new definition comes from a
434         shared library.
435
436 2016-03-02  Alan Modra  <amodra@gmail.com>
437
438         * Makefile.in: Regenerate.
439         * po/SRC-POTFILES.in: Regenerate.
440
441 2016-02-29  Cupertino Miranda  <cmiranda@synopsys.com>
442
443         * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the
444         relocation addend when sections get merged.
445
446 2016-02-29  Cupertino Miranda <Cupertino.Miranda@synopsys.com>
447
448         * elf32-arc.c (arc_elf_final_write_processing): Add condition to
449         the flag change.
450         (elf_arc_relocate_section): Fixes and conditions to support PIE.
451         Assert for code sections dynamic relocs.
452
453 2016-02-26  Renlin Li  <renlin.li@arm.com>
454
455         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
456         check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
457
458 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
459
460         PR ld/19609
461         * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
462         load with locally bound symbols if PIC is false or there is no
463         base register.  Optimize branch to 0 if PIC is false.
464         (elf_i386_relocate_section): Don't generate dynamic relocations
465         against undefined weak symbols if PIC is false.
466         * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
467         if we can't estimate relocation overflow with --no-relax.
468         Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
469         symbols if PIC is false.  Optimize branch to 0 if PIC is false.
470         (elf_x86_64_relocate_section): Don't generate dynamic relocations
471         against undefined weak symbols if PIC is false.
472
473 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
474
475         PR ld/19645
476         * bfd.c (bfd): Change flags to 20 bits.
477         (BFD_CONVERT_ELF_COMMON): New.
478         (BFD_USE_ELF_STT_COMMON): Likewise.
479         (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
480         BFD_USE_ELF_STT_COMMON.
481         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
482         * configure.ac: Remove --enable-elf-stt-common.
483         * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
484         common symbol depending on BFD_CONVERT_ELF_COMMON and
485         BFD_USE_ELF_STT_COMMON.
486         * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
487         STT_COMMON.
488         * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
489         STT_COMMON.
490         (elf_link_convert_common_type): New function.
491         (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
492         common symbol depending on BFD_CONVERT_ELF_COMMON and
493         BFD_USE_ELF_STT_COMMON.  Set sym.st_info after sym.st_shndx.
494         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
495         and BFD_USE_ELF_STT_COMMON to object_flags.
496         (TARGET_LITTLE_SYM): Likewise.
497         * syms.c (BSF_KEEP_G): Renamed to ...
498         (BSF_ELF_COMMON): This.
499         * bfd-in2.h: Regenerated.
500         * config.in: Likewise.
501         * configure: Likewise.
502
503 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
504
505         PR ld/19636
506         PR ld/19704
507         PR ld/19719
508         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
509         (elf_i386_link_hash_entry): Add has_got_reloc and
510         has_non_got_reloc.
511         (elf_i386_link_hash_table): Add interp.
512         (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
513         has_non_got_reloc.
514         (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
515         has_non_got_reloc.
516         (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
517         (elf_i386_fixup_symbol): New function.
518         (elf_i386_pie_finish_undefweak_symbol): Likewise.
519         (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
520         relocations and discard relocations against resolved undefined
521         weak symbols in executable.  Don't make resolved undefined weak
522         symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
523         relocation against undefined weak symbols in PIE.
524         (elf_i386_size_dynamic_sections): Set interp to .interp section.
525         (elf_i386_relocate_section): Don't generate dynamic relocations
526         against resolved undefined weak symbols in PIE, except for
527         R_386_PC32.
528         (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
529         dynamic PLT/GOT relocations for resolved undefined weak symbols.
530         Don't generate dynamic relocation against resolved undefined weak
531         symbol in executable.
532         (elf_i386_finish_dynamic_sections): Call
533         elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
534         (elf_backend_fixup_symbol): New.
535         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
536         (elf_x86_64_link_hash_entry): Add has_got_reloc and
537         has_non_got_reloc.
538         (elf_x86_64_link_hash_table): Add interp.
539         (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
540         has_non_got_reloc.
541         (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
542         has_non_got_reloc.
543         (elf_x86_64_check_relocs): Set has_got_reloc and
544         has_non_got_reloc.
545         (elf_x86_64_fixup_symbol): New function.
546         (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
547         (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
548         relocations and discard relocations against resolved undefined
549         weak symbols in executable.  Don't make resolved undefined weak
550         symbols in executable dynamic.
551         (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
552         (elf_x86_64_relocate_section): Check relocation overflow for
553         dynamic relocations against unresolved weak undefined symbols.
554         Don't generate dynamic relocations against resolved weak
555         undefined symbols in PIE.
556         (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
557         dynamic PLT/GOT relocations for resolved undefined weak symbols.
558         Don't generate dynamic relocation against resolved undefined weak
559         symbol in executable.
560         (elf_x86_64_finish_dynamic_sections): Call
561         elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
562         (elf_backend_fixup_symbol): New.
563
564 2016-02-26  Alan Modra  <amodra@gmail.com>
565
566         * elf64-ppc.c (create_linkage_sections): Create sfpr when
567         save_restore_funcs, rest of sections when not relocatable.
568         (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
569         (sfpr_define): Define all symbols on emitted code.
570         (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
571         when relocatable.  Move sfpr_define loop earlier.
572
573 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
574
575         * elf64-x86-64.c (elf_x86_64_need_pic): New function.
576         (elf_x86_64_relocate_section): Use it.  Replace
577         x86_64_elf_howto_table[r_type] with howto.
578
579 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
580
581         PR ld/19698
582         * elflink.c (bfd_elf_record_link_assignment): Set versioned if
583         symbol version is unknown.
584
585 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
586
587         * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
588         to (bfd_vma) -1 when setting needs_plt to 0.
589         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
590
591 2016-02-23  H.J. Lu  <hongjiu.lu@intel.com>
592
593         * elflink.c (bfd_elf_record_link_assignment): Check for shared
594         library, instead of PIC, and don't check PDE when making linker
595         assigned symbol dynamic.
596
597 2016-02-23  Faraz Shahbazker  <faraz.shahbazker@imgtec.com>
598
599         * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
600         ABIVERSION for non-executable stack.
601
602 2016-02-23  Rich Felker  <bugdal@aerifal.cx>
603
604         PR target/19516
605         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
606         Always produce a RELATIVE reloc for a local symbol.
607
608 2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
609
610         Fix test-case ld-elf/pr19617b
611         * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
612         discard unused non-function symbols when --dynamic-list-data.
613
614 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
615
616         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
617         dynsym section, even if it is empty, with dynamic sections.
618
619 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
620
621         * syms.c: Remove BSF_COMMON from comments.
622         * bfd-in2.h: Regenerated.
623
624 2016-02-22  Jiong Wang  <jiong.wang@arm.com>
625
626         * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
627         for destination.  Remove useless function parameters.
628         (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
629
630 2016-02-19  Nick Clifton  <nickc@redhat.com>
631
632         PR ld/19629
633         * aoutx.h (aout_link_add_symbols): Check for out of range string
634         table offsets.
635
636         PR ld/19628
637         * reloc.c (bfd_generic_get_relocated_section_contents): Stop
638         processing if we encounter a reloc without an associated symbol.
639
640 2016-02-18  H.J. Lu  <hongjiu.lu@intel.com>
641
642         PR ld/19617
643         * elflink.c (elf_link_add_object_symbols): Always create dynamic
644         sections for -E/--dynamic-list.
645
646 2016-02-17  H.J. Lu  <hongjiu.lu@intel.com>
647
648         * elf64-x86-64.c (elf_backend_omit_section_dynsym): New.  Defined
649         to bfd_true.
650
651 2016-02-16  Joseph Myers  <joseph@codesourcery.com>
652
653         * plugin.c (plugin_vec): Set match priority to 255.
654         * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
655         matching against the plugin vector, take priority from there not
656         from TEMP.
657
658 2016-02-15  Nick Clifton  <nickc@redhat.com>
659
660         * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
661         for length and type fields.  Use a signed value for the
662         suffix_length field.
663
664 2016-02-10  H.J. Lu  <hongjiu.lu@intel.com>
665
666         PR ld/19601
667         * elf32-i386.c (elf_i386_relocate_section): Mask off the least
668         significant bit in GOT offset for R_386_GOT32X.
669
670 2016-02-10  Nick Clifton  <nickc@redhat.com>
671
672         PR 19405
673         * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
674         immediate values.
675         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
676         number of messages about FDE encoding preventing .eh_frame_hdr
677         generation.
678
679 2016-02-09  Nick Clifton  <nickc@redhat.com>
680
681         * oasys.c (oasys_archive_p): Fix indentation.
682         * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
683         constant for left shifting.
684
685         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
686         helpful warning message to explain why certain AArch64 relocs
687         might overflow.
688
689 2016-02-05  Simon Marchi  <simon.marchi@ericsson.com>
690
691         * pe-mips.c (coff_mips_reloc): Fix formatting.
692
693 2016-02-05  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
694
695         * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
696         to bfd_mach_arc_arc600.
697
698 2016-02-04  Alan Modra  <amodra@gmail.com>
699
700         * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
701         for big-endian.
702
703 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
704
705         PR ld/19542
706         * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
707         distances in the compressed_size field of the output section.
708
709 2016-02-02  Alan Modra  <amodra@gmail.com>
710
711         * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
712         ELFv2 entry optimization.
713
714 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
715
716         PR binutils/19547
717         * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
718         no relocations in relocatable files.
719
720 2016-02-01  H.J. Lu  <hongjiu.lu@intel.com>
721
722         PR ld/19553
723         * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
724         if a symbol from a library loaded via DT_NEEDED doesn't match
725         the symbol referenced by regular object.
726
727 2016-02-01  Nathaniel Smith  <njs@pobox.com>
728
729         * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
730         CODE and DATA.
731
732 2016-02-01  Alan Modra  <amodra@gmail.com>
733
734         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
735         an out of range reloc_index.
736         * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
737
738 2016-02-01  Kamil Rytarowski  <n54@gmx.com>
739
740         * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
741         (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
742         * Makefile.in: Regenerated.
743
744 2016-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
745
746         * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
747
748 2016-01-31  John David Anglin  <danglin@gcc.gnu.org>
749
750         PR ld/19526
751         * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
752         files.
753         * elf64-hppa.c (elf32_hppa_final_link): Likewise.  Remove retval.
754
755 2016-01-30  H.J. Lu  <hongjiu.lu@intel.com>
756
757         PR ld/19539
758         * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
759         against STT_GNU_IFUNC symbol only with dynamic symbols.
760         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
761
762 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
763
764         PR binutils/19523
765         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
766         decompress debug sections.
767
768 2016-01-25  Maciej W. Rozycki  <macro@imgtec.com>
769
770         * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
771         `dynindx'.
772
773 2016-01-25  Nick Clifton  <nickc@redhat.com>
774
775         PR target/19435
776         * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
777         dsym filename buffer.
778
779 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
780
781         * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
782
783 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
784
785         * elfxx-mips.c (BZ16_REG): Correct calculation.
786
787 2016-01-21  Nick Clifton  <nickc@redhat.com>
788
789         * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
790         changing the type of _loc to be bfd_byte *.
791         (elf_arc_finish_dynamic_symbol): Likewise.
792
793 2016-01-21  Nick Clifton  <nickc@redhat.com>
794
795         PR ld/19455
796         * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
797         class of the linker stub bfd.
798         (elf32_arm_check_relocs): Skip check for pic format after
799         processing a vxWorks R_ARM_ABS12 reloc.
800         * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
801         reporting a class mismatch.
802
803 2016-01-21  Jiong Wang  <jiong.wang@arm.com>
804
805         * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
806         veneer for sym_sec != input_sec.
807         (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
808         (elfNN_aarch64_final_link_relocate): Take rela addend into account when
809         calculation destination.
810
811 2016-01-21  Alan Modra  <amodra@gmail.com>
812
813         * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
814         (swap_linux_prpsinfo64_out): New function.
815         (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
816         (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
817         * elf.c (elfcore_write_linux_prpsinfo32): Adjust.  Don't memset.
818         (elfcore_write_linux_prpsinfo64): Likewise.
819         * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
820         (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
821         (elfcore_write_ppc_linux_prpsinfo32): Adjust.  Don't memset.
822
823 2016-01-21  Alan Modra  <amodra@gmail.com>
824
825         * elf-linux-core.h: Rename from elf-linux-psinfo.h.
826         * elf.c: Adjust #include.
827         * elf32-ppc.c: Don't #include elf-linux-psinfo.h
828         * Makefile.am (SOURCE_HFILES): Update.
829         * Makefile.in: Regenerate.
830         * po/SRC-PORFILES.in: Regenerate.
831
832 2016-01-21  Alan Modra  <amodra@gmail.com>
833
834         * configure.ac: Move corefile selection later in file.  Move
835         tdefaults code immediately after other target vector code.
836         * configure: Regenerate.
837
838 2016-01-20  Mickael Guene  <mickael.guene@st.com>
839
840         * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
841         section using '.text.noread' pattern.
842
843 2016-01-19  John Baldwin  <jhb@FreeBSD.org>
844
845         * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
846
847 2016-01-18  Miranda Cupertino  <Cupertino.Miranda@synopsys.com>
848             Zissulescu Claudiu  <Claudiu.Zissulescu@synopsys.com>
849
850         * arc-plt.def: New file.
851         * arc-plt.h: Likewise.
852         * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
853                        elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
854                        elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
855                        elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
856         (name_for_global_symbol): Added.
857         (ADD_RELA): Helper to create dynamic relocs.
858         (new_got_entry_to_list): Create a new got entry in linked list.
859         (symbol_has_entry_of_type): Search for specific type of entry in
860         list.
861         (is_reloc_for_GOT): return FALSE for any TLS related relocs.
862         (is_reloc_for_TLS, arc_elf_set_private_flags)
863         (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
864         (arc_elf_merge_private_bfd_data): New functions.
865         (debug_arc_reloc): Cleaned debug info printing.
866         (PDATA reloc): Changed not to perform address alignment.
867         (reverse_me): Added. Fix for ARC_32 relocs.
868         (arc_do_relocation): Return bfd_reloc_of when no relocation should
869         occur.
870         (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
871         Changed function to access an array of list of GOT entries instead
872         of just an array of offsets.
873         (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
874         (elf_arc_check_relocs): Likewise.
875         (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
876         (elf_arc_finish_dynamic_sections): Likewise
877         (arc_create_dynamic_sections): Modified conditions to create
878         dynamic sections.
879         (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
880         (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
881         (relocate_plt_for_entry): Changed to support new way to define PLT
882         related code.
883         (add_symbol_to_plt): Likewise.
884         (arc_elf_link_hash_table_create): New function.
885
886 2016-01-18  Nick Clifton  <nickc@redhat.com>
887
888         PR ld/19440
889         * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
890         section number into internal section number.
891         * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
892         * coffswap.h (coff_swap_sym_in): Likewise.
893         * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
894         * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
895         section number field is big enough to hold the external value.
896
897 2016-01-17  Alan Modra  <amodra@gmail.com>
898
899         * configure: Regenerate.
900
901 2016-01-12  Yury Usishchev  <y.usishchev@samsung.com>
902
903         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
904         when address in first unwind entry does not match start of
905         section.
906
907 2016-01-08  Richard Sandiford  <richard.sandiford@arm.com>
908             Jiong Wang  <jiong.wang@arm.com>
909
910         PR ld/19368
911         * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
912         reloc_class_ifunc.
913
914 2016-01-06  Andrew Burgess  <andrew.burgess@embecosm.com>
915
916         * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
917         place 'R_' before the reloc name returned.
918         (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
919         the relocation string.
920
921 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
922
923         * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
924         factored out from...
925         (_bfd_mips_elf_merge_private_bfd_data): ... here.
926
927 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
928
929         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
930         attribute check after ELF file header flag check.
931
932 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
933
934         * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
935         return status from `_bfd_elf_merge_object_attributes'.
936
937 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
938
939         * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
940         factored out from...
941         (_bfd_mips_elf_merge_private_bfd_data): ... here.
942
943 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
944
945         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
946         handling of input MIPS ABI flags together.
947
948 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
949
950         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
951         attribute checks for null input.
952
953 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
954
955         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
956         pointers to target data.
957
958 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
959
960         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
961         an FP ABI warning.
962
963 2016-01-01  Alan Modra  <amodra@gmail.com>
964
965         Update year range in copyright notice of all files.
966
967 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
968 \f
969 Copyright (C) 2016 Free Software Foundation, Inc.
970
971 Copying and distribution of this file, with or without modification,
972 are permitted in any medium without royalty provided the copyright
973 notice and this notice are preserved.
974
975 Local Variables:
976 mode: change-log
977 left-margin: 8
978 fill-column: 74
979 version-control: never
980 End: