PowerPC notoc linkage stubs
[external/binutils.git] / bfd / ChangeLog
1 2019-05-24  Alan Modra  <amodra@gmail.com>
2
3         * elf64-ppc.c: Comment on powerxx _notoc stub variants.
4         (LI_R11_0, LIS_R11, ORI_R11_R11_0, SLDI_R11_R11_34): Define.
5         (PADDI_R12_PC, PLD_R12_PC, D34, HA34): Define.
6         (struct ppc_link_hash_table): Add powerxx_stubs.
7         (ppc64_elf_check_relocs): Set powerxx_stubs.
8         (build_powerxx_offset, size_powerxx_offset),
9         (num_relocs_for_powerxx_offset),
10         (emit_relocs_for_powerxx_offset): New functions.
11         (plt_stub_size): Size powerxx stubs.
12         (ppc_build_one_stub): Emit powerxx stubs.
13         (ppc_size_one_stub): Size powerxx stubs.  Omit .eh_frame for
14         powerxx stubs.
15
16 2019-05-24  Alan Modra  <amodra@gmail.com>
17
18         * elf64-ppc.c (ppc64_elf_check_relocs): Set has_gotrel for
19         R_PPC64_GOT_PCREL34.
20         (xlate_pcrel_opt): New function.
21         (ppc64_elf_edit_toc): Handle R_PPC64_GOT_PCREL34.
22         (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
23         for R_PPC64_GOT_PCREL34.  Implement R_PPC64_PCREL_OPT optimisation.
24
25 2019-05-24  Alan Modra  <amodra@gmail.com>
26
27         * reloc.c (BFD_RELOC_PPC64_D34, BFD_RELOC_PPC64_D34_LO),
28         (BFD_RELOC_PPC64_D34_HI30, BFD_RELOC_PPC64_D34_HA30),
29         (BFD_RELOC_PPC64_PCREL34, BFD_RELOC_PPC64_GOT_PCREL34),
30         (BFD_RELOC_PPC64_PLT_PCREL34),
31         (BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34),
32         (BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34),
33         (BFD_RELOC_PPC64_REL16_HIGHER34, BFD_RELOC_PPC64_REL16_HIGHERA34),
34         (BFD_RELOC_PPC64_REL16_HIGHEST34, BFD_RELOC_PPC64_REL16_HIGHESTA34),
35         (BFD_RELOC_PPC64_D28, BFD_RELOC_PPC64_PCREL28): New reloc enums.
36         * elf64-ppc.c (PNOP): Define.
37         (ppc64_elf_howto_raw): Add reloc howtos for new relocations.
38         (ppc64_elf_reloc_type_lookup): Translate new bfd reloc numbers.
39         (ppc64_elf_ha_reloc): Adjust addend for highera34 and highesta34
40         relocs.
41         (ppc64_elf_prefix_reloc): New function.
42         (struct ppc_link_hash_table): Add notoc_plt.
43         (is_branch_reloc): Add R_PPC64_PLTCALL_NOTOC.
44         (is_plt_seq_reloc): Add R_PPC64_PLT_PCREL34,
45         R_PPC64_PLT_PCREL34_NOTOC, and R_PPC64_PLTSEQ_NOTOC.
46         (ppc64_elf_check_relocs): Handle pcrel got and plt relocs.  Set
47         has_pltcall for section on seeing R_PPC64_PLTCALL_NOTOC.  Handle
48         possible need for dynamic relocs on non-pcrel powerxx relocs.
49         (dec_dynrel_count): Handle non-pcrel powerxx relocs.
50         (ppc64_elf_inline_plt): Handle R_PPC64_PLTCALL_NOTOC.
51         (toc_adjusting_stub_needed): Likewise.
52         (ppc64_elf_tls_optimize): Handle R_PPC64_PLTSEQ_NOTOC.
53         (ppc64_elf_relocate_section): Handle new powerxx relocs.
54         * bfd-in2.h: Regenerate.
55         * libbfd.h: Regenerate.
56
57 2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>
58
59         * config.bfd (targ_cpu): Process bpf-*-none only if BFD64.
60         * configure.ac: Set target_size=64 for bpf_elf64_le_vec and
61         bpf_elf64_be_vec.
62         * configure: Regenerate.
63
64 2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>
65
66         * configure: Regenerated.
67         * Makefile.am (ALL_MACHINES): Add cpu-bpf.lo.
68         (ALL_MACHINES_CFILES): Add cpu-bpf.c.
69         (BFD64_BACKENDS): Add elf64-bpf.lo.
70         (BFD64_BACKENDS_CFILES): Add elf64-bpf.c.
71         * Makefile.in (SOURCE_HFILES): Regenerate.
72         * config.bfd (targ_cpu): Handle bpf-*-* targets.
73         * cpu-bpf.c: New file.
74         * elf64-bpf.c: Likewise.
75         * targets.c (_bfd_target_vector): Add bpf_elf64_be_vec and
76         bpf_elf64_le_vec.
77         * archures.c: Define architecture bfd_arch_bpf and machine
78         bfd_arch_bpf.
79         * reloc.c: Define BFD relocations used by the BPF target.
80         * bfd-in2.h: Regenerated.
81         * libbfd.h: Likewise.
82
83 2019-05-22  Alan Modra  <amodra@gmail.com>
84
85         * elf32-arm.c (arm_allocate_glue_section_space): Clear section
86         contents.
87
88 2019-05-22  Alan Modra  <amodra@gmail.com>
89
90         * vms-alpha.c (_bfd_vms_write_etir): Don't attempt further
91         processing on "size error in section".
92
93 2019-05-22  Alan Modra  <amodra@gmail.com>
94
95         * som.c (som_bfd_free_cached_info): Call
96         _bfd_generic_close_and_cleanup.
97
98 2019-05-21  Faraz Shahbazker  <fshahbazker@wavecomp.com>
99
100         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error
101         for TLS_TPREL_HI16(/LO16) relocations in shared library.
102
103 2019-05-21  Faraz Shahbazker  <fshahbazker@wavecomp.com>
104
105         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Add NULL pointer
106         checks.  Search the RELA table for n64 relocations.
107
108 2019-05-21  Matthew Fortune  <matthew.fortune@mips.com>
109             Faraz Shahbazker  <fshahbazker@wavecomp.com>
110
111         * elfxx-mips.c (LA25_BC): New macro.
112         (mips_elf_link_hash_table)<compact_branches>: New field.
113         (STUB_JALRC): New macro.
114         (mipsr6_o32_exec_plt0_entry_compact): New array.
115         (mipsr6_n32_exec_plt0_entry_compact): Likewise.
116         (mipsr6_n64_exec_plt0_entry_compact): Likewise.
117         (mipsr6_exec_plt_entry_compact): Likewise.
118         (mips_elf_create_la25_stub): Use BC instead of J for stubs
119         when compact_branches is true.
120         (_bfd_mips_elf_finish_dynamic_symbol): Choose the compact
121         PLT for MIPSR6 with compact_branches.  Do not reorder the
122         compact branches PLT.  Switch the lazy stub for MIPSR6
123         with compact_branches to use JALRC.
124         (mips_finish_exec_plt): Choose the compact PLT0 for MIPSR6
125         when compact_branches is true.
126         (_bfd_mips_elf_compact_branches): New function.
127         * elfxx-mips.h (_bfd_mips_elf_compact_branches): New prototype.
128
129 2019-05-21  Tamar Christina  <tamar.christina@arm.com>
130
131         PR ld/24373
132         * elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
133         Fix print formatter.
134
135 2019-05-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
136
137         PR 24460
138         * elf32-arm.c (get_value_helper): Remove.
139         (elf32_arm_final_link_relocate): Fix branch future relocations.
140
141 2019-05-21  Tamar Christina  <tamar.christina@arm.com>
142
143         PR ld/24373
144         * bfd-in.h (enum erratum_84319_opts): New
145         (bfd_elf64_aarch64_set_options, bfd_elf32_aarch64_set_options): Change
146         int to enum erratum_84319_opts.
147         * bfd-in2.h: Regenerate.
148         * elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Change
149         fix_erratum_843419 to use new enum, remove fix_erratum_843419_adr.
150         (_bfd_aarch64_add_stub_entry_after): Conditionally create erratum stub.
151         (aarch64_size_one_stub): Conditionally size erratum 843419 stubs.
152         (_bfd_aarch64_resize_stubs): Amend comment.
153         (elfNN_aarch64_size_stubs): Don't generate stubs when no workaround
154         requested.
155         (bfd_elfNN_aarch64_set_options): Use new fix_erratum_843419 enum.
156         (_bfd_aarch64_erratum_843419_branch_to_stub): Implement selection of
157         erratum workaround.
158         (clear_erratum_843419_entry): Update erratum conditional.
159
160 2019-05-21  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
161
162         PR ld/24571
163         * bfd/elf32-avr.c (elf32_avr_relax_section): Adjust range check
164         when computing distance_short_enough.
165
166 2019-05-21  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
167
168         PR ld/24564
169         * bfd/elf32-avr.c (avr_relative_distance_considering_wrap_around):
170         Wrap around even if distance equals avr_pc_wrap_around.
171
172 2019-05-20  Nick Clifton  <nickc@redhat.com>
173
174         * po/fr.po: Updated French translation.
175
176 2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
177
178         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add case for Tag_MVE_arch.
179
180 2019-05-16  Alan Modra  <amodra@gmail.com>
181
182         * elf32-arm.c (elf32_arm_write_section): Revert last change.
183
184 2019-05-15  Alan Modra  <amodra@gmail.com>
185
186         * elf32-arm.c (elf32_arm_write_section): Don't leave
187         error case of STM32L4XX_ERRATUM_BRANCH_TO_VENEER with
188         unitialised section contents.
189
190 2019-05-14  Jamey Hicks  <jamey.hicks@gmail.com>
191
192         PR 19921
193         * verilog.c: (VerilogDataWidth): New variable.
194         (verilog_write_record): Emit bytes in VerilogDataWidth bundles.
195
196 2019-05-08  Nick Clifton  <nickc@redhat.com>
197
198         PR 24523
199         * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Return TRUE
200         rather than FALSE if encountering a non-ELF file.
201
202 2019-05-06  Alan Modra  <amodra@gmail.com>
203
204         * elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error.
205
206 2019-05-06  Alan Modra  <amodra@gmail.com>
207
208         * reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA),
209         (BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA):
210         Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry.
211         * libbfd.h: Regenerate.
212         * bfd-in2.h: Regenerate.
213
214 2019-05-04  Alan Modra  <amodra@gmail.com>
215
216         PR 24511
217         * syms.c (coff_section_type): Only allow '.', '$' and numeric
218         following the standard section names.
219         (bfd_decode_symclass): Prioritize section flag tests in
220         decode_section_type before name tests in coff_section_type.
221         * plugin.c (bfd_plugin_canonicalize_symtab): Init fake_section
222         and fake_common_section using BFD_FAKE_SECTION.  Use "fake" as
223         their names and choose standard .text section flags for
224         fake_section.
225
226 2019-05-02  Nick Clifton  <nickc@redhat.com>
227
228         PR 24493
229         * coffcode.h (styp_to_sec_flags): Treat .gnu.debuglink and
230         .gnu.debugaltlink sections as debugging sections.
231
232 2019-04-30  Alan Modra  <amodra@gmail.com>
233
234         * elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_gotrel.
235         (struct _ppc64_elf_section_data): Likewise.
236         (ppc64_elf_check_relocs): Set above fields.
237         (ppc64_elf_edit_toc): Add a pass over GOT relocs.
238         (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
239         when possible.
240
241 2019-04-26  H.J. Lu  <hongjiu.lu@intel.com>
242
243         PR ld/24486
244         * elflink.c (elf_link_output_extsym): Don't complain undefined
245         weak dynamic reference.
246
247 2019-04-25  Sudakshina Das  <sudi.das@arm.com>
248
249         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): Remove.
250         (PLT_BTI_TLSDESC_ENTRY_SIZE): Remove.
251         (PLT_PAC_ENTRY_SIZE, PLT_BTI_PAC_ENTRY_SIZE): Remove.
252         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): Update.
253         (elfNN_aarch64_small_plt0_pac_entry): Remove.
254         (elfNN_aarch64_small_plt0_bti_pac_entry): Remove.
255         (elfNN_aarch64_small_plt0_bti_entry): Update.
256         (elfNN_aarch64_small_plt_bti_entry): Update.
257         (elfNN_aarch64_small_plt_pac_entry): Update.
258         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): Update.
259         (setup_plt_values): Setup new entries.
260         (elfNN_aarch64_finish_dynamic_sections): Remove size change.
261         (elfNN_aarch64_plt_sym_val): Likewise.
262
263 2019-04-22  Jim Wilson  <jimw@sifive.com>
264
265         * elfnn-riscv.c (PRSTATUS_SIZE) [ARCH_SIZE==32]: Change from 0 to 204.
266
267 2019-04-19  Alan Modra  <amodra@gmail.com>
268
269         * elf32-s12z.c (elf_backend_can_gc_sections): Don't define
270
271 2019-04-17  H.J. Lu  <hongjiu.lu@intel.com>
272
273         * elf64-x86-64.c (elf_x86_64_need_pic): Suggest -fPIE when not
274         building shared object.
275         * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Likewise.
276
277 2019-04-17  H.J. Lu  <hongjiu.lu@intel.com>
278
279         PR ld/24458
280         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86
281         linker_def.
282
283 2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
284
285         * reloc.c (BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM): New internal
286         relocation.
287         * bfd-in2.h: Regenerate.
288         * libbfd.h: Likewise.
289
290 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
291
292         * reloc.c (BFD_RELOC_ARM_THUMB_LOOP12): New.
293         * bfd-in2.h: Regenerated.
294         * libbfd.h: Regenerated.
295
296 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
297
298         * reloc.c (BFD_RELOC_THUMB_PCREL_BFCSEL): New relocation.
299         * bfd-in2.h: Regenerated.
300         * libbfd.h: Likewise.
301
302 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
303
304         * reloc.c (BFD_RELOC_ARM_THUMB_BF13): New.
305         * bfd-in2.h: Regenerated.
306         * libbfd.h: Regenerated.
307         * elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF13.
308         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF13
309         and R_ARM_THM_BF12 together.
310         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF13.
311
312 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
313
314         * reloc.c (BFD_RELOC_ARM_THUMB_BF19): New
315         * libbfd.h: Regenerated.
316         * bfd-in2.h: Regenerated.
317         * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF18.
318         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF19
319         and R_ARM_THM_BF18 together.
320         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF19.
321
322 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
323
324         * reloc.c (BFD_RELOC_ARM_THUMB_BF17): New enum.
325         * bfd-in2.h: Regenerated.
326         * libbfd.h: Regenerated.
327         * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF16.
328         (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF17
329         and R_ARM_THM_BF16 together.
330         (get_value_helper): New reloc helper.
331         (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF16.
332
333 2019-04-15  Sudakshina Das  <sudi.das@arm.com>
334
335         * reloc.c (BFD_RELOC_THUMB_PCREL_BRANCH5): New enum.
336         * bfd-in2.h: Regenerate.
337         * libbfd.h: Regenerate.
338
339 2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
340
341         * archures.c (bfd_mach_arm_8_1M_MAIN): Define.
342         * bfd-in2.h: Regenerate.
343         * cpu-arm.c (arch_info_struct): Add entry for Armv8.1-M Mainline.
344         * elf32-arm.c (using_thumb_only): Return true for Armv8.1-M Mainline
345         and update assert.
346         (using_thumb2): Likewise.
347         (using_thumb2_bl): Update assert.
348         (arch_has_arm_nop): Likewise.
349         (bfd_arm_get_mach_from_attributes): Add case for Armv8.1-M Mainline.
350         (tag_cpu_arch_combine): Add logic for Armv8.1-M Mainline merging.
351
352 2019-04-11  H.J. Lu  <hongjiu.lu@intel.com>
353
354         * elf-linker-x86.h (elf_x86_cet_report): New.
355         (elf_linker_x86_params): Add cet_report.
356         * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report
357         missing IBT and SHSTK properties if needed.
358
359 2019-04-11  H.J. Lu  <hongjiu.lu@intel.com>
360
361         PR ld/24436
362         * elf-m10300.c (mn10300_elf_check_relocs): Remove BFD_ASSERT of
363         "h != NULL".  Don't check "h != NULL" before calling.
364         bfd_elf_gc_record_vtentry.
365         * elf32-arm.c (elf32_arm_check_relocs): Likewise.
366         * elf32-bfin.c (bfin_check_relocs): Likewise.
367         * elf32-cris.c (cris_elf_check_relocs): Likewise.
368         * elf32-csky.c (csky_elf_check_relocs): Likewise.
369         * elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
370         * elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
371         * elf32-fr30.c (fr30_elf_check_relocs): Likewise.
372         * elf32-frv.c (elf32_frv_check_relocs): Likewise.
373         * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
374         * elf32-i386.c (elf_i386_check_relocs): Likewise.
375         * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
376         * elf32-m32r.c (m32r_elf_check_relocs): Likewise.
377         * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
378         * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
379         * elf32-mcore.c (mcore_elf_check_relocs): Likewise.
380         * elf32-metag.c (elf_metag_check_relocs): Likewise.
381         * elf32-or1k.c (or1k_elf_check_relocs): Likewise.
382         * elf32-ppc.c (ppc_elf_check_relocs): Likewise.
383         * elf32-s390.c (elf_s390_check_relocs): Likewise.
384         * elf32-sh.c (sh_elf_check_relocs): Likewise.
385         * elf32-v850.c (v850_elf_check_relocs): Likewise.
386         * elf32-vax.c (elf_vax_check_relocs): Likewise.
387         * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
388         * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
389         * elf64-mmix.c (mmix_elf_check_relocs): Likewise.
390         * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
391         * elf64-s390.c (elf_s390_check_relocs): Likewise.
392         * elf64-x86-64.c (elf_s390_check_relocs): Likewise.
393         * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
394         * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
395         * elflink.c (bfd_elf_gc_record_vtinherit): Check for corrupt
396         VTENTRY entry.
397
398 2019-04-11  Alan Modra  <amodra@gmail.com>
399
400         PR 24435
401         * elflink.c (elf_link_add_object_symbols): Don't read partial
402         dynamic entries from fuzzed objects.
403
404 2019-04-11  Tamar Christina  <tamar.christina@arm.com>
405
406         PR ld/24302
407         * elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit
408         DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW.
409         (elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW.
410
411 2019-04-10  Michael Forney  <mforney@mforney.org>
412
413         PR 24427
414         * doc/chew.c (free_words): Correctly free "push_text" strings.
415
416 2019-04-08  H.J. Lu  <hongjiu.lu@intel.com>
417
418         * config.bfd: Remove i[3-7]86-*-kaos* and i[3-7]86-*-chaos targets.
419
420 2019-04-08  Alan Modra  <amodra@gmail.com>
421
422         * configure.ac (elfxx_x86): Define and use.
423         * configure: Regenerate.
424
425 2019-04-06  H.J. Lu  <hongjiu.lu@intel.com>
426
427         * elf-linker-x86.h: New file.
428         * elf32-i386.c (elf_i386_convert_load_reloc): Use htab->params
429         to get x86-specific linker options.
430         * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
431         (elf_x86_64_check_relocs): Likewise.
432         (elf_x86_64_relocate_section): Likewise.
433         (elf_x86_64_link_setup_gnu_properties): Likewise.
434         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Likewise.
435         (_bfd_x86_elf_link_setup_gnu_properties): Likewise.
436         (_bfd_elf_linker_x86_set_options): New function.
437         * elfxx-x86.h: Include "elf-linker-x86.h".
438         (elf_x86_link_hash_table): Add params.
439
440 2019-04-03  Alan Modra  <amodra@gmail.com>
441
442         * coff-i386.c, * coff-x86_64.c, * coffgen.c, * dwarf2.c,
443         * elf-m10200.c, * elf.c, * elf32-arm.c, * elf32-bfin.c,
444         * elf32-csky.c, * elf32-m32r.c, * elf32-microblaze.c, * elf32-pru.c,
445         * elf32-rx.c, * elf32-xgate.c, * elf64-sparc.c, * elfnn-ia64.c,
446         * elfxx-riscv.c, * elfxx-sparc.c, * linker.c, * mach-o.c,
447         * pe-x86_64.c, * pei-x86_64.c, * plugin.c: Whitespace fixes.
448
449 2019-04-02  Jim Wilson  <jimw@sifive.com>
450
451         PR 24389
452         * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Move read of
453         ELF header flags to after check for ELF object file.  Loop through
454         sections looking for code sections, if none, then skip ABI checks.
455
456 2019-03-30  Andrew Waterman  <andrew@sifive.com>
457
458         * elfnn-riscv.c (_bfd_riscv_relax_call): Only check ARCH_SIZE for
459         rd == X_RA case.
460
461 2019-03-29  Max Filippov  <jcmvbkbc@gmail.com>
462
463         * elf32-xtensa.c (shrink_dynamic_reloc_sections): Add
464         info->export_dynamic to the conditional.
465
466 2019-03-28  Alan Modra  <amodra@gmail.com>
467
468         PR 24392
469         * configure.ac: Invoke AC_CHECK_SIZEOF(int).
470         * configure: Regenerate.
471         * coffgen.c (coff_get_reloc_upper_bound): Replace gcc diagnostic
472         workaround with SIZEOF_LONG vs. SIZEOF_INT check.
473         * elf.c (_bfd_elf_get_reloc_upper_bound): Likewise.
474         * elf64-sparc.c (elf64_sparc_get_reloc_upper_bound): Likewise.
475         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
476
477 2019-03-21  Jim Wilson  <jimw@sifive.com>
478
479         PR 24365
480         * elfnn-riscv.c (riscv_elf_relocate_section): For STT_SECTION check,
481         verify sym non-NULL before using.  Add identical check using h.
482
483 2019-03-21  Sudakshina Das  <sudi.das@arm.com>
484
485         * elf-bfd.h (struct elf_backend_data): Add argument to
486         merge_gnu_properties.
487         * elf-properties.c (elf_merge_gnu_properties): Add argument to
488         itself and while calling bed->merge_gnu_properties.
489         (elf_merge_gnu_property_list): Update the calls for
490         elf_merge_gnu_properties.
491         * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
492         of --force-bti warning and add argument.
493         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
494         warning.
495         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
496         * elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
497         declaration.
498
499 2019-03-20  Sudakshina Das  <sudi.das@arm.com>
500
501         * elfxx-aarch64.c (_bfd_aarch64_elf_link_fixup_gnu_properties): Define.
502         * elfxx-aarch64.h (_bfd_aarch64_elf_link_fixup_gnu_properties): Declare.
503         (elf_backend_fixup_gnu_properties): Define for AArch64.
504
505 2019-03-18  Alan Modra  <amodra@gmail.com>
506
507         PR 24355
508         * elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub
509         for local iplt syms with ent->plt.offset == -1.  Remove ineffective
510         attempt at writing glink stubs only once.
511
512 2019-03-16  Alan Modra  <amodra@gmail.com>
513
514         PR 24337
515         * elf.c (_bfd_elf_rela_local_sym): Revert last change.
516         (_bfd_elf_rel_local_sym): Likewise.
517         * elflink.c (elf_link_input_bfd): Use bfd_und_section for
518         section of symbols with unrecognized shndx.
519
520 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
521
522         PR ld/24267
523         * coffgen.c (_bfd_coff_section_already_linked): Skip discarded
524         section.
525         * cofflink.c (coff_link_add_symbols): Check for symbols defined
526         in discarded section.
527
528 2019-03-15  Alan Modra  <amodra@gmail.com>
529
530         PR 24339
531         * elflink.c (elf_link_add_object_symbols): Bail out on a local
532         symbol after globals if elf_bad_symtab is not set.
533
534 2019-03-15  Alan Modra  <amodra@gmail.com>
535
536         PR 24337
537         * elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec.
538         (_bfd_elf_rel_local_sym): Likewise.
539
540 2019-03-15  Alan Modra  <amodra@gmail.com>
541
542         PR 24336
543         * elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
544         object files with sh_size not a multiple of sh_entsize.
545
546 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
547
548         PR ld/24338
549         * elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
550         input with bad relocation.
551
552 22019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
553
554         * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
555
556 2019-03-14  Nick Clifton  <nickc@redhat.com>
557
558         PR 24334
559         * dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
560         (save_section_vma): Initialise field to the number of entries in
561         the sec_vma table.
562         (section_vma_same): Check that the number of entries in the
563         sec_vma table matches the number of sections in the bfd.
564
565 2019-03-14  Nick Clifton  <nickc@redhat.com>
566
567         PR 24333
568         * elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
569         section owner pointer when adding the default symbol.
570
571 2019-03-14  Nick Clifton  <nickc@redhat.com>
572
573         PR 24332
574         * elflink.c (elf_link_add_object_symbols): Add new local variable
575         extversym_end.  Initialise it to point to the end of the version
576         symbol table, if present.  Check it when initialising and updating
577         the ever pointer.
578
579 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
580
581         * elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
582         (PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
583         (setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
584         (elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
585         and PLT_PAC_PLT.
586         (elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
587         (get_plt_type): Add case for DT_AARCH64_PAC_PLT.
588         (elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
589
590 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
591             Szabolcs Nagy  <szabolcs.nagy@arm.com>
592
593         * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
594         (aarch64_bti_pac_info): New.
595         (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
596         (bfd_elf32_aarch64_set_options): Likewise.
597         * bfd-in2.h: Regenerate
598         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
599         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
600         (elfNN_aarch64_small_plt0_bti_entry): New.
601         (elfNN_aarch64_small_plt_bti_entry): New.
602         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
603         (elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
604         (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
605         tlsdesc_plt_entry_size fields.
606         (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
607         (setup_plt_values): New helper function.
608         (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
609         bti enable type.
610         (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
611         fixed macros.
612         (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
613         (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
614         to plt stubs instead of fixed ones and update filling them according
615         to the need for bti.
616         (elfNN_aarch64_init_small_plt0_entry): Likewise.
617         (elfNN_aarch64_finish_dynamic_sections): Likewise.
618         (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
619         (elfNN_aarch64_plt_sym_val): Update size accordingly.
620         (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
621         is set.
622         (bfd_elfNN_get_synthetic_symtab): Define.
623         (elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
624         and mising BTI NOTE SECTION.
625
626
627 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
628
629         * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
630         linker created inputs from merge.
631         * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
632         GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
633         (elfNN_aarch64_link_setup_gnu_properties): New.
634         (elfNN_aarch64_merge_gnu_properties): New.
635         (elf_backend_setup_gnu_properties): Define for AArch64.
636         (elf_backend_merge_gnu_properties): Likewise.
637         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
638         (_bfd_aarch64_elf_parse_gnu_properties): Define.
639         (_bfd_aarch64_elf_merge_gnu_properties): Define.
640         * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
641         (_bfd_aarch64_elf_parse_gnu_properties): Declare.
642         (_bfd_aarch64_elf_merge_gnu_properties): Declare.
643         (elf_backend_parse_gnu_properties): Define for AArch64.
644
645 2019-03-13  H.J. Lu  <hongjiu.lu@intel.com>
646
647         PR ld/24322
648         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
649         merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
650
651 2019-03-12  Alan Modra  <amodra@gmail.com>
652
653         * coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
654         nmemb parameter.  Use bfd_alloc2.
655         (coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
656         Delete assertion.
657         (coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
658         (coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
659         * coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
660         doesn't overflow.
661         * elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
662         (assign_section_numbers): Style fix.
663         (swap_out_syms): Use bfd_malloc2.
664         (_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
665         overflow.
666         (_bfd_elf_make_empty_symbol): Style fix.
667         (elfobj_grok_stapsdt_note_1): Formatting.
668         * elfcode.h (elf_object_p): Use bfd_alloc2.
669         (elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
670         (elf_slurp_symbol_table): Use bfd_zalloc2.
671         (elf_slurp_reloc_table): Use bfd_alloc2.
672         (_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
673         * elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
674         size calculation doesn't overflow.
675         (elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
676         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
677         * pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
678
679 2019-03-08  Alan Modra  <amodra@gmail.com>
680
681         PR 24311
682         * merge.c (merge_strings): Return secinfo.  Don't pad section
683         to alignment here.
684         (_bfd_merge_sections): Pad section to alignment here, if input
685         sections contributing to merged output all pad to alignment.
686         Formatting.
687
688 2019-03-06  Nick Clifton  <nickc@redhat.com>
689
690         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
691         table pointer.
692         * coffgen.c (coff_find_nearest_line_with_names): Do not call
693         _bfd_dwarf2_find_symbol_bias if there is no symbol table available.
694
695 2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>
696
697         This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
698         2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
699
700         PR 20113
701         * elf32-s390.c (allocate_dynrelocs): Update comment.
702
703 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
704
705         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
706
707 2019-02-28  Nick Clifton  <nickc@redhat.com>
708
709         PR 24273
710         * elf.c (bfd_elf_string_from_elf_section): Check for a string
711         section that is not NUL terminated.
712
713 2019-02-27  H.J. Lu  <hongjiu.lu@intel.com>
714
715         PR ld/24276
716         * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
717         by linker when checking copy reloc on protected symbol.
718
719 2019-02-24  Alan Modra  <amodra@gmail.com>
720
721         PR 24144
722         * pdp11.c (set_section_contents): Revert 2015-02-24 change.
723
724 2019-02-20  Eric Tsai  <erictsai@cadence.com>
725
726         * elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
727         sections between the call site and call destination and adjust
728         call distance by the largest alignment.
729
730 2019-02-20  Alan Hayward  <alan.hayward@arm.com>
731
732         * elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
733         * elf.c (elfcore_grok_aarch_pauth): New function.
734         (elfcore_grok_note): Check for NT_ARM_PAC_MASK.
735         (elfcore_write_aarch_pauth): New function.
736         (elfcore_write_register_note): Check for AArch64 pauth section.
737
738 2019-02-20  Alan Modra  <amodra@gmail.com>
739
740         PR 24225
741         * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
742         return value.
743
744 2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
745
746         * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
747         Darwin hosts, not just or1k.
748         * configure: Regenerate.
749
750 2019-02-20  Alan Modra  <amodra@gmail.com>
751
752         PR 24236
753         * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
754         sentinel NUL to string buffer nearer to loop where it is used.
755         Don't go past sentinel when scanning strings, and don't write
756         NUL again.
757         * archive.c (do_slurp_coff_armap): Simplify string handling to
758         archive64.c style.
759
760 2019-02-19  Alan Modra  <amodra@gmail.com>
761
762         PR 24235
763         * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
764         attempting to prevent read past end of section.
765
766 2019-02-18  Alan Modra  <amodra@gmail.com>
767
768         PR 24225
769         * elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
770         PRIx64 to generate warning messages.  Print local sym names too.
771
772 2019-02-09  Vineet Gupta  <vgupta@synopsys.com>
773
774         * elf32-arc (INIT_SYM_STRING): Delete.
775         (FINI_SYM_STRING): Likewise.
776         (init_str): Likewise.
777         (fini_str): Likewise.
778
779 2019-02-08  Alan Modra  <amodra@gmail.com>
780
781         * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported
782         for bss-plt" warning to make it an error.
783
784 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
785
786         PR ld/18841
787         * elf32-sparc.c (elf32_sparc_reloc_type_class): Return
788         reloc_class_ifunc for ifunc symbols.
789         * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
790
791 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
792
793         * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak.
794         <R_VISIUM_PC16>: Use explicit range test to detect an overflow.
795
796 2019-02-07  Nick Clifton  <nickc@redhat.com>
797
798         * config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
799         into the definitely obsolete list.
800
801 2019-02-05  H.J. Lu  <hongjiu.lu@intel.com>
802
803         PR ld/24151
804         * elf64-x86-64.c (elf_x86_64_need_pic): Check
805         SYMBOL_DEFINED_NON_SHARED_P instead of def_regular.
806         (elf_x86_64_relocate_section): Move PIC check for PC-relative
807         relocations to ...
808         (elf_x86_64_check_relocs): Here.
809         (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P
810         to check if a symbol is defined in a non-shared object.
811         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New.
812
813 2019-01-21  Sergio Durigan Junior  <sergiodj@redhat.com>
814
815         * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
816         of 'labs' (and fix GCC warning).
817
818 2019-01-25  Nick Clifton  <nickc@redhat.com>
819
820         * po/ru.po: Updated Russian translation.
821
822 2019-01-23  Nick Clifton  <nickc@redhat.com>
823
824         * po/fr.po: Updated French translation.
825
826 2019-01-21  Nick Clifton  <nickc@redhat.com>
827
828         * po/pt.po: Updated Portuguese translation.
829         * po/uk.po: Updated Ukranian translation.
830
831 2019-01-21  Yuri Chornoivan  <yurchor@ukr.net>
832
833         PR 24108
834         * elf32-nds32.c (nds32_relocate_section): Add space between words
835         in error message.
836         * elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
837         error message.
838         (riscv_i_or_e_p): Likewise.
839         (riscv_merge_arch_attr_info): Likewise.
840
841 2019-01-19  Nick Clifton  <nickc@redhat.com>
842
843         * version.m4: Reset to 2.32.51
844         * configure: Regenerate.
845         * po/bfd.pot: Regenerate.
846
847 2018-06-24  Nick Clifton  <nickc@redhat.com>
848
849         2.32 branch created.
850
851 2019-01-16  Kito Cheng  <kito@andestech.com>
852
853         * elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
854         for OBJ_ATTR_PROC.
855
856 2019-01-16  Kito Cheng  <kito@andestech.com>
857             Nelson Chu  <nelson@andestech.com>
858
859         * elfnn-riscv.c (in_subsets): New.
860         (out_subsets): Likewise.
861         (merged_subsets): Likewise.
862         (riscv_std_ext_p): Likewise.
863         (riscv_non_std_ext_p): Likewise.
864         (riscv_std_sv_ext_p): Likewise.
865         (riscv_non_std_sv_ext_p): Likewise.
866         (riscv_version_mismatch): Likewise.
867         (riscv_i_or_e_p): Likewise.
868         (riscv_merge_std_ext): Likewise.
869         (riscv_merge_non_std_and_sv_ext): Likewise.
870         (riscv_merge_arch_attr_info): Likewise.
871         (riscv_merge_attributes): Likewise.
872         (_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
873
874         * elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
875         (elf_backend_obj_attrs_vendor): Define.
876         (elf_backend_obj_attrs_section_type): Likewise.
877         (elf_backend_obj_attrs_section): Likewise.
878         (elf_backend_obj_attrs_arg_type): Define as
879         riscv_elf_obj_attrs_arg_type.
880         * elfxx-riscv.c (riscv_estimate_digit): New.
881         (riscv_estimate_arch_strlen1): Likewise.
882         (riscv_estimate_arch_strlen): Likewise.
883         (riscv_arch_str1): Likewise.
884         (riscv_arch_str): Likewise.
885         * elfxx-riscv.h (riscv_arch_str): Declare.
886
887 2019-01-14  John Darrington <john@darrington.wattle.id.au>
888
889         * bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
890         * libbfd.h: regen.
891         * elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
892         source field.  (md_apply_fix): Apply final fix
893         to BFD_RELOC_S12Z_OPR.
894         * reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
895
896 2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
897
898         PR 20113
899         * elf32-s390.c (allocate_dynrelocs): Update comment.
900
901 2019-01-09  Andrew Paprocki  <andrew@ishiboo.com>
902
903         * warning.m4: Adjust egrep pattern for non-GNU compilers.
904         * configure: Regenerate.
905
906 2019-01-08  Alan Modra  <amodra@gmail.com>
907
908         PR 23699
909         PR 24065
910         * ihex.c (ihex_write_object_contents): Properly check 32-bit
911         address range.
912
913 2019-01-05  Yoshinori Sato <ysato@users.sourceforge.jp>
914
915         * bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
916         * bfd/bfd-in2.h: Regenerate.
917         * bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
918         * bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
919
920 2019-01-04  Lifang Xia  <lifang_xia@c-sky.com>
921
922         * config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
923         default target, little endian target is more suitable.
924
925 2019-01-04  Alan Modra  <amodra@gmail.com>
926
927         PR 24061
928         PR 21786
929         * coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
930         adjust all callers.
931         (EQ_VALUE_IN_FIELD): Likewise.
932         * coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.
933
934 2019-01-01  Alan Modra  <amodra@gmail.com>
935
936         Update year range in copyright notice of all files.
937
938 For older changes see ChangeLog-2018
939 \f
940 Copyright (C) 2019 Free Software Foundation, Inc.
941
942 Copying and distribution of this file, with or without modification,
943 are permitted in any medium without royalty provided the copyright
944 notice and this notice are preserved.
945
946 Local Variables:
947 mode: change-log
948 left-margin: 8
949 fill-column: 74
950 version-control: never
951 End: