At Wed, 30 Jan 2008 10:09:15 +0000, Alan Horstmann wrote:
Hi,
I get the following compile error:
make[1]: Entering directory `/usr/share/alsa1.0.16rc2/alsa-driver-1.0.16rc2/acore' gcc -D__KERNEL__ -DMODULE=1 -I/usr/share/alsa1.0.16rc2/alsa-driver-1.0.16rc2/include -I/lib/modules/2.4.21-99-athlon/build/include -O2 -mpreferred-stack-boundary=2 -march=athlon -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -DALSA_BUILD -nostdinc -iwithprefix include -DMODVERSIONS -include /lib/modules/2.4.21-99-athlon/build/include/linux/modversions.h -DEXPORT_SYMTAB -c hwdep.c In file included from hwdep.c:1: /usr/share/alsa1.0.16rc2/alsa-driver-1.0.16rc2/include/adriver.h:1461: error: redefinition of `__ffs' /lib/modules/2.4.21-99-athlon/build/include/asm/bitops.h:410: error: `__ffs' previously defined here make[1]: *** [hwdep.o] Error 1 make[1]: Leaving directory `/usr/share/alsa1.0.16rc2/alsa-driver-1.0.16rc2/acore' make: *** [compile] Error 1
I have pasted several lines so you can see the context. This wasn't a problem in 1.0.14; I haven't compiled since then.
Could you apply the patch below and use ./hgcompile to configure?
thanks,
Takashi
---
diff -r e600ecb8fbd7 configure.in --- a/configure.in Wed Jan 30 08:36:00 2008 +0100 +++ b/configure.in Wed Jan 30 12:22:56 2008 +0100 @@ -2597,6 +2597,37 @@ if test "$CONFIG_HAVE_INIT_UTSNAME" = "1 AC_DEFINE(CONFIG_HAVE_INIT_UTSNAME) fi
+dnl __ffs support? +if test "$kversion.$kpatchlevel" = "2.6"; then + CONFIG_HAVE_FFS=1 +else + AC_MSG_CHECKING(for __ffs) + init_utsname="0" + ac_save_CFLAGS="$CFLAGS" + ac_save_CC="$CC" + CFLAGS="$KERNEL_CHECK_CFLAGS" + CC=$KCC + AC_TRY_COMPILE([ +#define __KERNEL__ +#include <linux/config.h> +#include <linux/bitops.h> +],[ + unsigned long (*x)(unsigned long); + x = __ffs; +], + AC_MSG_RESULT(yes);have_ffs="1", + AC_MSG_RESULT(no);have_ffs="0", + AC_MSG_RESULT(unknown);have_ffs="0" +) + CFLAGS=$ac_save_CFLAGS + CC=$ac_save_CC + CONFIG_HAVE_FFS=$have_ffs +fi +dnl AC_SUBST(CONFIG_HAVE_FFS) +if test "$CONFIG_HAVE_FFS" = "1"; then + AC_DEFINE(CONFIG_HAVE_FFS) +fi + dnl PnP supports suspend/resume? if test "$CONFIG_PNP_KERNEL" = "y"; then AC_MSG_CHECKING(for PnP suspend/resume) diff -r e600ecb8fbd7 include/adriver.h --- a/include/adriver.h Wed Jan 30 08:36:00 2008 +0100 +++ b/include/adriver.h Wed Jan 30 12:22:56 2008 +0100 @@ -1455,7 +1455,7 @@ static inline unsigned char snd_pci_revi #endif #endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 3) +#ifndef CONFIG_HAVE_FFS #if defined(__i386__) static inline unsigned long __ffs(unsigned long word) { diff -r e600ecb8fbd7 include/config.h.in --- a/include/config.h.in Wed Jan 30 08:36:00 2008 +0100 +++ b/include/config.h.in Wed Jan 30 12:22:56 2008 +0100 @@ -44,6 +44,7 @@ #undef CONFIG_HAVE_TTY_COUNT_ATOMIC #undef CONFIG_HAVE_VIDEO_GET_DRVDATA #undef CONFIG_HAVE_DUMP_STACK +#undef CONFIG_HAVE_FFS
/* 2.2 kernels */ #undef CONFIG_OLD_KILL_FASYNC