[PATCH][PUSHED] readelf: Do not require EI_OSABI for IFUNC.

Martin Liška mliska@suse.cz
Thu Nov 24 12:18:33 GMT 2022


Pushed as it's pre-approved by Nick.

Cheers,
Martin

	PR29718

binutils/ChangeLog:

	* readelf.c (get_symbol_type): Consider STT_GNU_IFUNC as
	reserved name.
---
 binutils/readelf.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 1bd6df9448a..365c1ede0a1 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12724,6 +12724,9 @@ get_symbol_type (Filedata * filedata, unsigned int type)
     case STT_TLS:	return "TLS";
     case STT_RELC:      return "RELC";
     case STT_SRELC:     return "SRELC";
+    case STT_GNU_IFUNC: return "IFUNC"; /* As mentioned in PR29718, do not
+					   require EI_OSABI as IFUNC is
+					   a reseved name.  */
     default:
       if (type >= STT_LOPROC && type <= STT_HIPROC)
 	{
@@ -12748,11 +12751,6 @@ get_symbol_type (Filedata * filedata, unsigned int type)
 		return "HP_STUB";
 	    }
 
-	  if (type == STT_GNU_IFUNC
-	      && (filedata->file_header.e_ident[EI_OSABI] == ELFOSABI_GNU
-		  || filedata->file_header.e_ident[EI_OSABI] == ELFOSABI_FREEBSD))
-	    return "IFUNC";
-
 	  snprintf (buff, sizeof (buff), _("<OS specific>: %d"), type);
 	}
       else
-- 
2.38.1



More information about the Binutils mailing list