]> git.baikalelectronics.ru Git - kernel.git/commit
libbpf: Allow WEAK and GLOBAL bindings during BTF fixup
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 7 Apr 2022 23:04:46 +0000 (16:04 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 8 Apr 2022 16:16:09 +0000 (09:16 -0700)
commit48c1da1df7f1365662a9198a9f3d1136bcef53fb
tree2dc7e9d66f73b6e47cd0b6fae2799298a974be5b
parent6aa2ca029df4c59b6a10835a9b58cfbae3970738
libbpf: Allow WEAK and GLOBAL bindings during BTF fixup

During BTF fix up for global variables, global variable can be global
weak and will have STB_WEAK binding in ELF. Support such global
variables in addition to non-weak ones.

This is not the problem when using BPF static linking, as BPF static
linker "fixes up" BTF during generation so that libbpf doesn't have to
do it anymore during bpf_object__open(), which led to this not being
noticed for a while, along with a pretty rare (currently) use of __weak
variables and maps.

Reported-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220407230446.3980075-2-andrii@kernel.org
tools/lib/bpf/libbpf.c