@@ -93,6 +93,7 @@ static int do_version(int argc, char **argv)jsonw_name(json_wtr,"features");jsonw_start_object(json_wtr);/* features */jsonw_bool_field(json_wtr,"libbfd",has_libbfd);+jsonw_bool_field(json_wtr,"libbpf_strict",!legacy_libbpf);jsonw_bool_field(json_wtr,"skeletons",has_skeletons);jsonw_end_object(json_wtr);/* features */
2021-11-12 08:44 UTC-0800 ~ Stanislav Fomichev [off-list ref]
+ bpftool --legacy version
bpftool v5.15.0
features: libbfd, skeletons
+ bpftool version
bpftool v5.15.0
features: libbfd, libbpf_strict, skeletons
+ bpftool --json --legacy version
{"version":"5.15.0","features":{"libbfd":true,"libbpf_strict":false,"skeletons":true}}
+ bpftool --json version
{"version":"5.15.0","features":{"libbfd":true,"libbpf_strict":true,"skeletons":true}}
Nice, thanks!
The following doesn't work as expected, though:
$ ./bpftool --version --legacy
./bpftool v5.15.0
features: libbfd, libbpf_strict, skeletons
This is because we run do_version() immediately when parsing --version,
and we don't parse --legacy in that case. Could we postpone do_version()
until after we have parsed all options, so that the output from the
above is consistent with e.g. "bpftool --legacy --version"?
Thanks,
Quentin
From: Stanislav Fomichev <hidden> Date: 2021-11-12 17:04:54
On Fri, Nov 12, 2021 at 9:02 AM Quentin Monnet [off-list ref] wrote:
2021-11-12 08:44 UTC-0800 ~ Stanislav Fomichev [off-list ref]
quoted
+ bpftool --legacy version
bpftool v5.15.0
features: libbfd, skeletons
+ bpftool version
bpftool v5.15.0
features: libbfd, libbpf_strict, skeletons
+ bpftool --json --legacy version
{"version":"5.15.0","features":{"libbfd":true,"libbpf_strict":false,"skeletons":true}}
+ bpftool --json version
{"version":"5.15.0","features":{"libbfd":true,"libbpf_strict":true,"skeletons":true}}
Nice, thanks!
The following doesn't work as expected, though:
$ ./bpftool --version --legacy
./bpftool v5.15.0
features: libbfd, libbpf_strict, skeletons
This is because we run do_version() immediately when parsing --version,
and we don't parse --legacy in that case. Could we postpone do_version()
until after we have parsed all options, so that the output from the
above is consistent with e.g. "bpftool --legacy --version"?
Oh, good find! Let me move some code around to fix that.