X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=include%2Falsa-symbols.h;h=51cb98255d93e729f6a2fe3585e625731e33dd6d;hb=91177153714efe554157c5ce8007c9bdc79ef8eb;hp=e1a32e65151063677ccfe80328976cfd2b306936;hpb=25e41cf1e87c6f8abb77e244284f958adbb53ec5;p=android-x86%2Fexternal-alsa-lib.git diff --git a/include/alsa-symbols.h b/include/alsa-symbols.h index e1a32e65..51cb9825 100644 --- a/include/alsa-symbols.h +++ b/include/alsa-symbols.h @@ -1,6 +1,6 @@ /* * ALSA lib - dynamic symbol versions - * Copyright (c) 2002 by Jaroslav Kysela + * Copyright (c) 2002 by Jaroslav Kysela * * * This library is free software; you can redistribute it and/or modify @@ -29,9 +29,44 @@ #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 */