## This is a test to test how SHT_RELR sections are dumped.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readobj --relocations %t1 | \
# RUN:   FileCheck --match-full-lines --check-prefix=LLVM1 %s

# LLVM1:      Section (1) .relr.dyn {
# LLVM1-NEXT:   0x10D60 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x10D68 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x10DA0 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20000 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20040 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20050 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20080 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20088 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20090 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20098 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20210 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x202A8 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x202D8 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x202E8 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x202F8 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20308 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20358 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20360 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20368 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20380 R_X86_64_RELATIVE -
# LLVM1-NEXT:   0x20390 R_X86_64_RELATIVE -
# LLVM1-NEXT: }

# RUN: llvm-readelf --relocations %t1 | FileCheck --check-prefix=GNU1 --match-full-lines --strict-whitespace %s
#      GNU1:Relocation section '.relr.dyn' at offset 0x40 contains 21 entries:
# GNU1-NEXT:Index: Entry            Address           Symbolic Address
# GNU1-NEXT:0000:  0000000000010d60 0000000000010d60
# GNU1-NEXT:0001:  0000000000000103 0000000000010d68
# GNU1-NEXT:                        0000000000010da0  base + 0x30
# GNU1-NEXT:0002:  0000000000020000 0000000000020000  foo
# GNU1-NEXT:0003:  00000000000f0501 0000000000020040  foo + 0x40
# GNU1-NEXT:                        0000000000020050  foo + 0x50
# GNU1-NEXT:                        0000000000020080  foo + 0x80
# GNU1-NEXT:                        0000000000020088  foo + 0x88
# GNU1-NEXT:                        0000000000020090  foo + 0x90
# GNU1-NEXT:                        0000000000020098  foo + 0x98
# GNU1-NEXT:0004:  000a700550400009 0000000000020210  bar + 0x10
# GNU1-NEXT:                        00000000000202a8  bar + 0xa8
# GNU1-NEXT:                        00000000000202d8  bar + 0xd8
# GNU1-NEXT:                        00000000000202e8  bar + 0xe8
# GNU1-NEXT:                        00000000000202f8  bar + 0xf8
# GNU1-NEXT:                        0000000000020308  bar + 0x108
# GNU1-NEXT:                        0000000000020358  bar + 0x158
# GNU1-NEXT:                        0000000000020360  bar + 0x160
# GNU1-NEXT:                        0000000000020368  bar + 0x168
# GNU1-NEXT:                        0000000000020380  bar + 0x180
# GNU1-NEXT:                        0000000000020390  bar + 0x190
#  GNU1-NOT:{{.}}

## The addresses are not symbolized in the absence of .symtab.
# RUN: llvm-objcopy --strip-all %t1 %t1.stripped
# RUN: llvm-readelf --relocations %t1.stripped | FileCheck --check-prefix=GNU1S --match-full-lines --strict-whitespace %s
#      GNU1S:Relocation section '.relr.dyn' at offset 0x40 contains 21 entries:
# GNU1S-NEXT:Index: Entry            Address           Symbolic Address
# GNU1S-NEXT:0000:  0000000000010d60 0000000000010d60
# GNU1S-NEXT:0001:  0000000000000103 0000000000010d68

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:  .relr.dyn
    Type:  SHT_RELR
    Flags: [ SHF_ALLOC ]
    Entries: [ 0x0000000000010D60, 0x0000000000000103, 0x0000000000020000,
               0x00000000000F0501, 0x000A700550400009 ]
Symbols:
  - Name:    bar
    Value:   0x20200
    Section: .relr.dyn
  - Name:    foo
    Value:   0x20000
    Section: .relr.dyn
  - Name:    base
    Value:   0x10d70
    Section: .relr.dyn
  - Name:    ignored
    Value:   0x20210

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-readobj --relocations %t2 | \
# RUN:   FileCheck --match-full-lines --check-prefix=LLVM2 %s

