File: ELF_ehframe.test

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (104 lines) | stat: -rw-r--r-- 3,162 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# RUN: yaml2obj -DELFCLASS=ELFCLASS32 -o %t.32.o %s
# RUN: llvm-jitlink -noexec -check %s %t.32.o
# RUN: yaml2obj -DELFCLASS=ELFCLASS64 -o %t.64.o %s
# RUN: llvm-jitlink -noexec -check %s %t.64.o

### Compiled from the following code with -mattr=+relax to force relocations for
### address_range and DW_CFA_advance_loc (both needed for .balign).
## 	.text
## 	.globl	main
## 	.p2align	1
## 	.type	main,@function
## main:
## 	.cfi_startproc
##     .balign 8
## 	addi	sp, sp, -16
## cfa_advance_loc:
## 	.cfi_def_cfa_offset 16
##     nop
## main_end:
## 	.size	main, main_end-main
## 	.cfi_endproc

--- !ELF
FileHeader:
  Class:           [[ELFCLASS]]
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_RISCV
  SectionHeaderStringTable: .strtab
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x8
    Content:         13000000130101FF13000000
  - Name:            .eh_frame
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    AddressAlign:    0x8
    Content:         1000000000000000017A5200017801011B0C02001000000018000000000000000000000000400E10
  - Name:            .rela.text
    Type:            SHT_RELA
    Flags:           [ SHF_INFO_LINK ]
    Link:            .symtab
    AddressAlign:    0x8
    Info:            .text
    Relocations:
      - Type:            R_RISCV_ALIGN
        Addend:          4
  - Name:            .rela.eh_frame
    Type:            SHT_RELA
    Flags:           [ SHF_INFO_LINK ]
    Link:            .symtab
    AddressAlign:    0x8
    Info:            .eh_frame
    Relocations:
      - Offset:          0x1C
        Symbol:          main
        Type:            R_RISCV_32_PCREL
      - Offset:          0x20
        Symbol:          main_end
        Type:            R_RISCV_ADD32
      - Offset:          0x20
        Symbol:          main
        Type:            R_RISCV_SUB32
      - Offset:          0x25
        Symbol:          cfa_advance_loc
        Type:            R_RISCV_SET6
      - Offset:          0x25
        Symbol:          main
        Type:            R_RISCV_SUB6
  - Type:            SectionHeaderTable
    Sections:
      - Name:            .strtab
      - Name:            .text
      - Name:            .rela.text
      - Name:            .eh_frame
      - Name:            .rela.eh_frame
      - Name:            .symtab
Symbols:
  - Name:            cfa_advance_loc
    Section:         .text
    Value:           0x8
  - Name:            main_end
    Section:         .text
    Value:           0xC
  - Name:            main
    Type:            STT_FUNC
    Section:         .text
    Binding:         STB_GLOBAL
    Size:            0xC
  - Name:            eh_frame
    Type:            STT_SECTION
    Binding:         STB_GLOBAL
    Section:         .eh_frame
    Size:            0x28
...

## CIE_pointer
# jitlink-check: *{4}(eh_frame + 0x1c) = main - (eh_frame + 0x1c)
## address_range
# jitlink-check: *{4}(eh_frame + 0x20) = main_end - main
## DW_CFA_advance_loc
# jitlink-check: (*{1}(eh_frame + 0x25)) & 0x3f = cfa_advance_loc - main