On Wednesday 30 January 2008 11:21, Takashi wrote:
At Wed, 30 Jan 2008 10:09:15 +0000,
Alan Horstmann wrote:
I get the following compile error:
/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
Could you apply the patch below and use ./hgcompile to configure?
thanks,
Takashi
Patch applied OK. Unfortunately, hgcompile complains that the Autoconf version is too old on this system -needs >2.59 (looks like I have 1.4o). What is the difference using that rather than straight configure? Is there a way to work round it?
Alan
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