aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/libbpf_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/bpf/libbpf_internal.h')
-rw-r--r--tools/lib/bpf/libbpf_internal.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_internal.h
index 2e83a34f8c79..98216a69c32f 100644
--- a/tools/lib/bpf/libbpf_internal.h
+++ b/tools/lib/bpf/libbpf_internal.h
@@ -34,6 +34,22 @@
34 (offsetof(TYPE, FIELD) + sizeof(((TYPE *)0)->FIELD)) 34 (offsetof(TYPE, FIELD) + sizeof(((TYPE *)0)->FIELD))
35#endif 35#endif
36 36
37/* Symbol versioning is different between static and shared library.
38 * Properly versioned symbols are needed for shared library, but
39 * only the symbol of the new version is needed for static library.
40 */
41#ifdef SHARED
42# define COMPAT_VERSION(internal_name, api_name, version) \
43 asm(".symver " #internal_name "," #api_name "@" #version);
44# define DEFAULT_VERSION(internal_name, api_name, version) \
45 asm(".symver " #internal_name "," #api_name "@@" #version);
46#else
47# define COMPAT_VERSION(internal_name, api_name, version)
48# define DEFAULT_VERSION(internal_name, api_name, version) \
49 extern typeof(internal_name) api_name \
50 __attribute__((alias(#internal_name)));
51#endif
52
37extern void libbpf_print(enum libbpf_print_level level, 53extern void libbpf_print(enum libbpf_print_level level,
38 const char *format, ...) 54 const char *format, ...)
39 __attribute__((format(printf, 2, 3))); 55 __attribute__((format(printf, 2, 3)));