139 lines
3.3 KiB
Plaintext
139 lines
3.3 KiB
Plaintext
|
## Show the disassembly behaviour when dynamic symbols are present.
|
||
|
# RUN: yaml2obj %s -o %t
|
||
|
|
||
|
## Case 1: Both static and dynamic symbols are present. Only static
|
||
|
## symbols are displayed.
|
||
|
# RUN: llvm-objdump -d %t | FileCheck %s --check-prefixes=CHECK,STATIC
|
||
|
|
||
|
## Case 2: Only the dynamic symbols are present. These should be displayed, if
|
||
|
## they meet the necessary criteria.
|
||
|
# RUN: llvm-objcopy --strip-all %t %t2
|
||
|
# RUN: llvm-objdump -d %t2 | FileCheck %s --check-prefixes=CHECK,DYN
|
||
|
|
||
|
# CHECK: Disassembly of section .text:
|
||
|
# CHECK-EMPTY:
|
||
|
# STATIC-NEXT: 0000000000001000 <.text>:
|
||
|
# DYN-NEXT: 0000000000001000 <only_dyn>:
|
||
|
# CHECK-NEXT: 1000:
|
||
|
# CHECK-EMPTY:
|
||
|
# STATIC-NEXT: 0000000000001001 <both_static>:
|
||
|
# DYN-NEXT: 0000000000001001 <both_dyn>:
|
||
|
# CHECK-NEXT: 1001:
|
||
|
# STATIC-EMPTY:
|
||
|
# STATIC-NEXT: 0000000000001002 <only_static>:
|
||
|
# CHECK-NEXT: 1002:
|
||
|
# DYN-EMPTY:
|
||
|
# DYN-NEXT: 0000000000001003 <object>:
|
||
|
# CHECK-NEXT: 1003:
|
||
|
# DYN-EMPTY:
|
||
|
# DYN-NEXT: 0000000000001004 <zero_sized>:
|
||
|
# CHECK-NEXT: 1004:
|
||
|
# DYN-EMPTY:
|
||
|
# DYN-NEXT: 0000000000001005 <common>:
|
||
|
# CHECK-NEXT: 1005:
|
||
|
# DYN-EMPTY:
|
||
|
# DYN-NEXT: 0000000000001006 <loos>:
|
||
|
# CHECK-NEXT: 1006:
|
||
|
# DYN-EMPTY:
|
||
|
# DYN-NEXT: 0000000000001007 <loproc>:
|
||
|
# CHECK-NEXT: 1007:
|
||
|
# CHECK-NEXT: 1008:
|
||
|
# CHECK-NEXT: 1009:
|
||
|
# CHECK-NEXT: 100a:
|
||
|
# CHECK-NEXT: 100b:{{.*}}
|
||
|
# CHECK-NOT: {{.}}
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS64
|
||
|
Data: ELFDATA2LSB
|
||
|
Type: ET_DYN
|
||
|
Machine: EM_X86_64
|
||
|
Sections:
|
||
|
- Name: .text
|
||
|
Type: SHT_PROGBITS
|
||
|
Flags: [SHF_ALLOC, SHF_EXECINSTR]
|
||
|
Address: 0x1000
|
||
|
Content: 909090909090909090909090
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
VAddr: 0x1000
|
||
|
FirstSec: .text
|
||
|
LastSec: .text
|
||
|
Symbols:
|
||
|
- Name: both_static
|
||
|
Value: 0x1001
|
||
|
Section: .text
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: only_static
|
||
|
Value: 0x1002
|
||
|
Section: .text
|
||
|
Binding: STB_GLOBAL
|
||
|
DynamicSymbols:
|
||
|
- Name: only_dyn
|
||
|
Value: 0x1000
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_FUNC
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: both_dyn
|
||
|
Value: 0x1001
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_NOTYPE
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: object
|
||
|
Value: 0x1003
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_OBJECT
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: zero_sized
|
||
|
Value: 0x1004
|
||
|
Section: .text
|
||
|
Type: STT_FUNC
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: common
|
||
|
Value: 0x1005
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_COMMON
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: loos
|
||
|
Value: 0x1006
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: 10
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: loproc
|
||
|
Value: 0x1007
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: 13
|
||
|
Binding: STB_GLOBAL
|
||
|
## The rest of the dynamic symbols won't be used for various reasons.
|
||
|
- Name: section
|
||
|
Value: 0x1008
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_SECTION
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: '' # No name
|
||
|
Value: 0x1009
|
||
|
Section: .text
|
||
|
Size: 1
|
||
|
Type: STT_FUNC
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: absolute
|
||
|
Value: 0x100a
|
||
|
Index: SHN_ABS
|
||
|
Size: 1
|
||
|
Type: STT_FUNC
|
||
|
Binding: STB_GLOBAL
|
||
|
- Name: undefined
|
||
|
Value: 0x100b
|
||
|
Index: SHN_UNDEF
|
||
|
Size: 1
|
||
|
Type: STT_FUNC
|
||
|
Binding: STB_GLOBAL
|