[alsa-devel] alsa-drivers-HEAD does not compile against recent RHE5.1 kernels

Ben Stanley Ben.Stanley at exemail.com.au
Fri May 23 13:39:02 CEST 2008


I have now refined the description of the original problem, after the
other problems were resolved. The init_utsname problem only occurs with
the RHE5.1 kernel, and not with the corresponding vanilla kernel.org
kernel.

My build procedure is (this is before Jaroslav fixed the alsa-kmirror
issue):

$ git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror
$ git clone git://git.alsa-project.org/alsa-driver.git alsa-driver  
$ cd alsa-driver
$ ALSAKERNELDIR=../alsa-kmirror ./gitcompile

The Linux headers in /usr/include/linux are owned by the package
linux-headers-2.6.8-53.1.19 from RHEL5.1 .

Note the result
checking for init_utsname... no
However, this kernel includes a definition for init_utsname in
include/linux/utsname.h:37:52. The configure test has detected the wrong
result.

Further down, the build fails

  CC [M]  /home/stanb/Desktop/Drivers/alsa-driver/acore/info_oss.o
In file included
from /home/stanb/Desktop/Drivers/alsa-driver/acore/../alsa-kernel/core/info_oss.c:29,

from /home/stanb/Desktop/Drivers/alsa-driver/acore/info_oss.c:7:
include/linux/utsname.h:37:52: error: macro "init_utsname" passed 1
arguments, but takes just 0
In file included
from /home/stanb/Desktop/Drivers/alsa-driver/acore/../alsa-kernel/core/info_oss.c:29,

from /home/stanb/Desktop/Drivers/alsa-driver/acore/info_oss.c:7:
include/linux/utsname.h:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘{’ token

If I build against a kernel.org vanilla 2.6.18, as follows:

$ cd linux-2.6.18
$ make modules_prepare
$ cd ..
$ git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror
$ git clone git://git.alsa-project.org/alsa-driver.git alsa-driver  
$ cd alsa-driver
$ ALSAKERNELDIR=../alsa-kmirror ./gitcompile
--with-kernel=../linux-2.6.18 --with-build=../linux-2.6.18

Then the build fails further down (for a different reason):

  CC [M]  /home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/ice1724.o
In file included
from /home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/ice1724.c:2:
/home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/../../alsa-kernel/pci/ice1712/ice1724.c: In function ‘get_rawmidi_substream’:
/home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/../../alsa-kernel/pci/ice1712/ice1724.c:240: warning: implicit declaration of function ‘list_first_entry’
/home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/../../alsa-kernel/pci/ice1712/ice1724.c:241: error: expected expression before ‘struct’
/home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/../../alsa-kernel/pci/ice1712/ice1724.c:241: warning: return makes pointer from integer without a cast
make[4]: ***
[/home/stanb/Desktop/Drivers/alsa-driver/pci/ice1712/ice1724.o] Error 1


Ben Stanley.

On Fri, 2008-05-23 at 11:41 +1000, Ben Stanley wrote:
> Hi,
> 
> alsa-drivers-HEAD does not compile against recent RHE5 kernels, such as 
> ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/kernel-2.6.18-53.1.21.el5.src.rpm
> 
> The problem is mixed up with the test for init_utsname in configure.in:
> 
> 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"
>   CC=$KCC
>   AC_TRY_COMPILE([
> #define __KERNEL__
> #include <linux/config.h>
> #include <linux/utsname.h>
> ],[
>   int *x = (int *)init_utsname();
>   *x = 0;
> ],
>     AC_MSG_RESULT(yes);init_utsname="1",
>     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
> fi
> dnl AC_SUBST(CONFIG_HAVE_INIT_UTSNAME)
> if test "$CONFIG_HAVE_INIT_UTSNAME" = "1"; then
>   AC_DEFINE(CONFIG_HAVE_INIT_UTSNAME)
> fi
> 
> The problem is that <linux/config.h> does not exist in recent kernel.org
> and RH 2.6.18 kernels. The AC_TRY_COMPILE produces a negative result
> (because of a warning, treated as an error, about the missing
> linux/config.h file), which then causes CONFIG_HAVE_INIT_UTSNAME to NOT
> be defined.
> 
> This results in a compile failure in acore/info_oss.c .
> 
> I'm not sure how this should be fixed. I'm also not sure why someone
> else hasn't noticed it already, since it affects me with a standard
> kernel.org kernel. Therefore, here is my test procedure.
> 
> wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
> tar -xjf linux-2.6.25.tar.bz2
> cd linux-2.6.25
> make defconfig
> make modules_prepare
> cd ..
> 
> (This next step takes *forever*)
> git clone git://git.alsa-project.org/alsa-kernel.git alsa-kernel
> 
> git clone git://git.alsa-project.org/alsa-driver.git alsa-driver
> cd alsa-driver
> ./gitcompile --with-kernel=../linux-2.6.25 --with-build=../linux-2.6.25
> 
> This currently produces an error:
> No alsa-kernel is found.
> Please specify the correct location via ALSAKERNELDIR environment
> variable.
> 
> So instead I run
> ALSAKERNELDIR=../alsa-kernel ./gitcompile --with-kernel=../linux-2.6.25
> --with-build=../linux-2.6.25
> and I get the same error.
> 
> when I repeat the above with an alsa-kernel from hg, I do not get this
> problem (in fact, alsa-driver compiles completely on the Ubuntu 7.10
> machine I'm using for this test).
> 
> So, I've got perhaps two different problems here. I need a hand.
> 
> Ben Stanley.
> 
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



More information about the Alsa-devel mailing list