* readelf.c (process_file_header): Handle e_phnum extension.

This commit is contained in:
Alan Modra 2010-01-19 13:51:29 +00:00
parent ecd12bc14d
commit 2046a35d20
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2010-01-19 Daisuke Hatayama <d.hatayama@jp.fujitsu.com>
Alan Modra <amodra@gmail.com>
* readelf.c (process_file_header): Handle e_phnum extension.
2010-01-14 Tristan Gingold <gingold@adacore.com>
* dwarf.c (get_AT_name): Handle DW_AT_use_GNAT_descriptive_type

View File

@ -3340,8 +3340,13 @@ 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
&& section_headers[0].sh_info != 0)
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"),
@ -3362,6 +3367,9 @@ process_file_header (void)
if (section_headers != NULL)
{
if (elf_header.e_phnum == PN_XNUM
&& section_headers[0].sh_info != 0)
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))