Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Dec 2016 03:11:52 +0000 (UTC)
From:      "Conrad E. Meyer" <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r309547 - head/contrib/elftoolchain/readelf
Message-ID:  <201612050311.uB53BqaN051523@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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:",



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612050311.uB53BqaN051523>