summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2017-01-25 00:44:21 +0000
committeremaste <emaste@FreeBSD.org>2017-01-25 00:44:21 +0000
commit59522422d6d0ca53d9b19d6ac7213481ce7a6321 (patch)
treec248040faa641a541f2aeb5cf190bd2da89896fb
parent22001f91a93303a76ee4e4458d750a898bfe4836 (diff)
downloadFreeBSD-src-59522422d6d0ca53d9b19d6ac7213481ce7a6321.zip
FreeBSD-src-59522422d6d0ca53d9b19d6ac7213481ce7a6321.tar.gz
readelf: add PPC64 relocation types
MFC of r311941, r311942
-rw-r--r--contrib/elftoolchain/libelftc/elftc_reloc_type_str.c114
1 files changed, 114 insertions, 0 deletions
diff --git a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c
index 19b23ad..14bcb53 100644
--- a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c
+++ b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c
@@ -501,6 +501,120 @@ elftc_reloc_type_str(unsigned int mach, unsigned int type)
case 116: return "R_PPC_EMB_RELSDA";
}
break;
+ case EM_PPC64:
+ switch(type) {
+ case 0: return "R_PPC64_NONE";
+ case 1: return "R_PPC64_ADDR32";
+ case 2: return "R_PPC64_ADDR24";
+ case 3: return "R_PPC64_ADDR16";
+ case 4: return "R_PPC64_ADDR16_LO";
+ case 5: return "R_PPC64_ADDR16_HI";
+ case 6: return "R_PPC64_ADDR16_HA";
+ case 7: return "R_PPC64_ADDR14";
+ case 8: return "R_PPC64_ADDR14_BRTAKEN";
+ case 9: return "R_PPC64_ADDR14_BRNTAKEN";
+ case 10: return "R_PPC64_REL24";
+ case 11: return "R_PPC64_REL14";
+ case 12: return "R_PPC64_REL14_BRTAKEN";
+ case 13: return "R_PPC64_REL14_BRNTAKEN";
+ case 14: return "R_PPC64_GOT16";
+ case 15: return "R_PPC64_GOT16_LO";
+ case 16: return "R_PPC64_GOT16_HI";
+ case 17: return "R_PPC64_GOT16_HA";
+ case 19: return "R_PPC64_COPY";
+ case 20: return "R_PPC64_GLOB_DAT";
+ case 21: return "R_PPC64_JMP_SLOT";
+ case 22: return "R_PPC64_RELATIVE";
+ case 24: return "R_PPC64_UADDR32";
+ case 25: return "R_PPC64_UADDR16";
+ case 26: return "R_PPC64_REL32";
+ case 27: return "R_PPC64_PLT32";
+ case 28: return "R_PPC64_PLTREL32";
+ case 29: return "R_PPC64_PLT16_LO";
+ case 30: return "R_PPC64_PLT16_HI";
+ case 31: return "R_PPC64_PLT16_HA";
+ case 33: return "R_PPC64_SECTOFF";
+ case 34: return "R_PPC64_SECTOFF_LO";
+ case 35: return "R_PPC64_SECTOFF_HI";
+ case 36: return "R_PPC64_SECTOFF_HA";
+ case 37: return "R_PPC64_ADDR30";
+ case 38: return "R_PPC64_ADDR64";
+ case 39: return "R_PPC64_ADDR16_HIGHER";
+ case 40: return "R_PPC64_ADDR16_HIGHERA";
+ case 41: return "R_PPC64_ADDR16_HIGHEST";
+ case 42: return "R_PPC64_ADDR16_HIGHESTA";
+ case 43: return "R_PPC64_UADDR64";
+ case 44: return "R_PPC64_REL64";
+ case 45: return "R_PPC64_PLT64";
+ case 46: return "R_PPC64_PLTREL64";
+ case 47: return "R_PPC64_TOC16";
+ case 48: return "R_PPC64_TOC16_LO";
+ case 49: return "R_PPC64_TOC16_HI";
+ case 50: return "R_PPC64_TOC16_HA";
+ case 51: return "R_PPC64_TOC";
+ case 52: return "R_PPC64_PLTGOT16";
+ case 53: return "R_PPC64_PLTGOT16_LO";
+ case 54: return "R_PPC64_PLTGOT16_HI";
+ case 55: return "R_PPC64_PLTGOT16_HA";
+ case 56: return "R_PPC64_ADDR16_DS";
+ case 57: return "R_PPC64_ADDR16_LO_DS";
+ case 58: return "R_PPC64_GOT16_DS";
+ case 59: return "R_PPC64_GOT16_LO_DS";
+ case 60: return "R_PPC64_PLT16_LO_DS";
+ case 61: return "R_PPC64_SECTOFF_DS";
+ case 62: return "R_PPC64_SECTOFF_LO_DS";
+ case 63: return "R_PPC64_TOC16_DS";
+ case 64: return "R_PPC64_TOC16_LO_DS";
+ case 65: return "R_PPC64_PLTGOT16_DS";
+ case 66: return "R_PPC64_PLTGOT16_LO_DS";
+ case 67: return "R_PPC64_TLS";
+ case 68: return "R_PPC64_DTPMOD64";
+ case 69: return "R_PPC64_TPREL16";
+ case 70: return "R_PPC64_TPREL16_LO";
+ case 71: return "R_PPC64_TPREL16_HI";
+ case 72: return "R_PPC64_TPREL16_HA";
+ case 73: return "R_PPC64_TPREL64";
+ case 74: return "R_PPC64_DTPREL16";
+ case 75: return "R_PPC64_DTPREL16_LO";
+ case 76: return "R_PPC64_DTPREL16_HI";
+ case 77: return "R_PPC64_DTPREL16_HA";
+ case 78: return "R_PPC64_DTPREL64";
+ case 79: return "R_PPC64_GOT_TLSGD16";
+ case 80: return "R_PPC64_GOT_TLSGD16_LO";
+ case 81: return "R_PPC64_GOT_TLSGD16_HI";
+ case 82: return "R_PPC64_GOT_TLSGD16_HA";
+ case 83: return "R_PPC64_GOT_TLSLD16";
+ case 84: return "R_PPC64_GOT_TLSLD16_LO";
+ case 85: return "R_PPC64_GOT_TLSLD16_HI";
+ case 86: return "R_PPC64_GOT_TLSLD16_HA";
+ case 87: return "R_PPC64_GOT_TPREL16_DS";
+ case 88: return "R_PPC64_GOT_TPREL16_LO_DS";
+ case 89: return "R_PPC64_GOT_TPREL16_HI";
+ case 90: return "R_PPC64_GOT_TPREL16_HA";
+ case 91: return "R_PPC64_GOT_DTPREL16_DS";
+ case 92: return "R_PPC64_GOT_DTPREL16_LO_DS";
+ case 93: return "R_PPC64_GOT_DTPREL16_HI";
+ case 94: return "R_PPC64_GOT_DTPREL16_HA";
+ case 95: return "R_PPC64_TPREL16_DS";
+ case 96: return "R_PPC64_TPREL16_LO_DS";
+ case 97: return "R_PPC64_TPREL16_HIGHER";
+ case 98: return "R_PPC64_TPREL16_HIGHERA";
+ case 99: return "R_PPC64_TPREL16_HIGHEST";
+ case 100: return "R_PPC64_TPREL16_HIGHESTA";
+ case 101: return "R_PPC64_DTPREL16_DS";
+ case 102: return "R_PPC64_DTPREL16_LO_DS";
+ case 103: return "R_PPC64_DTPREL16_HIGHER";
+ case 104: return "R_PPC64_DTPREL16_HIGHERA";
+ case 105: return "R_PPC64_DTPREL16_HIGHEST";
+ case 106: return "R_PPC64_DTPREL16_HIGHESTA";
+ case 107: return "R_PPC64_TLSGD";
+ case 108: return "R_PPC64_TLSLD";
+ case 249: return "R_PPC64_REL16";
+ case 250: return "R_PPC64_REL16_LO";
+ case 251: return "R_PPC64_REL16_HI";
+ case 252: return "R_PPC64_REL16_HA";
+ }
+ break;
case EM_RISCV:
switch(type) {
case 0: return "R_RISCV_NONE";
OpenPOWER on IntegriCloud