[alsa-devel] 1.0.16rc1 release -- error: ‘system_utsname’ undeclared
Takashi Iwai
tiwai at suse.de
Thu Jan 24 12:36:47 CET 2008
At Fri, 25 Jan 2008 00:30:31 +1300,
Brad Milne wrote:
>
> On Jan 25, 2008 12:23 AM, Takashi Iwai <tiwai at 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 at 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 at suse.de>
> > > > > > References: < Pine.LNX.4.61.0801221247570.9698 at tm8103.perex-int.cz>
> > > > > > <47964342.1060608 at measham.id.au> <s5htzl5t45y.wl%tiwai at suse.de >
> > > > > > Message-ID: <s5hsl0pt2uj.wl%tiwai at 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 at 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)
More information about the Alsa-devel
mailing list