## Test tools are able to dump different types of notes.

# RUN: yaml2obj --docnum=1 %s -o %t1.so
# RUN: llvm-readelf --notes %t1.so | FileCheck %s --check-prefix=GNU --strict-whitespace --match-full-lines
# RUN: llvm-readobj --notes %t1.so | FileCheck %s --check-prefix=LLVM
# RUN: llvm-objcopy --strip-sections %t1.so %t1.stripped.so
# RUN: llvm-readelf --notes %t1.stripped.so | FileCheck %s --check-prefix=GNU-STRIPPED --strict-whitespace --match-full-lines
# RUN: llvm-readobj --notes %t1.stripped.so | FileCheck %s --check-prefix=LLVM-STRIPPED

#      GNU:Displaying notes found in: .note.ABI-tag
# GNU-NEXT:  Owner                Data size 	Description
# GNU-NEXT:  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)
# GNU-NEXT:    OS: Linux, ABI: 2.6.32
# GNU-EMPTY:
# GNU-NEXT:Displaying notes found in: .note.gnu.build-id
# GNU-NEXT:  Owner                Data size 	Description
# GNU-NEXT:  GNU                  0x00000010	NT_GNU_BUILD_ID (unique build ID bitstring)
# GNU-NEXT:    Build ID: 4fcb712aa6387724a9f465a32cd8c14b
# GNU-EMPTY:
# GNU-NEXT:Displaying notes found in: .note.gnu.gold-version
# GNU-NEXT:  Owner                Data size 	Description
# GNU-NEXT:  GNU                  0x00000009	NT_GNU_GOLD_VERSION (gold version)
# GNU-NEXT:    Version: gold 1.11
# GNU-EMPTY:
# GNU-NEXT:Displaying notes found in: .note.gnu.unknown
# GNU-NEXT:  Owner                Data size 	Description
# GNU-NEXT:  GNU                  0x00000004	Unknown note type: (0x0000abcd)
# GNU-NEXT:   description data: 61 62 63 64
# GNU-EMPTY:

# LLVM:      Notes [
# LLVM-NEXT:   NoteSection {
# LLVM-NEXT:     Name: .note.ABI-tag
# LLVM-NEXT:     Offset: 0x78
# LLVM-NEXT:     Size: 0x20
# LLVM-NEXT:     Note {
# LLVM-NEXT:       Owner: GNU
# LLVM-NEXT:       Data size: 0x10
# LLVM-NEXT:       Type: NT_GNU_ABI_TAG (ABI version tag)
# LLVM-NEXT:       OS: Linux
# LLVM-NEXT:       ABI: 2.6.32
# LLVM-NEXT:     }
# LLVM-NEXT:   }
# LLVM-NEXT:   NoteSection {
# LLVM-NEXT:     Name: .note.gnu.build-id
# LLVM-NEXT:     Offset: 0x98
# LLVM-NEXT:     Size: 0x20
# LLVM-NEXT:     Note {
# LLVM-NEXT:       Owner: GNU
# LLVM-NEXT:       Data size: 0x10
# LLVM-NEXT:       Type: NT_GNU_BUILD_ID (unique build ID bitstring)
# LLVM-NEXT:       Build ID: 4fcb712aa6387724a9f465a32cd8c14b
# LLVM-NEXT:     }
# LLVM-NEXT:   }
# LLVM-NEXT:   NoteSection {
# LLVM-NEXT:     Name: .note.gnu.gold-version
# LLVM-NEXT:     Offset: 0xB8
# LLVM-NEXT:     Size: 0x1C
# LLVM-NEXT:     Note {
# LLVM-NEXT:       Owner: GNU
# LLVM-NEXT:       Data size: 0x9
# LLVM-NEXT:       Type: NT_GNU_GOLD_VERSION (gold version)
# LLVM-NEXT:       Version: gold 1.11
# LLVM-NEXT:     }
# LLVM-NEXT:   }
# LLVM-NEXT:   NoteSection {
# LLVM-NEXT:     Name: .note.gnu.unknown
# LLVM-NEXT:     Offset: 0xD4
# LLVM-NEXT:     Size: 0x14
# LLVM-NEXT:     Note {
# LLVM-NEXT:       Owner: GNU
# LLVM-NEXT:       Data size: 0x4
# LLVM-NEXT:       Type: Unknown (0x0000abcd)
# LLVM-NEXT:       Description data (
# LLVM-NEXT:         0000: 61626364                             |abcd|
# LLVM-NEXT:       )
# LLVM-NEXT:     }
# LLVM-NEXT:   }
# LLVM-NEXT: ]

