At Fri, 30 May 2008 09:37:43 +1000, Ben Stanley wrote:
[PING]
I need some help on this one. I don't know how to determine whether or not the config.h file should be included in the test program or not.
config.h is needed for older kernels indeed.
Takashi
Ben Stanley.
On Fri, 2008-05-23 at 22:20 +1000, Ben Stanley wrote:
Further to my previous email,
The config.log file shows the following output for the test for init_utsname in the case of the RHEL 5.1 kernel 2.6.18-53.1.19:
configure:10792: checking for init_utsname configure:10822: gcc -c -Wall -fno-strict-aliasing -g -O2 -I/lib/modules/2.6.18-53.1.19.el5/build/include -I/lib/modules/2.6.18-53.1.19.el5/source/include -Iinclude -nostdinc -iwithprefix include -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(dummy) -DKBUILD_MODNAME=KBUILD_BASENAME -Werror conftest.c >&5 In file included from conftest.c:52: /lib/modules/2.6.18-53.1.19.el5/build/include/linux/config.h:6:2: error: #warning Including config.h is deprecated. configure:10828: $? = 1 configure: failed program was:
I think it is failing because of the config.h warning.
Ben Stanley.
On Fri, 2008-05-23 at 21:39 +1000, Ben Stanley wrote:
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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel