Skip to content

Commit

Permalink
tools/resolve_btfids: Add --fatal-warnings option
Browse files Browse the repository at this point in the history
Currently warnings emitted by resolve_btfids are buried in the build log
and are slipping into mainline frequently.
Add an option to elevate warnings to hard errors so the CI bots can
catch any new warnings.

Signed-off-by: Thomas Weißschuh <[email protected]>
Acked-by: Jiri Olsa <[email protected]>
  • Loading branch information
t-8ch authored and Kernel Patches Daemon committed Dec 2, 2024
1 parent 953be85 commit 0c3f119
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions tools/bpf/resolve_btfids/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ struct object {
};

static int verbose;
static int warnings;

static int eprintf(int level, int var, const char *fmt, ...)
{
Expand Down Expand Up @@ -604,6 +605,7 @@ static int symbols_resolve(struct object *obj)
if (id->id) {
pr_info("WARN: multiple IDs found for '%s': %d, %d - using %d\n",
str, id->id, type_id, id->id);
warnings++;
} else {
id->id = type_id;
(*nr)--;
Expand All @@ -625,8 +627,10 @@ static int id_patch(struct object *obj, struct btf_id *id)
int i;

/* For set, set8, id->id may be 0 */
if (!id->id && !id->is_set && !id->is_set8)
if (!id->id && !id->is_set && !id->is_set8) {
pr_err("WARN: resolve_btfids: unresolved symbol %s\n", id->name);
warnings++;
}

for (i = 0; i < id->addr_cnt; i++) {
unsigned long addr = id->addr[i];
Expand Down Expand Up @@ -782,13 +786,16 @@ int main(int argc, const char **argv)
.funcs = RB_ROOT,
.sets = RB_ROOT,
};
bool fatal_warnings = false;
struct option btfid_options[] = {
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show errors, etc)"),
OPT_STRING(0, "btf", &obj.btf, "BTF data",
"BTF data"),
OPT_STRING('b', "btf_base", &obj.base_btf_path, "file",
"path of file providing base BTF"),
OPT_BOOLEAN(0, "fatal-warnings", &fatal_warnings,
"turn warnings into errors"),
OPT_END()
};
int err = -1;
Expand Down Expand Up @@ -823,7 +830,8 @@ int main(int argc, const char **argv)
if (symbols_patch(&obj))
goto out;

err = 0;
if (!(fatal_warnings && warnings))
err = 0;
out:
if (obj.efile.elf) {
elf_end(obj.efile.elf);
Expand Down

0 comments on commit 0c3f119

Please sign in to comment.