Package: user-mode-linux Version: 2.6.21-1um-1 Severity: important Justification: fails to build from source
This is a slightly tricky FTBFS report. The fundamental bug is probably of upstream origin - I have had similar problems building recent user-mode-linux'es under other distros. The actual problem is, that if I try to do a dpkg-buildpackage on a recent "sid" debian, it fails (I cannot do a "pbuilder build" because of #436388 and the fact that linux-source-2.6.21 is no longer found on the debian servers). The failure is a simple compilation failure: gcc -Wp,-MD,arch/um/os-Linux/.aio.o.d -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -D__arch_um__ -DSUBARCH=\"i386\" -Dvmap=kernel_vmap -Din6addr_loopback=kernel_in6addr_loopback -march=i486 -mtune=generic -mpreferred-stack-boundary=2 -ffreestanding -D_LARGEFILE64_SOURCE -fno-unit-at-a-time -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -Iarch/um/include -I/home/pcn/debian_src/user-mode-linux-2.6.21-1um/linux-source-2.6.21/arch/um/include/skas -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_AIO_ABI -c -o arch/um/os-Linux/aio.o arch/um/os-Linux/aio.c arch/um/os-Linux/aio.c: In function 'do_aio': arch/um/os-Linux/aio.c:80: error: unknown field 'aio_reserved3' specified in initializer Now, why is this struct member 'aio_reserved3' missing? If you check the file aio_abi.h in the building directory linux-source-2.6.21/include/linux, the struct member is certainly defined. But if you look more closely at the 'gcc' command above, you will notice that it does not include an option "-Iinclude" - so the line '#include <linux/aio_abi.h>' in the aio.c makes the compilation include the file /usr/include/aio_abi.h - which belongs to the debian package linux-libc-dev which is now version 2.6.22-3. And the struct member in question - aio_reserved3 - is present in the linux 2.6.21 source but not in the linux 2.6.22 sources. So the fundamental problem is not that a struct member has been removed from a struct between 2.6.21 and 2.6.22 - it is that the compilation command is missing the "-Iinclude" option. It is quite obvious that the building of user-mode-linux - or any kernel building, actually - may not depend on whatever is currently installed in /usr/include - it must take all include files from the kernel build directory itself. Regrettably, I am not sufficiently competent in reading Makefile to figure out a patch to solve the problem. But I am pretty certain that the problem is not Debian-specific - it is a basic problem from upstream that just haven't been noticed because the vast majority of kernel builds - including UML kernel builds - happen on systems that have a linux-libc-dev installed that matches the kernel built. It is wrong nevertheless. I hope someone can figure this out and fix it. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.22-1-686 (SMP w/2 CPU cores) Locale: LANG=en_DK.ISO-8859-15, LC_CTYPE=en_DK.ISO-8859-15 (charmap=ISO-8859-15) Shell: /bin/sh linked to /bin/bash Versions of packages user-mode-linux depends on: ii uml-utilities 20060323-3 User-mode Linux (utility programs) user-mode-linux recommends no packages. -- no debconf information Peder Chr. Nørgaard e-mail: [EMAIL PROTECTED] Gefionsvej 19 spejder-e-mail: [EMAIL PROTECTED] DK-8230 Åbyhøj tel: +45 87 44 11 99 Denmark mob: +45 30 91 84 31

