mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
selftests/bpf: Use portable POSIX basename()
Use the POSIX version of basename() to allow compilation against non-gnu libc (e.g. musl). Include <libgen.h> ahead of <string.h> to enable using functions from the latter while preferring POSIX over GNU basename(). In veristat.c, rely on strdupa() to avoid basename() altering the passed "const char" argument. This is not needed in xskxceiver.c since the arg is mutable and the program exits immediately after usage. Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/0fd3c9f3c605e6cba33504213c9df287817ade04.1722244708.git.tony.ambardar@gmail.com
This commit is contained in:
parent
781f0bbbda
commit
c0247800ee
|
|
@ -2,6 +2,7 @@
|
|||
/* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */
|
||||
#define _GNU_SOURCE
|
||||
#include <argp.h>
|
||||
#include <libgen.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <sched.h>
|
||||
|
|
@ -988,8 +989,8 @@ static void fixup_obj(struct bpf_object *obj, struct bpf_program *prog, const ch
|
|||
|
||||
static int process_prog(const char *filename, struct bpf_object *obj, struct bpf_program *prog)
|
||||
{
|
||||
const char *base_filename = basename(strdupa(filename));
|
||||
const char *prog_name = bpf_program__name(prog);
|
||||
const char *base_filename = basename(filename);
|
||||
char *buf;
|
||||
int buf_sz, log_level;
|
||||
struct verif_stats *stats;
|
||||
|
|
@ -1056,13 +1057,14 @@ static int process_prog(const char *filename, struct bpf_object *obj, struct bpf
|
|||
|
||||
static int process_obj(const char *filename)
|
||||
{
|
||||
const char *base_filename = basename(strdupa(filename));
|
||||
struct bpf_object *obj = NULL, *tobj;
|
||||
struct bpf_program *prog, *tprog, *lprog;
|
||||
libbpf_print_fn_t old_libbpf_print_fn;
|
||||
LIBBPF_OPTS(bpf_object_open_opts, opts);
|
||||
int err = 0, prog_cnt = 0;
|
||||
|
||||
if (!should_process_file_prog(basename(filename), NULL)) {
|
||||
if (!should_process_file_prog(base_filename, NULL)) {
|
||||
if (env.verbose)
|
||||
printf("Skipping '%s' due to filters...\n", filename);
|
||||
env.files_skipped++;
|
||||
|
|
@ -1076,7 +1078,7 @@ static int process_obj(const char *filename)
|
|||
}
|
||||
|
||||
if (!env.quiet && env.out_fmt == RESFMT_TABLE)
|
||||
printf("Processing '%s'...\n", basename(filename));
|
||||
printf("Processing '%s'...\n", base_filename);
|
||||
|
||||
old_libbpf_print_fn = libbpf_set_print(libbpf_print_fn);
|
||||
obj = bpf_object__open_file(filename, &opts);
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@
|
|||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <libgen.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/mman.h>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user