## Show that llvm-readobj/llvm-readelf tools can dump the .dynamic section which
## is not alone in PT_DYNAMIC segment.

## In the first case .text is placed before .dynamic.
## We check that we warn about this case.

# RUN: yaml2obj --docnum=1 %s -o %t1.o
# RUN: llvm-readobj --dynamic-table %t1.o 2>&1 \
# RUN:   | FileCheck %s --DFILE=%t1.o --check-prefixes=WARNING,LLVM
# RUN: llvm-readelf --dynamic-table %t1.o 2>&1 \
# RUN:   | FileCheck %s --DFILE=%t1.o --check-prefixes=WARNING,GNU

# WARNING: warning: '[[FILE]]': The SHT_DYNAMIC section '.dynamic' is not at the start of PT_DYNAMIC segment
# WARNING: warning: '[[FILE]]': invalid section size (33) or entity size (16)
# WARNING: warning: '[[FILE]]': SHT_DYNAMIC section header and PT_DYNAMIC program header disagree about the location of the dynamic table
# WARNING: warning: '[[FILE]]': PT_DYNAMIC dynamic table is invalid: SHT_DYNAMIC will be used

# LLVM:      DynamicSection [ (2 entries)
# LLVM-NEXT:   Tag                Type     Name/Value
# LLVM-NEXT:   0x0000000000000018 BIND_NOW 0x1
# LLVM-NEXT:   0x0000000000000000 NULL     0x0
# LLVM-NEXT: ]

# GNU:      Dynamic section at offset 0x{{.*}} contains 2 entries:
# GNU-NEXT:   Tag                Type       Name/Value
# GNU-NEXT:   0x0000000000000018 (BIND_NOW) 0x1
# GNU-NEXT:   0x0000000000000000 (NULL)     0x0

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
    Flags: [SHF_ALLOC]
    Address: 0x1000
    AddressAlign: 0x100
    Content: "00"
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Flags: [SHF_ALLOC]
    Address: 0x1001
    Entries:
      - Tag:   DT_BIND_NOW
        Value: 0x1
      - Tag:   DT_NULL
        Value: 0x0
ProgramHeaders:
  - Type: PT_LOAD
    VAddr: 0x1000
    Sections:
      - Section: .text
      - Section: .dynamic
  - Type: PT_DYNAMIC
    VAddr: 0x1000
    Sections:
      - Section: .text
      - Section: .dynamic

## In this case .text goes after .dynamic and we don't display any warnings,
## though the content of the .text is used for dumping the dynamic table.

# RUN: yaml2obj --docnum=2 %s -o %t2.o
# RUN: llvm-readobj --dynamic-table %t2.o 2>&1 | FileCheck %s --check-prefix=LLVM2
# RUN: llvm-readelf --dynamic-table %t2.o 2>&1 | FileCheck %s --check-prefix=GNU2

# LLVM2:      DynamicSection [ (3 entries)
# LLVM2-NEXT:   Tag                Type     Name/Value
# LLVM2-NEXT:   0x0000000000000018 BIND_NOW 0x1
# LLVM2-NEXT:   0x0000000000000018 BIND_NOW 0x2
# LLVM2-NEXT:   0x0000000000000000 NULL     0x0
# LLVM2-NEXT: ]

# GNU2:      Dynamic section at offset 0x{{.*}} contains 3 entries:
# GNU2-NEXT:   Tag                Type       Name/Value
# GNU2-NEXT:   0x0000000000000018 (BIND_NOW) 0x1
# GNU2-NEXT:   0x0000000000000018 (BIND_NOW) 0x2
# GNU2-NEXT:   0x0000000000000000 (NULL)     0x0

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Flags: [SHF_ALLOC]
    Address: 0x1000
    AddressAlign: 0x1000
    Entries:
      - Tag:   DT_BIND_NOW
        Value: 0x1
      - Tag:   DT_BIND_NOW
        Value: 0x2
  - Name: .text
    Type: SHT_PROGBITS
    Flags: [SHF_ALLOC]
    Address: 0x1100
    AddressAlign: 0x100
    Content: "00000000000000000000000000000000"
ProgramHeaders:
  - Type: PT_LOAD
    VAddr: 0x1000
    Sections:
      - Section: .dynamic
      - Section: .text
  - Type: PT_DYNAMIC
    VAddr: 0x1000
    Sections:
      - Section: .dynamic
      - Section: .text

## In this case .text goes after .dynamic, but (PT_DYNAMIC segment size % dynamic entry size != 0)
## and we have to use the information from the section header instead.

# RUN: yaml2obj --docnum=3 %s -o %t3.o
# RUN: llvm-readobj --dynamic-table %t3.o 2>&1 | FileCheck %s --DFILE=%t3.o --check-prefixes=WARNING2,LLVM3
# RUN: llvm-readelf --dynamic-table %t3.o 2>&1 | FileCheck %s --DFILE=%t3.o --check-prefixes=WARNING2,GNU3

# WARNING2: warning: '[[FILE]]': invalid section size (257) or entity size (16)
# WARNING2: warning: '[[FILE]]': PT_DYNAMIC dynamic table is invalid: SHT_DYNAMIC will be used

# LLVM3:      DynamicSection [ (2 entries)
# LLVM3-NEXT:   Tag                Type     Name/Value
# LLVM3-NEXT:   0x0000000000000018 BIND_NOW 0x1
# LLVM3-NEXT:   0x0000000000000000 NULL     0x0
# LLVM3-NEXT: ]

# GNU3:      Dynamic section at offset 0x{{.*}} contains 2 entries:
# GNU3-NEXT:   Tag                Type       Name/Value
# GNU3-NEXT:   0x0000000000000018 (BIND_NOW) 0x1
# GNU3-NEXT:   0x0000000000000000 (NULL)     0x0

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Flags: [SHF_ALLOC]
    Address: 0x1000
    AddressAlign: 0x1000
    Entries:
      - Tag:   DT_BIND_NOW
        Value: 0x1
      - Tag:   DT_NULL
        Value: 0x0
  - Name: .text
    Type: SHT_PROGBITS
    Flags: [SHF_ALLOC]
    Address: 0x1100
    AddressAlign: 0x100
    Content: "00"
ProgramHeaders:
  - Type: PT_LOAD
    VAddr: 0x1000
    Sections:
      - Section: .dynamic
      - Section: .text
  - Type: PT_DYNAMIC
    VAddr: 0x1000
    Sections:
      - Section: .dynamic
      - Section: .text
