scripts: Require pahole v1.16 when generating BTF
authorLorenz Bauer <lmb@cloudflare.com>
Mon, 8 Jun 2020 09:42:57 +0000 (10:42 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 9 Jun 2020 18:05:49 +0000 (11:05 -0700)
bpf_iter requires the kernel BTF to be generated with
pahole >= 1.16, since otherwise the function definitions
that the iterator attaches to are not included.
This failure mode is indistiguishable from trying to attach
to an iterator that really doesn't exist.

Since it's really easy to miss this requirement, bump the
pahole version check used at build time to at least 1.16.

Fixes: 15d83c4d7cef ("bpf: Allow loading of a bpf_iter program")
Suggested-by: Ivan Babrou <ivan@cloudflare.com>
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20200608094257.47366-1-lmb@cloudflare.com
scripts/link-vmlinux.sh

index 3adef49..a378759 100755 (executable)
@@ -143,8 +143,8 @@ gen_btf()
        fi
 
        pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/')
-       if [ "${pahole_ver}" -lt "113" ]; then
-               echo >&2 "BTF: ${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.13"
+       if [ "${pahole_ver}" -lt "116" ]; then
+               echo >&2 "BTF: ${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.16"
                return 1
        fi