Deleted Added
full compact
53c53
< ELFTC_VCSID("$Id: elfdump.c 3391 2016-02-05 19:43:01Z emaste $");
---
> ELFTC_VCSID("$Id: elfdump.c 3474 2016-05-17 20:44:53Z emaste $");
266,268c266,269
< static const char *e_types[] = {
< "ET_NONE", "ET_REL", "ET_EXEC", "ET_DYN", "ET_CORE"
< };
---
> static const char *
> elf_type_str(unsigned int type)
> {
> static char s_type[32];
270,272c271,286
< static const char *ei_versions[] = {
< "EV_NONE", "EV_CURRENT"
< };
---
> switch (type)
> {
> case ET_NONE: return "ET_NONE";
> case ET_REL: return "ET_REL";
> case ET_EXEC: return "ET_EXEC";
> case ET_DYN: return "ET_DYN";
> case ET_CORE: return "ET_CORE";
> }
> if (type >= ET_LOPROC)
> snprintf(s_type, sizeof(s_type), "<proc: %#x>", type);
> else if (type >= ET_LOOS && type <= ET_HIOS)
> snprintf(s_type, sizeof(s_type), "<os: %#x>", type);
> else
> snprintf(s_type, sizeof(s_type), "<unknown: %#x", type);
> return (s_type);
> }
274,276c288,291
< static const char *ei_classes[] = {
< "ELFCLASSNONE", "ELFCLASS32", "ELFCLASS64"
< };
---
> static const char *
> elf_version_str(unsigned int ver)
> {
> static char s_ver[32];
278,280c293,299
< static const char *ei_data[] = {
< "ELFDATANONE", "ELFDATA2LSB", "ELFDATA2MSB"
< };
---
> switch (ver) {
> case EV_NONE: return "EV_NONE";
> case EV_CURRENT: return "EV_CURRENT";
> }
> snprintf(s_ver, sizeof(s_ver), "<unknown: %#x>", ver);
> return (s_ver);
> }
281a301,328
> static const char *
> elf_class_str(unsigned int class)
> {
> static char s_class[32];
>
> switch (class) {
> case ELFCLASSNONE: return "ELFCLASSNONE";
> case ELFCLASS32: return "ELFCLASS32";
> case ELFCLASS64: return "ELFCLASS64";
> }
> snprintf(s_class, sizeof(s_class), "<unknown: %#x>", class);
> return (s_class);
> }
>
> static const char *
> elf_data_str(unsigned int data)
> {
> static char s_data[32];
>
> switch (data) {
> case ELFDATANONE: return "ELFDATANONE";
> case ELFDATA2LSB: return "ELFDATA2LSB";
> case ELFDATA2MSB: return "ELFDATA2MSB";
> }
> snprintf(s_data, sizeof(s_data), "<unknown: %#x>", data);
> return (s_data);
> }
>
286a334
> [17] = "ELFOSABI_CLOUDABI",
290,293c338,341
< static const char *p_types[] = {
< "PT_NULL", "PT_LOAD", "PT_DYNAMIC", "PT_INTERP", "PT_NOTE",
< "PT_SHLIB", "PT_PHDR", "PT_TLS"
< };
---
> static const char *
> elf_phdr_type_str(unsigned int type)
> {
> static char s_type[32];
294a343,359
> switch (type) {
> case PT_NULL: return "PT_NULL";
> case PT_LOAD: return "PT_LOAD";
> case PT_DYNAMIC: return "PT_DYNAMIC";
> case PT_INTERP: return "PT_INTERP";
> case PT_NOTE: return "PT_NOTE";
> case PT_SHLIB: return "PT_SHLIB";
> case PT_PHDR: return "PT_PHDR";
> case PT_TLS: return "PT_TLS";
> case PT_GNU_EH_FRAME: return "PT_GNU_EH_FRAME";
> case PT_GNU_STACK: return "PT_GNU_STACK";
> case PT_GNU_RELRO: return "PT_GNU_RELRO";
> }
> snprintf(s_type, sizeof(s_type), "<unknown: %#x>", type);
> return (s_type);
> }
>
410c475,476
< DEFINE_SHF(TLS)
---
> DEFINE_SHF(TLS) \
> DEFINE_SHF(COMPRESSED)
521,901d586
< static const char *
< r_type(unsigned int mach, unsigned int type)
< {
< switch(mach) {
< case EM_NONE: return "";
< case EM_386:
< case EM_IAMCU:
< switch(type) {
< case 0: return "R_386_NONE";
< case 1: return "R_386_32";
< case 2: return "R_386_PC32";
< case 3: return "R_386_GOT32";
< case 4: return "R_386_PLT32";
< case 5: return "R_386_COPY";
< case 6: return "R_386_GLOB_DAT";
< case 7: return "R_386_JUMP_SLOT";
< case 8: return "R_386_RELATIVE";
< case 9: return "R_386_GOTOFF";
< case 10: return "R_386_GOTPC";
< case 14: return "R_386_TLS_TPOFF";
< case 15: return "R_386_TLS_IE";
< case 16: return "R_386_TLS_GOTIE";
< case 17: return "R_386_TLS_LE";
< case 18: return "R_386_TLS_GD";
< case 19: return "R_386_TLS_LDM";
< case 24: return "R_386_TLS_GD_32";
< case 25: return "R_386_TLS_GD_PUSH";
< case 26: return "R_386_TLS_GD_CALL";
< case 27: return "R_386_TLS_GD_POP";
< case 28: return "R_386_TLS_LDM_32";
< case 29: return "R_386_TLS_LDM_PUSH";
< case 30: return "R_386_TLS_LDM_CALL";
< case 31: return "R_386_TLS_LDM_POP";
< case 32: return "R_386_TLS_LDO_32";
< case 33: return "R_386_TLS_IE_32";
< case 34: return "R_386_TLS_LE_32";
< case 35: return "R_386_TLS_DTPMOD32";
< case 36: return "R_386_TLS_DTPOFF32";
< case 37: return "R_386_TLS_TPOFF32";
< default: return "";
< }
< case EM_ARM:
< switch(type) {
< case 0: return "R_ARM_NONE";
< case 1: return "R_ARM_PC24";
< case 2: return "R_ARM_ABS32";
< case 3: return "R_ARM_REL32";
< case 4: return "R_ARM_PC13";
< case 5: return "R_ARM_ABS16";
< case 6: return "R_ARM_ABS12";
< case 7: return "R_ARM_THM_ABS5";
< case 8: return "R_ARM_ABS8";
< case 9: return "R_ARM_SBREL32";
< case 10: return "R_ARM_THM_PC22";
< case 11: return "R_ARM_THM_PC8";
< case 12: return "R_ARM_AMP_VCALL9";
< case 13: return "R_ARM_SWI24";
< case 14: return "R_ARM_THM_SWI8";
< case 15: return "R_ARM_XPC25";
< case 16: return "R_ARM_THM_XPC22";
< case 20: return "R_ARM_COPY";
< case 21: return "R_ARM_GLOB_DAT";
< case 22: return "R_ARM_JUMP_SLOT";
< case 23: return "R_ARM_RELATIVE";
< case 24: return "R_ARM_GOTOFF";
< case 25: return "R_ARM_GOTPC";
< case 26: return "R_ARM_GOT32";
< case 27: return "R_ARM_PLT32";
< case 100: return "R_ARM_GNU_VTENTRY";
< case 101: return "R_ARM_GNU_VTINHERIT";
< case 250: return "R_ARM_RSBREL32";
< case 251: return "R_ARM_THM_RPC22";
< case 252: return "R_ARM_RREL32";
< case 253: return "R_ARM_RABS32";
< case 254: return "R_ARM_RPC24";
< case 255: return "R_ARM_RBASE";
< default: return "";
< }
< case EM_IA_64:
< switch(type) {
< case 0: return "R_IA_64_NONE";
< case 33: return "R_IA_64_IMM14";
< case 34: return "R_IA_64_IMM22";
< case 35: return "R_IA_64_IMM64";
< case 36: return "R_IA_64_DIR32MSB";
< case 37: return "R_IA_64_DIR32LSB";
< case 38: return "R_IA_64_DIR64MSB";
< case 39: return "R_IA_64_DIR64LSB";
< case 42: return "R_IA_64_GPREL22";
< case 43: return "R_IA_64_GPREL64I";
< case 44: return "R_IA_64_GPREL32MSB";
< case 45: return "R_IA_64_GPREL32LSB";
< case 46: return "R_IA_64_GPREL64MSB";
< case 47: return "R_IA_64_GPREL64LSB";
< case 50: return "R_IA_64_LTOFF22";
< case 51: return "R_IA_64_LTOFF64I";
< case 58: return "R_IA_64_PLTOFF22";
< case 59: return "R_IA_64_PLTOFF64I";
< case 62: return "R_IA_64_PLTOFF64MSB";
< case 63: return "R_IA_64_PLTOFF64LSB";
< case 67: return "R_IA_64_FPTR64I";
< case 68: return "R_IA_64_FPTR32MSB";
< case 69: return "R_IA_64_FPTR32LSB";
< case 70: return "R_IA_64_FPTR64MSB";
< case 71: return "R_IA_64_FPTR64LSB";
< case 72: return "R_IA_64_PCREL60B";
< case 73: return "R_IA_64_PCREL21B";
< case 74: return "R_IA_64_PCREL21M";
< case 75: return "R_IA_64_PCREL21F";
< case 76: return "R_IA_64_PCREL32MSB";
< case 77: return "R_IA_64_PCREL32LSB";
< case 78: return "R_IA_64_PCREL64MSB";
< case 79: return "R_IA_64_PCREL64LSB";
< case 82: return "R_IA_64_LTOFF_FPTR22";
< case 83: return "R_IA_64_LTOFF_FPTR64I";
< case 84: return "R_IA_64_LTOFF_FPTR32MSB";
< case 85: return "R_IA_64_LTOFF_FPTR32LSB";
< case 86: return "R_IA_64_LTOFF_FPTR64MSB";
< case 87: return "R_IA_64_LTOFF_FPTR64LSB";
< case 92: return "R_IA_64_SEGREL32MSB";
< case 93: return "R_IA_64_SEGREL32LSB";
< case 94: return "R_IA_64_SEGREL64MSB";
< case 95: return "R_IA_64_SEGREL64LSB";
< case 100: return "R_IA_64_SECREL32MSB";
< case 101: return "R_IA_64_SECREL32LSB";
< case 102: return "R_IA_64_SECREL64MSB";
< case 103: return "R_IA_64_SECREL64LSB";
< case 108: return "R_IA_64_REL32MSB";
< case 109: return "R_IA_64_REL32LSB";
< case 110: return "R_IA_64_REL64MSB";
< case 111: return "R_IA_64_REL64LSB";
< case 116: return "R_IA_64_LTV32MSB";
< case 117: return "R_IA_64_LTV32LSB";
< case 118: return "R_IA_64_LTV64MSB";
< case 119: return "R_IA_64_LTV64LSB";
< case 121: return "R_IA_64_PCREL21BI";
< case 122: return "R_IA_64_PCREL22";
< case 123: return "R_IA_64_PCREL64I";
< case 128: return "R_IA_64_IPLTMSB";
< case 129: return "R_IA_64_IPLTLSB";
< case 133: return "R_IA_64_SUB";
< case 134: return "R_IA_64_LTOFF22X";
< case 135: return "R_IA_64_LDXMOV";
< case 145: return "R_IA_64_TPREL14";
< case 146: return "R_IA_64_TPREL22";
< case 147: return "R_IA_64_TPREL64I";
< case 150: return "R_IA_64_TPREL64MSB";
< case 151: return "R_IA_64_TPREL64LSB";
< case 154: return "R_IA_64_LTOFF_TPREL22";
< case 166: return "R_IA_64_DTPMOD64MSB";
< case 167: return "R_IA_64_DTPMOD64LSB";
< case 170: return "R_IA_64_LTOFF_DTPMOD22";
< case 177: return "R_IA_64_DTPREL14";
< case 178: return "R_IA_64_DTPREL22";
< case 179: return "R_IA_64_DTPREL64I";
< case 180: return "R_IA_64_DTPREL32MSB";
< case 181: return "R_IA_64_DTPREL32LSB";
< case 182: return "R_IA_64_DTPREL64MSB";
< case 183: return "R_IA_64_DTPREL64LSB";
< case 186: return "R_IA_64_LTOFF_DTPREL22";
< default: return "";
< }
< case EM_MIPS:
< switch(type) {
< case 0: return "R_MIPS_NONE";
< case 1: return "R_MIPS_16";
< case 2: return "R_MIPS_32";
< case 3: return "R_MIPS_REL32";
< case 4: return "R_MIPS_26";
< case 5: return "R_MIPS_HI16";
< case 6: return "R_MIPS_LO16";
< case 7: return "R_MIPS_GPREL16";
< case 8: return "R_MIPS_LITERAL";
< case 9: return "R_MIPS_GOT16";
< case 10: return "R_MIPS_PC16";
< case 11: return "R_MIPS_CALL16";
< case 12: return "R_MIPS_GPREL32";
< case 21: return "R_MIPS_GOTHI16";
< case 22: return "R_MIPS_GOTLO16";
< case 30: return "R_MIPS_CALLHI16";
< case 31: return "R_MIPS_CALLLO16";
< default: return "";
< }
< case EM_PPC:
< switch(type) {
< case 0: return "R_PPC_NONE";
< case 1: return "R_PPC_ADDR32";
< case 2: return "R_PPC_ADDR24";
< case 3: return "R_PPC_ADDR16";
< case 4: return "R_PPC_ADDR16_LO";
< case 5: return "R_PPC_ADDR16_HI";
< case 6: return "R_PPC_ADDR16_HA";
< case 7: return "R_PPC_ADDR14";
< case 8: return "R_PPC_ADDR14_BRTAKEN";
< case 9: return "R_PPC_ADDR14_BRNTAKEN";
< case 10: return "R_PPC_REL24";
< case 11: return "R_PPC_REL14";
< case 12: return "R_PPC_REL14_BRTAKEN";
< case 13: return "R_PPC_REL14_BRNTAKEN";
< case 14: return "R_PPC_GOT16";
< case 15: return "R_PPC_GOT16_LO";
< case 16: return "R_PPC_GOT16_HI";
< case 17: return "R_PPC_GOT16_HA";
< case 18: return "R_PPC_PLTREL24";
< case 19: return "R_PPC_COPY";
< case 20: return "R_PPC_GLOB_DAT";
< case 21: return "R_PPC_JMP_SLOT";
< case 22: return "R_PPC_RELATIVE";
< case 23: return "R_PPC_LOCAL24PC";
< case 24: return "R_PPC_UADDR32";
< case 25: return "R_PPC_UADDR16";
< case 26: return "R_PPC_REL32";
< case 27: return "R_PPC_PLT32";
< case 28: return "R_PPC_PLTREL32";
< case 29: return "R_PPC_PLT16_LO";
< case 30: return "R_PPC_PLT16_HI";
< case 31: return "R_PPC_PLT16_HA";
< case 32: return "R_PPC_SDAREL16";
< case 33: return "R_PPC_SECTOFF";
< case 34: return "R_PPC_SECTOFF_LO";
< case 35: return "R_PPC_SECTOFF_HI";
< case 36: return "R_PPC_SECTOFF_HA";
< case 67: return "R_PPC_TLS";
< case 68: return "R_PPC_DTPMOD32";
< case 69: return "R_PPC_TPREL16";
< case 70: return "R_PPC_TPREL16_LO";
< case 71: return "R_PPC_TPREL16_HI";
< case 72: return "R_PPC_TPREL16_HA";
< case 73: return "R_PPC_TPREL32";
< case 74: return "R_PPC_DTPREL16";
< case 75: return "R_PPC_DTPREL16_LO";
< case 76: return "R_PPC_DTPREL16_HI";
< case 77: return "R_PPC_DTPREL16_HA";
< case 78: return "R_PPC_DTPREL32";
< case 79: return "R_PPC_GOT_TLSGD16";
< case 80: return "R_PPC_GOT_TLSGD16_LO";
< case 81: return "R_PPC_GOT_TLSGD16_HI";
< case 82: return "R_PPC_GOT_TLSGD16_HA";
< case 83: return "R_PPC_GOT_TLSLD16";
< case 84: return "R_PPC_GOT_TLSLD16_LO";
< case 85: return "R_PPC_GOT_TLSLD16_HI";
< case 86: return "R_PPC_GOT_TLSLD16_HA";
< case 87: return "R_PPC_GOT_TPREL16";
< case 88: return "R_PPC_GOT_TPREL16_LO";
< case 89: return "R_PPC_GOT_TPREL16_HI";
< case 90: return "R_PPC_GOT_TPREL16_HA";
< case 101: return "R_PPC_EMB_NADDR32";
< case 102: return "R_PPC_EMB_NADDR16";
< case 103: return "R_PPC_EMB_NADDR16_LO";
< case 104: return "R_PPC_EMB_NADDR16_HI";
< case 105: return "R_PPC_EMB_NADDR16_HA";
< case 106: return "R_PPC_EMB_SDAI16";
< case 107: return "R_PPC_EMB_SDA2I16";
< case 108: return "R_PPC_EMB_SDA2REL";
< case 109: return "R_PPC_EMB_SDA21";
< case 110: return "R_PPC_EMB_MRKREF";
< case 111: return "R_PPC_EMB_RELSEC16";
< case 112: return "R_PPC_EMB_RELST_LO";
< case 113: return "R_PPC_EMB_RELST_HI";
< case 114: return "R_PPC_EMB_RELST_HA";
< case 115: return "R_PPC_EMB_BIT_FLD";
< case 116: return "R_PPC_EMB_RELSDA";
< default: return "";
< }
< case EM_SPARC:
< case EM_SPARCV9:
< switch(type) {
< case 0: return "R_SPARC_NONE";
< case 1: return "R_SPARC_8";
< case 2: return "R_SPARC_16";
< case 3: return "R_SPARC_32";
< case 4: return "R_SPARC_DISP8";
< case 5: return "R_SPARC_DISP16";
< case 6: return "R_SPARC_DISP32";
< case 7: return "R_SPARC_WDISP30";
< case 8: return "R_SPARC_WDISP22";
< case 9: return "R_SPARC_HI22";
< case 10: return "R_SPARC_22";
< case 11: return "R_SPARC_13";
< case 12: return "R_SPARC_LO10";
< case 13: return "R_SPARC_GOT10";
< case 14: return "R_SPARC_GOT13";
< case 15: return "R_SPARC_GOT22";
< case 16: return "R_SPARC_PC10";
< case 17: return "R_SPARC_PC22";
< case 18: return "R_SPARC_WPLT30";
< case 19: return "R_SPARC_COPY";
< case 20: return "R_SPARC_GLOB_DAT";
< case 21: return "R_SPARC_JMP_SLOT";
< case 22: return "R_SPARC_RELATIVE";
< case 23: return "R_SPARC_UA32";
< case 24: return "R_SPARC_PLT32";
< case 25: return "R_SPARC_HIPLT22";
< case 26: return "R_SPARC_LOPLT10";
< case 27: return "R_SPARC_PCPLT32";
< case 28: return "R_SPARC_PCPLT22";
< case 29: return "R_SPARC_PCPLT10";
< case 30: return "R_SPARC_10";
< case 31: return "R_SPARC_11";
< case 32: return "R_SPARC_64";
< case 33: return "R_SPARC_OLO10";
< case 34: return "R_SPARC_HH22";
< case 35: return "R_SPARC_HM10";
< case 36: return "R_SPARC_LM22";
< case 37: return "R_SPARC_PC_HH22";
< case 38: return "R_SPARC_PC_HM10";
< case 39: return "R_SPARC_PC_LM22";
< case 40: return "R_SPARC_WDISP16";
< case 41: return "R_SPARC_WDISP19";
< case 42: return "R_SPARC_GLOB_JMP";
< case 43: return "R_SPARC_7";
< case 44: return "R_SPARC_5";
< case 45: return "R_SPARC_6";
< case 46: return "R_SPARC_DISP64";
< case 47: return "R_SPARC_PLT64";
< case 48: return "R_SPARC_HIX22";
< case 49: return "R_SPARC_LOX10";
< case 50: return "R_SPARC_H44";
< case 51: return "R_SPARC_M44";
< case 52: return "R_SPARC_L44";
< case 53: return "R_SPARC_REGISTER";
< case 54: return "R_SPARC_UA64";
< case 55: return "R_SPARC_UA16";
< case 56: return "R_SPARC_TLS_GD_HI22";
< case 57: return "R_SPARC_TLS_GD_LO10";
< case 58: return "R_SPARC_TLS_GD_ADD";
< case 59: return "R_SPARC_TLS_GD_CALL";
< case 60: return "R_SPARC_TLS_LDM_HI22";
< case 61: return "R_SPARC_TLS_LDM_LO10";
< case 62: return "R_SPARC_TLS_LDM_ADD";
< case 63: return "R_SPARC_TLS_LDM_CALL";
< case 64: return "R_SPARC_TLS_LDO_HIX22";
< case 65: return "R_SPARC_TLS_LDO_LOX10";
< case 66: return "R_SPARC_TLS_LDO_ADD";
< case 67: return "R_SPARC_TLS_IE_HI22";
< case 68: return "R_SPARC_TLS_IE_LO10";
< case 69: return "R_SPARC_TLS_IE_LD";
< case 70: return "R_SPARC_TLS_IE_LDX";
< case 71: return "R_SPARC_TLS_IE_ADD";
< case 72: return "R_SPARC_TLS_LE_HIX22";
< case 73: return "R_SPARC_TLS_LE_LOX10";
< case 74: return "R_SPARC_TLS_DTPMOD32";
< case 75: return "R_SPARC_TLS_DTPMOD64";
< case 76: return "R_SPARC_TLS_DTPOFF32";
< case 77: return "R_SPARC_TLS_DTPOFF64";
< case 78: return "R_SPARC_TLS_TPOFF32";
< case 79: return "R_SPARC_TLS_TPOFF64";
< default: return "";
< }
< case EM_X86_64:
< switch(type) {
< case 0: return "R_X86_64_NONE";
< case 1: return "R_X86_64_64";
< case 2: return "R_X86_64_PC32";
< case 3: return "R_X86_64_GOT32";
< case 4: return "R_X86_64_PLT32";
< case 5: return "R_X86_64_COPY";
< case 6: return "R_X86_64_GLOB_DAT";
< case 7: return "R_X86_64_JUMP_SLOT";
< case 8: return "R_X86_64_RELATIVE";
< case 9: return "R_X86_64_GOTPCREL";
< case 10: return "R_X86_64_32";
< case 11: return "R_X86_64_32S";
< case 12: return "R_X86_64_16";
< case 13: return "R_X86_64_PC16";
< case 14: return "R_X86_64_8";
< case 15: return "R_X86_64_PC8";
< case 16: return "R_X86_64_DTPMOD64";
< case 17: return "R_X86_64_DTPOFF64";
< case 18: return "R_X86_64_TPOFF64";
< case 19: return "R_X86_64_TLSGD";
< case 20: return "R_X86_64_TLSLD";
< case 21: return "R_X86_64_DTPOFF32";
< case 22: return "R_X86_64_GOTTPOFF";
< case 23: return "R_X86_64_TPOFF32";
< default: return "";
< }
< default: return "";
< }
< }
<
934c619
< static const char *get_symbol_name(struct elfdump *ed, int symtab, int i);
---
> static const char *get_symbol_name(struct elfdump *ed, uint32_t symtab, int i);
1113,1114c798,799
< uint32_t cnt;
< int i, r;
---
> uint32_t cnt, i;
> int r;
1163c848
< for (i = 0; (size_t)i < cnt; i++) {
---
> for (i = 0; i < cnt; i++) {
1167c852
< for (i = 0; (size_t)i < cnt; i++) {
---
> for (i = 0; i < cnt; i++) {
1176c861
< for (i = 0; (size_t)i < cnt; i++) {
---
> for (i = 0; i < cnt; i++) {
1232,1233c917
< size_t cnt;
< int i;
---
> size_t cnt, i;
1250c934
< for (i = 0; (size_t)i < cnt - 1; i++) {
---
> for (i = 0; i < cnt - 1; i++) {
1266c950
< snprintf(idx, sizeof(idx), "[%d]", i);
---
> snprintf(idx, sizeof(idx), "[%zu]", i);
1273c957
< PRT("\nentry: %d\n", i);
---
> PRT("\nentry: %zu\n", i);
1534c1218
< get_symbol_name(struct elfdump *ed, int symtab, int i)
---
> get_symbol_name(struct elfdump *ed, uint32_t symtab, int i)
1542a1227,1228
> if (symtab >= ed->shnum)
> return ("");
1599,1600c1285,1287
< ei_classes[ed->ehdr.e_ident[EI_CLASS]]);
< PRT(" ei_data: %s\n", ei_data[ed->ehdr.e_ident[EI_DATA]]);
---
> elf_class_str(ed->ehdr.e_ident[EI_CLASS]));
> PRT(" ei_data: %s\n",
> elf_data_str(ed->ehdr.e_ident[EI_DATA]));
1602,1603c1289,1291
< PRT(" e_version: %s\n", ei_versions[ed->ehdr.e_version]);
< PRT(" e_type: %s\n", e_types[ed->ehdr.e_type]);
---
> PRT(" e_version: %s\n",
> elf_version_str(ed->ehdr.e_version));
> PRT(" e_type: %s\n", elf_type_str(ed->ehdr.e_type));
1618,1619c1306,1307
< ei_classes[ed->ehdr.e_ident[EI_CLASS]],
< ei_data[ed->ehdr.e_ident[EI_DATA]],
---
> elf_class_str(ed->ehdr.e_ident[EI_CLASS]),
> elf_data_str(ed->ehdr.e_ident[EI_DATA]),
1621c1309
< PRT("\te_type: %s\n", e_types[ed->ehdr.e_type]);
---
> PRT("\te_type: %s\n", elf_type_str(ed->ehdr.e_type));
1623c1311
< PRT("\te_version: %s\n", ei_versions[ed->ehdr.e_version]);
---
> PRT("\te_version: %s\n", elf_version_str(ed->ehdr.e_version));
1644,1645c1332,1333
< size_t phnum;
< int header, i;
---
> size_t phnum, i;
> int header;
1652c1340
< for (i = 0; (u_int64_t) i < phnum; i++) {
---
> for (i = 0; i < phnum; i++) {
1658c1346
< find_name(ed, p_types[ph.p_type & 0x7]) == NULL)
---
> find_name(ed, elf_phdr_type_str(ph.p_type)) == NULL)
1661c1349
< PRT("\nProgram Header[%d]:\n", i);
---
> PRT("\nProgram Header[%zu]:\n", i);
1663c1351,1352
< PRT(" p_flags: [ %s ]\n", p_flags[ph.p_flags]);
---
> PRT(" p_flags: [ %s ]\n",
> p_flags[ph.p_flags & 0x7]);
1665c1354,1355
< PRT(" p_type: [ %s ]\n", p_types[ph.p_type & 0x7]);
---
> PRT(" p_type: [ %s ]\n",
> elf_phdr_type_str(ph.p_type));
1678,1679c1368,1369
< PRT("entry: %d\n", i);
< PRT("\tp_type: %s\n", p_types[ph.p_type & 0x7]);
---
> PRT("entry: %zu\n", i);
> PRT("\tp_type: %s\n", elf_phdr_type_str(ph.p_type));
1685c1375
< PRT("\tp_flags: %s\n", p_flags[ph.p_flags]);
---
> PRT("\tp_flags: %s\n", p_flags[ph.p_flags & 0x7]);
1698c1388
< int i;
---
> size_t i;
1705c1395
< for (i = 0; (size_t)i < ed->shnum; i++) {
---
> for (i = 0; i < ed->shnum; i++) {
1710c1400
< PRT("\nSection Header[%d]:", i);
---
> PRT("\nSection Header[%zu]:", i);
1770c1460,1461
< int j, elferr;
---
> size_t j;
> int elferr;
1773c1464
< for (j = 0; (size_t)j < ed->shnum; j++) {
---
> for (j = 0; j < ed->shnum; j++) {
1778c1469
< if ((size_t)j >= ed->shnum) {
---
> if (j >= ed->shnum) {
1883c1574
< int i;
---
> size_t i;
1885c1576
< for (i = 0; (size_t)i < ed->shnum; i++)
---
> for (i = 0; i < ed->shnum; i++)
1947a1639
> case DT_RUNPATH:
2014c1706
< PRT(" %-23s ", r_type(ed->ehdr.e_machine,
---
> PRT(" %-23s ", elftc_reloc_type_str(ed->ehdr.e_machine,
2108c1800,1801
< int i, elferr;
---
> size_t i;
> int elferr;
2110c1803
< for (i = 0; (size_t)i < ed->shnum; i++) {
---
> for (i = 0; i < ed->shnum; i++) {
2138,2139c1831
< size_t phnum;
< int i;
---
> size_t filesize, i, phnum;
2144c1836
< if ((s = elf_rawfile(ed->elf, NULL)) == NULL) {
---
> if ((s = elf_rawfile(ed->elf, &filesize)) == NULL) {
2152c1844
< for (i = 0; (size_t)i < phnum; i++) {
---
> for (i = 0; i < phnum; i++) {
2157a1850,1853
> if (phdr.p_offset >= filesize) {
> warnx("invalid phdr offset");
> continue;
> }
2165c1861
< * Search the relocation sections for entries refering to the .got section.
---
> * Search the relocation sections for entries referring to the .got section.
2173c1869,1870
< int elferr, i, j, k, len;
---
> size_t i;
> int elferr, j, k, len;
2175c1872
< for(i = 0; (size_t)i < ed->shnum; i++) {
---
> for(i = 0; i < ed->shnum; i++) {
2252c1949
< * byte stream and will not perfrom any translation on it. As a result,
---
> * byte stream and will not perform any translation on it. As a result,
2295c1992
< PRT("%-18s ", r_type(ed->ehdr.e_machine,
---
> PRT("%-18s ", elftc_reloc_type_str(ed->ehdr.e_machine,
2327c2024
< int i;
---
> size_t i;
2333c2030
< for (i = 0; (size_t)i < ed->shnum; i++) {
---
> for (i = 0; i < ed->shnum; i++) {
2355c2052,2053
< char *src, idx[10];
---
> uint8_t *src;
> char idx[10];
2385a2084,2087
> if (roundup2(namesz, 4) + roundup2(descsz, 4) > count) {
> warnx("truncated note section");
> return;
> }
2436c2138,2139
< int i, j, first, elferr;
---
> uint32_t i, j;
> int first, elferr;
2462c2165,2166
< if (data->d_size != (nbucket + nchain + 2) * sizeof(uint32_t)) {
---
> if (data->d_size !=
> ((uint64_t)nbucket + (uint64_t)nchain + 2) * sizeof(uint32_t)) {
2473,2475c2177,2178
< for (i = 0; (uint32_t)i < nbucket; i++)
< for (j = bucket[i]; j > 0 && (uint32_t)j < nchain;
< j = chain[j])
---
> for (i = 0; i < nbucket; i++)
> for (j = bucket[i]; j > 0 && j < nchain; j = chain[j])
2480c2183
< for (i = 0; (uint32_t)i < nbucket; i++)
---
> for (i = 0; i < nbucket; i++)
2483c2186
< for (i = 0; (uint32_t)i < nbucket; i++) {
---
> for (i = 0; i < nbucket; i++) {
2485,2486c2188
< for (j = bucket[i]; j > 0 && (uint32_t)j < nchain;
< j = chain[j]) {
---
> for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) {
2499c2201
< for (i = 0; (uint32_t)i <= maxl; i++) {
---
> for (i = 0; i <= maxl; i++) {
2508c2210
< for (i = 0; (uint32_t)i < nbucket; i++)
---
> for (i = 0; i < nbucket; i++)
2510c2212
< for (i = 0; (uint32_t)i < nchain; i++)
---
> for (i = 0; i < nchain; i++)
2526c2228,2229
< int i, j, elferr, first;
---
> uint64_t i, j;
> int elferr, first;
2576,2578c2279,2280
< for (i = 0; (uint64_t)i < nbucket; i++)
< for (j = bucket[i]; j > 0 && (uint64_t)j < nchain;
< j = chain[j])
---
> for (i = 0; i < nbucket; i++)
> for (j = bucket[i]; j > 0 && j < nchain; j = chain[j])
2583c2285
< for (i = 0; (uint64_t)i < nbucket; i++)
---
> for (i = 0; i < nbucket; i++)
2586c2288
< for (i = 0; (uint64_t)i < nbucket; i++) {
---
> for (i = 0; i < nbucket; i++) {
2588,2589c2290
< for (j = bucket[i]; j > 0 && (uint64_t)j < nchain;
< j = chain[j]) {
---
> for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) {
2591c2292
< PRT("%10d ", i);
---
> PRT("%10zu ", i);
2595c2296
< snprintf(idx, sizeof(idx), "[%d]", j);
---
> snprintf(idx, sizeof(idx), "[%zu]", (size_t)j);
2602c2303
< for (i = 0; (uint64_t)i <= maxl; i++) {
---
> for (i = 0; i <= maxl; i++) {
2604c2305
< PRT("%10ju buckets contain %8d symbols\n",
---
> PRT("%10ju buckets contain %8zu symbols\n",
2612,2615c2313,2316
< for (i = 0; (uint64_t)i < nbucket; i++)
< PRT("bucket[%d]:\n\t%ju\n\n", i, (uintmax_t)bucket[i]);
< for (i = 0; (uint64_t)i < nchain; i++)
< PRT("chain[%d]:\n\t%ju\n\n", i, (uintmax_t)chain[i]);
---
> for (i = 0; i < nbucket; i++)
> PRT("bucket[%zu]:\n\t%ju\n\n", i, (uintmax_t)bucket[i]);
> for (i = 0; i < nchain; i++)
> PRT("chain[%zu]:\n\t%ju\n\n", i, (uintmax_t)chain[i]);
2632c2333,2334
< int i, j, first, elferr, dynsymcount;
---
> uint32_t i, j;
> int first, elferr, dynsymcount;
2656a2359,2362
> if (s->link >= ed->shnum) {
> warnx("Malformed .gnu.hash section");
> return;
> }
2659a2366,2369
> if (symndx >= (uint32_t)dynsymcount) {
> warnx("Malformed .gnu.hash section");
> return;
> }
2663c2373
< (nbucket + nchain) * sizeof(uint32_t)) {
---
> ((uint64_t)nbucket + (uint64_t)nchain) * sizeof(uint32_t)) {
2674,2677c2384,2385
< for (i = 0; (uint32_t)i < nbucket; i++)
< for (j = bucket[i];
< j > 0 && (uint32_t)j - symndx < nchain;
< j++) {
---
> for (i = 0; i < nbucket; i++)
> for (j = bucket[i]; j > 0 && j - symndx < nchain; j++) {
2685c2393
< for (i = 0; (uint32_t)i < nbucket; i++)
---
> for (i = 0; i < nbucket; i++)
2688c2396
< for (i = 0; (uint32_t)i < nbucket; i++) {
---
> for (i = 0; i < nbucket; i++) {
2690,2692c2398
< for (j = bucket[i];
< j > 0 && (uint32_t)j - symndx < nchain;
< j++) {
---
> for (j = bucket[i]; j > 0 && j - symndx < nchain; j++) {
2707c2413
< for (i = 0; (uint32_t)i <= maxl; i++) {
---
> for (i = 0; i <= maxl; i++) {
2719c2425
< for (i = 0; (uint32_t)i < nbucket; i++)
---
> for (i = 0; i < nbucket; i++)
2721c2427
< for (i = 0; (uint32_t)i < nchain; i++)
---
> for (i = 0; i < nchain; i++)
2733c2439
< int i;
---
> size_t i;
2735c2441
< for (i = 0; (size_t)i < ed->shnum; i++) {
---
> for (i = 0; i < ed->shnum; i++) {
2918c2624
< int i;
---
> size_t i;
2920c2626
< for (i = 0; (size_t)i < ed->shnum; i++) {
---
> for (i = 0; i < ed->shnum; i++) {