[alsa-devel] CONFIG_GCD is never defined in the latest alsa-driver
Hi,
Compiling the latest alsa-driver with kernel > 2.6.31 results in gcd() symbol duplication. Although there's a check in configure for linux/gcd.h, no boolean is adjusted according to that.
In acore/wrappers.c, gcd() is exported if CONFIG_GCD is not defined which seems always the case for now.
Something like the following fixes the problem for me:
Index: alsa-driver/acore/wrappers.c =================================================================== --- alsa-driver.orig/acore/wrappers.c +++ alsa-driver/acore/wrappers.c @@ -339,7 +339,7 @@ char *compat_skip_spaces(const char *str EXPORT_SYMBOL(compat_skip_spaces); #endif /* < 2.6.33 */
-#ifndef CONFIG_GCD +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) /* Greatest common divisor */ unsigned long gcd(unsigned long a, unsigned long b) { @@ -356,4 +356,4 @@ unsigned long gcd(unsigned long a, unsig return b; } EXPORT_SYMBOL(gcd); -#endif /* !CONFIG_GCD */ +#endif
Thanks!
At Sat, 26 Dec 2009 12:55:24 +0200, Ozan Çağlayan wrote:
Hi,
Compiling the latest alsa-driver with kernel > 2.6.31 results in gcd() symbol duplication. Although there's a check in configure for linux/gcd.h, no boolean is adjusted according to that.
In acore/wrappers.c, gcd() is exported if CONFIG_GCD is not defined which seems always the case for now.
CONFIG_GCD looks new indeed. For 2.6.31 and 32, we need more check. I applied the following fix instead in case linux/gcd.h is defined by vendor kernels.
thanks,
Takashi
===
Takashi Iwai wrote:
CONFIG_GCD looks new indeed. For 2.6.31 and 32, we need more check. I applied the following fix instead in case linux/gcd.h is defined by vendor kernels.
Tested and works well, thanks.
participants (2)
-
Ozan Çağlayan
-
Takashi Iwai