readelf: add PPC64 relocation types

Reported by:	Mark Millard
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9146
This commit is contained in:
Ed Maste 2017-01-11 21:18:14 +00:00
parent 47967ab741
commit dd9d62b416

View File

@ -501,6 +501,114 @@ 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";
}
break;
case EM_RISCV:
switch(type) {
case 0: return "R_RISCV_NONE";