## Note: the section name is <?> here because the section header table is not present.
# LLVM-STRIPPED:      Notes [
# LLVM-STRIPPED-NEXT:   NoteSection {
# LLVM-STRIPPED-NEXT:     Name: <?>
# LLVM-STRIPPED-NEXT:     Offset: 0x78
# LLVM-STRIPPED-NEXT:     Size: 0x20
# LLVM-STRIPPED-NEXT:     Note {
# LLVM-STRIPPED-NEXT:       Owner: GNU
# LLVM-STRIPPED-NEXT:       Data size: 0x10
# LLVM-STRIPPED-NEXT:       Type: NT_GNU_BUILD_ID (unique build ID bitstring)
# LLVM-STRIPPED-NEXT:       Build ID: 4fcb712aa6387724a9f465a32cd8c14b
# LLVM-STRIPPED-NEXT:     }
# LLVM-STRIPPED-NEXT:   }
# LLVM-STRIPPED-NEXT: ]

## Note: offset and length printed instead of "found in: .note.gnu.build-id"
## because the section header table is not present.
#      GNU-STRIPPED:Displaying notes found at file offset 0x00000078 with length 0x00000020:
# GNU-STRIPPED-NEXT:  Owner                Data size 	Description
# GNU-STRIPPED-NEXT:  GNU                  0x00000010	NT_GNU_BUILD_ID (unique build ID bitstring)
# GNU-STRIPPED-NEXT:    Build ID: 4fcb712aa6387724a9f465a32cd8c14b

--- !ELF
FileHeader:
  Class:      ELFCLASS64
  Data:       ELFDATA2LSB
  Type:       ET_EXEC
  EPhEntSize: [[PHENTSIZE=<none>]]
  EShNum:     [[SHNUM=<none>]]
Sections:
  - Name:         .note.ABI-tag
    Type:         SHT_NOTE
    AddressAlign: 0x0000000000000004
    Content:      040000001000000001000000474E550000000000020000000600000020000000
  - Name:         .note.gnu.build-id
    Type:         SHT_NOTE
    Flags:        [ SHF_ALLOC ]
    Address:      0x0000000000400120
    AddressAlign: 0x0000000000000004
    Content:      040000001000000003000000474E55004FCB712AA6387724A9F465A32CD8C14B
  - Name:         .note.gnu.gold-version
    Type:         SHT_NOTE
    AddressAlign: 0x0000000000000004
    Content:      040000000900000004000000474E5500676F6C6420312E3131000000
  - Name:         .note.gnu.unknown
    Type:         SHT_NOTE
    AddressAlign: 0x0000000000000004
    Content:      0400000004000000cdab0000474E550061626364
ProgramHeaders:
  - Type:     PT_NOTE
    FileSize: 0x20
    FirstSec: .note.gnu.build-id
    LastSec:  .note.gnu.build-id

## Test tools report an error if a note section has an invalid offset
## that goes past the end of file.

# RUN: yaml2obj --docnum=2 -DSHOFFSET=0xffff0000 %s -o %t2.so
# RUN: llvm-readelf --notes %t2.so 2>&1 | FileCheck -DFILE=%t2.so %s --check-prefix=ERR1-GNU
# RUN: llvm-readobj --notes %t2.so 2>&1 | FileCheck -DFILE=%t2.so %s --check-prefix=ERR1-LLVM

# ERR1-GNU:      Displaying notes found in: .note
# ERR1-GNU-NEXT:   Owner                Data size        Description
# ERR1-GNU-NEXT: warning: '[[FILE]]': unable to read notes from the SHT_NOTE section with index 1: invalid offset (0xffff0000) or size (0x0)
# ERR1-GNU-EMPTY:

# ERR1-LLVM:      Notes [
# ERR1-LLVM-NEXT:   NoteSection {
# ERR1-LLVM-NEXT:     Name:   .note
# ERR1-LLVM-NEXT:     Offset: 0xFFFF0000
# ERR1-LLVM-NEXT:     Size:   0x0
# ERR1-LLVM-NEXT: warning: '[[FILE]]': unable to read notes from the SHT_NOTE section with index 1: invalid offset (0xffff0000) or size (0x0)
# ERR1-LLVM-NEXT:   }
# ERR1-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:     .note
    Type:     SHT_NOTE
    Notes:    []
    ShOffset: [[SHOFFSET=<none>]]
    ShSize:   [[SHSIZE=<none>]]

## Test tools report an error if a note section has invalid size
## that goes past the end of file.

# RUN: yaml2obj --docnum=2 -DSHSIZE=0xffff0000 %s -o %t3.so
# RUN: llvm-readelf --notes %t3.so 2>&1 | FileCheck -DFILE=%t3.so %s --check-prefix=ERR2-GNU
# RUN: llvm-readobj --notes %t3.so 2>&1 | FileCheck -DFILE=%t3.so %s --check-prefix=ERR2-LLVM

# ERR2-GNU:      Displaying notes found in: .note
# ERR2-GNU-NEXT:   Owner                Data size        Description
# ERR2-GNU-NEXT: warning: '[[FILE]]': unable to read notes from the SHT_NOTE section with index 1: invalid offset (0x40) or size (0xffff0000)
# ERR2-GNU-EMPTY:

