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