On Wed, Dec 1, 2021 at 8:50 AM Alexander Lobakin <alexandr.lobakin@xxxxxxxxx> wrote: > > Fix the following samples/bpf build error appeared after the > introduction of bpf_map_create() in libbpf: > > CC samples/bpf/fds_example.o > samples/bpf/fds_example.c:49:12: error: static declaration of 'bpf_map_create' follows non-static declaration > static int bpf_map_create(void) > ^ > samples/bpf/libbpf/include/bpf/bpf.h:55:16: note: previous declaration is here > LIBBPF_API int bpf_map_create(enum bpf_map_type map_type, > ^ > samples/bpf/fds_example.c:82:23: error: too few arguments to function call, expected 6, have 0 > fd = bpf_map_create(); > ~~~~~~~~~~~~~~ ^ > samples/bpf/libbpf/include/bpf/bpf.h:55:16: note: 'bpf_map_create' declared here > LIBBPF_API int bpf_map_create(enum bpf_map_type map_type, > ^ > 2 errors generated. > > fds_example by accident has a static function with the same name. > It's not worth it to separate a single call into its own function, > so just embed it. > > Fixes: 992c4225419a ("libbpf: Unify low-level map creation APIs w/ new bpf_map_create()") > Signed-off-by: Alexander Lobakin <alexandr.lobakin@xxxxxxxxx> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx> > --- > samples/bpf/fds_example.c | 9 ++------- > 1 file changed, 2 insertions(+), 7 deletions(-) > > diff --git a/samples/bpf/fds_example.c b/samples/bpf/fds_example.c > index 59f45fef5110..9a7c1fd7a4a8 100644 > --- a/samples/bpf/fds_example.c > +++ b/samples/bpf/fds_example.c > @@ -46,12 +46,6 @@ static void usage(void) > printf(" -h Display this help.\n"); > } > > -static int bpf_map_create(void) > -{ > - return bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(uint32_t), > - sizeof(uint32_t), 1024, 0); > -} > - > static int bpf_prog_create(const char *object) > { > static struct bpf_insn insns[] = { > @@ -79,7 +73,8 @@ static int bpf_do_map(const char *file, uint32_t flags, uint32_t key, > int fd, ret; > > if (flags & BPF_F_PIN) { > - fd = bpf_map_create(); > + fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(uint32_t), > + sizeof(uint32_t), 1024, 0); Would be even better to use bpf_map_create() API instead, but that's fine, I'm sending a big clean up patch for this and other uses of deprecated APIs in samples/bpf. Applied to bpf-next. > printf("bpf: map fd:%d (%s)\n", fd, strerror(errno)); > assert(fd > 0); > > -- > 2.33.1 >