[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