[Pkg-uml-pkgs] Bug#438568: FTBFS: fail to build when linux-libc-dev on buildings system is 2.6.22
Peder Chr. Nørgaard
pcn at pogt.dk
Fri Aug 17 20:43:02 UTC 2007
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: pcn at pogt.dk
Gefionsvej 19 spejder-e-mail: hathi at gallerne.dk
DK-8230 Åbyhøj tel: +45 87 44 11 99
Denmark mob: +45 30 91 84 31
More information about the Pkg-uml-pkgs
mailing list