diff options
author | Will Hawkins <whh8b@obs.cr> | 2023-04-27 22:30:15 -0400 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-05-05 08:20:39 -0700 |
commit | 69535186297b37e6e0a16290766666f4e8a55793 (patch) | |
tree | 06d4dd2bf8e4a91165600b791b1ab7ef6dff7840 /Documentation/bpf/llvm_reloc.rst | |
parent | fbc0b0253001c397a481d258a88ce5f08996574f (diff) | |
download | linux-69535186297b37e6e0a16290766666f4e8a55793.tar.gz linux-69535186297b37e6e0a16290766666f4e8a55793.tar.bz2 linux-69535186297b37e6e0a16290766666f4e8a55793.zip |
bpf, docs: Update llvm_relocs.rst with typo fixes
Correct a few typographical errors and fix some mistakes in examples.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/r/20230428023015.1698072-2-hawkinsw@obs.cr
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'Documentation/bpf/llvm_reloc.rst')
-rw-r--r-- | Documentation/bpf/llvm_reloc.rst | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/Documentation/bpf/llvm_reloc.rst b/Documentation/bpf/llvm_reloc.rst index ca8957d5b671..e4a777a6a3a2 100644 --- a/Documentation/bpf/llvm_reloc.rst +++ b/Documentation/bpf/llvm_reloc.rst @@ -48,7 +48,7 @@ the code with ``llvm-objdump -dr test.o``:: 14: 0f 10 00 00 00 00 00 00 r0 += r1 15: 95 00 00 00 00 00 00 00 exit -There are four relations in the above for four ``LD_imm64`` instructions. +There are four relocations in the above for four ``LD_imm64`` instructions. The following ``llvm-readelf -r test.o`` shows the binary values of the four relocations:: @@ -79,14 +79,16 @@ The following is the symbol table with ``llvm-readelf -s test.o``:: The 6th entry is global variable ``g1`` with value 0. Similarly, the second relocation is at ``.text`` offset ``0x18``, instruction 3, -for global variable ``g2`` which has a symbol value 4, the offset -from the start of ``.data`` section. - -The third and fourth relocations refers to static variables ``l1`` -and ``l2``. From ``.rel.text`` section above, it is not clear -which symbols they really refers to as they both refers to +has a type of ``R_BPF_64_64`` and refers to entry 7 in the symbol table. +The second relocation resolves to global variable ``g2`` which has a symbol +value 4. The symbol value represents the offset from the start of ``.data`` +section where the initial value of the global variable ``g2`` is stored. + +The third and fourth relocations refer to static variables ``l1`` +and ``l2``. From the ``.rel.text`` section above, it is not clear +to which symbols they really refer as they both refer to symbol table entry 4, symbol ``sec``, which has ``STT_SECTION`` type -and represents a section. So for static variable or function, +and represents a section. So for a static variable or function, the section offset is written to the original insn buffer, which is called ``A`` (addend). Looking at above insn ``7`` and ``11``, they have section offset ``8`` and ``12``. |