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