Re: Bug#686436: openafs-modules-dkms: Does not build with squeeze kernel: error: asm/errno.h: No such file or directory
- To: Dominic Hargreaves <dom@earth.li>
- Cc: 686436@bugs.debian.org, linux-libc-dev@packages.debian.org
- Subject: Re: Bug#686436: openafs-modules-dkms: Does not build with squeeze kernel: error: asm/errno.h: No such file or directory
- From: Russ Allbery <rra@debian.org>
- Date: Mon, 03 Sep 2012 12:21:06 -0700
- Message-id: <[🔎] 87d322c3q5.fsf@windlord.stanford.edu>
- In-reply-to: <20120903191349.GJ4408@urchin.earth.li> (Dominic Hargreaves's message of "Mon, 3 Sep 2012 20:13:49 +0100")
- References: <20120901142404.828.50863.reportbug@callisto.larted.org.uk> <87ipbxmtqp.fsf@windlord.stanford.edu> <874nnhmt8q.fsf@windlord.stanford.edu> <20120903191349.GJ4408@urchin.earth.li>
Control: retitle -1 linux-libc-dev: squeeze upgrade issue: linux-libc-dev introduces multiarch headers before compiler upgrade
Control: reassign -1 linux-libc-dev
Dominic Hargreaves <dom@earth.li> writes:
> at the point I saw this error (at the and of an apt-get upgrade),
> neither libc6-dev nor gcc-* had been upgraded. dkms had been upgraded to
> 2.2.0.3-1.1. The other possibly-relevant packages upgraded at that point
> were autoconf, autoconf2.13, automake, automake1.9, dpkg-dev,
> linux-base, linux-libc-dev; could the newer dpkg-dev have cause dkms to
> attempt to use multi-arch paths too soon?
Ah, aha! It's not libc6-dev, it's linux-libc-dev.
windlord:~> dpkg -L linux-libc-dev | grep errno.h
/usr/include/linux/errno.h
/usr/include/i386-linux-gnu/asm/errno.h
/usr/include/asm-generic/errno.h
Upgrading linux-libc-dev would have moved errno.h into the multiarch path,
but your gcc didn't know to look there. And indeed, linux-libc-dev
doesn't have any Breaks or other relations to try to force the compiler to
be upgraded.
I forgot that set of headers was in the linux-libc-dev package instead.
I'll reassign this bug to linux-libc-dev.
linux-libc-dev maintainers, when upgrading to squeeze, there is currently
nothing preventing linux-libc-dev from being upgraded to a version that
uses multiarch paths in advance of upgrading any compiler to understand
those paths, which results in a broken C compilation environment. In this
case, this affected dkms, since dkms runs a compiler from postinst
scripts. I believe linux-libc-dev needs the same Breaks logic as
libc6-dev, namely something like:
Breaks: gcc-4.4 (<< 4.4.6-4), gcc-4.5 (<< 4.5.3-2), gcc-4.6 (<< 4.6.0-12)
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Reply to: