diff options
Diffstat (limited to 'tools/lib/bpf/libbpf_internal.h')
-rw-r--r-- | tools/lib/bpf/libbpf_internal.h | 16 |
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 | |||
37 | extern void libbpf_print(enum libbpf_print_level level, | 53 | extern 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))); |