From 918dc783deadc206691dcc20bf8aa6c807c10244 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 25 Aug 2020 01:55:38 +0930 Subject: [PATCH] PR26489, ASAN: ppc64_elf_size_stubs elf64-ppc.c:13389 Stub sections are inserted after sec_info is sized, so have higher ids. Test flags that will exclude stub sections before looking at the sec_info array. PR 26489 * elf64-ppc.c (ppc64_elf_size_stubs): Test code_sec->has_toc_reloc and code_sec->makes_toc_func_call before sec_info[code_sec->id]. --- bfd/ChangeLog | 6 ++++++ bfd/elf64-ppc.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8f062b085f3..ca79c4e5830 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-08-25 Alan Modra + + PR 26489 + * elf64-ppc.c (ppc64_elf_size_stubs): Test code_sec->has_toc_reloc + and code_sec->makes_toc_func_call before sec_info[code_sec->id]. + 2020-08-25 Alan Modra PR 26492 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 5a21bfafbcf..d144796b466 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -13426,10 +13426,10 @@ ppc64_elf_size_stubs (struct bfd_link_info *info) fact a call needing a TOC adjustment. */ if ((code_sec != NULL && code_sec->output_section != NULL - && (htab->sec_info[code_sec->id].toc_off - != htab->sec_info[section->id].toc_off) && (code_sec->has_toc_reloc - || code_sec->makes_toc_func_call)) + || code_sec->makes_toc_func_call) + && (htab->sec_info[code_sec->id].toc_off + != htab->sec_info[section->id].toc_off)) || (((hash ? hash->elf.other : sym->st_other) & STO_PPC64_LOCAL_MASK) == 1 << STO_PPC64_LOCAL_BIT)) -- 2.30.2