Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / yaml2obj / ELF / dynamic-symbols.yaml
blobca27db4afe03986e99f9c44043a54d2119d3a7dc
1 ## Ensures that implicitly added sections can be ordered within Sections.
3 # RUN: yaml2obj --docnum=1 %s -o %t1
4 # RUN: llvm-readobj --sections %t1 | FileCheck %s --check-prefix=SECTION
5 # RUN: llvm-nm --dynamic %t1 | FileCheck %s --check-prefix=SYMBOL
7 --- !ELF
8 FileHeader:
9   Class: ELFCLASS64
10   Data:  ELFDATA2LSB
11   Type:  ET_DYN
12 Sections:
13   - Name: .data
14     Type: SHT_PROGBITS
15     Flags: [ SHF_ALLOC, SHF_WRITE ]
16 DynamicSymbols:
17   - Name: dynlocal
18     Type: STT_OBJECT
19     Section: .data
20     Binding: STB_LOCAL
21   - Name: dynglobal
22     Type: STT_OBJECT
23     Section: .data
24     Binding: STB_GLOBAL
25   - Name: dynweak
26     Type: STT_OBJECT
27     Section: .data
28     Binding: STB_WEAK
30 # SECTION: Name: .dynsym
31 # SECTION-NEXT: Type: SHT_DYNSYM
32 # SECTION-NEXT: Flags
33 # SECTION-NEXT: SHF_ALLOC
34 # SECTION: Name: .dynstr
35 # SECTION-NEXT: Type: SHT_STRTAB
36 # SECTION-NEXT: Flags
37 # SECTION-NEXT: SHF_ALLOC
39 # SYMBOL-DAG: d dynlocal
40 # SYMBOL-DAG: D dynglobal
41 # SYMBOL-DAG: V dynweak
43 ## Check we can use numeric values to refer to sections.
45 # RUN: yaml2obj --docnum=2 -DSEC=0xff %s -o %t2
46 # RUN: llvm-readobj --dyn-symbols %t2 2>&1 | FileCheck -DFILE=%t2 %s --check-prefix=NUM
48 # NUM:      Name: foo
49 # NUM:      Section:
50 # NUM-SAME: .data (0x1)
52 # NUM:      Name: bar
53 # NUM:      Section:
54 # NUM-SAME: .dynsym (0x2)
56 # NUM:      Name: zed1
57 # NUM: warning: '[[FILE]]': invalid section index: 255
58 # NUM:      Section:
59 # NUM-SAME: <?> (0xFF)
61 # NUM:      Name: zed2
62 # NUM:      Section:
63 # NUM-SAME: Undefined (0x0)
65 --- !ELF
66 FileHeader:
67   Class: ELFCLASS64
68   Data:  ELFDATA2LSB
69   Type:  ET_DYN
70 Sections:
71   - Name: .data
72     Type: SHT_PROGBITS
73 DynamicSymbols:
74   - Name:    foo
75     Section: 1
76   - Name:    bar
77     Section: 2
78   - Name:    zed1
79     Section: [[SEC=<none>]]
80 ## The case when no "Section" key is set.
81   - Name: zed2
83 ## Check that by default no section is set.
85 # RUN: yaml2obj --docnum=2 %s -o %t2.none
86 # RUN: llvm-readobj --dyn-symbols %t2.none 2>&1 | \
87 # RUN:   FileCheck -DFILE=%t2.none %s --check-prefix=NONE
89 # NONE:      Name: zed1
90 # NONE:      Section:
91 # NONE-SAME: Undefined (0x0)
92 # NONE:      Name: zed2
93 # NONE:      Section:
94 # NONE-SAME: Undefined (0x0)
96 ## Check we report errors when unknown sections are referenced by dynamic symbols.
98 # RUN: not yaml2obj --docnum=3 %s 2>&1 | FileCheck -DFILE=%t3 %s --check-prefix=ERR
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'
104 --- !ELF
105 FileHeader:
106   Class: ELFCLASS64
107   Data:  ELFDATA2LSB
108   Type:  ET_DYN
109 Sections:
110   - Name: .data
111     Type: SHT_PROGBITS
112 DynamicSymbols:
113   - Name:    foo
114     Section: .sec1
115   - Name:    bar
116     Section: .sec2
117   - Name:    zed
118     Section: ''