summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2022-11-09 15:04:06 +0100
committerJaroslav Kysela <perex@perex.cz>2022-11-09 15:18:43 +0100
commit152983f01b0bc1178ea0d461ebf66e2d2a8e2e02 (patch)
tree9aafed889b2b30289cda3864314d85cb4e655144
parent161f47da5f196c291ac0e11d066fa5ff5f79fa04 (diff)
downloadalsa-lib-152983f01b0bc1178ea0d461ebf66e2d2a8e2e02.tar.gz
include: alsa-symbols.h - use newer gcc symver function attribute
Use the symver function attribute for newer gccs (version 11+). The symver function attribute was introduced probably earlier (gcc-10). We can fix that on demand later. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--include/alsa-symbols.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/alsa-symbols.h b/include/alsa-symbols.h
index 344f021a..f8c49103 100644
--- a/include/alsa-symbols.h
+++ b/include/alsa-symbols.h
@@ -29,10 +29,17 @@
#define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
#define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
+#if __GNUC__ > 10
+#define symbol_version(real, name, version) \
+ extern __typeof (real) real __attribute__((symver (#name "@" #version)))
+#define default_symbol_version(real, name, version) \
+ extern __typeof (real) real __attribute__((symver (#name "@@" #version)))
+#else
#define symbol_version(real, name, version) \
__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
#define default_symbol_version(real, name, version) \
__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
+#endif
#ifdef __clang__
#define EXPORT_SYMBOL __attribute__((visibility("default")))