#define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
#define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
-#define symbol_version(real, name, version) \
+#ifdef __powerpc64__
+# define symbol_version(real, name, version) \
+ __asm__ (".symver " #real "," #name "@" #version); \
+ __asm__ (".symver ." #real ",." #name "@" #version)
+# define default_symbol_version(real, name, version) \
+ __asm__ (".symver " #real "," #name "@@" #version); \
+ __asm__ (".symver ." #real ",." #name "@@" #version)
+#else
+# define symbol_version(real, name, version) \
__asm__ (".symver " #real "," #name "@" #version)
-#define default_symbol_version(real, name, version) \
+# define default_symbol_version(real, name, version) \
__asm__ (".symver " #real "," #name "@@" #version)
+#endif
#ifdef USE_VERSIONED_SYMBOLS
#define use_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 " #name); \
+ __asm__ (".weak ." #name); \
+ __asm__ (".set " #name "," #real); \
+ __asm__ (".set ." #name ",." #real)
+#else
#define use_default_symbol_version(real, name, version) \
__asm__ (".weak " #name); \
__asm__ (".set " #name "," #real)
#endif
+#endif
#endif /* __ALSA_SYMBOLS_H */