From: Indu Bhagat Date: Fri, 25 Oct 2024 14:33:19 -0700 To: jpoimboe@kernel.org Subject: [PATCH 1/3] ld: fix PR/32297 X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 From: Josh Poimboeuf When _creating_ SFrame information for the linker created .plt.sec, the code correctly checks for presence of .plt.sec. When _writing_ the SFrame section for the corresponding .plt.sec, however, the conditionals were wrongly checking for splt. This was causing an assertion at link time. This issue has been known to affect glibc build with SFrame enabled. No testcase is added just yet. A later commit ensures correct SFrame stack trace information is created for .plt.got. A test case (where only .plt and .plt.got are created) is added then. PR/32297 sframe: bfd assertion with empty main on IBT enabled system ChangeLog: PR/32297 * bfd/elfxx-x86.c (_bfd_x86_elf_late_size_sections): Check for plt_second member not for splt. --- bfd/elfxx-x86.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index dd951b91f50..0d83ce57d4f 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -2680,8 +2680,8 @@ _bfd_x86_elf_late_size_sections (bfd *output_bfd, _bfd_x86_elf_write_sframe_plt (output_bfd, info, SFRAME_PLT); if (htab->plt_second_sframe != NULL - && htab->elf.splt != NULL - && htab->elf.splt->size != 0 + && htab->plt_second != NULL + && htab->plt_second->size != 0 && htab->plt_second_sframe->contents == NULL) _bfd_x86_elf_write_sframe_plt (output_bfd, info, SFRAME_PLT_SEC); } -- 2.43.0