brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · ca27db4 Raw
119 lines · yaml
1## Ensures that implicitly added sections can be ordered within Sections.2 3# RUN: yaml2obj --docnum=1 %s -o %t14# RUN: llvm-readobj --sections %t1 | FileCheck %s --check-prefix=SECTION5# RUN: llvm-nm --dynamic %t1 | FileCheck %s --check-prefix=SYMBOL6 7--- !ELF8FileHeader:9  Class: ELFCLASS6410  Data:  ELFDATA2LSB11  Type:  ET_DYN12Sections:13  - Name: .data14    Type: SHT_PROGBITS15    Flags: [ SHF_ALLOC, SHF_WRITE ]16DynamicSymbols:17  - Name: dynlocal18    Type: STT_OBJECT19    Section: .data20    Binding: STB_LOCAL21  - Name: dynglobal22    Type: STT_OBJECT23    Section: .data24    Binding: STB_GLOBAL25  - Name: dynweak26    Type: STT_OBJECT27    Section: .data28    Binding: STB_WEAK29 30# SECTION: Name: .dynsym31# SECTION-NEXT: Type: SHT_DYNSYM32# SECTION-NEXT: Flags33# SECTION-NEXT: SHF_ALLOC34# SECTION: Name: .dynstr35# SECTION-NEXT: Type: SHT_STRTAB36# SECTION-NEXT: Flags37# SECTION-NEXT: SHF_ALLOC38 39# SYMBOL-DAG: d dynlocal40# SYMBOL-DAG: D dynglobal41# SYMBOL-DAG: V dynweak42 43## Check we can use numeric values to refer to sections.44 45# RUN: yaml2obj --docnum=2 -DSEC=0xff %s -o %t246# RUN: llvm-readobj --dyn-symbols %t2 2>&1 | FileCheck -DFILE=%t2 %s --check-prefix=NUM47 48# NUM:      Name: foo49# NUM:      Section:50# NUM-SAME: .data (0x1)51 52# NUM:      Name: bar53# NUM:      Section:54# NUM-SAME: .dynsym (0x2)55 56# NUM:      Name: zed157# NUM: warning: '[[FILE]]': invalid section index: 25558# NUM:      Section:59# NUM-SAME: <?> (0xFF)60 61# NUM:      Name: zed262# NUM:      Section:63# NUM-SAME: Undefined (0x0)64 65--- !ELF66FileHeader:67  Class: ELFCLASS6468  Data:  ELFDATA2LSB69  Type:  ET_DYN70Sections:71  - Name: .data72    Type: SHT_PROGBITS73DynamicSymbols:74  - Name:    foo75    Section: 176  - Name:    bar77    Section: 278  - Name:    zed179    Section: [[SEC=<none>]]80## The case when no "Section" key is set.81  - Name: zed282 83## Check that by default no section is set.84 85# RUN: yaml2obj --docnum=2 %s -o %t2.none86# RUN: llvm-readobj --dyn-symbols %t2.none 2>&1 | \87# RUN:   FileCheck -DFILE=%t2.none %s --check-prefix=NONE88 89# NONE:      Name: zed190# NONE:      Section:91# NONE-SAME: Undefined (0x0)92# NONE:      Name: zed293# NONE:      Section:94# NONE-SAME: Undefined (0x0)95 96## Check we report errors when unknown sections are referenced by dynamic symbols.97 98# RUN: not yaml2obj --docnum=3 %s 2>&1 | FileCheck -DFILE=%t3 %s --check-prefix=ERR99 100# ERR: error: unknown section referenced: '.sec1' by YAML symbol 'foo'101# ERR: error: unknown section referenced: '.sec2' by YAML symbol 'bar'102# ERR: error: unknown section referenced: '' by YAML symbol 'zed'103 104--- !ELF105FileHeader:106  Class: ELFCLASS64107  Data:  ELFDATA2LSB108  Type:  ET_DYN109Sections:110  - Name: .data111    Type: SHT_PROGBITS112DynamicSymbols:113  - Name:    foo114    Section: .sec1115  - Name:    bar116    Section: .sec2117  - Name:    zed118    Section: ''119