diff options
Diffstat (limited to 'test/tools')
| -rw-r--r-- | test/tools/llvm-cvtres/machine.test | 56 | ||||
| -rw-r--r-- | test/tools/llvm-cvtres/symbols.test | 12 | ||||
| -rw-r--r-- | test/tools/llvm-dwarfdump/X86/lookup.s | 7 | ||||
| -rw-r--r-- | test/tools/llvm-objcopy/add-section-remove.test | 36 | ||||
| -rw-r--r-- | test/tools/llvm-objcopy/add-section.test | 37 | ||||
| -rw-r--r-- | test/tools/llvm-readobj/mips-got.test | 136 | ||||
| -rw-r--r-- | test/tools/llvm-readobj/mips-plt.test | 32 |
7 files changed, 279 insertions, 37 deletions
diff --git a/test/tools/llvm-cvtres/machine.test b/test/tools/llvm-cvtres/machine.test index cac36062f301..5ce6cbaf697d 100644 --- a/test/tools/llvm-cvtres/machine.test +++ b/test/tools/llvm-cvtres/machine.test @@ -29,46 +29,46 @@ X86: Machine: IMAGE_FILE_MACHINE_I386 (0x14C) X86-DAG: Relocations [ X86-DAG: .rsrc$01 { X86-NEXT: 0x1E8 IMAGE_REL_I386_DIR32NB $R000000 -X86-NEXT: 0x198 IMAGE_REL_I386_DIR32NB $R000018 -X86-NEXT: 0x1A8 IMAGE_REL_I386_DIR32NB $R000340 -X86-NEXT: 0x1C8 IMAGE_REL_I386_DIR32NB $R000668 -X86-NEXT: 0x1D8 IMAGE_REL_I386_DIR32NB $R000698 -X86-NEXT: 0x1F8 IMAGE_REL_I386_DIR32NB $R000708 -X86-NEXT: 0x1B8 IMAGE_REL_I386_DIR32NB $R000720 -X86-NEXT: 0x188 IMAGE_REL_I386_DIR32NB $R000750 +X86-NEXT: 0x198 IMAGE_REL_I386_DIR32NB $R000001 +X86-NEXT: 0x1A8 IMAGE_REL_I386_DIR32NB $R000002 +X86-NEXT: 0x1C8 IMAGE_REL_I386_DIR32NB $R000003 +X86-NEXT: 0x1D8 IMAGE_REL_I386_DIR32NB $R000004 +X86-NEXT: 0x1F8 IMAGE_REL_I386_DIR32NB $R000005 +X86-NEXT: 0x1B8 IMAGE_REL_I386_DIR32NB $R000006 +X86-NEXT: 0x188 IMAGE_REL_I386_DIR32NB $R000007 X64: Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664) X64-DAG: Relocations [ X64-DAG: .rsrc$01 { X64-NEXT: 0x1E8 IMAGE_REL_AMD64_ADDR32NB $R000000 -X64-NEXT: 0x198 IMAGE_REL_AMD64_ADDR32NB $R000018 -X64-NEXT: 0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000340 -X64-NEXT: 0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000668 -X64-NEXT: 0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000698 -X64-NEXT: 0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000708 -X64-NEXT: 0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000720 -X64-NEXT: 0x188 IMAGE_REL_AMD64_ADDR32NB $R000750 +X64-NEXT: 0x198 IMAGE_REL_AMD64_ADDR32NB $R000001 +X64-NEXT: 0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000002 +X64-NEXT: 0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000003 +X64-NEXT: 0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000004 +X64-NEXT: 0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000005 +X64-NEXT: 0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000006 +X64-NEXT: 0x188 IMAGE_REL_AMD64_ADDR32NB $R000007 ARM: Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4) ARM-DAG: Relocations [ ARM-DAG: .rsrc$01 { ARM-NEXT: 0x1E8 IMAGE_REL_ARM_ADDR32NB $R000000 -ARM-NEXT: 0x198 IMAGE_REL_ARM_ADDR32NB $R000018 -ARM-NEXT: 0x1A8 IMAGE_REL_ARM_ADDR32NB $R000340 -ARM-NEXT: 0x1C8 IMAGE_REL_ARM_ADDR32NB $R000668 -ARM-NEXT: 0x1D8 IMAGE_REL_ARM_ADDR32NB $R000698 -ARM-NEXT: 0x1F8 IMAGE_REL_ARM_ADDR32NB $R000708 -ARM-NEXT: 0x1B8 IMAGE_REL_ARM_ADDR32NB $R000720 -ARM-NEXT: 0x188 IMAGE_REL_ARM_ADDR32NB $R000750 +ARM-NEXT: 0x198 IMAGE_REL_ARM_ADDR32NB $R000001 +ARM-NEXT: 0x1A8 IMAGE_REL_ARM_ADDR32NB $R000002 +ARM-NEXT: 0x1C8 IMAGE_REL_ARM_ADDR32NB $R000003 +ARM-NEXT: 0x1D8 IMAGE_REL_ARM_ADDR32NB $R000004 +ARM-NEXT: 0x1F8 IMAGE_REL_ARM_ADDR32NB $R000005 +ARM-NEXT: 0x1B8 IMAGE_REL_ARM_ADDR32NB $R000006 +ARM-NEXT: 0x188 IMAGE_REL_ARM_ADDR32NB $R000007 ARM64: Machine: IMAGE_FILE_MACHINE_ARM64 (0xAA64) ARM64-DAG: Relocations [ ARM64-DAG: .rsrc$01 { ARM64-NEXT: 0x1E8 IMAGE_REL_ARM64_ADDR32NB $R000000 -ARM64-NEXT: 0x198 IMAGE_REL_ARM64_ADDR32NB $R000018 -ARM64-NEXT: 0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000340 -ARM64-NEXT: 0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000668 -ARM64-NEXT: 0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000698 -ARM64-NEXT: 0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000708 -ARM64-NEXT: 0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000720 -ARM64-NEXT: 0x188 IMAGE_REL_ARM64_ADDR32NB $R000750 +ARM64-NEXT: 0x198 IMAGE_REL_ARM64_ADDR32NB $R000001 +ARM64-NEXT: 0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000002 +ARM64-NEXT: 0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000003 +ARM64-NEXT: 0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000004 +ARM64-NEXT: 0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000005 +ARM64-NEXT: 0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000006 +ARM64-NEXT: 0x188 IMAGE_REL_ARM64_ADDR32NB $R000007 diff --git a/test/tools/llvm-cvtres/symbols.test b/test/tools/llvm-cvtres/symbols.test index 2ca3a193ac40..14f5c360d454 100644 --- a/test/tools/llvm-cvtres/symbols.test +++ b/test/tools/llvm-cvtres/symbols.test @@ -13,21 +13,21 @@ RUN: llvm-readobj -symbols %t | FileCheck %s CHECK: Name: $R000000 CHECK-NEXT: Value: 0 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000018 +CHECK: Name: $R000001 CHECK-NEXT: Value: 24 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000340 +CHECK: Name: $R000002 CHECK-NEXT: Value: 832 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000668 +CHECK: Name: $R000003 CHECK-NEXT: Value: 1640 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000698 +CHECK: Name: $R000004 CHECK-NEXT: Value: 1688 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000720 +CHECK: Name: $R000006 CHECK-NEXT: Value: 1824 CHECK-NEXT: Section: .rsrc$02 -CHECK: Name: $R000750 +CHECK: Name: $R000007 CHECK-NEXT: Value: 1872 CHECK-NEXT: Section: .rsrc$02 diff --git a/test/tools/llvm-dwarfdump/X86/lookup.s b/test/tools/llvm-dwarfdump/X86/lookup.s index 652844447c11..d09528d667fa 100644 --- a/test/tools/llvm-dwarfdump/X86/lookup.s +++ b/test/tools/llvm-dwarfdump/X86/lookup.s @@ -1,5 +1,10 @@ # RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \ -# RUN: | llvm-dwarfdump -lookup=0x7fffffff - | \ +# RUN: | llvm-dwarfdump -lookup=0xffffffff - | \ +# RUN: FileCheck %s --check-prefix=EMPTY --allow-empty +# EMPTY: {{^$}} + +# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \ +# RUN: | llvm-dwarfdump -lookup=0xffffffffffffffff - | \ # RUN: FileCheck %s --check-prefix=EMPTY --allow-empty # EMPTY: {{^$}} diff --git a/test/tools/llvm-objcopy/add-section-remove.test b/test/tools/llvm-objcopy/add-section-remove.test new file mode 100644 index 000000000000..0dee1182a28d --- /dev/null +++ b/test/tools/llvm-objcopy/add-section-remove.test @@ -0,0 +1,36 @@ +# RUN: yaml2obj %s > %t +# RUN: echo 0000 > %t.sec +# RUN: llvm-objcopy -R=.test2 -add-section=.test2=%t.sec %t %t2 +# RUN: llvm-readobj -file-headers -sections -section-data %t2 | FileCheck %s + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .test1 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "c3c3c3c3" + - Name: .test2 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "DEADBEEF" + - Name: .test3 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "32323232" + +# CHECK: SectionHeaderCount: 7 + +# CHECK: Name: .test1 +# CHECK: Name: .test3 +# CHECK: Name: .symtab +# CHECK: Name: .strtab +# CHECK: Name: .shstrtab +# CHECK: Name: .test2 +# CHECK: SectionData ( +# CHECK-NEXT: 0000: 30303030 +# CHECK-NEXT: ) diff --git a/test/tools/llvm-objcopy/add-section.test b/test/tools/llvm-objcopy/add-section.test new file mode 100644 index 000000000000..048edcba227f --- /dev/null +++ b/test/tools/llvm-objcopy/add-section.test @@ -0,0 +1,37 @@ +# RUN: yaml2obj %s > %t +# RUN: llvm-objcopy -O binary -j .test2 %t %t.sec +# RUN: llvm-objcopy -R=.test2 %t %t2 +# RUN: llvm-objcopy -add-section=.test2=%t.sec %t2 %t3 +# RUN: llvm-readobj -file-headers -sections -section-data %t3 | FileCheck %s + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .test1 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "c3c3c3c3" + - Name: .test2 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "DEADBEEF" + - Name: .test3 + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + Content: "32323232" + +# CHECK: SectionHeaderCount: 7 + +# CHECK: Name: .test1 +# CHECK: Name: .test3 +# CHECK: Name: .symtab +# CHECK: Name: .strtab +# CHECK: Name: .shstrtab +# CHECK: Name: .test2 +# CHECK: SectionData ( +# CHECK-NEXT: 0000: DEADBEEF +# CHECK-NEXT: ) diff --git a/test/tools/llvm-readobj/mips-got.test b/test/tools/llvm-readobj/mips-got.test index 65ccf13f2b4c..a5c15fdfe230 100644 --- a/test/tools/llvm-readobj/mips-got.test +++ b/test/tools/llvm-readobj/mips-got.test @@ -1,4 +1,4 @@ -RUN: llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips | \ +RUN: not llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips 2>&1 | \ RUN: FileCheck %s -check-prefix GOT-OBJ RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-exe.mips | \ RUN: FileCheck %s -check-prefix GOT-EXE @@ -11,7 +11,26 @@ RUN: FileCheck %s -check-prefix GOT-EMPTY RUN: llvm-readobj -mips-plt-got %p/Inputs/got-static.exe.mips | \ RUN: FileCheck %s -check-prefix GOT-STATIC -GOT-OBJ: Cannot find .got section +RUN: not llvm-readobj -mips-plt-got %p/Inputs/relocs.obj.elf-mips \ +RUN: --elf-output-style=GNU 2>&1 | \ +RUN: FileCheck %s -check-prefix GNU-GOT-OBJ +RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-exe.mips \ +RUN: --elf-output-style=GNU | \ +RUN: FileCheck %s -check-prefix GNU-GOT-EXE +RUN: llvm-readobj -mips-plt-got %p/Inputs/dynamic-table-so.mips \ +RUN: --elf-output-style=GNU | \ +RUN: FileCheck %s -check-prefix GNU-GOT-SO +RUN: llvm-readobj -mips-plt-got %p/Inputs/got-tls.so.elf-mips64el \ +RUN: --elf-output-style=GNU | \ +RUN: FileCheck %s -check-prefix GNU-GOT-TLS +RUN: llvm-readobj -mips-plt-got %p/Inputs/got-empty.exe.mipsel \ +RUN: --elf-output-style=GNU | \ +RUN: FileCheck %s -check-prefix GNU-GOT-EMPTY +RUN: llvm-readobj -mips-plt-got %p/Inputs/got-static.exe.mips \ +RUN: --elf-output-style=GNU | \ +RUN: FileCheck %s -check-prefix GNU-GOT-STATIC + +GOT-OBJ: Error reading file: Cannot find .got section. GOT-EXE: Primary GOT { GOT-EXE-NEXT: Canonical gp value: 0x418880 @@ -366,3 +385,116 @@ GOT-STATIC-NEXT: Initial: 0x400104 GOT-STATIC-NEXT: } GOT-STATIC-NEXT: ] GOT-STATIC-NEXT: } + +GNU-GOT-OBJ: Error reading file: Cannot find .got section. + +GNU-GOT-EXE: Primary GOT: +GNU-GOT-EXE-NEXT: Canonical gp value: 00418880 + +GNU-GOT-EXE: Reserved entries: +GNU-GOT-EXE-NEXT: Address Access Initial Purpose +GNU-GOT-EXE-NEXT: 00410890 -32752(gp) 00000000 Lazy resolver +GNU-GOT-EXE-NEXT: 00410894 -32748(gp) 80000000 Module pointer (GNU extension) + +GNU-GOT-EXE: Local entries: +GNU-GOT-EXE-NEXT: Address Access Initial +GNU-GOT-EXE-NEXT: 00410898 -32744(gp) 00400418 +GNU-GOT-EXE-NEXT: 0041089c -32740(gp) 00410840 +GNU-GOT-EXE-NEXT: 004108a0 -32736(gp) 00000000 + +GNU-GOT-EXE: Global entries: +GNU-GOT-EXE-NEXT: Address Access Initial Sym.Val. Type Ndx Name +GNU-GOT-EXE-NEXT: 004108a4 -32732(gp) 00000000 00000000 FUNC UND __gmon_start__ + +GNU-GOT-EXE: PLT GOT: + +GNU-GOT-EXE: Reserved entries: +GNU-GOT-EXE-NEXT: Address Initial Purpose +GNU-GOT-EXE-NEXT: 00410854 00000000 PLT lazy resolver +GNU-GOT-EXE-NEXT: 00410894 80000000 Module pointer + +GNU-GOT-EXE: Entries: +GNU-GOT-EXE-NEXT: Address Initial Sym.Val. Type Ndx Name +GNU-GOT-EXE-NEXT: 0041085c 00400800 00000000 FUNC UND puts +GNU-GOT-EXE-NEXT: 00410860 00400800 00000000 FUNC UND __libc_start_main + +GNU-GOT-SO: Primary GOT: +GNU-GOT-SO-NEXT: Canonical gp value: 000188d0 + +GNU-GOT-SO: Reserved entries: +GNU-GOT-SO-NEXT: Address Access Initial Purpose +GNU-GOT-SO-NEXT: 000108e0 -32752(gp) 00000000 Lazy resolver +GNU-GOT-SO-NEXT: 000108e4 -32748(gp) 80000000 Module pointer (GNU extension) + +GNU-GOT-SO: Local entries: +GNU-GOT-SO-NEXT: Address Access Initial +GNU-GOT-SO-NEXT: 000108e8 -32744(gp) 000108e0 +GNU-GOT-SO-NEXT: 000108ec -32740(gp) 00010000 +GNU-GOT-SO-NEXT: 000108f0 -32736(gp) 00010920 +GNU-GOT-SO-NEXT: 000108f4 -32732(gp) 000108cc +GNU-GOT-SO-NEXT: 000108f8 -32728(gp) 00000000 +GNU-GOT-SO-NEXT: 000108fc -32724(gp) 00000000 +GNU-GOT-SO-NEXT: 00010900 -32720(gp) 00000000 +GNU-GOT-SO-NEXT: 00010904 -32716(gp) 00000000 + +GNU-GOT-SO: Global entries: +GNU-GOT-SO-NEXT: Address Access Initial Sym.Val. Type Ndx Name +GNU-GOT-SO-NEXT: 00010908 -32712(gp) 00000000 00000000 NOTYPE UND _ITM_registerTMCloneTable +GNU-GOT-SO-NEXT: 0001090c -32708(gp) 00000000 00000000 NOTYPE UND _Jv_RegisterClasses +GNU-GOT-SO-NEXT: 00010910 -32704(gp) 00000000 00000000 FUNC UND __gmon_start__ +GNU-GOT-SO-NEXT: 00010914 -32700(gp) 00000840 00000840 FUNC UND puts +GNU-GOT-SO-NEXT: 00010918 -32696(gp) 00000000 00000000 NOTYPE UND _ITM_deregisterTMCloneTable +GNU-GOT-SO-NEXT: 0001091c -32692(gp) 00000000 00000000 FUNC UND __cxa_finalize + +GNU-GOT-TLS: Primary GOT: +GNU-GOT-TLS-NEXT: Canonical gp value: 0000000000018bf0 + +GNU-GOT-TLS: Reserved entries: +GNU-GOT-TLS-NEXT: Address Access Initial Purpose +GNU-GOT-TLS-NEXT: 0000000000010c00 -32752(gp) 0000000000000000 Lazy resolver +GNU-GOT-TLS-NEXT: 0000000000010c08 -32744(gp) 8000000000000000 Module pointer (GNU extension) + +GNU-GOT-TLS: Local entries: +GNU-GOT-TLS-NEXT: Address Access Initial +GNU-GOT-TLS-NEXT: 0000000000010c10 -32736(gp) 0000000000010000 +GNU-GOT-TLS-NEXT: 0000000000010c18 -32728(gp) 0000000000010c00 +GNU-GOT-TLS-NEXT: 0000000000010c20 -32720(gp) 0000000000010cb8 +GNU-GOT-TLS-NEXT: 0000000000010c28 -32712(gp) 0000000000010bf0 +GNU-GOT-TLS-NEXT: 0000000000010c30 -32704(gp) 0000000000000000 +GNU-GOT-TLS-NEXT: 0000000000010c38 -32696(gp) 0000000000000948 +GNU-GOT-TLS-NEXT: 0000000000010c40 -32688(gp) 0000000000000a20 +GNU-GOT-TLS-NEXT: 0000000000010c48 -32680(gp) 0000000000000af0 +GNU-GOT-TLS-NEXT: 0000000000010c50 -32672(gp) 0000000000000000 +GNU-GOT-TLS-NEXT: 0000000000010c58 -32664(gp) 0000000000000000 +GNU-GOT-TLS-NEXT: 0000000000010c60 -32656(gp) 0000000000000000 + +GNU-GOT-TLS: Global entries: +GNU-GOT-TLS-NEXT: Address Access Initial Sym.Val. Type Ndx Name +GNU-GOT-TLS-NEXT: 0000000000010c68 -32648(gp) 0000000000000000 0000000000000000 NOTYPE UND _ITM_registerTMCloneTable +GNU-GOT-TLS-NEXT: 0000000000010c70 -32640(gp) 0000000000000000 0000000000000000 NOTYPE UND _Jv_RegisterClasses +GNU-GOT-TLS-NEXT: 0000000000010c78 -32632(gp) 0000000000000000 0000000000000000 FUNC UND __gmon_start__ +GNU-GOT-TLS-NEXT: 0000000000010c80 -32624(gp) 0000000000000b60 0000000000000b60 FUNC UND __tls_get_addr +GNU-GOT-TLS-NEXT: 0000000000010c88 -32616(gp) 0000000000000000 0000000000000000 NOTYPE UND _ITM_deregisterTMCloneTable +GNU-GOT-TLS-NEXT: 0000000000010c90 -32608(gp) 0000000000000000 0000000000000000 FUNC UND __cxa_finalize + +GNU-GOTY : Primary GOT: +GNU-GOT-EMPTY: Canonical gp value: 00409ff0 + +GNU-GOTY : Reserved entries: +GNU-GOT-EMPTY: Address Access Initial Purpose +GNU-GOT-EMPTY: 00402000 -32752(gp) 00000000 Lazy resolver +GNU-GOT-EMPTY: 00402004 -32748(gp) 80000000 Module pointer (GNU extension) + +GNU-GOT-STATIC: Static GOT: +GNU-GOT-STATIC-NEXT: Canonical gp value: 00418100 + +GNU-GOT-STATIC: Reserved entries: +GNU-GOT-STATIC-NEXT: Address Access Initial Purpose +GNU-GOT-STATIC-NEXT: 00410110 -32752(gp) 00000000 Lazy resolver +GNU-GOT-STATIC-NEXT: 00410114 -32748(gp) 80000000 Module pointer (GNU extension) + +GNU-GOT-STATIC: Local entries: +GNU-GOT-STATIC-NEXT: Address Access Initial +GNU-GOT-STATIC-NEXT: 00410118 -32744(gp) 00400000 +GNU-GOT-STATIC-NEXT: 0041011c -32740(gp) 00400100 +GNU-GOT-STATIC-NEXT: 00410120 -32736(gp) 00400104 diff --git a/test/tools/llvm-readobj/mips-plt.test b/test/tools/llvm-readobj/mips-plt.test index ab0824b0be68..f41940c9cf34 100644 --- a/test/tools/llvm-readobj/mips-plt.test +++ b/test/tools/llvm-readobj/mips-plt.test @@ -1,4 +1,7 @@ RUN: llvm-readobj -mips-plt-got %p/Inputs/got-plt.exe.elf-mipsel | FileCheck %s +RUN: llvm-readobj -mips-plt-got --elf-output-style=GNU \ +RUN: %p/Inputs/got-plt.exe.elf-mipsel \ +RUN: | FileCheck --check-prefix=GNU %s CHECK: PLT GOT { CHECK-NEXT: Reserved entries [ @@ -32,3 +35,32 @@ CHECK-NEXT: Name: __libc_start_main@GLIBC_2.0 (53) CHECK-NEXT: } CHECK-NEXT: ] CHECK-NEXT: } + +GNU: Primary GOT: +GNU-NEXT: Canonical gp value: 00418840 + +GNU: Reserved entries: +GNU-NEXT: Address Access Initial Purpose +GNU-NEXT: 00410850 -32752(gp) 00000000 Lazy resolver +GNU-NEXT: 00410854 -32748(gp) 80000000 Module pointer (GNU extension) + +GNU: Local entries: +GNU-NEXT: Address Access Initial +GNU-NEXT: 00410858 -32744(gp) 004003d4 +GNU-NEXT: 0041085c -32740(gp) 00410800 +GNU-NEXT: 00410860 -32736(gp) 00000000 + +GNU: Global entries: +GNU-NEXT: Address Access Initial Sym.Val. Type Ndx Name +GNU-NEXT: 00410864 -32732(gp) 00000000 00000000 FUNC UND __gmon_start__ +GNU-NEXT: PLT GOT: + +GNU: Reserved entries: +GNU-NEXT: Address Initial Purpose +GNU-NEXT: 00410814 00000000 PLT lazy resolver +GNU-NEXT: 00410854 80000000 Module pointer + +GNU: Entries: +GNU-NEXT: Address Initial Sym.Val. Type Ndx Name +GNU-NEXT: 0041081c 004007c0 00000000 FUNC UND puts +GNU-NEXT: 00410820 004007c0 00000000 FUNC UND __libc_start_main |
