[binutils-gdb] bfd: sframe: fix PR ld/33199

Indu Bhagat ibhagat@sourceware.org
Thu Aug 14 16:15:17 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=cfebee1869110153f943e7e18de0013e649e420c

commit cfebee1869110153f943e7e18de0013e649e420c
Author: Indu Bhagat <indu.bhagat@oracle.com>
Date:   Thu Aug 14 09:08:31 2025 -0700

    bfd: sframe: fix PR ld/33199
    
    Fix PR ld/33199 SEGV in _bfd_x86_elf_create_sframe_plt
    
    Currently, the selection for sframe_plt was not being done (and simply
    set to NULL) for the case when !normal_target, causing SEGV on Solaris.
    Initialize sframe_plt to init_table->sframe_lazy_plt when lazy_plt is
    true, and NULL otherwise.  This is in line with htab->non_lazy_plt being
    set to NULL for !normal_target.
    
    bfd/
            PR ld/33199
            * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties):
            Setup sframe_plt for !normal_target.

Diff:
---
 bfd/elfxx-x86.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 3dc00956eef..e2c61b85fc6 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -4604,6 +4604,8 @@ _bfd_x86_elf_link_setup_gnu_properties
 	    htab->sframe_plt = init_table->sframe_non_lazy_plt;
 	}
     }
+  else if (lazy_plt)
+    htab->sframe_plt = init_table->sframe_lazy_plt;
   else
     htab->sframe_plt = NULL;


More information about the Binutils-cvs mailing list