ld: Support ELF GNU program properties
[external/binutils.git] / bfd / ChangeLog
1 2017-04-03  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
4         (BFD32_BACKENDS_CFILES): Add elf-properties.c.
5         * configure.ac (elf): Add elf-properties.lo.
6         * Makefile.in: Regenerated.
7         * configure: Likewise.
8         * elf-bfd.h (elf_property_kind): New.
9         (elf_property): Likewise.
10         (elf_property_list): Likewise.
11         (elf_properties): Likewise.
12         (_bfd_elf_parse_gnu_properties): Likewise.
13         (_bfd_elf_get_property): Likewise.
14         (_bfd_elf_link_setup_gnu_properties): Likewise.
15         (elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
16         and setup_gnu_properties.
17         (elf_obj_tdata): Add properties.
18         * elf-properties.c: New file.
19         * elf32-i386.c (elf_i386_parse_gnu_properties): New.
20         (elf_i386_merge_gnu_properties): Likewise.
21         (elf_backend_parse_gnu_properties): Likewise.
22         (elf_backend_merge_gnu_properties): Likewise.
23         * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
24         (elf_x86_64_merge_gnu_properties): Likewise.
25         (elf_backend_parse_gnu_properties): Likewise.
26         (elf_backend_merge_gnu_properties): Likewise.
27         * elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
28         (elf_backend_parse_gnu_properties): Likewise.
29         (elf_backend_setup_gnu_properties): Likewise.
30         (elfNN_bed): Add elf_backend_parse_gnu_properties,
31         elf_backend_merge_gnu_properties and
32         elf_backend_setup_gnu_properties.
33
34 2017-03-30  Pip Cet  <pipcet@gmail.com>
35
36         * elf32-wasm32.c: Add relocation code, two relocs.
37         * reloc.c: Add wasm32 relocations.
38         * libbfd.h: Regenerate.
39         * bfd-in2.h: Regenerate.
40         * bfd/po/bfd.pot: Regenerate.
41
42 2017-03-29  Nick Clifton  <nickc@redhat.com>
43
44         PR binutils/18025
45         * coff-bfd.h (struct coff_section_data): Add new fields:
46         saved_bias and bias.
47         * coffgen.c (coff_find_nearest_line_with_names): Cache the bias
48         computed for PE binaries.
49         * dwarf2.c (scan_unit_for_symbols): Only warn once about each
50         missing abbrev.
51
52 2017-03-28  Hans-Peter Nilsson  <hp@axis.com>
53
54         PR ld/16044
55         * elf32-cris.c (elf_cris_adjust_gotplt_to_got): Adjust BFD_ASSERT
56         to handle a local symbol with a hash-symbol-entry; without PLT.
57         Add BFD_ASSERT for an incidental case with GOT entry present.
58         (cris_elf_check_relocs): Increment PLT refcount only if the symbol
59         isn't forced-or-set local.
60
61 2017-03-27  Pip Cet  <pipcet@gmail.com>
62
63         * wasm-module.c: New file to support WebAssembly modules.
64         * wasm-module.h: New file to support WebAssembly modules.
65         * doc/webassembly.texi: Start documenting wasm-module.c.
66         * config.bfd: Add wasm_vec.
67         * targets.c: Likewise.
68         * configure.ac: Likewise.
69         * Makefile.am: Add entries for wasm-module.c.
70         * Makefile.in: Regenerate.
71         * configure: Regenerate.
72         * po/SRC-POTFILES.in: Regenerate.
73
74 2017-03-27  Pip Cet  <pipcet@gmail.com>
75
76         * cpu-wasm32.c: New file to support wasm32 architecture.
77         * elf32-wasm32.c: New file to support wasm32 architecture.
78         * Makefile.am: Add wasm32 architecture.
79         * archures.c: Likewise.
80         * config.bfd: Likewise.
81         * configure.ac: Likewise.
82         * targets.c: Likewise.
83         * Makefile.in: Regenerate.
84         * bfd-in2.h: Regenerate.
85         * configure: Regenerate.
86         * po/SRC-POTFILES.in: Regenerate.
87
88 2017-03-20  Alan Modra  <amodra@gmail.com>
89
90         PR 21266
91         * elf64-ppc.c (compare_symbols): Stabilize sort.
92
93 2017-03-18  Alan Modra  <amodra@gmail.com>
94
95         * elf64-ppc.c (struct ppc_link_hash_table): Add
96         local_ifunc_resolver and maybe_local_ifunc_resolver.
97         (ppc_build_one_stub): Set flags on emitting dynamic
98         relocation to ifunc.
99         (ppc64_elf_relocate_section): Likewise.
100         (ppc64_elf_finish_dynamic_symbol): Likewise.
101         (ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with
102         local dynamic relocs to ifuncs.
103         * elf32-ppc.c (struct ppc_elf_link_hash_table): Add
104         local_ifunc_resolver and maybe_local_ifunc_resolver.
105         (ppc_elf_relocate_section): Set flag on emitting dynamic
106         relocation to ifuncs.
107         (ppc_elf_finish_dynamic_symbol): Likewise.
108         (ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local
109         dynamic relocs to ifuncs.
110
111 2017-03-13  Nick Clifton  <nickc@redhat.com>
112
113         PR binutils/21202
114         * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
115         BFD_RELOC_AARCH64_TLSDESC_LD64_LO12.
116         (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
117         BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
118         * bfd-in2.h: Regenerate.
119         * libbfd.h: Regenerate.
120         * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc
121         names.
122         (IS_AARCH64_TLSDESC_RELOC): Likewise.
123         (elfNN_aarch64_howto_table): Likewise.
124         (aarch64_tls_transition_without_check): Likewise.
125         (aarch64_reloc_got_type): Likewise.
126         (elfNN_aarch64_final_link_relocate): Likewise.
127         (elfNN_aarch64_tls_relax): Likewise.
128         (elfNN_aarch64_relocate_section): Likewise.
129         (elfNN_aarch64_gc_sweep_hook): Likewise.
130         (elfNN_aarch64_check_relocs): Likewise.
131         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
132         (_bfd_aarch64_elf_resolve_relocation): Likewise.
133
134 2017-03-11  Alan Modra  <amodra@gmail.com>
135
136         * elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function
137         parameter is in fact used.  Whitespace fixes.
138         * elf64-ppc.c: Likewise.
139
140 2017-03-09  Sam Thursfield  <sam.thursfield@codethink.co.uk>
141
142         * rs6000-core.c (CORE_NEW): Simplify macro when
143         AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning.
144
145 2017-03-07  Alan Modra  <amodra@gmail.com>
146
147         PR 21224
148         PR 20519
149         * elf64-ppc.c (ppc64_elf_relocate_section): Add missing
150         dyn_relocs check.
151
152 2017-03-05  Alan Modra  <amodra@gmail.com>
153
154         * elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
155         * elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
156         (next_cie_fde_offset): New function.
157         (_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
158         (_bfd_elf_discard_section_eh_frame): Align zero terminator to
159         four bytes.  Align CIEs to four or eight bytes depending on
160         per_encoding_aligned8.  Align FDEs according to their encoding.
161         Pad last FDE to output section alignment.
162         (_bfd_elf_write_section_eh_frame): Adjust to suit.  Remove
163         assertion.
164         * elf64-ppc.c (glink_eh_frame_cie): Delete padding.
165         (ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
166         (ppc64_elf_finish_dynamic_sections): Adjust to suit.
167
168 2017-03-02  Martin Bickel  <binutils@ineranves.de>
169
170         PR ld/21212
171         * elf.c (rewrite_elf_program_header): Do not issue a warning for
172         empty segments which have a zero filesz, but a non-zero memsz.
173
174 2017-03-02  Alan Modra  <amodra@gmail.com>
175
176         * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
177
178 2017-02-28  Alan Modra  <amodra@gmail.com>
179
180         * elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change.
181         (ppc64_elf_relocate_section): Likewise.
182
183 2017-02-28  Alan Modra  <amodra@gmail.com>
184
185         PR 20995
186         * elf32-nios2.c (nios2_elf32_relocate_section): Use htab
187         rather than elf32_nios2_hash_table or elf_hash_table.
188         (create_got_section): Likewise.
189         (nios2_elf32_finish_dynamic_symbol): Likewise.
190         (nios2_elf32_adjust_dynamic_symbol): Likewise.
191         (nios2_elf32_size_dynamic_sections): Likewise.
192         (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
193         vars.  Use htab equivalents directly instead.  Don't create
194         all dynamic sections on needing just the GOT.  Use a goto
195         rather than a fall-through with reloc test.  Ensure
196         htab->dynobj is set when making dynamic sreloc section.
197         (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
198         equivalent directly instead.  Don't segfault on looking for
199         .dynamic when dynamic sections have not been created.  Don't
200         segfault on .got.plt being discarded.
201         (nios2_elf32_size_dynamic_sections): Delete plt and got vars.
202         Don't set "relocs" on .rela.plt.  Do handle .sbss.  Delete
203         fixme and another not so relevant comment.
204         (nios2_elf_add_symbol_hook): Delete dynobj var.  If not
205         already set, set hash table dynobj on creating .sbss.
206
207 2017-02-28  Alan Modra  <amodra@gmail.com>
208
209         * reloc.c (BFD_RELOC_PPC_16DX_HA): New.
210         * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto.
211         (ppc64_elf_reloc_type_lookup): Translate new bfd reloc.
212         (ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA.
213         (ppc64_elf_relocate_section): Likewise.
214         * elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto.
215         (ppc_elf_reloc_type_lookup): Translate new bfd reloc.
216         (ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc.
217         * libbfd.h: Regenerate.
218         * bfd-in2.h: Regenerate.
219
220 2017-02-28  Alan Modra  <amodra@gmail.com>
221
222         * elflink.c (_bfd_elf_create_dynamic_sections): Don't make
223         dynamic .data.rel.ro read-only.
224         * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section
225         rather than section flags when deciding where copy reloc goes.
226         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
227         * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
228         * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
229         * elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise.
230         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise.
231         * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise.
232         * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise.
233         * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise.
234         * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
235         * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise.
236         * elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise.
237         * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise.
238         * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
239         * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
240         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise.
241         * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise.
242         * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
243         * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
244         * elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise.
245
246 2017-02-28  Maciej W. Rozycki  <macro@imgtec.com>
247
248         * elfxx-mips.c (mips_elf_perform_relocation): Also handle the
249         `jalr $0, $25' instruction encoding.
250
251 2017-02-27  Nick Clifton  <nickc@redhat.com>
252
253         PR ld/21180
254         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Avoid
255         generating a seg-fault when encountering a symbol that has been
256         deleted by garbage collection.
257
258 2017-02-25  Alan Modra  <amodra@gmail.com>
259
260         * elf32-arc.c (struct dynamic_sections): Delete.
261         (enum dyn_section_types): Delete.
262         (dyn_section_names): Delete.
263         (arc_create_dynamic_sections): Delete.
264         (elf_arc_finish_dynamic_sections): Don't call the above.  Don't
265         segfault on discarded .rela.plt section.
266         (elf_arc_size_dynamic_sections): Formatting.  Don't call
267         arc_create_dynamic_sections.  Don't allocate memory for sections
268         handled by the generic linker.  Correct code finding relocs in
269         read-only sections.  Set SEC_EXCLUDE on zero size .got,
270         .got.plt, and .dynbss sections.  Do set .interp for pies.
271
272 2017-02-24  Andrew Waterman  <andrew@sifive.com>
273
274         * elfnn-riscv.c (GP_NAME): New macro.
275         (riscv_global_pointer_value): Use it.
276         (_bfd_riscv_relax_lui): If symbol and global pointer are in same
277         output section, consider only that section's alignment.
278
279 2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
280
281         * elfxx-mips.h (_bfd_mips_relax_section): Remove prototype.
282         * elfxx-mips.c (_bfd_mips_relax_section): Remove function.
283         * elf64-mips.c (bfd_elf64_bfd_relax_section): Remove macro.
284         * elfn32-mips.c (bfd_elf32_bfd_relax_section): Likewise.
285
286 2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
287
288         * elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_JALR>
289         <R_MICROMIPS_JALR>: Discard relocation if `cross_mode_jump_p'
290         or misaligned.
291
292 2017-02-23  Alan Modra  <amodra@gmail.com>
293
294         PR 20744
295         * elf32-ppc.c (ppc_elf_howto_raw): Correct dst_mask on all VLE
296         16D relocations.
297         (ppc_elf_vle_split16): Correct field mask and shift for 16D relocs.
298         (ppc_elf_relocate_section): Correct calculation for VLE SDAREL
299         relocs.
300
301 2017-02-22  Maciej W. Rozycki  <macro@imgtec.com>
302
303         PR ld/20828
304         * elflink.c (bfd_elf_size_dynamic_sections): Move symbol version
305         processing ahead of the call to `elf_gc_sweep_symbol'.
306
307 2017-02-22  Nick Clifton  <nickc@redhat.com>
308
309         PR binutils/21193
310         * opncls.c (bfd_create_gnu_debuglink_section): Give the newly
311         created section 4-byte alignment.
312
313 2017-02-22  Alan Modra  <amodra@gmail.com>
314
315         * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Don't segfault
316         on .got or .plt output section being discarded by script.
317         * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Likewise.  Move
318         vxworks splt temp.
319
320 2017-02-21  Alan Modra  <amodra@gmail.com>
321
322         * elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only emit
323         DT_RELA, DT_RELASZ, and DT_RELAENT when DT_RELASZ is non-zero.
324
325 2017-02-20  Alan Modra  <amodra@gmail.com>
326
327         PR 21181
328         * elflink.c (bfd_elf_final_link): Make DT_REL/DT_RELA zero
329         if DT_RELSZ/DT_RELASZ is zero.
330
331 2017-02-17  Nick Clifton  <nickc@redhat.com>
332
333         * compress.c (bfd_get_full_section_contents): Remember to reduce
334         compressed size by the sizeof the compression header when
335         decompressing the contents.
336
337 2017-02-17  Pedro Alves  <palves@redhat.com>
338
339         * srec.c (Chunk): Rename to ...
340         (_bfd_srec_len): ... this.
341         (S3Forced): Rename to ...
342         (_bfd_srec_forceS3): ... this.
343         * objcopy.c: Adjust all references.
344
345 2017-02-17  Pedro Alves  <palves@redhat.com>
346
347         * archive.c (bsd_write_armap): Rename to ...
348         (_bfd_bsd_write_armap): ... this.
349         (coff_write_armap): Rename to ...
350         (_bfd_coff_write_armap): ... this.
351         * libbfd-in.h (bsd_write_armap): Rename to ...
352         (_bfd_bsd_write_armap): ... this.
353         (coff_write_armap): Rename to ...
354         (_bfd_coff_write_armap): ... this.
355         * aout-target.h, aout-tic30.c: Adjust all users.
356         * libbfd.h: Regenerate.
357
358 2017-02-17  Pedro Alves  <palves@redhat.com>
359
360         * bfd-in.h (bfd_read, bfd_write): Adjust to rename.
361         (warn_deprecated): Rename to ...
362         (_bfd_warn_deprecated): ... this.
363         * libbfd.c (warn_deprecated): Rename to ...
364         (_bfd_warn_deprecated): ... this.
365         * bfd-in2.h: Regenerate.
366
367 2017-02-17  Pedro Alves  <palves@redhat.com>
368
369         * bfdio.c (real_ftell): Rename to ...
370         (_bfd_real_ftell): ... this.
371         (real_fseek): Rename to ...
372         (_bfd_real_fseek): ... this.
373         (real_fopen): Rename to ...
374         (_bfd_real_fopen): ... this.
375         * libbfd-in.h (real_ftell): Rename to ...
376         (_bfd_real_ftell): ... this.
377         (real_fseek): Rename to ...
378         (_bfd_real_fseek): ... this.
379         (real_fopen): Rename to ...
380         (_bfd_real_fopen): ... this.
381         * cache.c, dwarf2.c, opncls.c: Adjust all callers.
382         * libbfd.h: Regenerate.
383
384 2017-02-17  Pedro Alves  <palves@redhat.com>
385
386         * dwarf2.c, elf-attrs.c, elf32-nds32.c: Adjust all callers.
387         * libbfd.c (read_unsigned_leb128): Rename to ...
388         (_bfd_read_unsigned_leb128): ... this.
389         (read_signed_leb128): Rename to ...
390         (_bfd_read_signed_leb128): ... this.
391         (safe_read_leb128): Rename to ...
392         (_bfd_safe_read_leb128): ... this.
393         * libbfd-in.h (read_unsigned_leb128): Rename to ...
394         (_bfd_read_unsigned_leb128): ... this.
395         (read_signed_leb128): Rename to ...
396         (_bfd_read_signed_leb128): ... this.
397         (safe_read_leb128): Rename to ...
398         (_bfd_safe_read_leb128): ... this.
399         * libbfd.h: Renegerate.
400
401 2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
402
403         * dwarf2.c (_bfd_dwarf2_find_nearest_line): Perform symbol lookup
404         before trying to fine matching file and line information.
405
406 2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
407
408         * dwarf2.c (struct dwarf2_debug): Add orig_bfd member.
409         (_bfd_dwarf2_slurp_debug_info): If stashed debug information does
410         not match current bfd, then reload debug information.  Record bfd
411         we're loading debug info for in the stash.  If we have debug
412         informatin in the cache then perform section placement before
413         returning.
414
415 2017-02-16  Alan Modra  <amodra@gmail.com>
416
417         PR 21000
418         * elf-bfd.h (struct elf_backend_data): Add no_page_alias.
419         * elfxx-target.h (elf_backend_no_page_alias): Define.
420         (elfNN_bed): Init new field.
421         * elf.c (assign_file_positions_for_load_sections): If no_page_alias
422         ensure PT_LOAD segment starts on a new page.
423         * elf32-hppa.c (elf_backend_no_page_alias): Define.
424
425 2017-02-16  Alan Modra  <amodra@gmail.com>
426
427         PR 21132
428         * elf32-hppa.c (allocate_plt_static): Allocate space for relocs
429         if pic.
430
431 2017-02-16  Jiong Wang <jiong.wang@arm.com>
432
433         * bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
434         * bfd-in2.h: Regenerated.
435
436 2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
437
438         PR ld/21168
439         * elf32-i386.c (elf_i386_relocate_section): Allow
440         "lea foo@GOT, %reg" in PIC.
441
442 2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
443
444         PR ld/20244
445         * elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC
446         symbol name when reporting R_386_GOT32/R_386_GOT32X relocation
447         error against local IFUNC symbol without a base register for
448         PIC.
449
450 2017-02-15  Maciej W. Rozycki  <macro@imgtec.com>
451
452         * elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
453         `%P: %H:' with `info->callbacks->einfo'.
454         (ppc_elf_relocate_section): Likewise.
455         * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
456         (ppc64_elf_edit_toc): Likewise.
457         (ppc64_elf_relocate_section): Likewise.
458
459 2017-02-14  Alan Modra  <amodra@gmail.com>
460
461         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
462         --gc-keep-exported, and test versioned field of sym rather than
463         looking for @ in name.
464
465 2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
466
467         * elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
468         __global_pointer$.
469
470 2017-02-13  Nick Clifton  <nickc@redhat.com>
471
472         PR binutils/21151
473         * dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid
474         unit length field.
475
476 2017-02-07  Andrew Waterman  <andrew@sifive.com>
477
478         * elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT
479         entry size if PLT header is written.
480
481 2017-02-06  Sheldon Lobo  <sheldon.lobo@oracle.com>
482
483         Fix sparc64 dynamic relocation processing to use the dynamic
484         symbol count.
485         * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
486         to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
487         should be used.
488
489 2017-02-03  Nick Clifton  <nickc@redhat.com>
490
491         PR 21096
492         * coffcode.h (coff_write_object_contents): Enlarge size of
493         s_name_buf in order to avoid compile time warning about possible
494         integer truncation.
495         * elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
496         32-bits of insn value before printing into buffer.
497
498 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
499
500         * elfxx-mips.c (mips_elf_hash_sort_data): Add
501         `max_local_dynindx'.
502         (mips_elf_sort_hash_table): Handle it.
503         (mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
504         symbols bump up `max_local_dynindx' rather than
505         `max_non_got_dynindx'.
506
507 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
508
509         * elfxx-mips.c (mips_elf_hash_sort_data): Convert the
510         `min_got_dynindx', `max_unref_got_dynindx' and
511         `max_non_got_dynindx' members to the `bfd_size_type' data type.
512         (mips_elf_sort_hash_table): Adjust accordingly.
513
514 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
515
516         * elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout
517         to access the hash table.
518
519 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
520
521         * elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
522         non-NULL `htab' to the beginning.
523
524 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
525
526         * elflink.c (elf_gc_sweep): Wrap overlong line.
527
528 2017-01-30  Maciej W. Rozycki  <macro@imgtec.com>
529
530         * elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to...
531         (_bfd_mips_elf_linker_flags): ... this.  Add another parameter.
532         * elfxx-mips.c (mips_elf_link_hash_table): Add
533         `ignore_branch_isa' member.
534         (mips_elf_perform_relocation): Do not treat an ISA mode mismatch
535         in branch relocation calculation as an error if
536         `ignore_branch_isa' has been set.
537         (_bfd_mips_elf_insn32): Rename to...
538         (_bfd_mips_elf_linker_flags): ... this.  Rename the `on'
539         parameter to `insn32' and add an `ignore_branch_isa' parameter.
540         Handle the new parameter.
541
542 2017-01-27  Hans-Peter Nilsson  <hp@axis.com>
543
544         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused
545         local variable dynobj.
546
547         PR ld/20995
548         * elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro.
549         (elf_cris_adjust_dynamic_symbol): Place variables copied into the
550         executable from read-only sections into sdynrelro.
551         (elf_cris_finish_dynamic_symbol): Select sreldynrelro for
552         dynamic relocs in sdynrelro.
553         (elf_backend_want_dynrelro): Define.
554
555 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
556
557         * config.bfd (*-*-rtemsaout*): Mark as removed.
558
559 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
560
561         * config.bfd (powerpcle-*-rtems*): Do not mark as removed.
562         (arm-*-rtems*): Move to (arm*-*-eabi*).
563         (i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*).
564         (m68-*-rtems*): Move to (m68*-*-elf*).
565
566 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
567
568         * config.bfd (*-*-rtemscoff*): Mark as removed.
569
570 2017-01-24  Maciej W. Rozycki  <macro@imgtec.com>
571
572         PR ld/20828
573         * elflink.c (bfd_elf_record_link_assignment): Revert last
574         change and don't ever clear `forced_local'.  Set `mark'
575         unconditionally.
576         (elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within
577         file.
578         (elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'...
579         (bfd_elf_size_dynamic_sections): ... here.
580         * elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local'
581         and set `mark' instead in `__tls_get_addr_opt' processing.
582         * elf64-ppc.c (ppc64_elf_tls_setup): Likewise.
583
584 2017-01-24  Alan Modra  <amodra@gmail.com>
585
586         * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases
587         where dynamic relocs are preferable.  Allow ifunc too.
588         (ensure_undefweak_dynamic): New function.
589         (allocate_dynrelocs): Use it here.  Move plt handling last and
590         don't make symbols dynamic, simplifying loop.  Only make undef
591         weak symbols with GOT entries dynamic.  Correct condition
592         for GOT relocs.  Handle dynamic relocs on ifuncs.  Correct
593         comments.  Remove goto.
594         (ppc_elf_relocate_section): Correct test for using dynamic
595         symbol on GOT relocs.  Rearrange test for emitting GOT relocs
596         to suit.  Set up explicit tls_index entries and implicit GOT
597         tls_index entries resolvable at link time for
598         __tls_get_addr_opt.  Simplify test to clear mem for prelink.
599         * elf64-ppc.c (allocate_got): Correct condition for GOT relocs.
600         (ensure_undefweak_dynamic): New function.
601         (allocate_dynrelocs): Use it here.  Only make undef weak symbols
602         with GOT entries dynamic.  Remove unnecessary test of
603         WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling.
604         (ppc64_elf_relocate_section): Correct test for using dynamic
605         symbol on GOT relocs.  Rearrange test for emitting GOT relocs
606         to suit.  Set up explicit tls_index entries and implicit GOT
607         tls_index entries resolvable at link time for __tls_get_addr_opt.
608         Simplify expression to clear mem for prelink.
609
610 2017-01-23  Yury Norov  <ynorov@caviumnetworks.com>
611
612         * elfnn-aarch64.c: Fix relaxations for ILP32 mode.
613
614 2017-01-20  Jiong Wang <jiong.wang@arm.com>
615
616         * elfnn-aarch64.c (elf_aarch64_hash_symbol): New function.
617         (elf_backend_hash_symbol): Define.
618
619 2017-01-18  Maciej W. Rozycki  <macro@imgtec.com>
620
621         PR ld/20828
622         * elflink.c (bfd_elf_record_link_assignment): Clear any
623         `forced_local' marking for DSO symbols that are not being
624         provided.
625
626 2017-01-17  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
627
628         * elfnn-riscv.c (riscv_elf_object_p): New function.
629
630 2017-01-12  H.J. Lu  <hongjiu.lu@intel.com>
631
632         PR ld/21038
633         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
634         plt_bnd_eh_frame.
635         (elf_x86_64_check_relocs): Create .eh_frame section for the
636         .plt.bnd section.
637         (elf_x86_64_size_dynamic_sections): Allocate and initialize
638         .eh_frame section for the .plt.bnd section.
639         (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
640         for the .plt.bnd section.
641
642 2017-01-12  Nick Clifton  <nickc@redhat.com>
643
644         PR binutils/20876
645         * opncls.c (find_separate_debug_file): Add include_dirs
646         parameter.  Only include the directory part of the bfd's filename
647         in search paths if include_dirs is true.  Add a couple of extra
648         locations for looking for debug files.
649         ( bfd_follow_gnu_debuglink): Update invocation of
650         find_separate_debug_file.
651         (bfd_follow_gnu_debugaltlink): Likewise.
652         (get_build_id): New function: Finds the build-id of the given bfd.
653         (get_build_id_name): New function: Computes the name of the
654         separate debug info file for a bfd, based upon its build-id.
655         (check_build_id_file): New function: Checks to see if a separate
656         debug info file exists at the given location, and that its
657         build-id matches that of the original bfd.
658         (bfd_follow_build_id_debuglink): New function: Finds a separate
659         debug info file for a given bfd by using the build-id method.
660         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
661         method of locating a separate debug info file before using the
662         debuglink method.
663         * bfd-in2.h: Regenerate.
664
665 2017-01-11  H.J. Lu  <hongjiu.lu@intel.com>
666
667         PR ld/21038
668         * elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
669         (elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
670         elf_x86_64_eh_frame_plt_got.
671         (elf_x86_64_size_dynamic_sections): Get unwind info from
672         elf_x86_64_bnd_arch_bed for the BND PLT.
673
674 2017-01-11  Jeremy Soller  <jackpot51@gmail.com>
675
676         * config.bfd: Add entries for i686-redox and x86_64-redox.
677
678 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
679
680         * elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
681         to 4 bytes.
682         * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
683         .eh_frame section to 4 bytes for x32.
684         (elf_x86_64_check_relocs): Likewise.
685
686 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
687
688         PR ld/20830
689         * elf32-i386.c (elf_i386_eh_frame_plt_got): New.
690         (PLT_GOT_FDE_LENGTH): Likewise.
691         (elf_i386_plt_layout): Add eh_frame_plt_got and
692         eh_frame_plt_got_size.
693         (elf_i386_plt): Updated.
694         (elf_i386_link_hash_table): Add plt_got_eh_frame.
695         (elf_i386_check_relocs): Create .eh_frame section for .plt.got.
696         (elf_i386_size_dynamic_sections): Allocate and initialize
697         .eh_frame section for .plt.got.
698         (elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
699         .plt.got.
700         (elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
701         eh_frame_plt_got_size.
702         * elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
703         (PLT_GOT_FDE_LENGTH): Likewise.
704         (elf_x86_64_backend_data): Add eh_frame_plt_got and
705         eh_frame_plt_got_size.
706         (elf_x86_64_arch_bed): Updated.
707         (elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
708         eh_frame_plt_got_size.
709         (elf_x86_64_nacl_arch_bed): Likewise.
710         (elf_x86_64_link_hash_table): Add plt_got_eh_frame.
711         (elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
712         (elf_x86_64_size_dynamic_sections): Allocate and initialize
713         .eh_frame section for .plt.got.
714         (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
715         for .plt.got.
716
717 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
718
719         * elf32-i386.c (elf_i386_size_dynamic_sections): Set
720         plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt.
721
722 2017-01-09  Nick Clifton  <nickc@redhat.com>
723
724         * dwarf2.c (lookup_address_in_function_table): Return early if
725         there are no functions in the given comp unit, or if the high
726         address of the last function in the comp unit is less than the
727         desired address.
728
729 2017-01-09  Nick Clifton  <nickc@redhat.com>
730
731         PR binutils/21013
732         * coffgen.c (_bfd_coff_get_external_symbols): Generate an error
733         message if there are too many symbols to load.
734
735 2017-01-04  James Clarke  <jrtc27@jrtc27.com>
736
737         * elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
738         if relocs are cached.
739
740 2017-01-03  Rich Felker  <bugdal@aerifal.cx>
741
742         PR ld/21017
743         * elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry
744         for R_MICROBLAZE_GOTOFF_64.
745
746 2017-01-03  Nick Clifton  <nickc@redhat.com>
747
748         * mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time
749         warning about using a possibly uninitialised variable.
750
751 2017-01-02  Alan Modra  <amodra@gmail.com>
752
753         * elf32-hppa.c (ensure_undef_weak_dynamic): New function.
754         (allocate_plt_static, allocate_dynrelocs): Use it.
755
756 2017-01-02  Alan Modra  <amodra@gmail.com>
757
758         * elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for
759         .PARISC.unwind section.
760
761 2017-01-02  Alan Modra  <amodra@gmail.com>
762
763         PR ld/20989
764         * elfxx-sparc.c (gdop_relative_offset_ok): New function.
765         (_bfd_sparc_elf_relocate_section): Use it to validate GOT
766         indirect to GOT pointer relative code edit.
767
768 2017-01-02  Alan Modra  <amodra@gmail.com>
769
770         Update year range in copyright notice of all files.
771
772 For older changes see ChangeLog-2016
773 \f
774 Copyright (C) 2017 Free Software Foundation, Inc.
775
776 Copying and distribution of this file, with or without modification,
777 are permitted in any medium without royalty provided the copyright
778 notice and this notice are preserved.
779
780 Local Variables:
781 mode: change-log
782 left-margin: 8
783 fill-column: 74
784 version-control: never
785 End: