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

Jiri Olsa
2020-05-15T09:17:27Z

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)

jirka