]> 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)
commit54edf477920485e51ee4c1f3cb9ec49e0fd7bef2
tree2dc7e9d66f73b6e47cd0b6fae2799298a974be5b
parent6fd303a040de3cd605f3ed55d7bea51de42710bd
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