[PATCH] Look for ioctl definitions in the kernel build tree

Lubomir Rintel lkundrak at v3.sk
Mon Nov 3 14:51:10 UTC 2014


On Mon, 2014-11-03 at 17:28 +0300, Dmitry V. Levin wrote:
> On Mon, Nov 03, 2014 at 02:51:42PM +0100, Lubomir Rintel wrote:
> > On Sat, 2014-11-01 at 04:02 +0300, Dmitry V. Levin wrote:
> > > Hi,
> > > 
> > > On Thu, Oct 16, 2014 at 12:05:43PM +0200, Lubomir Rintel wrote:
> > > > The kernel's headers are not installed into /usr/include, nor are the Kbuild
> > > > files. Howerver, if linux/ioctlent.sh doesn't see the Kbuild file, it wrongly
> > > > assumes we just have an old tree and happily proceeds, leaving many ioctl
> > > > definitions out.
> > > > 
> > > > Let's look into the build tree instead. Kernel makes a symlink from moduledir
> > > > after modules_install into the build tree -- let's use that one. This also
> > > > plays nicely with distribution packaged kernel build trees. Prefer one for the
> > > > running kernel, pick any other if not found and fall back to old behavior.
> > > > 
> > > > Signed-off-by: Lubomir Rintel <lkundrak at v3.sk>
> > > > ---
> > > > This ought to fix the broken distribution issue reported downstream [1].
> > > > 
> > > > [1] https://bugzilla.redhat.com/show_bug.cgi?id=1149126
> > > > 
> > > > For a proper tarball being generated one needs to either install kernel from
> > > > source using make modules_install headers_install or install distribution
> > > > packages (pkcon install kernel-devel kernel-headers).
> > > > 
> > > > I'm not sure the patch is good as it is; it introduces a GNU Make-ism ($(shell 
> > > > )), I'm not sure whether that's okay. Feel free to improve.
> > > 
> > > $(shell uname -r) is ok, it is already used by news-check.
> > > 
> > > > +# Candidates for kernel build tree
> > > > +KERNEL_INCLUDE = /lib/modules/$(shell uname -r)/build/include
> > > 
> > > Unfortunately, this is not sufficient: the system where I run "make-dist"
> > > script does not provide /lib/modules/$(shell uname -r)/build/include/, so
> > > I'll have to fix it myself.
> > 
> > That's weird. How do you install the kernel?
> 
> Did you mean kernel headers?  We just use "make headers_install".

I think headers_install installs the user-exposed part, in /usr/include.
The internal headers, which we need too, are looked up in the kernel
source tree. The link to the appropriate source tree is created with
modules_install.

Regards,
Lubo






More information about the Strace-devel mailing list