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