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