RISC-V: Fix linker crash in section symbol check.
[external/binutils.git] / bfd / ChangeLog
1 2019-03-21  Jim Wilson  <jimw@sifive.com>
2
3         PR 24365
4         * elfnn-riscv.c (riscv_elf_relocate_section): For STT_SECTION check,
5         verify sym non-NULL before using.  Add identical check using h.
6
7 2019-03-21  Sudakshina Das  <sudi.das@arm.com>
8
9         * elf-bfd.h (struct elf_backend_data): Add argument to
10         merge_gnu_properties.
11         * elf-properties.c (elf_merge_gnu_properties): Add argument to
12         itself and while calling bed->merge_gnu_properties.
13         (elf_merge_gnu_property_list): Update the calls for
14         elf_merge_gnu_properties.
15         * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
16         of --force-bti warning and add argument.
17         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
18         warning.
19         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
20         * elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
21         declaration.
22
23 2019-03-20  Sudakshina Das  <sudi.das@arm.com>
24
25         * elfxx-aarch64.c (_bfd_aarch64_elf_link_fixup_gnu_properties): Define.
26         * elfxx-aarch64.h (_bfd_aarch64_elf_link_fixup_gnu_properties): Declare.
27         (elf_backend_fixup_gnu_properties): Define for AArch64.
28
29 2019-03-18  Alan Modra  <amodra@gmail.com>
30
31         PR 24355
32         * elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub
33         for local iplt syms with ent->plt.offset == -1.  Remove ineffective
34         attempt at writing glink stubs only once.
35
36 2019-03-16  Alan Modra  <amodra@gmail.com>
37
38         PR 24337
39         * elf.c (_bfd_elf_rela_local_sym): Revert last change.
40         (_bfd_elf_rel_local_sym): Likewise.
41         * elflink.c (elf_link_input_bfd): Use bfd_und_section for
42         section of symbols with unrecognized shndx.
43
44 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
45
46         PR ld/24267
47         * coffgen.c (_bfd_coff_section_already_linked): Skip discarded
48         section.
49         * cofflink.c (coff_link_add_symbols): Check for symbols defined
50         in discarded section.
51
52 2019-03-15  Alan Modra  <amodra@gmail.com>
53
54         PR 24339
55         * elflink.c (elf_link_add_object_symbols): Bail out on a local
56         symbol after globals if elf_bad_symtab is not set.
57
58 2019-03-15  Alan Modra  <amodra@gmail.com>
59
60         PR 24337
61         * elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec.
62         (_bfd_elf_rel_local_sym): Likewise.
63
64 2019-03-15  Alan Modra  <amodra@gmail.com>
65
66         PR 24336
67         * elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
68         object files with sh_size not a multiple of sh_entsize.
69
70 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
71
72         PR ld/24338
73         * elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
74         input with bad relocation.
75
76 22019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
77
78         * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
79
80 2019-03-14  Nick Clifton  <nickc@redhat.com>
81
82         PR 24334
83         * dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
84         (save_section_vma): Initialise field to the number of entries in
85         the sec_vma table.
86         (section_vma_same): Check that the number of entries in the
87         sec_vma table matches the number of sections in the bfd.
88
89 2019-03-14  Nick Clifton  <nickc@redhat.com>
90
91         PR 24333
92         * elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
93         section owner pointer when adding the default symbol.
94
95 2019-03-14  Nick Clifton  <nickc@redhat.com>
96
97         PR 24332
98         * elflink.c (elf_link_add_object_symbols): Add new local variable
99         extversym_end.  Initialise it to point to the end of the version
100         symbol table, if present.  Check it when initialising and updating
101         the ever pointer.
102
103 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
104
105         * elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
106         (PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
107         (setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
108         (elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
109         and PLT_PAC_PLT.
110         (elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
111         (get_plt_type): Add case for DT_AARCH64_PAC_PLT.
112         (elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
113
114 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
115             Szabolcs Nagy  <szabolcs.nagy@arm.com>
116
117         * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
118         (aarch64_bti_pac_info): New.
119         (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
120         (bfd_elf32_aarch64_set_options): Likewise.
121         * bfd-in2.h: Regenerate
122         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
123         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
124         (elfNN_aarch64_small_plt0_bti_entry): New.
125         (elfNN_aarch64_small_plt_bti_entry): New.
126         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
127         (elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
128         (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
129         tlsdesc_plt_entry_size fields.
130         (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
131         (setup_plt_values): New helper function.
132         (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
133         bti enable type.
134         (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
135         fixed macros.
136         (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
137         (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
138         to plt stubs instead of fixed ones and update filling them according
139         to the need for bti.
140         (elfNN_aarch64_init_small_plt0_entry): Likewise.
141         (elfNN_aarch64_finish_dynamic_sections): Likewise.
142         (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
143         (elfNN_aarch64_plt_sym_val): Update size accordingly.
144         (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
145         is set.
146         (bfd_elfNN_get_synthetic_symtab): Define.
147         (elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
148         and mising BTI NOTE SECTION.
149
150
151 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
152
153         * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
154         linker created inputs from merge.
155         * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
156         GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
157         (elfNN_aarch64_link_setup_gnu_properties): New.
158         (elfNN_aarch64_merge_gnu_properties): New.
159         (elf_backend_setup_gnu_properties): Define for AArch64.
160         (elf_backend_merge_gnu_properties): Likewise.
161         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
162         (_bfd_aarch64_elf_parse_gnu_properties): Define.
163         (_bfd_aarch64_elf_merge_gnu_properties): Define.
164         * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
165         (_bfd_aarch64_elf_parse_gnu_properties): Declare.
166         (_bfd_aarch64_elf_merge_gnu_properties): Declare.
167         (elf_backend_parse_gnu_properties): Define for AArch64.
168
169 2019-03-13  H.J. Lu  <hongjiu.lu@intel.com>
170
171         PR ld/24322
172         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
173         merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
174
175 2019-03-12  Alan Modra  <amodra@gmail.com>
176
177         * coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
178         nmemb parameter.  Use bfd_alloc2.
179         (coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
180         Delete assertion.
181         (coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
182         (coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
183         * coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
184         doesn't overflow.
185         * elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
186         (assign_section_numbers): Style fix.
187         (swap_out_syms): Use bfd_malloc2.
188         (_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
189         overflow.
190         (_bfd_elf_make_empty_symbol): Style fix.
191         (elfobj_grok_stapsdt_note_1): Formatting.
192         * elfcode.h (elf_object_p): Use bfd_alloc2.
193         (elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
194         (elf_slurp_symbol_table): Use bfd_zalloc2.
195         (elf_slurp_reloc_table): Use bfd_alloc2.
196         (_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
197         * elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
198         size calculation doesn't overflow.
199         (elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
200         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
201         * pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
202
203 2019-03-08  Alan Modra  <amodra@gmail.com>
204
205         PR 24311
206         * merge.c (merge_strings): Return secinfo.  Don't pad section
207         to alignment here.
208         (_bfd_merge_sections): Pad section to alignment here, if input
209         sections contributing to merged output all pad to alignment.
210         Formatting.
211
212 2019-03-06  Nick Clifton  <nickc@redhat.com>
213
214         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
215         table pointer.
216         * coffgen.c (coff_find_nearest_line_with_names): Do not call
217         _bfd_dwarf2_find_symbol_bias if there is no symbol table available.
218
219 2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>
220
221         This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
222         2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
223
224         PR 20113
225         * elf32-s390.c (allocate_dynrelocs): Update comment.
226
227 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
228
229         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
230
231 2019-02-28  Nick Clifton  <nickc@redhat.com>
232
233         PR 24273
234         * elf.c (bfd_elf_string_from_elf_section): Check for a string
235         section that is not NUL terminated.
236
237 2019-02-27  H.J. Lu  <hongjiu.lu@intel.com>
238
239         PR ld/24276
240         * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
241         by linker when checking copy reloc on protected symbol.
242
243 2019-02-24  Alan Modra  <amodra@gmail.com>
244
245         PR 24144
246         * pdp11.c (set_section_contents): Revert 2015-02-24 change.
247
248 2019-02-20  Eric Tsai  <erictsai@cadence.com>
249
250         * elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
251         sections between the call site and call destination and adjust
252         call distance by the largest alignment.
253
254 2019-02-20  Alan Hayward  <alan.hayward@arm.com>
255
256         * elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
257         * elf.c (elfcore_grok_aarch_pauth): New function.
258         (elfcore_grok_note): Check for NT_ARM_PAC_MASK.
259         (elfcore_write_aarch_pauth): New function.
260         (elfcore_write_register_note): Check for AArch64 pauth section.
261
262 2019-02-20  Alan Modra  <amodra@gmail.com>
263
264         PR 24225
265         * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
266         return value.
267
268 2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
269
270         * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
271         Darwin hosts, not just or1k.
272         * configure: Regenerate.
273
274 2019-02-20  Alan Modra  <amodra@gmail.com>
275
276         PR 24236
277         * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
278         sentinel NUL to string buffer nearer to loop where it is used.
279         Don't go past sentinel when scanning strings, and don't write
280         NUL again.
281         * archive.c (do_slurp_coff_armap): Simplify string handling to
282         archive64.c style.
283
284 2019-02-19  Alan Modra  <amodra@gmail.com>
285
286         PR 24235
287         * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
288         attempting to prevent read past end of section.
289
290 2019-02-18  Alan Modra  <amodra@gmail.com>
291
292         PR 24225
293         * elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
294         PRIx64 to generate warning messages.  Print local sym names too.
295
296 2019-02-09  Vineet Gupta  <vgupta@synopsys.com>
297
298         * elf32-arc (INIT_SYM_STRING): Delete.
299         (FINI_SYM_STRING): Likewise.
300         (init_str): Likewise.
301         (fini_str): Likewise.
302
303 2019-02-08  Alan Modra  <amodra@gmail.com>
304
305         * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported
306         for bss-plt" warning to make it an error.
307
308 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
309
310         PR ld/18841
311         * elf32-sparc.c (elf32_sparc_reloc_type_class): Return
312         reloc_class_ifunc for ifunc symbols.
313         * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
314
315 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
316
317         * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak.
318         <R_VISIUM_PC16>: Use explicit range test to detect an overflow.
319
320 2019-02-07  Nick Clifton  <nickc@redhat.com>
321
322         * config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
323         into the definitely obsolete list.
324
325 2019-02-05  H.J. Lu  <hongjiu.lu@intel.com>
326
327         PR ld/24151
328         * elf64-x86-64.c (elf_x86_64_need_pic): Check
329         SYMBOL_DEFINED_NON_SHARED_P instead of def_regular.
330         (elf_x86_64_relocate_section): Move PIC check for PC-relative
331         relocations to ...
332         (elf_x86_64_check_relocs): Here.
333         (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P
334         to check if a symbol is defined in a non-shared object.
335         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New.
336
337 2019-01-21  Sergio Durigan Junior  <sergiodj@redhat.com>
338
339         * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
340         of 'labs' (and fix GCC warning).
341
342 2019-01-25  Nick Clifton  <nickc@redhat.com>
343
344         * po/ru.po: Updated Russian translation.
345
346 2019-01-23  Nick Clifton  <nickc@redhat.com>
347
348         * po/fr.po: Updated French translation.
349
350 2019-01-21  Nick Clifton  <nickc@redhat.com>
351
352         * po/pt.po: Updated Portuguese translation.
353         * po/uk.po: Updated Ukranian translation.
354
355 2019-01-21  Yuri Chornoivan  <yurchor@ukr.net>
356
357         PR 24108
358         * elf32-nds32.c (nds32_relocate_section): Add space between words
359         in error message.
360         * elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
361         error message.
362         (riscv_i_or_e_p): Likewise.
363         (riscv_merge_arch_attr_info): Likewise.
364
365 2019-01-19  Nick Clifton  <nickc@redhat.com>
366
367         * version.m4: Reset to 2.32.51
368         * configure: Regenerate.
369         * po/bfd.pot: Regenerate.
370
371 2018-06-24  Nick Clifton  <nickc@redhat.com>
372
373         2.32 branch created.
374
375 2019-01-16  Kito Cheng  <kito@andestech.com>
376
377         * elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
378         for OBJ_ATTR_PROC.
379
380 2019-01-16  Kito Cheng  <kito@andestech.com>
381             Nelson Chu  <nelson@andestech.com>
382
383         * elfnn-riscv.c (in_subsets): New.
384         (out_subsets): Likewise.
385         (merged_subsets): Likewise.
386         (riscv_std_ext_p): Likewise.
387         (riscv_non_std_ext_p): Likewise.
388         (riscv_std_sv_ext_p): Likewise.
389         (riscv_non_std_sv_ext_p): Likewise.
390         (riscv_version_mismatch): Likewise.
391         (riscv_i_or_e_p): Likewise.
392         (riscv_merge_std_ext): Likewise.
393         (riscv_merge_non_std_and_sv_ext): Likewise.
394         (riscv_merge_arch_attr_info): Likewise.
395         (riscv_merge_attributes): Likewise.
396         (_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
397
398         * elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
399         (elf_backend_obj_attrs_vendor): Define.
400         (elf_backend_obj_attrs_section_type): Likewise.
401         (elf_backend_obj_attrs_section): Likewise.
402         (elf_backend_obj_attrs_arg_type): Define as
403         riscv_elf_obj_attrs_arg_type.
404         * elfxx-riscv.c (riscv_estimate_digit): New.
405         (riscv_estimate_arch_strlen1): Likewise.
406         (riscv_estimate_arch_strlen): Likewise.
407         (riscv_arch_str1): Likewise.
408         (riscv_arch_str): Likewise.
409         * elfxx-riscv.h (riscv_arch_str): Declare.
410
411 2019-01-14  John Darrington <john@darrington.wattle.id.au>
412
413         * bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
414         * libbfd.h: regen.
415         * elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
416         source field.  (md_apply_fix): Apply final fix
417         to BFD_RELOC_S12Z_OPR.
418         * reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
419
420 2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
421
422         PR 20113
423         * elf32-s390.c (allocate_dynrelocs): Update comment.
424
425 2019-01-09  Andrew Paprocki  <andrew@ishiboo.com>
426
427         * warning.m4: Adjust egrep pattern for non-GNU compilers.
428         * configure: Regenerate.
429
430 2019-01-08  Alan Modra  <amodra@gmail.com>
431
432         PR 23699
433         PR 24065
434         * ihex.c (ihex_write_object_contents): Properly check 32-bit
435         address range.
436
437 2019-01-05  Yoshinori Sato <ysato@users.sourceforge.jp>
438
439         * bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
440         * bfd/bfd-in2.h: Regenerate.
441         * bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
442         * bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
443
444 2019-01-04  Lifang Xia  <lifang_xia@c-sky.com>
445
446         * config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
447         default target, little endian target is more suitable.
448
449 2019-01-04  Alan Modra  <amodra@gmail.com>
450
451         PR 24061
452         PR 21786
453         * coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
454         adjust all callers.
455         (EQ_VALUE_IN_FIELD): Likewise.
456         * coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.
457
458 2019-01-01  Alan Modra  <amodra@gmail.com>
459
460         Update year range in copyright notice of all files.
461
462 For older changes see ChangeLog-2018
463 \f
464 Copyright (C) 2019 Free Software Foundation, Inc.
465
466 Copying and distribution of this file, with or without modification,
467 are permitted in any medium without royalty provided the copyright
468 notice and this notice are preserved.
469
470 Local Variables:
471 mode: change-log
472 left-margin: 8
473 fill-column: 74
474 version-control: never
475 End: