[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