svn commit: r309547 - head/contrib/elftoolchain/readelf

Conrad E. Meyer cem at FreeBSD.org
Mon Dec 5 03:11:53 UTC 2016


Author: cem
Date: Mon Dec  5 03:11:52 2016
New Revision: 309547
URL: https://svnweb.freebsd.org/changeset/base/309547

Log:
  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

Modified:
  head/contrib/elftoolchain/readelf/readelf.c

Modified: head/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- head/contrib/elftoolchain/readelf/readelf.c	Mon Dec  5 02:27:50 2016	(r309546)
+++ head/contrib/elftoolchain/readelf/readelf.c	Mon Dec  5 03:11:52 2016	(r309547)
@@ -2112,7 +2112,7 @@ dwarf_reg(unsigned int mach, unsigned in
 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:",


More information about the svn-src-all mailing list