At Fri, 25 Jan 2008 00:30:31 +1300, Brad Milne wrote:
On Jan 25, 2008 12:23 AM, Takashi Iwai tiwai@suse.de wrote:
At Fri, 25 Jan 2008 00:18:33 +1300,
Brad Milne wrote:
On Jan 24, 2008 11:58 PM, Takashi Iwai tiwai@suse.de wrote:
At Thu, 24 Jan 2008 23:40:55 +1300,
Brad Milne wrote:
From tiwai at suse.de Wed Jan 23 08:31:32 2008 From: tiwai at suse.de (Takashi Iwai) Date: Wed, 23 Jan 2008 08:31:32 +0100 Subject: [alsa-devel] =?iso-8859-7?q?1=2E0=2E16rc1_release_--_error=3A_=A1?= =?iso-8859-7?q?system=5Futsname=A2_undeclared?= In-Reply-To: s5htzl5t45y.wl%tiwai@suse.de References: < Pine.LNX.4.61.0801221247570.9698@tm8103.perex-int.cz> 47964342.1060608@measham.id.au <s5htzl5t45y.wl%tiwai@suse.de > Message-ID: s5hsl0pt2uj.wl%tiwai@suse.de
At Wed, 23 Jan 2008 08:03:05 +0100, I wrote: > > At Wed, 23 Jan 2008 06:25:54 +1100, > Rick Measham wrote: > > > > [1 <multipart/signed (7bit)>] > > [1.1 <text/plain; UTF-8 (quoted-printable)>] > > Jaroslav Kysela wrote: > > > 1.0.16rc1 release is available for download on > > > > Running Kubuntu: > > > > # uname -a > > Linux lugtop 2.6.20-16-386 #2 Sun Sep 23 19:47:10 UTC 2007 i686 GNU/Linux > > > > > > During the make: > > > > In file included from > > /usr/src/alsa/alsa-driver-1.0.16rc1/acore/info_oss.c:7: > > /usr/src/alsa/alsa-driver-1.0.16rc1/acore/../alsa-kernel/core/info_oss.c: > > In function ?snd_sndstat_proc_read?: > > /usr/src/alsa/alsa-driver-1.0.16rc1/acore/../alsa-kernel/core/info_oss.c:96: > > error: ?system_utsname? undeclared (first use in this function) > > /usr/src/alsa/alsa-driver-1.0.16rc1/acore/../alsa-kernel/core/info_oss.c:96: > > error: (Each undeclared identifier is reported only once > > /usr/src/alsa/alsa-driver-1.0.16rc1/acore/../alsa-kernel/core/info_oss.c:96: > > error: for each function it appears in.) > > make[3]: *** [/usr/src/alsa/alsa-driver-1.0.16rc1/acore/info_oss.o] Error 1 > > make[2]: *** [/usr/src/alsa/alsa-driver-1.0.16rc1/acore] Error 2 > > make[1]: *** [_module_/usr/src/alsa/alsa-driver-1.0.16rc1] Error 2 > > make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-16-386' > > make: *** [compile] Error 2 > > Isn't it fixed on HG version?
Nevermind, I myself can confirm that it's broken. The patch below should fix the problem.
Takashi
diff -r a5f603cb254a configure.in --- a/configure.in Tue Jan 22 17:52:34 2008 +0100 +++ b/configure.in Wed Jan 23 08:28:56 2008 +0100 @@ -2571,7 +2571,7 @@ init_utsname="0" init_utsname="0" ac_save_CFLAGS="$CFLAGS" ac_save_CC="$CC" -CFLAGS="$KERNEL_CHECK_CFLAGS -Werror" +CFLAGS="$KERNEL_CHECK_CFLAGS -Werror=implicit-function-declaration" CC=$KCC AC_TRY_COMPILE([ #define __KERNEL__
It doesn't seem that it is fixed in HG or by this patch (though I do get: patching file configure.in Hunk #1 succeeded at 1579 with fuzz 2 (offset -992 lines). patch unexpectedly ends in middle of line when patching), I get the exact same error in both.
And did you run hgcompile after that?
If I run: sudo ./configure then: sudo ./hgcompile
You don't have to be root for compiling the driver. The root priv is needed only for installation, i.e. make install.
on the latest hg code, I still get the same error:
from /usr/src/alsa/alsa-driver/acore/info_oss.c:7: include/linux/utsname.h:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token ... /usr/src/alsa/alsa-driver/acore/../alsa-kernel/core/info_oss.c: In function 'snd_sndstat_proc_read': /usr/src/alsa/alsa-driver/acore/../alsa-kernel/core/info_oss.c:96: error: 'system_utsname' undeclared (first use in this function) ... make[3]: *** [/usr/src/alsa/alsa-driver/acore/info_oss.o] Error 1 ...
Interesting. You're using 2.6.20 kernel, right?
First check include/config.h. whether it defines CONFIG_HAVE_INIT_UTSNAME. If it's defined, then the build must go well. If it's undefined (commented out), then check configure.in whether the patch was properly applied and -Werror was changed to -Werror=implicit-function-declaration. And see config.log at the place where init_utsname is checked. You must have a compile error there. Show that part.
brad@cyborg:/usr/src/alsa/alsa-driver$ uname -a Linux cyborg 2.6.22-14-generic #1 SMP Tue Dec 18 08:02:57 UTC 2007 i686 GNU/Linux
include/config.h: /* 2.6 kernel */ #define CONFIG_SND_NESTED_CLASS_DEVICE 1 /* #undef CONFIG_SND_OLD_DRIVER_SUSPEND */ #define CONFIG_SND_REMOVE_PAGE_RESERVE 1 #define CONFIG_SND_NEW_IRQ_HANDLER 1 #define CONFIG_HAVE_PNP_SUSPEND 1 #define CONFIG_HAVE_GFP_T 1 /* #undef CONFIG_HAVE_INIT_UTSNAME */ <----!!
configure.in (hg version): dnl Check for init_utsname... AC_MSG_CHECKING(for init_utsname) init_utsname="0" ac_save_CFLAGS="$CFLAGS" ac_save_CC="$CC" CFLAGS="$KERNEL_CHECK_CFLAGS -Werror=implicit-function-declaration" CC=$KCC AC_TRY_COMPILE([ #define __KERNEL__
config.log: configure:11638: checking for init_utsname configure:11673: gcc -c -Wall -fno-strict-aliasing -g -O2 -I/lib/modules/2.6.22-14-generic/build/include -I/lib/modules/2.6.22-14-generic/build/include/asm-i386/mach-default -Iinclude -nostdinc -iwithprefix include -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(dummy) -DKBUILD_MODNAME=KBUILD_BASENAME -Werror=implicit-function-declaration conftest.c >&5 cc1: error: unrecognized command line option "-Werror=implicit-function-declaration"
Grrr, it looks like this option isn't available for all gcc versions.
Then try the patch below and run hgcompile. It should work, at least, for your system.
thanks,
Takashi
---
diff -r e80f59e90231 configure.in --- a/configure.in Wed Jan 23 08:33:10 2008 +0100 +++ b/configure.in Thu Jan 24 12:36:35 2008 +0100 @@ -2567,13 +2567,16 @@ fi fi
dnl Check for init_utsname... +if test "$kversion.$kpatchlevel" = "2.6" -a $ksublevel -ge 19; then + CONFIG_HAVE_INIT_UTSNAME=1 +else AC_MSG_CHECKING(for init_utsname) -init_utsname="0" -ac_save_CFLAGS="$CFLAGS" -ac_save_CC="$CC" -CFLAGS="$KERNEL_CHECK_CFLAGS -Werror=implicit-function-declaration" -CC=$KCC -AC_TRY_COMPILE([ + init_utsname="0" + ac_save_CFLAGS="$CFLAGS" + ac_save_CC="$CC" + CFLAGS="$KERNEL_CHECK_CFLAGS -Werror" + CC=$KCC + AC_TRY_COMPILE([ #define __KERNEL__ #include <linux/config.h> #include <linux/utsname.h> @@ -2585,9 +2588,10 @@ AC_TRY_COMPILE([ AC_MSG_RESULT(no);init_utsname="0", AC_MSG_RESULT(unknown);init_utsname="0" ) -CFLAGS=$ac_save_CFLAGS -CC=$ac_save_CC -CONFIG_HAVE_INIT_UTSNAME=$init_utsname + CFLAGS=$ac_save_CFLAGS + CC=$ac_save_CC + CONFIG_HAVE_INIT_UTSNAME=$init_utsname +fi dnl AC_SUBST(CONFIG_HAVE_INIT_UTSNAME) if test "$CONFIG_HAVE_INIT_UTSNAME" = "1"; then AC_DEFINE(CONFIG_HAVE_INIT_UTSNAME)