[binutils-gdb] x86: Skip undefined symbol when finishing DT_RELR

H.J. Lu hjl@sourceware.org
Sat Feb 5 15:38:53 GMT 2022


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

commit a9e61227c09c03d5cb54f9c88520baffc1d86c86
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Feb 5 07:26:31 2022 -0800

    x86: Skip undefined symbol when finishing DT_RELR
    
    Don't abort for undefined symbol when finishing DT_RELR.  Instead, skip
    undefined symbol.  Undefined symbol will be reported by relocate_section.
    
            * elfxx-x86.c (elf_x86_size_or_finish_relative_reloc): Skip
            undefined symbol in finishing phase.

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

diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index da8a488db36..7ac2411fc80 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -1484,11 +1484,13 @@ elf_x86_size_or_finish_relative_reloc
 		}
 	      else
 		{
-		  /* Allow undefined symbol only at the sizing phase.  */
+		  /* Allow undefined symbol only at the sizing phase.
+		     Otherwise skip undefined symbol here.  Undefined
+		     symbol will be reported by relocate_section.  */
 		  if (outrel == NULL)
 		    relocation = 0;
 		  else
-		    abort ();
+		    continue;
 		}
 	    }
 	  else


More information about the Binutils-cvs mailing list