|
140 | 140 |
|
141 | 141 | --- !ELF
|
142 | 142 | FileHeader:
|
143 |
| - Class: ELFCLASS64 |
144 |
| - Data: ELFDATA2LSB |
145 |
| - Type: ET_EXEC |
146 |
| - Machine: EM_X86_64 |
| 143 | + Class: ELFCLASS64 |
| 144 | + Data: ELFDATA2LSB |
| 145 | + Type: ET_EXEC |
| 146 | + Machine: EM_X86_64 |
| 147 | + EPhEntSize: [[PHENTSIZE=56]] |
147 | 148 | Sections:
|
148 | 149 | - Name: .dynstr
|
149 | 150 | Type: SHT_STRTAB
|
@@ -637,3 +638,154 @@ Sections:
|
637 | 638 | Value: 0x1
|
638 | 639 | - Tag: DT_NULL
|
639 | 640 | Value: 0x0
|
| 641 | + |
| 642 | +## Check how we dump dynamic tags when we are unable to read program headers. |
| 643 | +# RUN: yaml2obj --docnum=1 -DPHENTSIZE=1 %s -o %t-phentsize-err |
| 644 | +# RUN: llvm-readobj --dynamic-table %t-phentsize-err 2>&1 | \ |
| 645 | +# RUN: FileCheck %s --implicit-check-not=warning: -DFILE=%t-phentsize-err \ |
| 646 | +# RUN: --check-prefixes=PHENTSIZE-WARN,PHENTSIZE-LLVM |
| 647 | +# RUN: llvm-readelf --dynamic-table %t-phentsize-err 2>&1 | \ |
| 648 | +# RUN: FileCheck %s --implicit-check-not=warning: -DFILE=%t-phentsize-err \ |
| 649 | +# RUN: --check-prefixes=PHENTSIZE-WARN,PHENTSIZE-GNU |
| 650 | + |
| 651 | +# PHENTSIZE-WARN: warning: '[[FILE]]': unable to read program headers to locate the PT_DYNAMIC segment: invalid e_phentsize: 1 |
| 652 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_HASH: invalid e_phentsize: 1 |
| 653 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_STRTAB: invalid e_phentsize: 1 |
| 654 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_SYMTAB: invalid e_phentsize: 1 |
| 655 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_RELA: invalid e_phentsize: 1 |
| 656 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': DT_SYMENT value of 0x987 is not the size of a symbol (0x18) |
| 657 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_REL: invalid e_phentsize: 1 |
| 658 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_JMPREL: invalid e_phentsize: 1 |
| 659 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_RELR: invalid e_phentsize: 1 |
| 660 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_ANDROID_RELR: invalid e_phentsize: 1 |
| 661 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': Unable to parse DT_GNU_HASH: invalid e_phentsize: 1 |
| 662 | +# PHENTSIZE-WARN-NEXT: warning: '[[FILE]]': string table was not found |
| 663 | + |
| 664 | +# PHENTSIZE-LLVM: DynamicSection [ (61 entries) |
| 665 | +# PHENTSIZE-LLVM-NEXT: Tag Type Name/Value |
| 666 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>] |
| 667 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000002 PLTRELSZ 16 (bytes) |
| 668 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000003 PLTGOT 0x1000 |
| 669 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000004 HASH 0x1000 |
| 670 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000005 STRTAB 0x1000 |
| 671 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000006 SYMTAB 0x1000 |
| 672 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000007 RELA 0x1000 |
| 673 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000008 RELASZ 16 (bytes) |
| 674 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000009 RELAENT 1929 (bytes) |
| 675 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000A STRSZ 16 (bytes) |
| 676 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000B SYMENT 2439 (bytes) |
| 677 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000C INIT 0x1000 |
| 678 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000D FINI 0x1000 |
| 679 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000E SONAME Library soname: [<?>] |
| 680 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000000F RPATH Library rpath: [<?>] |
| 681 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000010 SYMBOLIC 0x1234567890ABCDEF |
| 682 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000011 REL 0x1000 |
| 683 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000012 RELSZ 16 (bytes) |
| 684 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000013 RELENT 291 (bytes) |
| 685 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000014 PLTREL RELA |
| 686 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000015 DEBUG 0xFEDCBA0987654321 |
| 687 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000016 TEXTREL 0x1122334455667788 |
| 688 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000017 JMPREL 0x1000 |
| 689 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000018 BIND_NOW 0x8877665544332211 |
| 690 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000019 INIT_ARRAY 0x1000 |
| 691 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000001A FINI_ARRAY 0x1000 |
| 692 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000001B INIT_ARRAYSZ 16 (bytes) |
| 693 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000001C FINI_ARRAYSZ 16 (bytes) |
| 694 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000001D RUNPATH Library runpath: [<?>] |
| 695 | +# PHENTSIZE-LLVM-NEXT: 0x000000000000001E FLAGS ORIGIN SYMBOLIC TEXTREL BIND_NOW STATIC_TLS |
| 696 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000020 PREINIT_ARRAY 0x1000 |
| 697 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000021 PREINIT_ARRAYSZ 16 (bytes) |
| 698 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000022 SYMTAB_SHNDX 0x1000 |
| 699 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000023 RELRSZ 0x10 |
| 700 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000024 RELR 0x1000 |
| 701 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000025 RELRENT 0x4321 |
| 702 | +# PHENTSIZE-LLVM-NEXT: 0x000000006000000F ANDROID_REL 0x1000 |
| 703 | +# PHENTSIZE-LLVM-NEXT: 0x0000000060000010 ANDROID_RELSZ 16 (bytes) |
| 704 | +# PHENTSIZE-LLVM-NEXT: 0x0000000060000011 ANDROID_RELA 0x1000 |
| 705 | +# PHENTSIZE-LLVM-NEXT: 0x0000000060000012 ANDROID_RELASZ 16 (bytes) |
| 706 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFE000 ANDROID_RELR 0x1000 |
| 707 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFE001 ANDROID_RELRSZ 0x10 |
| 708 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFE003 ANDROID_RELRENT 0x1234 |
| 709 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFEF5 GNU_HASH 0x1000 |
| 710 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFEF6 TLSDESC_PLT 0x1000 |
| 711 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFEF7 TLSDESC_GOT 0x1000 |
| 712 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFF9 RELACOUNT 0 |
| 713 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFA RELCOUNT 0 |
| 714 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFB FLAGS_1 NOW GLOBAL GROUP NODELETE LOADFLTR INITFIRST NOOPEN ORIGIN DIRECT TRANS INTERPOSE NODEFLIB NODUMP CONFALT ENDFILTEE DISPRELDNE DISPRELPND NODIRECT IGNMULDEF NOKSYMS NOHDR EDITED NORELOC SYMINTPOSE GLOBAUDIT SINGLETON PIE {{$}} |
| 715 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFF0 VERSYM 0x1000 |
| 716 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFC VERDEF 0x1000 |
| 717 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFD VERDEFNUM 0 |
| 718 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFE VERNEED 0x1000 |
| 719 | +# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFF VERNEEDNUM 0 |
| 720 | +# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [<?>] |
| 721 | +# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: [<?>] |
| 722 | +# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: [<?>] |
| 723 | +# PHENTSIZE-LLVM-NEXT: 0x0000000012345678 <unknown:>0x12345678 0x8765432187654321 |
| 724 | +# PHENTSIZE-LLVM-NEXT: 0x000000006ABCDEF0 <unknown:>0x6abcdef0 0x9988776655443322 |
| 725 | +# PHENTSIZE-LLVM-NEXT: 0x0000000076543210 <unknown:>0x76543210 0x5555666677778888 |
| 726 | +# PHENTSIZE-LLVM-NEXT: 0x0000000000000000 NULL 0x0 |
| 727 | +# PHENTSIZE-LLVM-NEXT: ] |
| 728 | + |
| 729 | +# PHENTSIZE-GNU: Dynamic section at offset 0xc0 contains 61 entries: |
| 730 | +# PHENTSIZE-GNU-NEXT: Tag Type Name/Value |
| 731 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>] |
| 732 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000002 (PLTRELSZ) 16 (bytes) |
| 733 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000003 (PLTGOT) 0x1000 |
| 734 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000004 (HASH) 0x1000 |
| 735 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000005 (STRTAB) 0x1000 |
| 736 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000006 (SYMTAB) 0x1000 |
| 737 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000007 (RELA) 0x1000 |
| 738 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000008 (RELASZ) 16 (bytes) |
| 739 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000009 (RELAENT) 1929 (bytes) |
| 740 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000a (STRSZ) 16 (bytes) |
| 741 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000b (SYMENT) 2439 (bytes) |
| 742 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000c (INIT) 0x1000 |
| 743 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000d (FINI) 0x1000 |
| 744 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [<?>] |
| 745 | +# PHENTSIZE-GNU-NEXT: 0x000000000000000f (RPATH) Library rpath: [<?>] |
| 746 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000010 (SYMBOLIC) 0x1234567890abcdef |
| 747 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000011 (REL) 0x1000 |
| 748 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000012 (RELSZ) 16 (bytes) |
| 749 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000013 (RELENT) 291 (bytes) |
| 750 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000014 (PLTREL) RELA |
| 751 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000015 (DEBUG) 0xfedcba0987654321 |
| 752 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000016 (TEXTREL) 0x1122334455667788 |
| 753 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000017 (JMPREL) 0x1000 |
| 754 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000018 (BIND_NOW) 0x8877665544332211 |
| 755 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000019 (INIT_ARRAY) 0x1000 |
| 756 | +# PHENTSIZE-GNU-NEXT: 0x000000000000001a (FINI_ARRAY) 0x1000 |
| 757 | +# PHENTSIZE-GNU-NEXT: 0x000000000000001b (INIT_ARRAYSZ) 16 (bytes) |
| 758 | +# PHENTSIZE-GNU-NEXT: 0x000000000000001c (FINI_ARRAYSZ) 16 (bytes) |
| 759 | +# PHENTSIZE-GNU-NEXT: 0x000000000000001d (RUNPATH) Library runpath: [<?>] |
| 760 | +# PHENTSIZE-GNU-NEXT: 0x000000000000001e (FLAGS) ORIGIN SYMBOLIC TEXTREL BIND_NOW STATIC_TLS |
| 761 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000020 (PREINIT_ARRAY) 0x1000 |
| 762 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000021 (PREINIT_ARRAYSZ) 16 (bytes) |
| 763 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000022 (SYMTAB_SHNDX) 0x1000 |
| 764 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000023 (RELRSZ) 0x10 |
| 765 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000024 (RELR) 0x1000 |
| 766 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000025 (RELRENT) 0x4321 |
| 767 | +# PHENTSIZE-GNU-NEXT: 0x000000006000000f (ANDROID_REL) 0x1000 |
| 768 | +# PHENTSIZE-GNU-NEXT: 0x0000000060000010 (ANDROID_RELSZ) 16 (bytes) |
| 769 | +# PHENTSIZE-GNU-NEXT: 0x0000000060000011 (ANDROID_RELA) 0x1000 |
| 770 | +# PHENTSIZE-GNU-NEXT: 0x0000000060000012 (ANDROID_RELASZ) 16 (bytes) |
| 771 | +# PHENTSIZE-GNU-NEXT: 0x000000006fffe000 (ANDROID_RELR) 0x1000 |
| 772 | +# PHENTSIZE-GNU-NEXT: 0x000000006fffe001 (ANDROID_RELRSZ) 0x10 |
| 773 | +# PHENTSIZE-GNU-NEXT: 0x000000006fffe003 (ANDROID_RELRENT) 0x1234 |
| 774 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffef5 (GNU_HASH) 0x1000 |
| 775 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffef6 (TLSDESC_PLT) 0x1000 |
| 776 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffef7 (TLSDESC_GOT) 0x1000 |
| 777 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffff9 (RELACOUNT) 0 |
| 778 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffffa (RELCOUNT) 0 |
| 779 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffffb (FLAGS_1) NOW GLOBAL GROUP NODELETE LOADFLTR INITFIRST NOOPEN ORIGIN DIRECT TRANS INTERPOSE NODEFLIB NODUMP CONFALT ENDFILTEE DISPRELDNE DISPRELPND NODIRECT IGNMULDEF NOKSYMS NOHDR EDITED NORELOC SYMINTPOSE GLOBAUDIT SINGLETON PIE |
| 780 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffff0 (VERSYM) 0x1000 |
| 781 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffffc (VERDEF) 0x1000 |
| 782 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffffd (VERDEFNUM) 0 |
| 783 | +# PHENTSIZE-GNU-NEXT: 0x000000006ffffffe (VERNEED) 0x1000 |
| 784 | +# PHENTSIZE-GNU-NEXT: 0x000000006fffffff (VERNEEDNUM) 0 |
| 785 | +# PHENTSIZE-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: [<?>] |
| 786 | +# PHENTSIZE-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: [<?>] |
| 787 | +# PHENTSIZE-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: [<?>] |
| 788 | +# PHENTSIZE-GNU-NEXT: 0x0000000012345678 (<unknown:>0x12345678) 0x8765432187654321 |
| 789 | +# PHENTSIZE-GNU-NEXT: 0x000000006abcdef0 (<unknown:>0x6abcdef0) 0x9988776655443322 |
| 790 | +# PHENTSIZE-GNU-NEXT: 0x0000000076543210 (<unknown:>0x76543210) 0x5555666677778888 |
| 791 | +# PHENTSIZE-GNU-NEXT: 0x0000000000000000 (NULL) 0x0 |
0 commit comments