On Mon, Nov 03, 2014 at 03:51:10PM +0100, Lubomir Rintel wrote:
> 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 <lkund...@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.

Yes, while most of ioctl-related kernel headers are now exported by
headers_install, some (linux/vm_sockets.h media/*.h net/bluetooth/*.h
scsi/scsi.h scsi/scsi_ioctl.h scsi/sg.h video/da8xx-fb.h video/kyro.h
video/mbxfb.h video/sstfb.h) are still modules_install only.

When preparing release tarballs, one has to use modules_install'ed headers,
to avoid issues like one you reported.

I agree it's a good idea to change Makefile.am so that it'll look for
ioctl definitions in a modules_install'ed tree by default.  I had to tweak
your patch slightly to support systems where /lib/modules/ is not
available for unprivileged users:

--- a/Makefile.am
+++ b/Makefile.am
@@ -288,9 +288,16 @@
 
 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
 
-IOCTLDIR = /usr/include
-IOCTLASM = asm
-IOCTLSORT_INCLUDEDIR = $(IOCTLDIR)
+INCLUDEDIR = /usr/include
+KERNEL_RELEASE = $(shell uname -r)
+# Candidates for the kernel headers tree.
+KERNEL_INCLUDE = \
+       /lib/modules/$(KERNEL_RELEASE)/build/include \
+       /usr/src/linux-$(KERNEL_RELEASE)/include \
+       $(INCLUDEDIR)
+IOCTLDIR = $(shell find $(KERNEL_INCLUDE) -maxdepth 0 -type d -print -quit 
2>/dev/null)
+IOCTLASM = $(INCLUDEDIR)/asm
+IOCTLSORT_INCLUDEDIR = $(INCLUDEDIR)
 
 ioctlent_h_in = linux/ioctlent.h.in

Lubomir, would you like to update the description of your patch,
highlighting the difference between headers_install'ed and
modules_install'ed kernel headers?


-- 
ldv

Attachment: pgpyqi3x0w6zq.pgp
Description: PGP signature

------------------------------------------------------------------------------
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to