[Bug 921078] Re: FATAL: kernel too old ← how old is too old?
Steve Langasek
steve.langasek at canonical.com
Tue Feb 14 18:25:27 UTC 2012
The handling code in the libc6.preinst is as follows:
# The GNU libc requires a >= 2.6.18 kernel, except on m68k where a
# 2.6.32 kernel is needed.
if [ "$realarch" != m68k ]
then
# Ubuntu buildd limitation: allow just 2.6.15, although 2.6.18 is required
# for some patches
#if linux_compare_versions "$kernel_ver" lt 2.6.18
vmin=2.6.15
else
vmin=2.6.32
fi
if linux_compare_versions "$kernel_ver" lt ${vmin}
then
echo WARNING: this version of the GNU libc requires kernel version
echo ${vmin} or later. Please upgrade your kernel before installing
echo glibc.
kernel26_help
exit 1
fi
So on architectures other than m68k (which is irrelevant for us), the
minimum version is *supposedly* 2.6.15. The error message you're
getting is triggered by this having been overridden in the source
(debian/sysdeps/linux.mk) without updating the preinst script.
I'm updating the preinst script in bzr to match the values included in
debian/sysdeps/linux.mk so that these are in sync. I don't know of any
reason that arm *needs* to have a higher base version than other archs;
it was bumped as part of a global bump, on the grounds that it's always
better when eglibc can leverage new kernel features. So I'll lower this
requirement as well. Matthias, if you know of any reason this is a
problem, please speak up.
Ultimately, though, the version of the *host* kernel is actually
completely irrelevant when you're talking about emulation, because the
host kernel has nothing to do with the syscall interface that qemu
exposes. So I think this is actually a bug in qemu-linaro as well, for
not outputting a more suitable value for uname() under emulation by
default. Maybe you can work around this by exporting QEMU_UNAME=2.6.32
in the build environment?
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/921078
Title:
FATAL: kernel too old ← how old is too old?
Status in “eglibc” package in Ubuntu:
New
Bug description:
PPA buildds currently run Hardy, because they require Xen for VM
security. This means that all builds of precise packages freak out
because libc6 isn't upgradable in the build deps:
Preparing to replace libc6 2.13-24ubuntu2 (using .../libc6_2.13-24ubuntu4_armel.deb) ...
Unpacking replacement libc6 ...
FATAL: kernel too old
dpkg: warning: subprocess old post-removal script returned error exit status 1
dpkg - trying script from the new package instead ...
FATAL: kernel too old
dpkg: error processing /var/cache/apt/archives/libc6_2.13-24ubuntu4_armel.deb (--unpack):
subprocess new post-removal script returned error exit status 1
FATAL: kernel too old
dpkg: error while cleaning up:
subprocess installed pre-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/libc6_2.13-24ubuntu4_armel.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
As a result, nothing at all will build.
How old is too old? It would be good to list which minimum kernel
revision to boot into, so we don't end up having to bisect through
lots of kernels. We generally have to do a lot of mangling to try and
make newer ones work with Xen.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/921078/+subscriptions
More information about the foundations-bugs
mailing list