mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
bpftool: remove support of --legacy option for bpftool
Following: commitbd054102a8
("libbpf: enforce strict libbpf 1.0 behaviors") commit93b8952d22
("libbpf: deprecate legacy BPF map definitions") The --legacy option is no longer relevant as libbpf no longer supports it. libbpf_set_strict_mode() is a no-op operation. Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com> Acked-by: Yonghong Song <yhs@fb.com> Reviewed-by: Quentin Monnet <quentin@isovalent.com> Link: https://lore.kernel.org/r/20221120112515.38165-2-sahid.ferdjaoui@industrialdiscipline.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
99429b224f
commit
9b81075534
7 changed files with 6 additions and 36 deletions
|
@ -23,12 +23,3 @@
|
||||||
Print all logs available, even debug-level information. This includes
|
Print all logs available, even debug-level information. This includes
|
||||||
logs from libbpf as well as from the verifier, when attempting to
|
logs from libbpf as well as from the verifier, when attempting to
|
||||||
load programs.
|
load programs.
|
||||||
|
|
||||||
-l, --legacy
|
|
||||||
Use legacy libbpf mode which has more relaxed BPF program
|
|
||||||
requirements. By default, bpftool has more strict requirements
|
|
||||||
about section names, changes pinning logic and doesn't support
|
|
||||||
some of the older non-BTF map declarations.
|
|
||||||
|
|
||||||
See https://github.com/libbpf/libbpf/wiki/Libbpf:-the-road-to-v1.0
|
|
||||||
for details.
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
|
||||||
.. |COMMON_OPTIONS| replace:: { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } | { **-l** | **--legacy** }
|
.. |COMMON_OPTIONS| replace:: { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** }
|
||||||
|
|
|
@ -261,7 +261,7 @@ _bpftool()
|
||||||
# Deal with options
|
# Deal with options
|
||||||
if [[ ${words[cword]} == -* ]]; then
|
if [[ ${words[cword]} == -* ]]; then
|
||||||
local c='--version --json --pretty --bpffs --mapcompat --debug \
|
local c='--version --json --pretty --bpffs --mapcompat --debug \
|
||||||
--use-loader --base-btf --legacy'
|
--use-loader --base-btf'
|
||||||
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
|
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -31,7 +31,6 @@ bool block_mount;
|
||||||
bool verifier_logs;
|
bool verifier_logs;
|
||||||
bool relaxed_maps;
|
bool relaxed_maps;
|
||||||
bool use_loader;
|
bool use_loader;
|
||||||
bool legacy_libbpf;
|
|
||||||
struct btf *base_btf;
|
struct btf *base_btf;
|
||||||
struct hashmap *refs_table;
|
struct hashmap *refs_table;
|
||||||
|
|
||||||
|
@ -160,7 +159,6 @@ static int do_version(int argc, char **argv)
|
||||||
jsonw_start_object(json_wtr); /* features */
|
jsonw_start_object(json_wtr); /* features */
|
||||||
jsonw_bool_field(json_wtr, "libbfd", has_libbfd);
|
jsonw_bool_field(json_wtr, "libbfd", has_libbfd);
|
||||||
jsonw_bool_field(json_wtr, "llvm", has_llvm);
|
jsonw_bool_field(json_wtr, "llvm", has_llvm);
|
||||||
jsonw_bool_field(json_wtr, "libbpf_strict", !legacy_libbpf);
|
|
||||||
jsonw_bool_field(json_wtr, "skeletons", has_skeletons);
|
jsonw_bool_field(json_wtr, "skeletons", has_skeletons);
|
||||||
jsonw_bool_field(json_wtr, "bootstrap", bootstrap);
|
jsonw_bool_field(json_wtr, "bootstrap", bootstrap);
|
||||||
jsonw_end_object(json_wtr); /* features */
|
jsonw_end_object(json_wtr); /* features */
|
||||||
|
@ -179,7 +177,6 @@ static int do_version(int argc, char **argv)
|
||||||
printf("features:");
|
printf("features:");
|
||||||
print_feature("libbfd", has_libbfd, &nb_features);
|
print_feature("libbfd", has_libbfd, &nb_features);
|
||||||
print_feature("llvm", has_llvm, &nb_features);
|
print_feature("llvm", has_llvm, &nb_features);
|
||||||
print_feature("libbpf_strict", !legacy_libbpf, &nb_features);
|
|
||||||
print_feature("skeletons", has_skeletons, &nb_features);
|
print_feature("skeletons", has_skeletons, &nb_features);
|
||||||
print_feature("bootstrap", bootstrap, &nb_features);
|
print_feature("bootstrap", bootstrap, &nb_features);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
@ -451,7 +448,6 @@ int main(int argc, char **argv)
|
||||||
{ "debug", no_argument, NULL, 'd' },
|
{ "debug", no_argument, NULL, 'd' },
|
||||||
{ "use-loader", no_argument, NULL, 'L' },
|
{ "use-loader", no_argument, NULL, 'L' },
|
||||||
{ "base-btf", required_argument, NULL, 'B' },
|
{ "base-btf", required_argument, NULL, 'B' },
|
||||||
{ "legacy", no_argument, NULL, 'l' },
|
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
bool version_requested = false;
|
bool version_requested = false;
|
||||||
|
@ -524,9 +520,6 @@ int main(int argc, char **argv)
|
||||||
case 'L':
|
case 'L':
|
||||||
use_loader = true;
|
use_loader = true;
|
||||||
break;
|
break;
|
||||||
case 'l':
|
|
||||||
legacy_libbpf = true;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
p_err("unrecognized option '%s'", argv[optind - 1]);
|
p_err("unrecognized option '%s'", argv[optind - 1]);
|
||||||
if (json_output)
|
if (json_output)
|
||||||
|
@ -536,14 +529,6 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!legacy_libbpf) {
|
|
||||||
/* Allow legacy map definitions for skeleton generation.
|
|
||||||
* It will still be rejected if users use LIBBPF_STRICT_ALL
|
|
||||||
* mode for loading generated skeleton.
|
|
||||||
*/
|
|
||||||
libbpf_set_strict_mode(LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS);
|
|
||||||
}
|
|
||||||
|
|
||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 0)
|
if (argc < 0)
|
||||||
|
|
|
@ -57,7 +57,7 @@ static inline void *u64_to_ptr(__u64 ptr)
|
||||||
#define HELP_SPEC_PROGRAM \
|
#define HELP_SPEC_PROGRAM \
|
||||||
"PROG := { id PROG_ID | pinned FILE | tag PROG_TAG | name PROG_NAME }"
|
"PROG := { id PROG_ID | pinned FILE | tag PROG_TAG | name PROG_NAME }"
|
||||||
#define HELP_SPEC_OPTIONS \
|
#define HELP_SPEC_OPTIONS \
|
||||||
"OPTIONS := { {-j|--json} [{-p|--pretty}] | {-d|--debug} | {-l|--legacy}"
|
"OPTIONS := { {-j|--json} [{-p|--pretty}] | {-d|--debug}"
|
||||||
#define HELP_SPEC_MAP \
|
#define HELP_SPEC_MAP \
|
||||||
"MAP := { id MAP_ID | pinned FILE | name MAP_NAME }"
|
"MAP := { id MAP_ID | pinned FILE | name MAP_NAME }"
|
||||||
#define HELP_SPEC_LINK \
|
#define HELP_SPEC_LINK \
|
||||||
|
@ -82,7 +82,6 @@ extern bool block_mount;
|
||||||
extern bool verifier_logs;
|
extern bool verifier_logs;
|
||||||
extern bool relaxed_maps;
|
extern bool relaxed_maps;
|
||||||
extern bool use_loader;
|
extern bool use_loader;
|
||||||
extern bool legacy_libbpf;
|
|
||||||
extern struct btf *base_btf;
|
extern struct btf *base_btf;
|
||||||
extern struct hashmap *refs_table;
|
extern struct hashmap *refs_table;
|
||||||
|
|
||||||
|
|
|
@ -1802,11 +1802,6 @@ static int load_with_options(int argc, char **argv, bool first_prog_only)
|
||||||
else
|
else
|
||||||
bpf_object__unpin_programs(obj, pinfile);
|
bpf_object__unpin_programs(obj, pinfile);
|
||||||
err_close_obj:
|
err_close_obj:
|
||||||
if (!legacy_libbpf) {
|
|
||||||
p_info("Warning: bpftool is now running in libbpf strict mode and has more stringent requirements about BPF programs.\n"
|
|
||||||
"If it used to work for this object file but now doesn't, see --legacy option for more details.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
bpf_object__close(obj);
|
bpf_object__close(obj);
|
||||||
err_free_reuse_maps:
|
err_free_reuse_maps:
|
||||||
for (i = 0; i < old_map_fds; i++)
|
for (i = 0; i < old_map_fds; i++)
|
||||||
|
|
|
@ -309,11 +309,11 @@ class MainHeaderFileExtractor(SourceFileExtractor):
|
||||||
commands), which looks to the lists of options in other source files
|
commands), which looks to the lists of options in other source files
|
||||||
but has different start and end markers:
|
but has different start and end markers:
|
||||||
|
|
||||||
"OPTIONS := { {-j|--json} [{-p|--pretty}] | {-d|--debug} | {-l|--legacy}"
|
"OPTIONS := { {-j|--json} [{-p|--pretty}] | {-d|--debug}"
|
||||||
|
|
||||||
Return a set containing all options, such as:
|
Return a set containing all options, such as:
|
||||||
|
|
||||||
{'-p', '-d', '--legacy', '--pretty', '--debug', '--json', '-l', '-j'}
|
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'"OPTIONS :=')
|
start_marker = re.compile(f'"OPTIONS :=')
|
||||||
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
|
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
|
||||||
|
@ -336,7 +336,7 @@ class ManSubstitutionsExtractor(SourceFileExtractor):
|
||||||
|
|
||||||
Return a set containing all options, such as:
|
Return a set containing all options, such as:
|
||||||
|
|
||||||
{'-p', '-d', '--legacy', '--pretty', '--debug', '--json', '-l', '-j'}
|
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile('\|COMMON_OPTIONS\| replace:: {')
|
start_marker = re.compile('\|COMMON_OPTIONS\| replace:: {')
|
||||||
pattern = re.compile('\*\*([\w/-]+)\*\*')
|
pattern = re.compile('\*\*([\w/-]+)\*\*')
|
||||||
|
|
Loading…
Reference in a new issue