110 lines · plain
1## Test that llvm-objdump can dump dynamic symbols.2# RUN: yaml2obj --docnum=1 %s -o %t13# RUN: llvm-objdump --dynamic-syms %t1 | \4# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM5# RUN: llvm-objdump -T %t1 | \6# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM7 8# DYNSYM:{{.*}}file format elf64-x86-649# DYNSYM-EMPTY:10# DYNSYM-NEXT:DYNAMIC SYMBOL TABLE:11# DYNSYM-NEXT:0000000000000000 l DO .data 0000000000000000 localsym12# DYNSYM-NEXT:0000000000000000 g DO .data 0000000000000000 globalsym13# DYNSYM-NEXT:0000000000000000 u DO .data 0000000000000000 uniqueglobalsym14# DYNSYM-NEXT:0000000000000000 w DO .data 0000000000000000 weaksym15# DYNSYM-NEXT:0000000000000000 g Df .data 0000000000000000 filesym16# DYNSYM-NEXT:0000000000000000 g DF .data 0000000000000000 funcsym17# DYNSYM-EMPTY:18 19--- !ELF20FileHeader:21 Class: ELFCLASS6422 Data: ELFDATA2LSB23 Type: ET_DYN24 Machine: EM_X86_6425Sections:26 - Name: .data27 Type: SHT_PROGBITS28 Flags: [ SHF_ALLOC, SHF_WRITE ]29DynamicSymbols:30 - Name: localsym31 Type: STT_OBJECT32 Section: .data33 Binding: STB_LOCAL34 - Name: globalsym35 Type: STT_OBJECT36 Section: .data37 Binding: STB_GLOBAL38 - Name: uniqueglobalsym39 Type: STT_OBJECT40 Section: .data41 Binding: STB_GNU_UNIQUE42 - Name: weaksym43 Type: STT_OBJECT44 Section: .data45 Binding: STB_WEAK46 - Name: filesym47 Type: STT_FILE48 Section: .data49 Binding: STB_GLOBAL50 - Name: funcsym51 Type: STT_FUNC52 Section: .data53 Binding: STB_GLOBAL54 55## Test dumping ELF files with no .dynsym section.56# RUN: yaml2obj --docnum=2 %s -o %t257# RUN: llvm-objdump --dynamic-syms %t2 | \58# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM59# RUN: llvm-objdump -T %t2 | \60# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM61 62# NODYNSYM:DYNAMIC SYMBOL TABLE:63# NODYNSYM-EMPTY:64 65--- !ELF66FileHeader:67 Class: ELFCLASS6468 Data: ELFDATA2LSB69 Type: ET_DYN70 Machine: EM_X86_6471 72## Test dumping ELF files with logically empty .dynsym section (only has a 0-index NULL symbol).73# RUN: yaml2obj --docnum=3 %s -o %t374# RUN: llvm-objdump --dynamic-syms %t3 | \75# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL76# RUN: llvm-objdump -T %t3 | \77# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL78 79# ONLY-NULL:DYNAMIC SYMBOL TABLE:80# ONLY-NULL-EMPTY:81 82--- !ELF83FileHeader:84 Class: ELFCLASS6485 Data: ELFDATA2LSB86 Type: ET_DYN87 Machine: EM_X86_6488DynamicSymbols: []89 90## Test dumping ELF files with truly empty .dynsym section (size of .dynsym section is 0).91# RUN: yaml2obj --docnum=4 %s -o %t492# RUN: llvm-objdump --dynamic-syms %t4 | \93# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY94# RUN: llvm-objdump -T %t4 | \95# RUN: FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY96 97# EMPTY:DYNAMIC SYMBOL TABLE:98# EMPTY-EMPTY:99 100--- !ELF101FileHeader:102 Class: ELFCLASS64103 Data: ELFDATA2LSB104 Type: ET_DYN105 Machine: EM_X86_64106Sections:107 - Name: .dynsym108 Type: SHT_DYNSYM109 Size: 0110