OSDN Git Service

topology: Support configuring physical DAIs by C API
[android-x86/external-alsa-lib.git] / include / alsa-symbols.h
index e1a32e6..51cb982 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ALSA lib - dynamic symbol versions
- *  Copyright (c) 2002 by Jaroslav Kysela <perex@suse.cz>
+ *  Copyright (c) 2002 by Jaroslav Kysela <perex@perex.cz>
  *
  *
  *   This library is free software; you can redistribute it and/or modify
 #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
 #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
 
-#define symbol_version(real, name, version) \
-       __asm__ (".symver " #real "," #name "@" #version)
-#define default_symbol_version(real, name, version) \
-       __asm__ (".symver " #real "," #name "@@" #version)
+#ifdef __powerpc64__
+# define symbol_version(real, name, version)                   \
+       __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#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); \
+       __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#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 USE_VERSIONED_SYMBOLS
+#define use_symbol_version(real, name, version) \
+               symbol_version(real, name, version)
+#define use_default_symbol_version(real, name, version) \
+               default_symbol_version(real, name, version)
+#else
+#define use_symbol_version(real, name, version) /* nothing */
+#ifdef __powerpc64__
+#define use_default_symbol_version(real, name, version) \
+       __asm__ (".weak " ASM_NAME(#name));                     \
+       __asm__ (".weak ." ASM_NAME(#name));                    \
+       __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real));          \
+       __asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real))
+#else
+#if defined(__alpha__) || defined(__mips__)
+#define use_default_symbol_version(real, name, version) \
+        __asm__ (".weak " ASM_NAME(#name)); \
+        __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real))
+#else
+#define use_default_symbol_version(real, name, version) \
+       __asm__ (".weak " ASM_NAME(#name)); \
+       __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real))
+#endif
+#endif
+#endif
 
 #endif /* __ALSA_SYMBOLS_H */