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>
This commit is contained in:
Will Hawkins 2023-04-27 22:30:15 -04:00 committed by Alexei Starovoitov
parent fbc0b02530
commit 6953518629
1 changed files with 9 additions and 7 deletions

View File

@ -48,7 +48,7 @@ the code with ``llvm-objdump -dr test.o``::
14: 0f 10 00 00 00 00 00 00 r0 += r1 14: 0f 10 00 00 00 00 00 00 r0 += r1
15: 95 00 00 00 00 00 00 00 exit 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 The following ``llvm-readelf -r test.o`` shows the binary values of the four
relocations:: 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. The 6th entry is global variable ``g1`` with value 0.
Similarly, the second relocation is at ``.text`` offset ``0x18``, instruction 3, Similarly, the second relocation is at ``.text`` offset ``0x18``, instruction 3,
for global variable ``g2`` which has a symbol value 4, the offset has a type of ``R_BPF_64_64`` and refers to entry 7 in the symbol table.
from the start of ``.data`` section. 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 refers to static variables ``l1`` The third and fourth relocations refer to static variables ``l1``
and ``l2``. From ``.rel.text`` section above, it is not clear and ``l2``. From the ``.rel.text`` section above, it is not clear
which symbols they really refers to as they both refers to to which symbols they really refer as they both refer to
symbol table entry 4, symbol ``sec``, which has ``STT_SECTION`` type 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 the section offset is written to the original insn
buffer, which is called ``A`` (addend). Looking at buffer, which is called ``A`` (addend). Looking at
above insn ``7`` and ``11``, they have section offset ``8`` and ``12``. above insn ``7`` and ``11``, they have section offset ``8`` and ``12``.