diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2016-12-05 03:11:52 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2016-12-05 03:11:52 +0000 |
commit | 714935be5a0448c889ae3a3dcf261ea2a7edece3 (patch) | |
tree | 04849ee47a47240bbd1edc3037f55c237e95700e /contrib | |
parent | 0a82e6f09aa360b1f68789b1f43f41bd6edf26c1 (diff) | |
download | src-714935be5a0448c889ae3a3dcf261ea2a7edece3.tar.gz src-714935be5a0448c889ae3a3dcf261ea2a7edece3.zip |
readelf(1): Add support for extended program header numbers
Add support for extended program header numbers to elftoolchain
'readelf -h'.
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D8702
Notes
Notes:
svn path=/head/; revision=309547
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/elftoolchain/readelf/readelf.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/contrib/elftoolchain/readelf/readelf.c b/contrib/elftoolchain/readelf/readelf.c index 2bf668ed22ff..d1bf009709e1 100644 --- a/contrib/elftoolchain/readelf/readelf.c +++ b/contrib/elftoolchain/readelf/readelf.c @@ -2112,7 +2112,7 @@ dwarf_reg(unsigned int mach, unsigned int reg) static void dump_ehdr(struct readelf *re) { - size_t shnum, shstrndx; + size_t phnum, shnum, shstrndx; int i; printf("ELF Header:\n"); @@ -2174,7 +2174,13 @@ dump_ehdr(struct readelf *re) re->ehdr.e_phentsize); /* e_phnum. */ - printf("%-37s%u\n", " Number of program headers:", re->ehdr.e_phnum); + printf("%-37s%u", " Number of program headers:", re->ehdr.e_phnum); + if (re->ehdr.e_phnum == PN_XNUM) { + /* Extended program header numbering is in use. */ + if (elf_getphnum(re->elf, &phnum)) + printf(" (%zu)", phnum); + } + putchar('\n'); /* e_shentsize. */ printf("%-37s%u (bytes)\n", " Size of section headers:", |