[binutils-gdb] x86: Check if needed dynamic relocation section is created

"H.J. Lu via Binutils-cvs" <[email protected]>
Newsgroups gmane.comp.gnu.binutils.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0a84e5602163e9f95a6f137ced28aff0507ce790

commit 0a84e5602163e9f95a6f137ced28aff0507ce790
Author: H.J. Lu <[email protected]>
Date:   Sat Aug 1 11:23:39 2026 +0800

    x86: Check if needed dynamic relocation section is created
    
    Since elf_link_read_relocs_from_section aborts for bad relocation,
    further relocations won't be processed and needed dynamic relocation
    section won't be created.  Skip dynamic relocation count if needed
    dynamic relocation section hasn't been created.
    
            PR ld/34448
            * elfxx-x86.c (_bfd_x86_elf_late_size_sections): Skip dynamic
            relocation count if needed dynamic relocation section hasn't been
            created.
    
    Signed-off-by: H.J. Lu <[email protected]>

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

diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index da5fc3886ce..8935bfc9c77 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2331,6 +2331,19 @@ _bfd_x86_elf_late_size_sections (struct bfd_link_info *info)
 	      else if (p->count != 0)
 		{
 		  srel = elf_section_data (p->sec)->sreloc;
+		  if (!srel)
+		    {
+		      /* NB: Since elf_link_read_relocs_from_section
+			 aborts for bad relocation, further relocations
+			 won't be processed and needed dynamic relocation
+			 section won't be created afterwards.  */
+		      _bfd_error_handler
+			/* xgettext:c-format */
+			(_("%pB: dynamic relocation section is needed "
+			   "for section `%pA'"),
+			 p->sec->owner, p->sec);
+		      continue;
+		    }
 		  srel->size += p->count * htab->sizeof_reloc;
 		  if ((p->sec->output_section->flags & SEC_READONLY) != 0
 		      && (info->flags & DF_TEXTREL) == 0)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.