libbpf: auto-resolve programs/libraries when necessary for uprobes
authorAlan Maguire <alan.maguire@oracle.com>
Wed, 30 Mar 2022 15:26:36 +0000 (16:26 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 4 Apr 2022 01:11:47 +0000 (18:11 -0700)
commit1ce3a60e3c287479f15147ffc61c35b2e436a0d5
treefa86dc9849c15daf1c8e339b912caf25321630e4
parent85bf1f51691c078e77f524a7addf37faa6635a6e
libbpf: auto-resolve programs/libraries when necessary for uprobes

bpf_program__attach_uprobe_opts() requires a binary_path argument
specifying binary to instrument.  Supporting simply specifying
"libc.so.6" or "foo" should be possible too.

Library search checks LD_LIBRARY_PATH, then /usr/lib64, /usr/lib.
This allows users to run BPF programs prefixed with
LD_LIBRARY_PATH=/path2/lib while still searching standard locations.
Similarly for non .so files, we check PATH and /usr/bin, /usr/sbin.

Path determination will be useful for auto-attach of BPF uprobe programs
using SEC() definition.

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/1648654000-21758-2-git-send-email-alan.maguire@oracle.com
tools/lib/bpf/libbpf.c