Commit 9b810755 authored by Sahid Orentino Ferdjaoui's avatar Sahid Orentino Ferdjaoui Committed by Alexei Starovoitov

bpftool: remove support of --legacy option for bpftool

Following:
  commit bd054102 ("libbpf: enforce strict libbpf 1.0 behaviors")
  commit 93b8952d ("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: default avatarSahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/r/20221120112515.38165-2-sahid.ferdjaoui@industrialdiscipline.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 99429b22
...@@ -23,12 +23,3 @@ ...@@ -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.
.. 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() ...@@ -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; ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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; ...@@ -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) ...@@ -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): ...@@ -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): ...@@ -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/-]+)\*\*')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment