[PATCH] Add readelf support for SHN_MIPS_SCOMMON/SHN_MIPS_SUNDEFINED

Thiemo Seufer ths@networkno.de
Mon Jul 31 15:34:00 GMT 2006


Hello All,

the appended patch adds support to readelf to display the mips specific
small common and small undefined sections.

Ok to apply?


Thiemo


2006-07-31  Thiemo Seufer  <ths@mips.com>
            Nigel Stephens  <nigel@mips.com>

	* readelf.c (dump_relocations): Handle MIPS-specific
	SHN_MIPS_SCOMMON and SHN_MIPS_SUNDEFINED. 
	(get_symbol_index_type): Similarly.

Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.344
diff -u -p -r1.344 readelf.c
--- binutils/readelf.c	10 Jul 2006 21:40:24 -0000	1.344
+++ binutils/readelf.c	31 Jul 2006 14:10:48 -0000
@@ -1206,6 +1206,12 @@ dump_relocations (FILE *file,
 			sec_name = "ABS";
 		      else if (psym->st_shndx == SHN_COMMON)
 			sec_name = "COMMON";
+		      else if (elf_header.e_machine == EM_MIPS
+			       && psym->st_shndx == SHN_MIPS_SCOMMON)
+			sec_name = "SCOMMON";
+		      else if (elf_header.e_machine == EM_MIPS
+			       && psym->st_shndx == SHN_MIPS_SUNDEFINED)
+			sec_name = "SUNDEF";
 		      else if (elf_header.e_machine == EM_X86_64
 			       && psym->st_shndx == SHN_X86_64_LCOMMON)
 			sec_name = "LARGE_COMMON";
@@ -6872,6 +6878,12 @@ get_symbol_index_type (unsigned int type
       else if (elf_header.e_machine == EM_X86_64
 	       && type == SHN_X86_64_LCOMMON)
 	return "LARGE_COM";
+      else if (type == SHN_MIPS_SCOMMON
+	       && elf_header.e_machine == EM_MIPS)
+	return "SCOM";
+      else if (type == SHN_MIPS_SUNDEFINED
+	       && elf_header.e_machine == EM_MIPS)
+	return "SUND";
       else if (type >= SHN_LOPROC && type <= SHN_HIPROC)
 	sprintf (buff, "PRC[0x%04x]", type);
       else if (type >= SHN_LOOS && type <= SHN_HIOS)



More information about the Binutils mailing list