svn commit: r289076 - in head/contrib/elftoolchain: common readelf

Alexander Kabaev kan at FreeBSD.org
Fri Oct 9 18:39:56 UTC 2015


Author: kan
Date: Fri Oct  9 18:39:55 2015
New Revision: 289076
URL: https://svnweb.freebsd.org/changeset/base/289076

Log:
  Add definitions for MIPS TLS relocations to elftoolchain.
  
  This makes our readelf more useful when looking for TLS-related
  issues.

Modified:
  head/contrib/elftoolchain/common/elfdefinitions.h
  head/contrib/elftoolchain/readelf/readelf.c

Modified: head/contrib/elftoolchain/common/elfdefinitions.h
==============================================================================
--- head/contrib/elftoolchain/common/elfdefinitions.h	Fri Oct  9 18:39:52 2015	(r289075)
+++ head/contrib/elftoolchain/common/elfdefinitions.h	Fri Oct  9 18:39:55 2015	(r289076)
@@ -1659,25 +1659,38 @@ _ELF_DEFINE_RELOC(R_IA_64_DTPREL64MSB,		
 _ELF_DEFINE_RELOC(R_IA_64_DTPREL64LSB,		0xB7)	\
 _ELF_DEFINE_RELOC(R_IA_64_LTOFF_DTPREL22,	0xBA)
 
-#define	_ELF_DEFINE_MIPS_RELOCATIONS()		\
-_ELF_DEFINE_RELOC(R_MIPS_NONE,		0)	\
-_ELF_DEFINE_RELOC(R_MIPS_16,		1)	\
-_ELF_DEFINE_RELOC(R_MIPS_32,		2)	\
-_ELF_DEFINE_RELOC(R_MIPS_REL32,		3)	\
-_ELF_DEFINE_RELOC(R_MIPS_26,		4)	\
-_ELF_DEFINE_RELOC(R_MIPS_HI16,		5)	\
-_ELF_DEFINE_RELOC(R_MIPS_LO16,		6)	\
-_ELF_DEFINE_RELOC(R_MIPS_GPREL16,	7)	\
-_ELF_DEFINE_RELOC(R_MIPS_LITERAL, 	8)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOT16,		9)	\
-_ELF_DEFINE_RELOC(R_MIPS_PC16,		10)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALL16,	11)	\
-_ELF_DEFINE_RELOC(R_MIPS_GPREL32,	12)	\
-_ELF_DEFINE_RELOC(R_MIPS_64,		18)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOTHI16,	21)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOTLO16,	22)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALLHI16,	30)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALLLO16,	31)
+#define	_ELF_DEFINE_MIPS_RELOCATIONS()			\
+_ELF_DEFINE_RELOC(R_MIPS_NONE,			0)	\
+_ELF_DEFINE_RELOC(R_MIPS_16,			1)	\
+_ELF_DEFINE_RELOC(R_MIPS_32,			2)	\
+_ELF_DEFINE_RELOC(R_MIPS_REL32,			3)	\
+_ELF_DEFINE_RELOC(R_MIPS_26,			4)	\
+_ELF_DEFINE_RELOC(R_MIPS_HI16,			5)	\
+_ELF_DEFINE_RELOC(R_MIPS_LO16,			6)	\
+_ELF_DEFINE_RELOC(R_MIPS_GPREL16,		7)	\
+_ELF_DEFINE_RELOC(R_MIPS_LITERAL, 		8)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOT16,			9)	\
+_ELF_DEFINE_RELOC(R_MIPS_PC16,			10)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALL16,		11)	\
+_ELF_DEFINE_RELOC(R_MIPS_GPREL32,		12)	\
+_ELF_DEFINE_RELOC(R_MIPS_64,			18)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOTHI16,		21)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOTLO16,		22)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALLHI16,		30)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALLLO16,		31)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD32		38)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL32		39)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD64		40)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL64		41)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_GD			42)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_LDM		43)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_HI16	44)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_LO16	45)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_GOTTPREL		46)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL32		47)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL64		48)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_HI16		49)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_LO16		50)
 
 #define	_ELF_DEFINE_PPC32_RELOCATIONS()		\
 _ELF_DEFINE_RELOC(R_PPC_NONE,		0)	\

Modified: head/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- head/contrib/elftoolchain/readelf/readelf.c	Fri Oct  9 18:39:52 2015	(r289075)
+++ head/contrib/elftoolchain/readelf/readelf.c	Fri Oct  9 18:39:55 2015	(r289076)
@@ -1295,6 +1295,20 @@ r_type(unsigned int mach, unsigned int t
 		case 22: return "R_MIPS_GOTLO16";
 		case 30: return "R_MIPS_CALLHI16";
 		case 31: return "R_MIPS_CALLLO16";
+		case 38: return "R_MIPS_TLS_DTPMOD32";
+		case 39: return "R_MIPS_TLS_DTPREL32";
+		case 40: return "R_MIPS_TLS_DTPMOD64";
+		case 41: return "R_MIPS_TLS_DTPREL64";
+		case 42: return "R_MIPS_TLS_GD";
+		case 43: return "R_MIPS_TLS_LDM";
+		case 44: return "R_MIPS_TLS_DTPREL_HI16";
+		case 45: return "R_MIPS_TLS_DTPREL_LO16";
+		case 46: return "R_MIPS_TLS_GOTTPREL";
+		case 47: return "R_MIPS_TLS_TPREL32";
+		case 48: return "R_MIPS_TLS_TPREL64";
+		case 49: return "R_MIPS_TLS_TPREL_HI16";
+		case 50: return "R_MIPS_TLS_TPREL_LO16";
+
 		default: return "";
 		}
 	case EM_PPC:


More information about the svn-src-head mailing list