svn commit: r321045 - head/contrib/elftoolchain/readelf
Ed Maste
emaste at FreeBSD.org
Sun Jul 16 12:30:41 UTC 2017
Author: emaste
Date: Sun Jul 16 12:30:39 2017
New Revision: 321045
URL: https://svnweb.freebsd.org/changeset/base/321045
Log:
readelf: fix printing of DT_FILTER and some other DT_* values
Some non-processor-specific DT_* values overlap the range DT_LOPROC to
DT_HIPROC. Handle common ones first, then the processor-specific ones.
Obtained from: ELF Tool Chain r3563
Sponsored by: The FreeBSD Foundation
Modified:
head/contrib/elftoolchain/readelf/readelf.c
Modified: head/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- head/contrib/elftoolchain/readelf/readelf.c Sun Jul 16 08:56:41 2017 (r321044)
+++ head/contrib/elftoolchain/readelf/readelf.c Sun Jul 16 12:30:39 2017 (r321045)
@@ -783,6 +783,80 @@ dt_type(unsigned int mach, unsigned int dtype)
{
static char s_dtype[32];
+ switch (dtype) {
+ case DT_NULL: return "NULL";
+ case DT_NEEDED: return "NEEDED";
+ case DT_PLTRELSZ: return "PLTRELSZ";
+ case DT_PLTGOT: return "PLTGOT";
+ case DT_HASH: return "HASH";
+ case DT_STRTAB: return "STRTAB";
+ case DT_SYMTAB: return "SYMTAB";
+ case DT_RELA: return "RELA";
+ case DT_RELASZ: return "RELASZ";
+ case DT_RELAENT: return "RELAENT";
+ case DT_STRSZ: return "STRSZ";
+ case DT_SYMENT: return "SYMENT";
+ case DT_INIT: return "INIT";
+ case DT_FINI: return "FINI";
+ case DT_SONAME: return "SONAME";
+ case DT_RPATH: return "RPATH";
+ case DT_SYMBOLIC: return "SYMBOLIC";
+ case DT_REL: return "REL";
+ case DT_RELSZ: return "RELSZ";
+ case DT_RELENT: return "RELENT";
+ case DT_PLTREL: return "PLTREL";
+ case DT_DEBUG: return "DEBUG";
+ case DT_TEXTREL: return "TEXTREL";
+ case DT_JMPREL: return "JMPREL";
+ case DT_BIND_NOW: return "BIND_NOW";
+ case DT_INIT_ARRAY: return "INIT_ARRAY";
+ case DT_FINI_ARRAY: return "FINI_ARRAY";
+ case DT_INIT_ARRAYSZ: return "INIT_ARRAYSZ";
+ case DT_FINI_ARRAYSZ: return "FINI_ARRAYSZ";
+ case DT_RUNPATH: return "RUNPATH";
+ case DT_FLAGS: return "FLAGS";
+ case DT_PREINIT_ARRAY: return "PREINIT_ARRAY";
+ case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ";
+ case DT_MAXPOSTAGS: return "MAXPOSTAGS";
+ case DT_SUNW_AUXILIARY: return "SUNW_AUXILIARY";
+ case DT_SUNW_RTLDINF: return "SUNW_RTLDINF";
+ case DT_SUNW_FILTER: return "SUNW_FILTER";
+ case DT_SUNW_CAP: return "SUNW_CAP";
+ case DT_CHECKSUM: return "CHECKSUM";
+ case DT_PLTPADSZ: return "PLTPADSZ";
+ case DT_MOVEENT: return "MOVEENT";
+ case DT_MOVESZ: return "MOVESZ";
+ case DT_FEATURE: return "FEATURE";
+ case DT_POSFLAG_1: return "POSFLAG_1";
+ case DT_SYMINSZ: return "SYMINSZ";
+ case DT_SYMINENT: return "SYMINENT";
+ case DT_GNU_HASH: return "GNU_HASH";
+ case DT_TLSDESC_PLT: return "DT_TLSDESC_PLT";
+ case DT_TLSDESC_GOT: return "DT_TLSDESC_GOT";
+ case DT_GNU_CONFLICT: return "GNU_CONFLICT";
+ case DT_GNU_LIBLIST: return "GNU_LIBLIST";
+ case DT_CONFIG: return "CONFIG";
+ case DT_DEPAUDIT: return "DEPAUDIT";
+ case DT_AUDIT: return "AUDIT";
+ case DT_PLTPAD: return "PLTPAD";
+ case DT_MOVETAB: return "MOVETAB";
+ case DT_SYMINFO: return "SYMINFO";
+ case DT_VERSYM: return "VERSYM";
+ case DT_RELACOUNT: return "RELACOUNT";
+ case DT_RELCOUNT: return "RELCOUNT";
+ case DT_FLAGS_1: return "FLAGS_1";
+ case DT_VERDEF: return "VERDEF";
+ case DT_VERDEFNUM: return "VERDEFNUM";
+ case DT_VERNEED: return "VERNEED";
+ case DT_VERNEEDNUM: return "VERNEEDNUM";
+ case DT_AUXILIARY: return "AUXILIARY";
+ case DT_USED: return "USED";
+ case DT_FILTER: return "FILTER";
+ case DT_GNU_PRELINKED: return "GNU_PRELINKED";
+ case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ";
+ case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ";
+ }
+
if (dtype >= DT_LOPROC && dtype <= DT_HIPROC) {
switch (mach) {
case EM_ARM:
@@ -903,86 +977,10 @@ dt_type(unsigned int mach, unsigned int dtype)
default:
break;
}
- snprintf(s_dtype, sizeof(s_dtype), "<unknown: %#x>", dtype);
- return (s_dtype);
}
- switch (dtype) {
- case DT_NULL: return "NULL";
- case DT_NEEDED: return "NEEDED";
- case DT_PLTRELSZ: return "PLTRELSZ";
- case DT_PLTGOT: return "PLTGOT";
- case DT_HASH: return "HASH";
- case DT_STRTAB: return "STRTAB";
- case DT_SYMTAB: return "SYMTAB";
- case DT_RELA: return "RELA";
- case DT_RELASZ: return "RELASZ";
- case DT_RELAENT: return "RELAENT";
- case DT_STRSZ: return "STRSZ";
- case DT_SYMENT: return "SYMENT";
- case DT_INIT: return "INIT";
- case DT_FINI: return "FINI";
- case DT_SONAME: return "SONAME";
- case DT_RPATH: return "RPATH";
- case DT_SYMBOLIC: return "SYMBOLIC";
- case DT_REL: return "REL";
- case DT_RELSZ: return "RELSZ";
- case DT_RELENT: return "RELENT";
- case DT_PLTREL: return "PLTREL";
- case DT_DEBUG: return "DEBUG";
- case DT_TEXTREL: return "TEXTREL";
- case DT_JMPREL: return "JMPREL";
- case DT_BIND_NOW: return "BIND_NOW";
- case DT_INIT_ARRAY: return "INIT_ARRAY";
- case DT_FINI_ARRAY: return "FINI_ARRAY";
- case DT_INIT_ARRAYSZ: return "INIT_ARRAYSZ";
- case DT_FINI_ARRAYSZ: return "FINI_ARRAYSZ";
- case DT_RUNPATH: return "RUNPATH";
- case DT_FLAGS: return "FLAGS";
- case DT_PREINIT_ARRAY: return "PREINIT_ARRAY";
- case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ";
- case DT_MAXPOSTAGS: return "MAXPOSTAGS";
- case DT_SUNW_AUXILIARY: return "SUNW_AUXILIARY";
- case DT_SUNW_RTLDINF: return "SUNW_RTLDINF";
- case DT_SUNW_FILTER: return "SUNW_FILTER";
- case DT_SUNW_CAP: return "SUNW_CAP";
- case DT_CHECKSUM: return "CHECKSUM";
- case DT_PLTPADSZ: return "PLTPADSZ";
- case DT_MOVEENT: return "MOVEENT";
- case DT_MOVESZ: return "MOVESZ";
- case DT_FEATURE: return "FEATURE";
- case DT_POSFLAG_1: return "POSFLAG_1";
- case DT_SYMINSZ: return "SYMINSZ";
- case DT_SYMINENT: return "SYMINENT";
- case DT_GNU_HASH: return "GNU_HASH";
- case DT_TLSDESC_PLT: return "DT_TLSDESC_PLT";
- case DT_TLSDESC_GOT: return "DT_TLSDESC_GOT";
- case DT_GNU_CONFLICT: return "GNU_CONFLICT";
- case DT_GNU_LIBLIST: return "GNU_LIBLIST";
- case DT_CONFIG: return "CONFIG";
- case DT_DEPAUDIT: return "DEPAUDIT";
- case DT_AUDIT: return "AUDIT";
- case DT_PLTPAD: return "PLTPAD";
- case DT_MOVETAB: return "MOVETAB";
- case DT_SYMINFO: return "SYMINFO";
- case DT_VERSYM: return "VERSYM";
- case DT_RELACOUNT: return "RELACOUNT";
- case DT_RELCOUNT: return "RELCOUNT";
- case DT_FLAGS_1: return "FLAGS_1";
- case DT_VERDEF: return "VERDEF";
- case DT_VERDEFNUM: return "VERDEFNUM";
- case DT_VERNEED: return "VERNEED";
- case DT_VERNEEDNUM: return "VERNEEDNUM";
- case DT_AUXILIARY: return "AUXILIARY";
- case DT_USED: return "USED";
- case DT_FILTER: return "FILTER";
- case DT_GNU_PRELINKED: return "GNU_PRELINKED";
- case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ";
- case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ";
- default:
- snprintf(s_dtype, sizeof(s_dtype), "<unknown: %#x>", dtype);
- return (s_dtype);
- }
+ snprintf(s_dtype, sizeof(s_dtype), "<unknown: %#x>", dtype);
+ return (s_dtype);
}
static const char *
More information about the svn-src-head
mailing list