This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[RFC][PATCH 2/3] readelf: Add extended numbering support
- From: Daisuke HATAYAMA <d dot hatayama at jp dot fujitsu dot com>
- To: binutils at sourceware dot org
- Date: Fri, 15 Jan 2010 11:46:59 +0900 (JST)
- Subject: [RFC][PATCH 2/3] readelf: Add extended numbering support
- References: <20100115.114307.193710254.d.hatayama@jp.fujitsu.com>
Add extended numbering support for readelf, which allows readelf to
read ELF object file with more-than-65535 program headers.
---
binutils/readelf.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 2bfb3f6..198f624 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3255,8 +3255,11 @@ process_file_header (void)
(long) elf_header.e_ehsize);
printf (_(" Size of program headers: %ld (bytes)\n"),
(long) elf_header.e_phentsize);
- printf (_(" Number of program headers: %ld\n"),
+ printf (_(" Number of program headers: %ld"),
(long) elf_header.e_phnum);
+ if (section_headers != NULL && elf_header.e_phnum == PN_XNUM)
+ printf (_(" (%ld)"), (long) section_headers[0].sh_info);
+ putc ('\n', stdout);
printf (_(" Size of section headers: %ld (bytes)\n"),
(long) elf_header.e_shentsize);
printf (_(" Number of section headers: %ld"),
@@ -3277,6 +3280,8 @@ process_file_header (void)
if (section_headers != NULL)
{
+ if (elf_header.e_phnum == PN_XNUM)
+ elf_header.e_phnum = section_headers[0].sh_info;
if (elf_header.e_shnum == SHN_UNDEF)
elf_header.e_shnum = section_headers[0].sh_size;
if (elf_header.e_shstrndx == (SHN_XINDEX & 0xffff))
--
1.6.5.1