# ERR2-LLVM:      Notes [
# ERR2-LLVM-NEXT:   NoteSection {
# ERR2-LLVM-NEXT:     Name: .note
# ERR2-LLVM-NEXT:     Offset: 0x40
# ERR2-LLVM-NEXT:     Size: 0xFFFF0000
# ERR2-LLVM-NEXT: warning: '[[FILE]]': unable to read notes from the SHT_NOTE section with index 1: invalid offset (0x40) or size (0xffff0000)
# ERR2-LLVM-NEXT:   }
# ERR2-LLVM-NEXT: ]

## Test tools report an error if a note program header has an invalid offset that
## goes past the end of file.

# RUN: yaml2obj --docnum=3 -DPHOFFSET=0xffff0000 %s -o %t4.so
# RUN: llvm-readelf --notes %t4.so 2>&1 | FileCheck -DFILE=%t4.so %s --check-prefix=ERR3-GNU
# RUN: llvm-readobj --notes %t4.so 2>&1 | FileCheck -DFILE=%t4.so %s --check-prefix=ERR3-LLVM

# ERR3-GNU:      Displaying notes found at file offset 0xffff0000 with length 0x00000000:
# ERR3-GNU-NEXT:   Owner                Data size        Description
# ERR3-GNU-NEXT: warning: '[[FILE]]': unable to read notes from the PT_NOTE segment with index 0: invalid offset (0xffff0000) or size (0x0)
# ERR3-GNU-NOT: {{.}}

# ERR3-LLVM:      Notes [
# ERR3-LLVM-NEXT:   NoteSection {
# ERR3-LLVM-NEXT:     Name: <?>
# ERR3-LLVM-NEXT:     Offset: 0xFFFF0000
# ERR3-LLVM-NEXT:     Size: 0x0
# ERR3-LLVM-NEXT: warning: '[[FILE]]': unable to read notes from the PT_NOTE segment with index 0: invalid offset (0xffff0000) or size (0x0)
# ERR3-LLVM-NEXT:   }
# ERR3-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_CORE
ProgramHeaders:
  - Type:     PT_NOTE
    Offset:   [[PHOFFSET=<none>]]
    FileSize: [[PHFILESIZE=<none>]]

## Test tools report an error if a note program header has an invalid size that
## goes past the end of file.

# RUN: yaml2obj --docnum=3 -DPHFILESIZE=0xffff0000 %s -o %t5.so
# RUN: llvm-readelf --notes %t5.so 2>&1 | FileCheck -DFILE=%t5.so %s --check-prefix=ERR4-GNU
# RUN: llvm-readobj --notes %t5.so 2>&1 | FileCheck -DFILE=%t5.so %s --check-prefix=ERR4-LLVM

# ERR4-GNU:      Displaying notes found at file offset 0x00000000 with length 0xffff0000:
# ERR4-GNU-NEXT:   Owner                Data size        Description
# ERR4-GNU-NEXT: warning: '[[FILE]]': unable to read notes from the PT_NOTE segment with index 0: invalid offset (0x0) or size (0xffff0000)
# ERR4-GNU-EMPTY:

# ERR4-LLVM:      Notes [
# ERR4-LLVM-NEXT:   NoteSection {
# ERR4-LLVM-NEXT:     Name: <?>
# ERR4-LLVM-NEXT:     Offset: 0x0
# ERR4-LLVM-NEXT:     Size: 0xFFFF0000
# ERR4-LLVM-NEXT: warning: '[[FILE]]': unable to read notes from the PT_NOTE segment with index 0: invalid offset (0x0) or size (0xffff0000)
# ERR4-LLVM-NEXT:   }
# ERR4-LLVM-NEXT: ]

## Check we report a warning when we are unable to locate the PT_NOTE
## segment because of broken program headers.
# RUN: yaml2obj --docnum=1 -DPHENTSIZE=1 -DSHNUM=0 %s -o %t6.so
# RUN: llvm-readelf --notes %t6.so 2>&1 | FileCheck %s -DFILE=%t6.so --check-prefix=PHENTSIZE-WARN-GNU
# RUN: llvm-readobj --notes %t6.so 2>&1 | FileCheck %s -DFILE=%t6.so --check-prefix=PHENTSIZE-WARN-LLVM

# PHENTSIZE-WARN-GNU: warning: '[[FILE]]': unable to read program headers to locate the PT_DYNAMIC segment: invalid e_phentsize: 1
# PHENTSIZE-WARN-GNU: warning: '[[FILE]]': unable to read program headers to locate the PT_NOTE segment: invalid e_phentsize: 1

# PHENTSIZE-WARN-LLVM:      Notes [
# PHENTSIZE-WARN-LLVM-NEXT: warning: '[[FILE]]': unable to read program headers to locate the PT_NOTE segment: invalid e_phentsize: 1
# PHENTSIZE-WARN-LLVM-NEXT: ]
