xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/note-llvmompoffload.test (revision ab930ee7cad8b8bf7968bb8d0c0d72524e2313c4)
1## Test that llvm-readobj is able to recognize LLVMOMPOFFLOAD ELF notes.
2
3# RUN: yaml2obj %s -o %t.64le -DBITS=64 -DENCODING=LSB
4# RUN: llvm-readobj --notes %t.64le | FileCheck %s --match-full-lines --check-prefix=NOTES
5# RUN: llvm-readelf --notes %t.64le | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
6# RUN: yaml2obj %s -o %t.64be -DBITS=64 -DENCODING=MSB
7# RUN: llvm-readobj --notes %t.64be | FileCheck %s --match-full-lines --check-prefix=NOTES
8# RUN: llvm-readelf --notes %t.64be | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
9# RUN: yaml2obj %s -o %t.32le -DBITS=32 -DENCODING=LSB
10# RUN: llvm-readobj --notes %t.32le | FileCheck %s --match-full-lines --check-prefix=NOTES
11# RUN: llvm-readelf --notes %t.32le | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
12# RUN: yaml2obj %s -o %t.32be -DBITS=32 -DENCODING=MSB
13# RUN: llvm-readobj --notes %t.32be | FileCheck %s --match-full-lines --check-prefix=NOTES
14# RUN: llvm-readelf --notes %t.32be | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
15
16# NOTES:      NoteSections [
17# NOTES-NEXT:   NoteSection {
18# NOTES-NEXT:     Name: .note.openmp
19# NOTES-NEXT:     Offset: {{.*}}
20# NOTES-NEXT:     Size: {{.*}}
21# NOTES-NEXT:     Notes [
22# NOTES-NEXT:       {
23# NOTES-NEXT:           Owner: LLVMOMPOFFLOAD
24# NOTES-NEXT:           Data size: 0x3
25# NOTES-NEXT:           Type: NT_LLVM_OPENMP_OFFLOAD_VERSION (image format version)
26# NOTES-NEXT:           Version: 1.0
27# NOTES-NEXT:       }
28# NOTES-NEXT:       {
29# NOTES-NEXT:           Owner: LLVMOMPOFFLOAD
30# NOTES-NEXT:           Data size: 0x4
31# NOTES-NEXT:           Type: NT_LLVM_OPENMP_OFFLOAD_PRODUCER (producing toolchain)
32# NOTES-NEXT:           Producer: LLVM
33# NOTES-NEXT:       }
34# NOTES-NEXT:       {
35# NOTES-NEXT:           Owner: LLVMOMPOFFLOAD
36# NOTES-NEXT:           Data size: 0x9
37# NOTES-NEXT:           Type: NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION (producing toolchain version)
38# NOTES-NEXT:           Producer version: 13.0.0git
39# NOTES-NEXT:       }
40# NOTES-NEXT:    ]
41# NOTES-NEXT:   }
42# NOTES-NEXT: ]
43
44# NOTES-GNU:      Displaying notes found in: .note.openmp
45# NOTES-GNU-NEXT:   Owner                Data size        Description
46# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000003       NT_LLVM_OPENMP_OFFLOAD_VERSION (image format version)
47# NOTES-GNU-NEXT:     Version: 1.0
48# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000004       NT_LLVM_OPENMP_OFFLOAD_PRODUCER (producing toolchain)
49# NOTES-GNU-NEXT:     Producer: LLVM
50# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000009       NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION (producing toolchain version)
51# NOTES-GNU-NEXT:     Producer version: 13.0.0git
52
53--- !ELF
54FileHeader:
55  Class: ELFCLASS[[BITS]]
56  Data:  ELFDATA2[[ENCODING]]
57  Type:  ET_REL
58Sections:
59  - Name: .note.openmp
60    Type: SHT_NOTE
61    Notes:
62      - Name: LLVMOMPOFFLOAD
63        Type: 1 # NT_LLVM_OPENMP_OFFLOAD_VERSION
64        Desc: '312e30'
65      - Name: LLVMOMPOFFLOAD
66        Type: 2 # NT_LLVM_OPENMP_OFFLOAD_PRODUCER
67        Desc: '4c4c564d'
68      - Name: LLVMOMPOFFLOAD
69        Type: 3 # NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
70        Desc: '31332e302e30676974'
71