# LLVM2:      Section (1) .relr.dyn {
# LLVM2-NEXT:   0x10D60 R_386_RELATIVE -
# LLVM2-NEXT:   0x10D64 R_386_RELATIVE -
# LLVM2-NEXT:   0x10D80 R_386_RELATIVE -
# LLVM2-NEXT:   0x20000 R_386_RELATIVE -
# LLVM2-NEXT:   0x20020 R_386_RELATIVE -
# LLVM2-NEXT:   0x20028 R_386_RELATIVE -
# LLVM2-NEXT:   0x20040 R_386_RELATIVE -
# LLVM2-NEXT:   0x20044 R_386_RELATIVE -
# LLVM2-NEXT:   0x20048 R_386_RELATIVE -
# LLVM2-NEXT:   0x2004C R_386_RELATIVE -
# LLVM2-NEXT:   0x20088 R_386_RELATIVE -
# LLVM2-NEXT:   0x200D4 R_386_RELATIVE -
# LLVM2-NEXT:   0x200EC R_386_RELATIVE -
# LLVM2-NEXT:   0x200F4 R_386_RELATIVE -
# LLVM2-NEXT: }

# RUN: llvm-readelf --relocations %t2 | FileCheck --check-prefix=GNU2 --match-full-lines --strict-whitespace %s
#      GNU2:Relocation section '.relr.dyn' at offset 0x34 contains 14 entries:
# GNU2-NEXT:Index: Entry    Address   Symbolic Address
# GNU2-NEXT:0000:  00010d60 00010d60  .relr.dyn
# GNU2-NEXT:0001:  00000103 00010d64  .relr.dyn + 0x4
# GNU2-NEXT:                00010d80  .relr.dyn + 0x20
# GNU2-NEXT:0002:  00020000 00020000  .relr.dyn + 0xf2a0
# GNU2-NEXT:0003:  000f0501 00020020  .relr.dyn + 0xf2c0
# GNU2-NEXT:                00020028  .relr.dyn + 0xf2c8
# GNU2-NEXT:                00020040  .relr.dyn + 0xf2e0
# GNU2-NEXT:                00020044  .relr.dyn + 0xf2e4
# GNU2-NEXT:                00020048  .relr.dyn + 0xf2e8
# GNU2-NEXT:                0002004c  .relr.dyn + 0xf2ec
# GNU2-NEXT:0004:  50400009 00020088  .relr.dyn + 0xf328
# GNU2-NEXT:                000200d4  .relr.dyn + 0xf374
# GNU2-NEXT:                000200ec  .relr.dyn + 0xf38c
# GNU2-NEXT:                000200f4  .relr.dyn + 0xf394
# GNU2-NOT:{{.}}

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_386
Sections:
  - Name:    .relr.dyn
    Type:    SHT_RELR
    Flags:   [ SHF_ALLOC ]
    Entries: [ 0x00010D60, 0x00000103, 0x00020000,
               0x000F0501, 0x50400009 ]
    EntSize: [[ENTSIZE=<none>]]
    ShType:  [[SHTYPE=<none>]]
    Link:    [[LINK=<none>]]
Symbols:
  - Name:    .relr.dyn
    Type:    STT_SECTION
    Value:   0x10D60
    Section: .relr.dyn

## Check we report a warning when we are unable to dump relocations
## for a SHT_RELR/SHT_ANDROID_RELR/SHT_AARCH64_AUTH_RELR section.

## Case A: check the case when relocations can't be read from an SHT_RELR section.
# RUN: yaml2obj --docnum=2 -DENTSIZE=1 %s -o %t2.broken
# RUN: llvm-readobj --relocations %t2.broken 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken --check-prefix=BROKEN-LLVM %s -DSECNAME=SHT_RELR
# RUN: llvm-readelf --relocations %t2.broken 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken --check-prefix=BROKEN-GNU %s -DSECNAME=SHT_RELR

# BROKEN-LLVM:      Relocations [
# BROKEN-LLVM-NEXT:   Section (1) .relr.dyn {
# BROKEN-LLVM-NEXT: warning: '[[FILE]]': unable to read relocations from [[SECNAME]] section with index 1: section [index 1] has invalid sh_entsize: expected 4, but got 1
# BROKEN-LLVM-NEXT:   }
# BROKEN-LLVM-NEXT: ]

# BROKEN-GNU:      warning: '[[FILE]]': unable to get the number of relocations in [[SECNAME]] section with index 1: section [index 1] has invalid sh_entsize: expected 4, but got 1
# BROKEN-GNU:      Relocation section '.relr.dyn' at offset 0x34 contains <?> entries:
# BROKEN-GNU-NEXT: warning: '[[FILE]]': unable to read relocations from [[SECNAME]] section with index 1: section [index 1] has invalid sh_entsize: expected 4, but got 1

