Re: [PATCH 4/8] libbpf hashmap: Localize static hashmap__* symbols

Arnaldo Carvalho de Melo
2020-05-15T14:29:25Z

Em Fri, May 15, 2020 at 11:17:07AM +0200, Jiri Olsa escreveu:
> On Thu, May 14, 2020 at 11:56:20PM -0700, Ian Rogers wrote:
> > Localize the hashmap__* symbols in libbpf.a. To allow for a version in
> > libapi.
> >
> > Before:
> > $ nm libbpf.a
> > ...
> > 000000000002088a t hashmap_add_entry
> > 000000000001712a t hashmap__append
> > 0000000000020aa3 T hashmap__capacity
> > 000000000002099c T hashmap__clear
> > 00000000000208b3 t hashmap_del_entry
> > 0000000000020fc1 T hashmap__delete
> > 0000000000020f29 T hashmap__find
> > 0000000000020c6c t hashmap_find_entry
> > 0000000000020a61 T hashmap__free
> > 0000000000020b08 t hashmap_grow
> > 00000000000208dd T hashmap__init
> > 0000000000020d35 T hashmap__insert
> > 0000000000020ab5 t hashmap_needs_to_grow
> > 0000000000020947 T hashmap__new
> > 0000000000000775 t hashmap__set
> > 00000000000212f8 t hashmap__set
> > 0000000000020a91 T hashmap__size
> > ...
> >
> > After:
> > $ nm libbpf.a
> > ...
> > 000000000002088a t hashmap_add_entry
> > 000000000001712a t hashmap__append
> > 0000000000020aa3 t hashmap__capacity
> > 000000000002099c t hashmap__clear
> > 00000000000208b3 t hashmap_del_entry
> > 0000000000020fc1 t hashmap__delete
> > 0000000000020f29 t hashmap__find
> > 0000000000020c6c t hashmap_find_entry
> > 0000000000020a61 t hashmap__free
> > 0000000000020b08 t hashmap_grow
> > 00000000000208dd t hashmap__init
> > 0000000000020d35 t hashmap__insert
> > 0000000000020ab5 t hashmap_needs_to_grow
> > 0000000000020947 t hashmap__new
> > 0000000000000775 t hashmap__set
> > 00000000000212f8 t hashmap__set
> > 0000000000020a91 t hashmap__size
> > ...
>
> I think this will break bpf selftests which use hashmap,
> we need to find some other way to include this
>
> either to use it from libbpf directly, or use the api version
> only if the libbpf is not compiled in perf, we could use
> following to detect that:
>
> CFLAGS += -DHAVE_LIBBPF_SUPPORT
> $(call detected,CONFIG_LIBBPF)

And have it in tools/perf/util/ instead?

- Arnaldo