You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.6 KiB

## 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