mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
PR32067, ld -Wl,--oformat,binary crash in _bfd_elf_link_keep_memory
The direct fix for this segfault is to test for a non-NULL bed in _bfd_elf_link_keep_memory, but also there isn't much point in running code for LTO if the output is binary. PR 32067 * elflink.c (_bfd_elf_link_keep_memory): Test for non-NULL bed. (elf_link_add_object_symbols): Don't run the loop setting non_ir_ref_regular if the output hash table is not ELF.
This commit is contained in:
parent
e34f53c5e6
commit
ec8f5671b4
@ -64,7 +64,7 @@ _bfd_elf_link_keep_memory (struct bfd_link_info *info)
|
||||
this is opt-in by each backend. */
|
||||
const struct elf_backend_data *bed
|
||||
= get_elf_backend_data (info->output_bfd);
|
||||
if (bed->use_mmap)
|
||||
if (bed != NULL && bed->use_mmap)
|
||||
return false;
|
||||
#endif
|
||||
bfd *abfd;
|
||||
@ -5694,7 +5694,8 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
||||
&& !bfd_link_relocatable (info)
|
||||
&& (abfd->flags & BFD_PLUGIN) == 0
|
||||
&& !just_syms
|
||||
&& extsymcount)
|
||||
&& extsymcount != 0
|
||||
&& is_elf_hash_table (&htab->root))
|
||||
{
|
||||
int r_sym_shift;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user