]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
bfd: sframe: fix PR ld/33199
authorIndu Bhagat <indu.bhagat@oracle.com>
Thu, 14 Aug 2025 16:08:31 +0000 (09:08 -0700)
committerIndu Bhagat <indu.bhagat@oracle.com>
Thu, 14 Aug 2025 16:08:31 +0000 (09:08 -0700)
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.

bfd/elfxx-x86.c

index 3dc00956eeff8ea7fc9bfbf9a4758ef25cee7c97..e2c61b85fc628654d4da08cfa90b8fbc47cdcdc9 100644 (file)
@@ -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;