[ARC] Add linker relaxation.
[external/binutils.git] / bfd / ChangeLog
1 2019-07-24  Claudiu Zissulescu  <claziss@synopsys.com>
2
3         * elf32-arc.c (bfd_get_32_me): New function.
4         (bfd_put_32_me): Likewise.
5         (arc_elf_relax_section): Likewise.
6         (bfd_elf32_bfd_relax_section): Define.
7
8 2019-07-24  Alan Modra  <amodra@gmail.com>
9
10         * elf-bfd.h (struct elf_backend_data): Return bfd_boolean from
11         elf_backend_final_write_processing, don't pass linker arg.
12         (_bfd_elf_final_write_processing): Update prototype.
13         * elf.c (_bfd_elf_write_object_contents): Adjust call.
14         (_bfd_elf_final_write_processing): Return error on incompatible
15         OSABI and has_gnu_osabi.  Remove linker arg.
16         * elf-nacl.h (nacl_final_write_processing): Update prototype.
17         * elf-vxworks.h (elf_vxworks_final_write_processing): Likewise.
18         * elfxx-mips.h (_bfd_mips_final_write_processing): Likewise.
19         (_bfd_mips_elf_final_write_processing): Likewise.
20         * elf-hppa.h (elf_hppa_final_write_processing): Return status
21         and remove linker arg.
22         * elf-m10300.c (_bfd_mn10300_elf_final_write_processing): Likewise.
23         * elf-nacl.c (nacl_final_write_processing): Likewise.
24         * elf-vxworks.c (elf_vxworks_final_write_processing): Likewise.
25         * elf32-arc.c (arc_elf_final_write_processing): Likewise.
26         * elf32-arm.c (arm_final_write_processing): Likewise.
27         (elf32_arm_final_write_processing): Likewise.
28         (elf32_arm_nacl_final_write_processing): Likewise.
29         (elf32_arm_vxworks_final_write_processing): Likewise.
30         * elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
31         * elf32-bfin.c (elf32_bfin_final_write_processing): Likewise.
32         * elf32-cr16.c (_bfd_cr16_elf_final_write_processing): Likewise.
33         * elf32-cris.c (cris_elf_final_write_processing): Likewise.
34         * elf32-h8300.c (elf32_h8_final_write_processing): Likewise.
35         * elf32-lm32.c (lm32_elf_final_write_processing): Likewise.
36         * elf32-m32r.c (m32r_elf_final_write_processing): Likewise.
37         * elf32-m68k.c (elf_m68k_final_write_processing): Likewise.
38         * elf32-mips.c (mips_vxworks_final_write_processing): Likewise.
39         * elf32-msp430.c (bfd_elf_msp430_final_write_processing): Likewise.
40         * elf32-nds32.c (nds32_elf_final_write_processing): Likewise.
41         * elf32-or1k.c (or1k_elf_final_write_processing): Likewise.
42         * elf32-pj.c (pj_elf_final_write_processing): Likewise.
43         * elf32-ppc.c (ppc_final_write_processing): Likewise.
44         (ppc_elf_final_write_processing): Likewise.
45         (ppc_elf_vxworks_final_write_processing): Likewise.
46         * elf32-sparc.c (sparc_final_write_processing): Likewise.
47         (elf32_sparc_final_write_processing): Likewise.
48         (elf32_sparc_vxworks_final_write_processing): Likewise.
49         * elf32-v850.c (v850_elf_final_write_processing): Likewise.
50         * elf32-xc16x.c (elf32_xc16x_final_write_processing): Likewise.
51         * elf32-xtensa.c (elf_xtensa_final_write_processing): Likewise.
52         * elf64-ia64-vms.c (elf64_vms_final_write_processing): Likewise.
53         * elfnn-ia64.c (elfNN_ia64_final_write_processing): Likewise.
54         * elfxx-mips.c (_bfd_mips_final_write_processing): Likewise.
55         (_bfd_mips_elf_final_write_processing): Likewise.
56
57 2019-07-24  Alan Modra  <amodra@gmail.com>
58
59         * elf-vxworks.c (elf_vxworks_final_write_processing): Don't return
60         early.
61         * elf32-arc.c (arc_elf_final_write_processing): Likewise.
62         * elf32-xtensa.c (elf_xtensa_final_write_processing): Likewise.
63
64 2019-07-24  Alan Modra  <amodra@gmail.com>
65
66         * elf32-visium.c (visium_elf_post_process_headers): Don't set
67         EI_OSABI header byte here.
68         (ELF_OSABI): Define.
69
70 2019-07-23  Alan Modra  <amodra@gmail.com>
71
72         * elf-bfd.h (enum elf_gnu_osabi): Add elf_gnu_osabi_mbind.
73         * elf.c (_bfd_elf_make_section_from_shdr): Set elf_gnu_osabi_mbind.
74         (get_program_header_size): Formatting.  Only test SH_GNU_MBIND
75         when elf_gnu_osabi_mbind is set.
76         (_bfd_elf_map_sections_to_segments): Likewise.
77         (_bfd_elf_init_private_section_data): Likewise.
78         (_bfd_elf_final_write_processing): Update comment.
79         * elf64-hppa.c (elf64_hppa_special_sections): Move .tbss entry.
80         (elf_backend_special_sections): Define without .tbss for linux.
81
82 2019-07-23  Alan Modra  <amodra@gmail.com>
83
84         * elf-bfd.h (enum elf_gnu_osabi): Rename from elf_gnu_symbols.
85         Remove none, any, all enums.
86         (struct elf_obj_tdata): Rename has_gnu_symbols field to has_gnu_osabi.
87         (_bfd_elf_final_write_processing): Declare.
88         * elf.c (_bfd_elf_write_object_contents): Unconditionally call
89         elf_backend_final_write_processing.
90         (_bfd_elf_post_process_headers): Move body of function to..
91         (_bfd_elf_final_write_processing): ..here, but set EI_OSABI byte
92         only when not already set.  Adjust for rename.
93         * elfxx-target.h (elf_backend_final_write_processing): Default to
94         _bfd_elf_final_write_processing.
95         * elf-hppa.h (elf_hppa_final_write_processing): Call
96         _bfd_elf_final_write_processing.
97         * elf-m10300.c (_bfd_mn10300_elf_final_write_processing): Likewise.
98         * elf-nacl.c (nacl_final_write_processing): Likewise.
99         * elf-vxworks.c (elf_vxworks_final_write_processing): Likewise.
100         * elf32-arc.c (arc_elf_final_write_processing): Likewise.
101         * elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
102         * elf32-bfin.c (elf32_bfin_final_write_processing): Likewise.
103         * elf32-cr16.c (_bfd_cr16_elf_final_write_processing): Likewise.
104         * elf32-cris.c (cris_elf_final_write_processing): Likewise.
105         * elf32-h8300.c (elf32_h8_final_write_processing): Likewise.
106         * elf32-lm32.c (lm32_elf_final_write_processing): Likewise.
107         * elf32-m32r.c (m32r_elf_final_write_processing): Likewise.
108         * elf32-m68k.c (elf_m68k_final_write_processing): Likewise.
109         * elf32-msp430.c (bfd_elf_msp430_final_write_processing): Likewise.
110         * elf32-nds32.c (nds32_elf_final_write_processing): Likewise.
111         * elf32-or1k.c (or1k_elf_final_write_processing): Likewise.
112         * elf32-pj.c (pj_elf_final_write_processing): Likewise.
113         * elf32-v850.c (v850_elf_final_write_processing): Likewise.
114         * elf32-xc16x.c (elf32_xc16x_final_write_processing): Likewise.
115         * elf32-xtensa.c (elf_xtensa_final_write_processing): Likewise.
116         * elf64-ia64-vms.c (elf64_vms_final_write_processing): Likewise.
117         * elfnn-ia64.c (elfNN_ia64_final_write_processing): Likewise.
118         * elf32-arm.c (arm_final_write_processing): Split out from..
119         (elf32_arm_final_write_processing): ..here.  Call
120         _bfd_elf_final_write_processing.
121         (elf32_arm_nacl_final_write_processing): Adjust.
122         * elfxx-mips.c (_bfd_mips_final_write_processing): Split out from..
123         (_bfd_mips_elf_final_write_processing): ..here.  Call
124         _bfd_elf_final_write_processing.
125         * elfxx-mips.h (_bfd_mips_final_write_processing): Declare.
126         * elf32-mips.c (mips_vxworks_final_write_processing): Adjust.
127         * elf32-ppc.c (ppc_final_write_processing): Split out from..
128         (ppc_elf_final_write_processing): ..here.  Call
129         _bfd_elf_final_write_processing.
130         (ppc_elf_vxworks_final_write_processing): Adjust.
131         * elf32-sparc.c (sparc_final_write_processing): Split out from..
132         (elf32_sparc_final_write_processing): ..here.  Call
133         _bfd_elf_final_write_processing.
134         (elf32_sparc_vxworks_final_write_processing): Adjust.
135         * elf32-d10v.c (elf_backend_final_write_processing): Don't define.
136         * elf32-d30v.c (elf_backend_final_write_processing): Don't define.
137         * elf32-m68hc11.c (elf_backend_final_write_processing): Don't define.
138         * elf32-m68hc12.c (elf_backend_final_write_processing): Don't define.
139         * elf32-s12z.c (elf_backend_final_write_processing): Don't define.
140         * elf32-i386.c (elf_i386_check_relocs): Don't set has_gnu_symbols.
141         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
142         * elflink.c (elf_link_add_object_symbols): Likewise.
143         (elf_link_output_symstrtab): Set has_gnu_osabi for symbols here
144         instead.
145
146 2019-07-23  Omar Majid  <omajid@redhat.com>
147
148         * coffcode.h (coff_set_arch_mach_hook): Handle I386_APPLE_MAGIC,
149         I386_FREEBSD_MAGIC, I386_LINUX_MAGIC, I386_NETBSD_MAGIC,
150         AMD64_APPLE_MAGIC, AMD64_FREEBSD_MAGIC, AMD64_LINUX_MAGIC,
151         AMD64_NETBSD_MAGIC.
152         * peXXigen.c: Add comment about source of .NET magic numbers.
153
154 2019-07-19  Alan Modra  <amodra@gmail.com>
155
156         * reloc.c (BFD_RELOC_PPC64_TPREL34, BFD_RELOC_PPC64_DTPREL34),
157         (BFD_RELOC_PPC64_GOT_TLSGD34, BFD_RELOC_PPC64_GOT_TLSLD34),
158         (BFD_RELOC_PPC64_GOT_TPREL34, BFD_RELOC_PPC64_GOT_DTPREL34),
159         (BFD_RELOC_PPC64_TLS_PCREL): New pcrel tls relocs.
160         * elf64-ppc.c (ppc64_elf_howto_raw): Add howtos for pcrel tls relocs.
161         (ppc64_elf_reloc_type_lookup): Translate pcrel tls relocs.
162         (must_be_dyn_reloc, dec_dynrel_count): Add R_PPC64_TPREL64.
163         (ppc64_elf_check_relocs): Support pcrel tls relocs.
164         (ppc64_elf_tls_optimize, ppc64_elf_relocate_section): Likewise.
165         * bfd-in2.h: Regenerate.
166         * libbfd.h: Regenerate.
167
168 2019-07-18  Alan Modra  <amodra@gmail.com>
169
170         * elf64-ppc.c (ppc64_elf_relocate_section): Don't bother selecting
171         a TLS section symbol for edited relocs.  Tighten TLS symbol/reloc
172         match test.
173
174 2019-07-18  Alan Modra  <amodra@gmail.com>
175
176         * elf64-ppc.c (TLS_EXPLICIT): Define as 256.
177         (ppc64_elf_check_relocs): Don't store TLS_EXPLICIT even if char
178         is more than 8 bits.
179         (ppc64_elf_tls_optimize): Likewise.  Make tls_set, tls_clear, and
180         tls_type vars unsigned int.
181         (ppc64_elf_relocate_section): Use r_type rather than TLS_EXPLICIT
182         to select r_type edit.
183
184 2019-07-18  Alan Modra  <amodra@gmail.com>
185
186         * elf32-ppc.c (TLS_GDIE): Rename from TLS_TPRELGD throughout file.
187         Correct comment.
188         * elf64-ppc.c (TLS_GDIE): Likewise.
189
190 2019-07-18  Alan Modra  <amodra@gmail.com>
191
192         * elf64-ppc.c (ppc64_elf_tls_optimize): Correct test for allowed
193         range of tp-relative offsets.
194
195 2019-07-15  Alan Modra  <amodra@gmail.com>
196
197         * elflink.c (_bfd_elf_fix_symbol_flags): If the def for an
198         alias is no longer bfd_link_hash_defined, clear the alias.
199
200 2019-07-13  Alan Modra  <amodra@gmail.com>
201
202         * elflink.c (_bfd_elf_omit_section_dynsym_default): Don't keep
203         tls_sec.
204         (_bfd_elf_init_1_index_section): Prefer not using TLS sections.
205         (_bfd_elf_init_2_index_sections): Likewise.
206         * elf64-ppc.c (ppc64_elf_relocate_section): When emitting dynamic
207         relocations for local TLS symbols, use STN_UNDEF as the relocation
208         symbol.
209         * elf32-ppc.c (ppc_elf_relocate_section): Likewise, and don't
210         leave TLS symbol value in the addend.
211
212 2019-07-08  Alan Modra  <amodra@gmail.com>
213
214         PR 24785
215         * elf32-ppc.c (_bfd_elf_ppc_set_arch): Sanity check .PPC.EMB.apuinfo
216         size before reading first word.
217
218 2019-07-02  Nick Clifton  <nickc@redhat.com>
219
220         PR 24717
221         * elf.c (is_debuginfo_file): New function.
222         (assign_file_positions_for_non_load_sections): Do not warn about
223         allocated sections outside of loadable segments if they are found
224         in a debuginfo file.
225         * elf-bfd.h (is_debuginfo_file): Prototype.
226
227 2019-07-02  Nick Clifton  <nickc@redhat.com>
228
229         PR 24753
230         * compress.c (bfd_get_full_section_contents): Do not complain
231         about linker created sections that are larger than the file size.
232
233 2019-07-02  Christophe Lyon  <christophe.lyon@linaro.org>
234
235         * bfd/elf32-arm.c (CMSE_STUB_NAME): New define.
236         (elf32_arm_get_stub_entry): Do not try to emit long-branch stubs
237         for CMSE stubs.
238         (arm_dedicated_stub_output_section_name): Use CMSE_STUB_NAME.
239
240 2019-07-02  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
241
242         * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Mark debug
243         sections when .text section contain secure entry functions
244         is marked.
245
246 2019-07-01  Nick Clifton  <nickc@redhat.com>
247
248         PR 23839
249         * elf32-arm.c (elf32_arm_update_relocs): Do not include the
250         section VMA in the offset used to update exidx relocs.
251
252 2019-06-28  Nick Clifton  <nickc@redhat.com>
253
254         PR 24708
255         * elf.c (_bfd_elf_slurp_version_tables): Check for an excessively
256         large version reference section.
257         * compress.c (bfd_get_full_section_contents): Check for an
258         uncompressed section whose size is larger than the file size.
259
260 2019-06-28  Alan Modra  <amodra@gmail.com>
261
262         * format.c (bfd_check_format_matches): Don't match plugin target
263         if another target matches.  Expand comment.
264         * targets.c (_bfd_target_vector): Move plugin_vec after all other
265         non-corefile targets, outside !SELECT_VECS.
266         * config.bfd: Don't handle targ=plugin here.
267         * configure.ac: Don't add plugin to enable_targets or handle in
268         target loop setting selvecs and other target vars.
269         * configure: Regenerate.
270
271 2019-06-26  Nick Clifton  <nickc@redhat.com>
272
273         PR 24703
274         * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add error
275         messages for failures.
276         * mach-o.c (bfd_mach_o_canonicalize_relocs): Set an bfd error code
277         if returning an error value.
278
279 2019-06-25  Jan Beulich  <jbeulich@suse.com>
280
281         * elf-properties.c (elf_find_and_remove_property): Rename last
282         parameter. Mention it in comment.
283
284 2019-06-24  Ilia Diachkov  <ilia.diachkov@optimitech.com>
285
286         * elfnn-riscv.c (_bfd_riscv_relax_lui): Delete early exit when
287         SEC_MERGE or SEC_CODE flags are set.
288         (_bfd_riscv_relax_section): New local symtype.  Set sym_sec and
289         symtype consistently.  Don't include sec_addr (sym_sec) in symval.
290         Add check for SEC_INFO_TYPE_MERGE and call _bfd_merged_section_offset.
291         Add sec_addr (sym_sec) after handling merge sections.
292
293 2019-06-24  H.J. Lu  <hongjiu.lu@intel.com>
294
295         PR ld/24721
296         * elf-properties.c (elf_merge_gnu_property_list): Remove the
297         property after reporting property removal.
298
299 2019-06-23  Alan Modra  <amodra@gmail.com>
300
301         PR 24704
302         * elf64-ppc.c (R_PPC64_GOT16_DS): Don't set has_gotrel.
303         (ppc64_elf_edit_toc): Don't remove R_PPC64_GOT16_DS got entries.
304         Reduce range of offsets allowed for other GOT relocs.
305
306 2019-06-23  Alan Modra  <amodra@gmail.com>
307
308         PR 24689
309         * elfcode.h (elf_object_p): Warning fix.
310
311 2019-06-21  Alan Modra  <amodra@gmail.com>
312
313         PR 24689
314         * elfcode.h (elf_object_p): Check type of e_shstrndx section.
315
316 2019-06-19  Alan Modra  <amodra@gmail.com>
317
318         PR 24697
319         * elf32-ppc.c (ppc_elf_relocate_section): Don't read insn for
320         R_PPC_EMB_RELSDA.  Mask low bit of R_PPC_EMB_SDA21 r_offset.
321
322 2019-06-19  Alan Modra  <amodra@gmail.com>
323
324         * elf64-ppc.c (ppc64_elf_inline_plt): Correct st_other test for
325         functions that require r2 valid to use local entry.
326         (ppc64_elf_size_stubs, ppc64_elf_relocate_section): Likewise.
327
328 2019-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
329
330         * elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove.
331         (elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal
332         with elfNN_aarch64_allocate_local_dynrelocs.
333
334 2019-06-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
335
336         * elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32.
337
338 2019-06-14  Alan Modra  <amodra@gmail.com>
339
340         * Makefile.in: Regenerate.
341         * configure: Regenerate.
342
343 2019-06-14  Alan Modra  <amodra@gmail.com>
344
345         * elf64-ppc.c: Fix comments involving paddi.
346
347 2019-06-12  Adam Lackorzymski  <adam@os.inf.tu-dresden.de>
348
349         PR 24643
350         * elf32-arm.c (arm_elf_find_function): Fail if the symol table is
351         absent, or the bfd is not in the ELF formart.
352         * elfnn-aarch64.c (aarch64_elf_find_function): Likewise.
353
354 2019-06-10  Christos Zoulas  <christos@zoulas.com>
355
356         PR 24650
357         * elf.c (elfcore_make_auxv_note_section): New function.
358         (elfcore_grok_note): Use it.
359         (elfcore_grok_freebsd_note): Likewise.
360         (elfcore_grok_openbsd_note): Likewise.
361         (elfcore_grok_netbsd_note): Likewise.  Plus add support for
362         NT_NETBSDCORE_AUXV notes.
363
364 2019-06-06  Sudakshina Das  <sudi.das@arm.com>
365
366         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set
367         alignment of the new gnu property section.
368
369 2019-06-06  Sudakshina Das  <sudi.das@arm.com>
370
371         * bfd-in.h: Change comment.
372         * bfd-in2.h: Regenerate.
373         * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update warning.
374         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties):
375         Likwise.
376
377 2019-05-28  Faraz Shahbazker  <fshahbazker@wavecomp.com>
378
379         * elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_PCHI16>:
380         Remove overflow check.
381
382 2019-05-28  Alan Modra  <amodra@gmail.com>
383
384         PR 24596
385         * cofflink.c (coff_link_check_archive_element): Don't assume
386         element is a coff object file after calling add_archive_element.
387
388 2019-05-28  Alan Modra  <amodra@gmail.com>
389
390         PR 24596
391         * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't
392         attempt to set sh_entsize for excluded PLT section.
393
394 2019-05-28  Alan Modra  <amodra@gmail.com>
395
396         PR 24596
397         * elf64-alpha.c (elf64_alpha_relocate_section): Don't attempt
398         to emit R_ALPHA_GOTTPREL in PIEs, for which no space is
399         allocated in alpha_dynamic_entries_for_reloc.
400
401 2019-05-28  Alan Modra  <amodra@gmail.com>
402
403         PR 24596
404         * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Don't segfault
405         on NULL output_section.
406         * elflink.c (elf_final_link_free): Don't free -1 symshndxbuf.
407
408 2019-05-28  Alan Modra  <amodra@gmail.com>
409
410         PR 24596
411         * elf32-m68k.c (elf_m68k_get_got_entry): Don't create a new
412         entry when MUST_FIND.  Abort when MUST_FIND not found.
413         (elf_m68k_get_bfd2got_entry): Likewise.
414         (elf_m68k_relocate_section): Remove now useless assert.
415
416 2019-05-28  Alan Modra  <amodra@gmail.com>
417
418         PR 24596
419         * elf64-hppa.c (elf64_hppa_finalize_dynreloc): Get the output bfd
420         from bfd_link_info, not an output section owner.
421         (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd): Likewise.
422         (elf_hppa_final_link_relocate): Likewise.
423
424 2019-05-28  Alan Modra  <amodra@gmail.com>
425
426         PR 24596
427         * aout-tic30.c (MY_bfd_final_link): Don't segfault on missing
428         create_object_symbols_section, obj_textsec, obj_datasec or
429         obj_bsssec.  Fix other errors in placement.
430         * config.bfd: Obsolete tic30-aout.
431
432 2019-05-28  Alan Modra  <amodra@gmail.com>
433
434         PR 24596
435         * dwarf2.c (save_section_vma, section_vma_same): Check for NULL
436         end of section list as well as section_count.
437         * xcofflink.c (xcoff_link_add_symbols): Fix temporarily changed
438         section list before returning error.
439
440 2019-05-27  Alan Modra  <amodra@gmail.com>
441
442         * elf.c (bfd_elf_set_group_contents): Exit on zero size section.
443
444 2019-05-27  Alan Modra  <amodra@gmail.com>
445
446         PR 24596
447         * linker.c (_bfd_generic_link_output_symbols): Heed BSF_KEEP.
448
449 2019-05-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
450
451         * elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): New function.
452         (struct elf_aarch64_link_hash_table): Add variant_pcs member.
453         (elfNN_aarch64_allocate_dynrelocs): Update variant_pcs.
454         (elfNN_aarch64_size_dynamic_sections): Add DT_AARCH64_VARIANT_PCS.
455         (elf_backend_merge_symbol_attribute): Define.
456
457 2019-05-24  Alan Modra  <amodra@gmail.com>
458
459         * po/SRC-POTFILES.in: Regenerate.
460
461 2019-05-24  Alan Modra  <amodra@gmail.com>
462
463         * elf64-ppc.c: Comment on powerxx _notoc stub variants.
464         (LI_R11_0, LIS_R11, ORI_R11_R11_0, SLDI_R11_R11_34): Define.
465         (PADDI_R12_PC, PLD_R12_PC, D34, HA34): Define.
466         (struct ppc_link_hash_table): Add powerxx_stubs.
467         (ppc64_elf_check_relocs): Set powerxx_stubs.
468         (build_powerxx_offset, size_powerxx_offset),
469         (num_relocs_for_powerxx_offset),
470         (emit_relocs_for_powerxx_offset): New functions.
471         (plt_stub_size): Size powerxx stubs.
472         (ppc_build_one_stub): Emit powerxx stubs.
473         (ppc_size_one_stub): Size powerxx stubs.  Omit .eh_frame for
474         powerxx stubs.
475
476 2019-05-24  Alan Modra  <amodra@gmail.com>
477
478         * elf64-ppc.c (ppc64_elf_check_relocs): Set has_gotrel for
479         R_PPC64_GOT_PCREL34.
480         (xlate_pcrel_opt): New function.
481         (ppc64_elf_edit_toc): Handle R_PPC64_GOT_PCREL34.
482         (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
483         for R_PPC64_GOT_PCREL34.  Implement R_PPC64_PCREL_OPT optimisation.
484
485 2019-05-24  Alan Modra  <amodra@gmail.com>
486
487         * reloc.c (BFD_RELOC_PPC64_D34, BFD_RELOC_PPC64_D34_LO),
488         (BFD_RELOC_PPC64_D34_HI30, BFD_RELOC_PPC64_D34_HA30),
489         (BFD_RELOC_PPC64_PCREL34, BFD_RELOC_PPC64_GOT_PCREL34),
490         (BFD_RELOC_PPC64_PLT_PCREL34),
491         (BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34),
492         (BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34),
493         (BFD_RELOC_PPC64_REL16_HIGHER34, BFD_RELOC_PPC64_REL16_HIGHERA34),
494         (BFD_RELOC_PPC64_REL16_HIGHEST34, BFD_RELOC_PPC64_REL16_HIGHESTA34),
495         (BFD_RELOC_PPC64_D28, BFD_RELOC_PPC64_PCREL28): New reloc enums.
496         * elf64-ppc.c (PNOP): Define.
497         (ppc64_elf_howto_raw): Add reloc howtos for new relocations.
498         (ppc64_elf_reloc_type_lookup): Translate new bfd reloc numbers.
499         (ppc64_elf_ha_reloc): Adjust addend for highera34 and highesta34
500         relocs.
501         (ppc64_elf_prefix_reloc): New function.
502         (struct ppc_link_hash_table): Add notoc_plt.
503         (is_branch_reloc): Add R_PPC64_PLTCALL_NOTOC.
504         (is_plt_seq_reloc): Add R_PPC64_PLT_PCREL34,
505         R_PPC64_PLT_PCREL34_NOTOC, and R_PPC64_PLTSEQ_NOTOC.
506         (ppc64_elf_check_relocs): Handle pcrel got and plt relocs.  Set
507         has_pltcall for section on seeing R_PPC64_PLTCALL_NOTOC.  Handle
508         possible need for dynamic relocs on non-pcrel powerxx relocs.
509         (dec_dynrel_count): Handle non-pcrel powerxx relocs.
510         (ppc64_elf_inline_plt): Handle R_PPC64_PLTCALL_NOTOC.
511         (toc_adjusting_stub_needed): Likewise.
512         (ppc64_elf_tls_optimize): Handle R_PPC64_PLTSEQ_NOTOC.
513         (ppc64_elf_relocate_section): Handle new powerxx relocs.
514         * bfd-in2.h: Regenerate.
515         * libbfd.h: Regenerate.
516
517 2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>
518
519         * config.bfd (targ_cpu): Process bpf-*-none only if BFD64.
520         * configure.ac: Set target_size=64 for bpf_elf64_le_vec and
521         bpf_elf64_be_vec.
522         * configure: Regenerate.
523
524 2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>
525
526         * configure: Regenerated.
527         * Makefile.am (ALL_MACHINES): Add cpu-bpf.lo.
528         (ALL_MACHINES_CFILES): Add cpu-bpf.c.
529         (BFD64_BACKENDS): Add elf64-bpf.lo.
530         (BFD64_BACKENDS_CFILES): Add elf64-bpf.c.
531         * Makefile.in (SOURCE_HFILES): Regenerate.
532         * config.bfd (targ_cpu): Handle bpf-*-* targets.
533         * cpu-bpf.c: New file.
534         * elf64-bpf.c: Likewise.
535         * targets.c (_bfd_target_vector): Add bpf_elf64_be_vec and
536         bpf_elf64_le_vec.
537         * archures.c: Define architecture bfd_arch_bpf and machine
538         bfd_arch_bpf.
539         * reloc.c: Define BFD relocations used by the BPF target.
540         * bfd-in2.h: Regenerated.
541         * libbfd.h: Likewise.
542
543 2019-05-22  Alan Modra  <amodra@gmail.com>
544
545         * elf32-arm.c (arm_allocate_glue_section_space): Clear section
546         contents.
547
548 2019-05-22  Alan Modra  <amodra@gmail.com>
549
550         * vms-alpha.c (_bfd_vms_write_etir): Don't attempt further
551         processing on "size error in section".
552
553 2019-05-22  Alan Modra  <amodra@gmail.com>
554
555         * som.c (som_bfd_free_cached_info): Call
556         _bfd_generic_close_and_cleanup.
557
558 2019-05-21  Faraz Shahbazker  <fshahbazker@wavecomp.com>
559
560         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error
561         for TLS_TPREL_HI16(/LO16) relocations in shared library.
562
563 2019-05-21  Faraz Shahbazker  <fshahbazker@wavecomp.com>
564
565         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Add NULL pointer
566         checks.  Search the RELA table for n64 relocations.
567
568 2019-05-21  Matthew Fortune  <matthew.fortune@mips.com>
569             Faraz Shahbazker  <fshahbazker@wavecomp.com>
570
571         * elfxx-mips.c (LA25_BC): New macro.
572         (mips_elf_link_hash_table)<compact_branches>: New field.
573         (STUB_JALRC): New macro.
574         (mipsr6_o32_exec_plt0_entry_compact): New array.
575         (mipsr6_n32_exec_plt0_entry_compact): Likewise.
576         (mipsr6_n64_exec_plt0_entry_compact): Likewise.
577         (mipsr6_exec_plt_entry_compact): Likewise.
578         (mips_elf_create_la25_stub): Use BC instead of J for stubs
579         when compact_branches is true.
580         (_bfd_mips_elf_finish_dynamic_symbol): Choose the compact
581         PLT for MIPSR6 with compact_branches.  Do not reorder the
582         compact branches PLT.  Switch the lazy stub for MIPSR6
583         with compact_branches to use JALRC.
584         (mips_finish_exec_plt): Choose the compact PLT0 for MIPSR6
585         when compact_branches is true.
586         (_bfd_mips_elf_compact_branches): New function.
587         * elfxx-mips.h (_bfd_mips_elf_compact_branches): New prototype.
588
589 2019-05-21  Tamar Christina  <tamar.christina@arm.com>
590
591         PR ld/24373
592         * elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
593         Fix print formatter.
594
595 2019-05-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
596
597         PR 24460
598         * elf32-arm.c (get_value_helper): Remove.
599         (elf32_arm_final_link_relocate): Fix branch future relocations.
600
601 2019-05-21  Tamar Christina  <tamar.christina@arm.com>
602
603         PR ld/24373
604         * bfd-in.h (enum erratum_84319_opts): New
605         (bfd_elf64_aarch64_set_options, bfd_elf32_aarch64_set_options): Change
606         int to enum erratum_84319_opts.
607         * bfd-in2.h: Regenerate.
608         * elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Change
609         fix_erratum_843419 to use new enum, remove fix_erratum_843419_adr.
610         (_bfd_aarch64_add_stub_entry_after): Conditionally create erratum stub.
611         (aarch64_size_one_stub): Conditionally size erratum 843419 stubs.
612         (_bfd_aarch64_resize_stubs): Amend comment.
613         (elfNN_aarch64_size_stubs): Don't generate stubs when no workaround
614         requested.
615         (bfd_elfNN_aarch64_set_options): Use new fix_erratum_843419 enum.
616         (_bfd_aarch64_erratum_843419_branch_to_stub): Implement selection of
617         erratum workaround.
618         (clear_erratum_843419_entry): Update erratum conditional.
619
620 2019-05-21  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
621
622         PR ld/24571
623         * bfd/elf32-avr.c (elf32_avr_relax_section): Adjust range check
624         when computing distance_short_enough.
625
626 2019-05-21  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
627
628         PR ld/24564
629         * bfd/elf32-avr.c (avr_relative_distance_considering_wrap_around):
630         Wrap around even if distance equals avr_pc_wrap_around.
631
632 2019-05-20  Nick Clifton  <nickc@redhat.com>
633
634         * po/fr.po: Updated French translation.
635
636 2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
637
638         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add case for Tag_MVE_arch.
639
640 2019-05-16  Alan Modra  <amodra@gmail.com>
641
642         * elf32-arm.c (elf32_arm_write_section): Revert last change.
643
644 2019-05-15  Alan Modra  <amodra@gmail.com>
645
646         * elf32-arm.c (elf32_arm_write_section): Don't leave
647         error case of STM32L4XX_ERRATUM_BRANCH_TO_VENEER with
648         unitialised section contents.
649
650 2019-05-14  Jamey Hicks  <jamey.hicks@gmail.com>
651
652         PR 19921
653         * verilog.c: (VerilogDataWidth): New variable.
654         (verilog_write_record): Emit bytes in VerilogDataWidth bundles.
655
656 2019-05-08  Nick Clifton  <nickc@redhat.com>
657
658         PR 24523
659         * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Return TRUE
660         rather than FALSE if encountering a non-ELF file.
661
662 2019-05-06  Alan Modra  <amodra@gmail.com>
663
664         * elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error.
665
666 2019-05-06  Alan Modra  <amodra@gmail.com>
667
668         * reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA),
669         (BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA):
670         Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry.
671         * libbfd.h: Regenerate.
672         * bfd-in2.h: Regenerate.
673
674 2019-05-04  Alan Modra  <amodra@gmail.com>
675
676         PR 24511
677         * syms.c (coff_section_type): Only allow '.', '$' and numeric
678         following the standard section names.
679         (bfd_decode_symclass): Prioritize section flag tests in
680         decode_section_type before name tests in coff_section_type.
681         * plugin.c (bfd_plugin_canonicalize_symtab): Init fake_section
682         and fake_common_section using BFD_FAKE_SECTION.  Use "fake" as
683         their names and choose standard .text section flags for
684         fake_section.
685
686 2019-05-02  Nick Clifton  <nickc@redhat.com>
687
688         PR 24493
689         * coffcode.h (styp_to_sec_flags): Treat .gnu.debuglink and
690         .gnu.debugaltlink sections as debugging sections.
691
692 2019-04-30  Alan Modra  <amodra@gmail.com>
693
694         * elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_gotrel.
695         (struct _ppc64_elf_section_data): Likewise.
696         (ppc64_elf_check_relocs): Set above fields.
697         (ppc64_elf_edit_toc): Add a pass over GOT relocs.
698         (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
699         when possible.
700
701 2019-04-26  H.J. Lu  <hongjiu.lu@intel.com>
702
703         PR ld/24486
704         * elflink.c (elf_link_output_extsym): Don't complain undefined
705         weak dynamic reference.
706
707 2019-04-25  Sudakshina Das  <sudi.das@arm.com>
708
709         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): Remove.
710         (PLT_BTI_TLSDESC_ENTRY_SIZE): Remove.
711         (PLT_PAC_ENTRY_SIZE, PLT_BTI_PAC_ENTRY_SIZE): Remove.
712         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): Update.
713         (elfNN_aarch64_small_plt0_pac_entry): Remove.
714         (elfNN_aarch64_small_plt0_bti_pac_entry): Remove.
715         (elfNN_aarch64_small_plt0_bti_entry): Update.
716         (elfNN_aarch64_small_plt_bti_entry): Update.
717         (elfNN_aarch64_small_plt_pac_entry): Update.
718         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): Update.
719         (setup_plt_values): Setup new entries.
720         (elfNN_aarch64_finish_dynamic_sections): Remove size change.
721         (elfNN_aarch64_plt_sym_val): Likewise.
722
723 2019-04-22  Jim Wilson  <jimw@sifive.com>
724
725         * elfnn-riscv.c (PRSTATUS_SIZE) [ARCH_SIZE==32]: Change from 0 to 204.
726
727 2019-04-19  Alan Modra  <amodra@gmail.com>
728
729         * elf32-s12z.c (elf_backend_can_gc_sections): Don't define
730
731 2019-04-17  H.J. Lu  <hongjiu.lu@intel.com>
732
733         * elf64-x86-64.c (elf_x86_64_need_pic): Suggest -fPIE when not
734         building shared object.
735         * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Likewise.
736
737 2019-04-17  H.J. Lu  <hongjiu.lu@intel.com>
738
739         PR ld/24458
740         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86
741         linker_def.
742
743 2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
744
745         * reloc.c (BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM): New internal
746         relocation.
747         * bfd-in2.h: Regenerate.
748         * libbfd.h: Likewise.
749
750 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
751
752         * reloc.c (BFD_RELOC_ARM_THUMB_LOOP12): New.
753         * bfd-in2.h: Regenerated.
754         * libbfd.h: Regenerated.
755
756 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
757
758         * reloc.c (BFD_RELOC_THUMB_PCREL_BFCSEL): New relocation.
759         * bfd-in2.h: Regenerated.
760         * libbfd.h: Likewise.
761
762 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
763
764         * reloc.c (BFD_RELOC_ARM_THUMB_BF13): New.
765         * bfd-in2.h: Regenerated.
766         * libbfd.h: Regenerated.
767         * elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF13.
768         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF13
769         and R_ARM_THM_BF12 together.
770         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF13.
771
772 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
773
774         * reloc.c (BFD_RELOC_ARM_THUMB_BF19): New
775         * libbfd.h: Regenerated.
776         * bfd-in2.h: Regenerated.
777         * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF18.
778         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF19
779         and R_ARM_THM_BF18 together.
780         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF19.
781
782 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
783
784         * reloc.c (BFD_RELOC_ARM_THUMB_BF17): New enum.
785         * bfd-in2.h: Regenerated.
786         * libbfd.h: Regenerated.
787         * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF16.
788         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF17
789         and R_ARM_THM_BF16 together.
790         (get_value_helper): New reloc helper.
791         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF16.
792
793 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
794
795         * reloc.c (BFD_RELOC_THUMB_PCREL_BRANCH5): New enum.
796         * bfd-in2.h: Regenerate.
797         * libbfd.h: Regenerate.
798
799 2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
800
801         * archures.c (bfd_mach_arm_8_1M_MAIN): Define.
802         * bfd-in2.h: Regenerate.
803         * cpu-arm.c (arch_info_struct): Add entry for Armv8.1-M Mainline.
804         * elf32-arm.c (using_thumb_only): Return true for Armv8.1-M Mainline
805         and update assert.
806         (using_thumb2): Likewise.
807         (using_thumb2_bl): Update assert.
808         (arch_has_arm_nop): Likewise.
809         (bfd_arm_get_mach_from_attributes): Add case for Armv8.1-M Mainline.
810         (tag_cpu_arch_combine): Add logic for Armv8.1-M Mainline merging.
811
812 2019-04-11  H.J. Lu  <hongjiu.lu@intel.com>
813
814         * elf-linker-x86.h (elf_x86_cet_report): New.
815         (elf_linker_x86_params): Add cet_report.
816         * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report
817         missing IBT and SHSTK properties if needed.
818
819 2019-04-11  H.J. Lu  <hongjiu.lu@intel.com>
820
821         PR ld/24436
822         * elf-m10300.c (mn10300_elf_check_relocs): Remove BFD_ASSERT of
823         "h != NULL".  Don't check "h != NULL" before calling.
824         bfd_elf_gc_record_vtentry.
825         * elf32-arm.c (elf32_arm_check_relocs): Likewise.
826         * elf32-bfin.c (bfin_check_relocs): Likewise.
827         * elf32-cris.c (cris_elf_check_relocs): Likewise.
828         * elf32-csky.c (csky_elf_check_relocs): Likewise.
829         * elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
830         * elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
831         * elf32-fr30.c (fr30_elf_check_relocs): Likewise.
832         * elf32-frv.c (elf32_frv_check_relocs): Likewise.
833         * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
834         * elf32-i386.c (elf_i386_check_relocs): Likewise.
835         * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
836         * elf32-m32r.c (m32r_elf_check_relocs): Likewise.
837         * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
838         * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
839         * elf32-mcore.c (mcore_elf_check_relocs): Likewise.
840         * elf32-metag.c (elf_metag_check_relocs): Likewise.
841         * elf32-or1k.c (or1k_elf_check_relocs): Likewise.
842         * elf32-ppc.c (ppc_elf_check_relocs): Likewise.
843         * elf32-s390.c (elf_s390_check_relocs): Likewise.
844         * elf32-sh.c (sh_elf_check_relocs): Likewise.
845         * elf32-v850.c (v850_elf_check_relocs): Likewise.
846         * elf32-vax.c (elf_vax_check_relocs): Likewise.
847         * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
848         * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
849         * elf64-mmix.c (mmix_elf_check_relocs): Likewise.
850         * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
851         * elf64-s390.c (elf_s390_check_relocs): Likewise.
852         * elf64-x86-64.c (elf_s390_check_relocs): Likewise.
853         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
854         * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
855         * elflink.c (bfd_elf_gc_record_vtinherit): Check for corrupt
856         VTENTRY entry.
857
858 2019-04-11  Alan Modra  <amodra@gmail.com>
859
860         PR 24435
861         * elflink.c (elf_link_add_object_symbols): Don't read partial
862         dynamic entries from fuzzed objects.
863
864 2019-04-11  Tamar Christina  <tamar.christina@arm.com>
865
866         PR ld/24302
867         * elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit
868         DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW.
869         (elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW.
870
871 2019-04-10  Michael Forney  <mforney@mforney.org>
872
873         PR 24427
874         * doc/chew.c (free_words): Correctly free "push_text" strings.
875
876 2019-04-08  H.J. Lu  <hongjiu.lu@intel.com>
877
878         * config.bfd: Remove i[3-7]86-*-kaos* and i[3-7]86-*-chaos targets.
879
880 2019-04-08  Alan Modra  <amodra@gmail.com>
881
882         * configure.ac (elfxx_x86): Define and use.
883         * configure: Regenerate.
884
885 2019-04-06  H.J. Lu  <hongjiu.lu@intel.com>
886
887         * elf-linker-x86.h: New file.
888         * elf32-i386.c (elf_i386_convert_load_reloc): Use htab->params
889         to get x86-specific linker options.
890         * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
891         (elf_x86_64_check_relocs): Likewise.
892         (elf_x86_64_relocate_section): Likewise.
893         (elf_x86_64_link_setup_gnu_properties): Likewise.
894         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Likewise.
895         (_bfd_x86_elf_link_setup_gnu_properties): Likewise.
896         (_bfd_elf_linker_x86_set_options): New function.
897         * elfxx-x86.h: Include "elf-linker-x86.h".
898         (elf_x86_link_hash_table): Add params.
899
900 2019-04-03  Alan Modra  <amodra@gmail.com>
901
902         * coff-i386.c, * coff-x86_64.c, * coffgen.c, * dwarf2.c,
903         * elf-m10200.c, * elf.c, * elf32-arm.c, * elf32-bfin.c,
904         * elf32-csky.c, * elf32-m32r.c, * elf32-microblaze.c, * elf32-pru.c,
905         * elf32-rx.c, * elf32-xgate.c, * elf64-sparc.c, * elfnn-ia64.c,
906         * elfxx-riscv.c, * elfxx-sparc.c, * linker.c, * mach-o.c,
907         * pe-x86_64.c, * pei-x86_64.c, * plugin.c: Whitespace fixes.
908
909 2019-04-02  Jim Wilson  <jimw@sifive.com>
910
911         PR 24389
912         * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Move read of
913         ELF header flags to after check for ELF object file.  Loop through
914         sections looking for code sections, if none, then skip ABI checks.
915
916 2019-03-30  Andrew Waterman  <andrew@sifive.com>
917
918         * elfnn-riscv.c (_bfd_riscv_relax_call): Only check ARCH_SIZE for
919         rd == X_RA case.
920
921 2019-03-29  Max Filippov  <jcmvbkbc@gmail.com>
922
923         * elf32-xtensa.c (shrink_dynamic_reloc_sections): Add
924         info->export_dynamic to the conditional.
925
926 2019-03-28  Alan Modra  <amodra@gmail.com>
927
928         PR 24392
929         * configure.ac: Invoke AC_CHECK_SIZEOF(int).
930         * configure: Regenerate.
931         * coffgen.c (coff_get_reloc_upper_bound): Replace gcc diagnostic
932         workaround with SIZEOF_LONG vs. SIZEOF_INT check.
933         * elf.c (_bfd_elf_get_reloc_upper_bound): Likewise.
934         * elf64-sparc.c (elf64_sparc_get_reloc_upper_bound): Likewise.
935         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
936
937 2019-03-21  Jim Wilson  <jimw@sifive.com>
938
939         PR 24365
940         * elfnn-riscv.c (riscv_elf_relocate_section): For STT_SECTION check,
941         verify sym non-NULL before using.  Add identical check using h.
942
943 2019-03-21  Sudakshina Das  <sudi.das@arm.com>
944
945         * elf-bfd.h (struct elf_backend_data): Add argument to
946         merge_gnu_properties.
947         * elf-properties.c (elf_merge_gnu_properties): Add argument to
948         itself and while calling bed->merge_gnu_properties.
949         (elf_merge_gnu_property_list): Update the calls for
950         elf_merge_gnu_properties.
951         * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
952         of --force-bti warning and add argument.
953         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
954         warning.
955         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
956         * elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
957         declaration.
958
959 2019-03-20  Sudakshina Das  <sudi.das@arm.com>
960
961         * elfxx-aarch64.c (_bfd_aarch64_elf_link_fixup_gnu_properties): Define.
962         * elfxx-aarch64.h (_bfd_aarch64_elf_link_fixup_gnu_properties): Declare.
963         (elf_backend_fixup_gnu_properties): Define for AArch64.
964
965 2019-03-18  Alan Modra  <amodra@gmail.com>
966
967         PR 24355
968         * elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub
969         for local iplt syms with ent->plt.offset == -1.  Remove ineffective
970         attempt at writing glink stubs only once.
971
972 2019-03-16  Alan Modra  <amodra@gmail.com>
973
974         PR 24337
975         * elf.c (_bfd_elf_rela_local_sym): Revert last change.
976         (_bfd_elf_rel_local_sym): Likewise.
977         * elflink.c (elf_link_input_bfd): Use bfd_und_section for
978         section of symbols with unrecognized shndx.
979
980 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
981
982         PR ld/24267
983         * coffgen.c (_bfd_coff_section_already_linked): Skip discarded
984         section.
985         * cofflink.c (coff_link_add_symbols): Check for symbols defined
986         in discarded section.
987
988 2019-03-15  Alan Modra  <amodra@gmail.com>
989
990         PR 24339
991         * elflink.c (elf_link_add_object_symbols): Bail out on a local
992         symbol after globals if elf_bad_symtab is not set.
993
994 2019-03-15  Alan Modra  <amodra@gmail.com>
995
996         PR 24337
997         * elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec.
998         (_bfd_elf_rel_local_sym): Likewise.
999
1000 2019-03-15  Alan Modra  <amodra@gmail.com>
1001
1002         PR 24336
1003         * elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
1004         object files with sh_size not a multiple of sh_entsize.
1005
1006 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         PR ld/24338
1009         * elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
1010         input with bad relocation.
1011
1012 22019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
1013
1014         * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
1015
1016 2019-03-14  Nick Clifton  <nickc@redhat.com>
1017
1018         PR 24334
1019         * dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
1020         (save_section_vma): Initialise field to the number of entries in
1021         the sec_vma table.
1022         (section_vma_same): Check that the number of entries in the
1023         sec_vma table matches the number of sections in the bfd.
1024
1025 2019-03-14  Nick Clifton  <nickc@redhat.com>
1026
1027         PR 24333
1028         * elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
1029         section owner pointer when adding the default symbol.
1030
1031 2019-03-14  Nick Clifton  <nickc@redhat.com>
1032
1033         PR 24332
1034         * elflink.c (elf_link_add_object_symbols): Add new local variable
1035         extversym_end.  Initialise it to point to the end of the version
1036         symbol table, if present.  Check it when initialising and updating
1037         the ever pointer.
1038
1039 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
1040
1041         * elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
1042         (PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
1043         (setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
1044         (elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
1045         and PLT_PAC_PLT.
1046         (elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
1047         (get_plt_type): Add case for DT_AARCH64_PAC_PLT.
1048         (elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
1049
1050 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
1051             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1052
1053         * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
1054         (aarch64_bti_pac_info): New.
1055         (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
1056         (bfd_elf32_aarch64_set_options): Likewise.
1057         * bfd-in2.h: Regenerate
1058         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
1059         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
1060         (elfNN_aarch64_small_plt0_bti_entry): New.
1061         (elfNN_aarch64_small_plt_bti_entry): New.
1062         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
1063         (elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
1064         (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
1065         tlsdesc_plt_entry_size fields.
1066         (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
1067         (setup_plt_values): New helper function.
1068         (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
1069         bti enable type.
1070         (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
1071         fixed macros.
1072         (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
1073         (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
1074         to plt stubs instead of fixed ones and update filling them according
1075         to the need for bti.
1076         (elfNN_aarch64_init_small_plt0_entry): Likewise.
1077         (elfNN_aarch64_finish_dynamic_sections): Likewise.
1078         (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
1079         (elfNN_aarch64_plt_sym_val): Update size accordingly.
1080         (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
1081         is set.
1082         (bfd_elfNN_get_synthetic_symtab): Define.
1083         (elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
1084         and mising BTI NOTE SECTION.
1085
1086
1087 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
1088
1089         * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
1090         linker created inputs from merge.
1091         * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
1092         GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
1093         (elfNN_aarch64_link_setup_gnu_properties): New.
1094         (elfNN_aarch64_merge_gnu_properties): New.
1095         (elf_backend_setup_gnu_properties): Define for AArch64.
1096         (elf_backend_merge_gnu_properties): Likewise.
1097         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
1098         (_bfd_aarch64_elf_parse_gnu_properties): Define.
1099         (_bfd_aarch64_elf_merge_gnu_properties): Define.
1100         * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
1101         (_bfd_aarch64_elf_parse_gnu_properties): Declare.
1102         (_bfd_aarch64_elf_merge_gnu_properties): Declare.
1103         (elf_backend_parse_gnu_properties): Define for AArch64.
1104
1105 2019-03-13  H.J. Lu  <hongjiu.lu@intel.com>
1106
1107         PR ld/24322
1108         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
1109         merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
1110
1111 2019-03-12  Alan Modra  <amodra@gmail.com>
1112
1113         * coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
1114         nmemb parameter.  Use bfd_alloc2.
1115         (coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
1116         Delete assertion.
1117         (coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
1118         (coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
1119         * coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
1120         doesn't overflow.
1121         * elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
1122         (assign_section_numbers): Style fix.
1123         (swap_out_syms): Use bfd_malloc2.
1124         (_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
1125         overflow.
1126         (_bfd_elf_make_empty_symbol): Style fix.
1127         (elfobj_grok_stapsdt_note_1): Formatting.
1128         * elfcode.h (elf_object_p): Use bfd_alloc2.
1129         (elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
1130         (elf_slurp_symbol_table): Use bfd_zalloc2.
1131         (elf_slurp_reloc_table): Use bfd_alloc2.
1132         (_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
1133         * elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
1134         size calculation doesn't overflow.
1135         (elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
1136         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
1137         * pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
1138
1139 2019-03-08  Alan Modra  <amodra@gmail.com>
1140
1141         PR 24311
1142         * merge.c (merge_strings): Return secinfo.  Don't pad section
1143         to alignment here.
1144         (_bfd_merge_sections): Pad section to alignment here, if input
1145         sections contributing to merged output all pad to alignment.
1146         Formatting.
1147
1148 2019-03-06  Nick Clifton  <nickc@redhat.com>
1149
1150         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
1151         table pointer.
1152         * coffgen.c (coff_find_nearest_line_with_names): Do not call
1153         _bfd_dwarf2_find_symbol_bias if there is no symbol table available.
1154
1155 2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>
1156
1157         This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
1158         2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
1159
1160         PR 20113
1161         * elf32-s390.c (allocate_dynrelocs): Update comment.
1162
1163 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
1164
1165         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
1166
1167 2019-02-28  Nick Clifton  <nickc@redhat.com>
1168
1169         PR 24273
1170         * elf.c (bfd_elf_string_from_elf_section): Check for a string
1171         section that is not NUL terminated.
1172
1173 2019-02-27  H.J. Lu  <hongjiu.lu@intel.com>
1174
1175         PR ld/24276
1176         * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
1177         by linker when checking copy reloc on protected symbol.
1178
1179 2019-02-24  Alan Modra  <amodra@gmail.com>
1180
1181         PR 24144
1182         * pdp11.c (set_section_contents): Revert 2015-02-24 change.
1183
1184 2019-02-20  Eric Tsai  <erictsai@cadence.com>
1185
1186         * elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
1187         sections between the call site and call destination and adjust
1188         call distance by the largest alignment.
1189
1190 2019-02-20  Alan Hayward  <alan.hayward@arm.com>
1191
1192         * elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
1193         * elf.c (elfcore_grok_aarch_pauth): New function.
1194         (elfcore_grok_note): Check for NT_ARM_PAC_MASK.
1195         (elfcore_write_aarch_pauth): New function.
1196         (elfcore_write_register_note): Check for AArch64 pauth section.
1197
1198 2019-02-20  Alan Modra  <amodra@gmail.com>
1199
1200         PR 24225
1201         * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
1202         return value.
1203
1204 2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
1205
1206         * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
1207         Darwin hosts, not just or1k.
1208         * configure: Regenerate.
1209
1210 2019-02-20  Alan Modra  <amodra@gmail.com>
1211
1212         PR 24236
1213         * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
1214         sentinel NUL to string buffer nearer to loop where it is used.
1215         Don't go past sentinel when scanning strings, and don't write
1216         NUL again.
1217         * archive.c (do_slurp_coff_armap): Simplify string handling to
1218         archive64.c style.
1219
1220 2019-02-19  Alan Modra  <amodra@gmail.com>
1221
1222         PR 24235
1223         * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
1224         attempting to prevent read past end of section.
1225
1226 2019-02-18  Alan Modra  <amodra@gmail.com>
1227
1228         PR 24225
1229         * elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
1230         PRIx64 to generate warning messages.  Print local sym names too.
1231
1232 2019-02-09  Vineet Gupta  <vgupta@synopsys.com>
1233
1234         * elf32-arc (INIT_SYM_STRING): Delete.
1235         (FINI_SYM_STRING): Likewise.
1236         (init_str): Likewise.
1237         (fini_str): Likewise.
1238
1239 2019-02-08  Alan Modra  <amodra@gmail.com>
1240
1241         * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported
1242         for bss-plt" warning to make it an error.
1243
1244 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
1245
1246         PR ld/18841
1247         * elf32-sparc.c (elf32_sparc_reloc_type_class): Return
1248         reloc_class_ifunc for ifunc symbols.
1249         * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
1250
1251 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
1252
1253         * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak.
1254         <R_VISIUM_PC16>: Use explicit range test to detect an overflow.
1255
1256 2019-02-07  Nick Clifton  <nickc@redhat.com>
1257
1258         * config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
1259         into the definitely obsolete list.
1260
1261 2019-02-05  H.J. Lu  <hongjiu.lu@intel.com>
1262
1263         PR ld/24151
1264         * elf64-x86-64.c (elf_x86_64_need_pic): Check
1265         SYMBOL_DEFINED_NON_SHARED_P instead of def_regular.
1266         (elf_x86_64_relocate_section): Move PIC check for PC-relative
1267         relocations to ...
1268         (elf_x86_64_check_relocs): Here.
1269         (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P
1270         to check if a symbol is defined in a non-shared object.
1271         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New.
1272
1273 2019-01-21  Sergio Durigan Junior  <sergiodj@redhat.com>
1274
1275         * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
1276         of 'labs' (and fix GCC warning).
1277
1278 2019-01-25  Nick Clifton  <nickc@redhat.com>
1279
1280         * po/ru.po: Updated Russian translation.
1281
1282 2019-01-23  Nick Clifton  <nickc@redhat.com>
1283
1284         * po/fr.po: Updated French translation.
1285
1286 2019-01-21  Nick Clifton  <nickc@redhat.com>
1287
1288         * po/pt.po: Updated Portuguese translation.
1289         * po/uk.po: Updated Ukranian translation.
1290
1291 2019-01-21  Yuri Chornoivan  <yurchor@ukr.net>
1292
1293         PR 24108
1294         * elf32-nds32.c (nds32_relocate_section): Add space between words
1295         in error message.
1296         * elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
1297         error message.
1298         (riscv_i_or_e_p): Likewise.
1299         (riscv_merge_arch_attr_info): Likewise.
1300
1301 2019-01-19  Nick Clifton  <nickc@redhat.com>
1302
1303         * version.m4: Reset to 2.32.51
1304         * configure: Regenerate.
1305         * po/bfd.pot: Regenerate.
1306
1307 2018-06-24  Nick Clifton  <nickc@redhat.com>
1308
1309         2.32 branch created.
1310
1311 2019-01-16  Kito Cheng  <kito@andestech.com>
1312
1313         * elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
1314         for OBJ_ATTR_PROC.
1315
1316 2019-01-16  Kito Cheng  <kito@andestech.com>
1317             Nelson Chu  <nelson@andestech.com>
1318
1319         * elfnn-riscv.c (in_subsets): New.
1320         (out_subsets): Likewise.
1321         (merged_subsets): Likewise.
1322         (riscv_std_ext_p): Likewise.
1323         (riscv_non_std_ext_p): Likewise.
1324         (riscv_std_sv_ext_p): Likewise.
1325         (riscv_non_std_sv_ext_p): Likewise.
1326         (riscv_version_mismatch): Likewise.
1327         (riscv_i_or_e_p): Likewise.
1328         (riscv_merge_std_ext): Likewise.
1329         (riscv_merge_non_std_and_sv_ext): Likewise.
1330         (riscv_merge_arch_attr_info): Likewise.
1331         (riscv_merge_attributes): Likewise.
1332         (_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
1333
1334         * elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
1335         (elf_backend_obj_attrs_vendor): Define.
1336         (elf_backend_obj_attrs_section_type): Likewise.
1337         (elf_backend_obj_attrs_section): Likewise.
1338         (elf_backend_obj_attrs_arg_type): Define as
1339         riscv_elf_obj_attrs_arg_type.
1340         * elfxx-riscv.c (riscv_estimate_digit): New.
1341         (riscv_estimate_arch_strlen1): Likewise.
1342         (riscv_estimate_arch_strlen): Likewise.
1343         (riscv_arch_str1): Likewise.
1344         (riscv_arch_str): Likewise.
1345         * elfxx-riscv.h (riscv_arch_str): Declare.
1346
1347 2019-01-14  John Darrington <john@darrington.wattle.id.au>
1348
1349         * bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
1350         * libbfd.h: regen.
1351         * elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
1352         source field.  (md_apply_fix): Apply final fix
1353         to BFD_RELOC_S12Z_OPR.
1354         * reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
1355
1356 2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
1357
1358         PR 20113
1359         * elf32-s390.c (allocate_dynrelocs): Update comment.
1360
1361 2019-01-09  Andrew Paprocki  <andrew@ishiboo.com>
1362
1363         * warning.m4: Adjust egrep pattern for non-GNU compilers.
1364         * configure: Regenerate.
1365
1366 2019-01-08  Alan Modra  <amodra@gmail.com>
1367
1368         PR 23699
1369         PR 24065
1370         * ihex.c (ihex_write_object_contents): Properly check 32-bit
1371         address range.
1372
1373 2019-01-05  Yoshinori Sato <ysato@users.sourceforge.jp>
1374
1375         * bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
1376         * bfd/bfd-in2.h: Regenerate.
1377         * bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
1378         * bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
1379
1380 2019-01-04  Lifang Xia  <lifang_xia@c-sky.com>
1381
1382         * config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
1383         default target, little endian target is more suitable.
1384
1385 2019-01-04  Alan Modra  <amodra@gmail.com>
1386
1387         PR 24061
1388         PR 21786
1389         * coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
1390         adjust all callers.
1391         (EQ_VALUE_IN_FIELD): Likewise.
1392         * coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.
1393
1394 2019-01-01  Alan Modra  <amodra@gmail.com>
1395
1396         Update year range in copyright notice of all files.
1397
1398 For older changes see ChangeLog-2018
1399 \f
1400 Copyright (C) 2019 Free Software Foundation, Inc.
1401
1402 Copying and distribution of this file, with or without modification,
1403 are permitted in any medium without royalty provided the copyright
1404 notice and this notice are preserved.
1405
1406 Local Variables:
1407 mode: change-log
1408 left-margin: 8
1409 fill-column: 74
1410 version-control: never
1411 End: