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