149 lines
4.6 KiB
Plaintext
149 lines
4.6 KiB
Plaintext
## Test how --syms/-t prints the static symbol table.
|
|
# RUN: yaml2obj --docnum=1 %s -o %t
|
|
# RUN: llvm-objdump --syms %t > %t.txt
|
|
# RUN: llvm-objdump -t %t | cmp - %t.txt
|
|
# RUN: FileCheck %s --input-file=%t.txt --match-full-lines --strict-whitespace
|
|
|
|
# CHECK:SYMBOL TABLE:
|
|
# CHECK-NEXT:0000000000000000 l df *ABS* 0000000000000000 a.c
|
|
# CHECK-NEXT:0000000000000000 l d .text 0000000000000000 .text
|
|
# CHECK-NEXT:0000000000002000 l O .data 0000000000000000 local_object
|
|
# CHECK-NEXT:0000000000001fff l F .text 0000000000000000 local_func
|
|
# CHECK-NEXT:0000000000000000 l *ABS* 0000000000000000 local_abs
|
|
# CHECK-NEXT:0000000000000000 g .data 0000000000000000 notype
|
|
# CHECK-NEXT:0000000000000000 g O .data 0000000000000010 object
|
|
# CHECK-NEXT:0000000000000000 g F .text 000000000000000f func
|
|
# CHECK-NEXT:0000000000000000 g O *COM* 0000000000000000 common
|
|
# CHECK-NEXT:0000000000000000 g O .data 0000000000000000 tls
|
|
# CHECK-NEXT:0000000000000000 g i .text 0000000000000000 ifunc
|
|
# CHECK-NEXT:0000000000000000 g .text 0000000000000000 invalid_type
|
|
# CHECK-NEXT:0000000000000000 g .text 0000000000000000 STT_HIOS
|
|
# CHECK-NEXT:0000000000000000 g .text 0000000000000000 STT_LOPROC
|
|
# CHECK-NEXT:0000000000000000 *UND* 0000000000000000 undef
|
|
# CHECK-NEXT:0000000000000000 *UND* 0000000000000000 SHN_LOPROC
|
|
# CHECK-NEXT:0000000000000000 *UND* 0000000000000000 SHN_LOOS
|
|
# CHECK-NEXT:0000000000000000 *UND* 0000000000000000 reserve
|
|
# CHECK-NEXT:0000000000000000 g *ABS* 0000000000000000 abs
|
|
# CHECK-NEXT:0000000000000000 *COM* 0000000000000000 common2
|
|
# CHECK-NEXT:0000000000000000 u O .data 0000000000000000 gnu_unique
|
|
# CHECK-NEXT:0000000000000000 g .data 0000000000000000 invalid_binding
|
|
# CHECK-NEXT:0000000000000000 g .data 0000000000000000 STB_HIOS
|
|
# CHECK-NEXT:0000000000000000 g .data 0000000000000000 STB_LOPROC
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .text
|
|
Type: SHT_PROGBITS
|
|
- Name: .data
|
|
Type: SHT_PROGBITS
|
|
Symbols:
|
|
- Name: "a.c"
|
|
Type: STT_FILE
|
|
Index: SHN_ABS
|
|
- Type: STT_SECTION
|
|
Section: .text
|
|
- Name: local_object
|
|
Type: STT_OBJECT
|
|
Section: .data
|
|
Value: 0x2000
|
|
- Name: local_func
|
|
Type: STT_FUNC
|
|
Section: .text
|
|
Value: 0x1fff
|
|
- Name: local_abs
|
|
Index: SHN_ABS
|
|
- Name: notype
|
|
Binding: STB_GLOBAL
|
|
Section: .data
|
|
- Name: object
|
|
Type: STT_OBJECT
|
|
Size: 0x10
|
|
Binding: STB_GLOBAL
|
|
Section: .data
|
|
- Name: func
|
|
Type: STT_FUNC
|
|
Size: 0xf
|
|
Binding: STB_GLOBAL
|
|
Section: .text
|
|
- Name: common
|
|
Type: STT_COMMON
|
|
Binding: STB_GLOBAL
|
|
Section: .data
|
|
- Name: tls
|
|
Type: STT_TLS
|
|
Binding: STB_GLOBAL
|
|
Section: .data
|
|
- Name: ifunc
|
|
Type: STT_GNU_IFUNC
|
|
Binding: STB_GLOBAL
|
|
Section: .text
|
|
- Name: invalid_type
|
|
Type: 7
|
|
Binding: STB_GLOBAL
|
|
Section: .text
|
|
- Name: STT_HIOS
|
|
Type: 12
|
|
Binding: STB_GLOBAL
|
|
Section: .text
|
|
- Name: STT_LOPROC
|
|
Type: 13
|
|
Binding: STB_GLOBAL
|
|
Section: .text
|
|
- Name: undef
|
|
Binding: STB_GLOBAL
|
|
- Name: SHN_LOPROC
|
|
Binding: STB_GLOBAL
|
|
Index: 0xff00
|
|
- Name: SHN_LOOS
|
|
Binding: STB_GLOBAL
|
|
Index: 0xff20
|
|
- Name: reserve
|
|
Binding: STB_GLOBAL
|
|
Index: 0xff40
|
|
- Name: abs
|
|
Index: SHN_ABS
|
|
Binding: STB_GLOBAL
|
|
- Name: common2
|
|
Binding: STB_GLOBAL
|
|
Index: SHN_COMMON
|
|
- Name: gnu_unique
|
|
Type: STT_OBJECT
|
|
Binding: STB_GNU_UNIQUE
|
|
Section: .data
|
|
- Name: invalid_binding
|
|
Binding: 3
|
|
Section: .data
|
|
- Name: STB_HIOS
|
|
Binding: 12
|
|
Section: .data
|
|
- Name: STB_LOPROC
|
|
Binding: 13
|
|
Section: .data
|
|
|
|
## For an ELF32 object, print the address and size fields as 32-bit hexadecimals.
|
|
# RUN: yaml2obj --docnum=2 -D BITS=32 %s -o %t.32
|
|
# RUN: llvm-objdump --syms %t.32 | FileCheck --check-prefix=ELF32 %s --match-full-lines --strict-whitespace
|
|
## For an ELF64 object, print the address and size fields as 64-bit hexadecimals.
|
|
# RUN: yaml2obj --docnum=2 -D BITS=64 %s -o %t.64
|
|
# RUN: llvm-objdump --syms %t.64 | FileCheck --check-prefix=ELF64 %s --match-full-lines --strict-whitespace
|
|
|
|
# ELF32:SYMBOL TABLE:
|
|
# ELF32-NEXT:00000000 *UND* 00000000 sym
|
|
|
|
# ELF64:SYMBOL TABLE:
|
|
# ELF64-NEXT:0000000000000000 *UND* 0000000000000000 sym
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS[[BITS]]
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Machine: EM_X86_64
|
|
Symbols:
|
|
- Name: sym
|