mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
ab9e084821
Make global symbols in libbpf DSO hidden by default with -fvisibility=hidden and export symbols that are part of ABI explicitly with __attribute__((visibility("default"))). This is common practice that should prevent from accidentally exporting a symbol, that is not supposed to be a part of ABI what, in turn, improves both libbpf developer- and user-experiences. See [1] for more details. Export control becomes more important since more and more projects use libbpf. The patch doesn't export a bunch of netlink related functions since as agreed in [2] they'll be reworked. That doesn't break bpftool since bpftool links libbpf statically. [1] https://www.akkadia.org/drepper/dsohowto.pdf (2.2 Export Control) [2] https://www.mail-archive.com/netdev@vger.kernel.org/msg251434.html Signed-off-by: Andrey Ignatov <rdna@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
33 lines
1008 B
C
33 lines
1008 B
C
/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
|
|
/* Copyright (c) 2018 Facebook */
|
|
|
|
#ifndef __LIBBPF_BTF_H
|
|
#define __LIBBPF_BTF_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
#ifndef LIBBPF_API
|
|
#define LIBBPF_API __attribute__((visibility("default")))
|
|
#endif
|
|
|
|
#define BTF_ELF_SEC ".BTF"
|
|
|
|
struct btf;
|
|
struct btf_type;
|
|
|
|
typedef int (*btf_print_fn_t)(const char *, ...)
|
|
__attribute__((format(printf, 1, 2)));
|
|
|
|
LIBBPF_API void btf__free(struct btf *btf);
|
|
LIBBPF_API struct btf *btf__new(__u8 *data, __u32 size, btf_print_fn_t err_log);
|
|
LIBBPF_API __s32 btf__find_by_name(const struct btf *btf,
|
|
const char *type_name);
|
|
LIBBPF_API const struct btf_type *btf__type_by_id(const struct btf *btf,
|
|
__u32 id);
|
|
LIBBPF_API __s64 btf__resolve_size(const struct btf *btf, __u32 type_id);
|
|
LIBBPF_API int btf__resolve_type(const struct btf *btf, __u32 type_id);
|
|
LIBBPF_API int btf__fd(const struct btf *btf);
|
|
LIBBPF_API const char *btf__name_by_offset(const struct btf *btf, __u32 offset);
|
|
|
|
#endif /* __LIBBPF_BTF_H */
|