## Case B: check the case when relocations can't be read from an SHT_ANDROID_RELR section.
##         SHT_ANDROID_RELR = 0x6fffff00.
# RUN: yaml2obj --docnum=2 -DENTSIZE=1 -DSHTYPE=0x6fffff00 %s -o %t2.broken.android
# RUN: llvm-readobj --relocations %t2.broken.android 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken.android --check-prefix=BROKEN-LLVM %s -DSECNAME=SHT_ANDROID_RELR
# RUN: llvm-readelf --relocations %t2.broken.android 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken.android --check-prefix=BROKEN-GNU %s -DSECNAME=SHT_ANDROID_RELR

## Case C: check the case when we have an SHT_AARCH64_AUTH_RELR section in non-AArch64 ELF.
##         SHT_AARCH64_AUTH_RELR = 0x70000004.
# RUN: yaml2obj --docnum=2 -DENTSIZE=1 -DSHTYPE=0x70000004 %s -o %t2.broken.aarch64auth
# RUN: llvm-readobj --relocations %t2.broken.aarch64auth 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken.aarch64auth --check-prefix=WRONGARCH-LLVM-AARCH64-AUTH %s -DSECNAME=SHT_AARCH64_AUTH_RELR
# RUN: llvm-readelf --relocations %t2.broken.aarch64auth 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.broken.aarch64auth --check-prefix=WRONGARCH-GNU-AARCH64-AUTH %s -DSECNAME=SHT_AARCH64_AUTH_RELR

# WRONGARCH-LLVM-AARCH64-AUTH:      Relocations [
# WRONGARCH-LLVM-AARCH64-AUTH-NEXT: ]

# WRONGARCH-GNU-AARCH64-AUTH-NOT:  Relocation section

## Check the behavior when the sh_link field of the SHT_RELR/SHT_ANDROID_RELR/SHT_AARCH64_AUTH_RELR section
## is set to an arbitrary value. Normally, it is set to 0, because such sections contains
## only relative relocations and do not have an associated symbol table, like other
## relocation sections.

## Check we do not report warnings when the sh_link field is set to an arbitrary value
## and the --relocations option is requested.
# RUN: yaml2obj --docnum=2 -DLINK=0xff %s -o %t2.has.link
# RUN: llvm-readobj --relocations %t2.has.link 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.has.link --check-prefix=LLVM2 %s --implicit-check-not=warning:
# RUN: llvm-readelf --relocations %t2.has.link 2>&1 | \
# RUN:   FileCheck -DFILE=%t2.has.link --check-prefix=GNU2 %s --implicit-check-not=warning:

## .symtab is invalid. Check we report a warning and print entries without symbolization.
# RUN: yaml2obj --docnum=3 -DENTSIZE=1 %s -o %t3.err1
# RUN: llvm-readelf -r %t3.err1 2>&1 | FileCheck -DFILE=%t3.err1 --check-prefixes=GNU3,GNU3-ERR1 --match-full-lines %s
# RUN: yaml2obj --docnum=3 -DLINK=0xff %s -o %t3.err2
# RUN: llvm-readelf -r %t3.err2 2>&1 | FileCheck -DFILE=%t3.err2 --check-prefixes=GNU3,GNU3-ERR2 --match-full-lines %s

#      GNU3:Index: Entry            Address           Symbolic Address
# GNU3-ERR1-NEXT:{{.*}}warning: '[[FILE]]': unable to read symbols from the SHT_SYMTAB section: section [index 2] has invalid sh_entsize: expected 24, but got 1
# GNU3-ERR2-NEXT:{{.*}}warning: '[[FILE]]': unable to get the string table for the SHT_SYMTAB section: invalid section index: 255
# GNU3-NEXT:0000:  0000000000010d60 0000000000010d60
# GNU3-NEXT:0001:  0000000000000103 0000000000010d68
# GNU3-NEXT:                        0000000000010da0
#  GNU3-NOT:{{.}}

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:  .relr.dyn
    Type:  SHT_RELR
    Flags: [ SHF_ALLOC ]
    Entries: [ 0x0000000000010D60, 0x0000000000000103 ]
  - Name:    .symtab
    Type:    SHT_SYMTAB
    Link:    [[LINK=.strtab]]
    EntSize: [[ENTSIZE=0x18]]
Symbols:
  - Name:  bar
    Value: 0x10D60
