All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: linux-media@vger.kernel.org
Cc: Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [PATCH] Update sync-with-kernel to use installed kernel headers
Date: Thu, 19 Jun 2014 09:39:35 +0200	[thread overview]
Message-ID: <2053295.4aAnXiX32L@avalon> (raw)
In-Reply-To: <1401792019-20723-1-git-send-email-laurent.pinchart@ideasonboard.com>

Ping ?

On Tuesday 03 June 2014 12:40:19 Laurent Pinchart wrote:
> Kernel headers exported to userspace can contain kernel-specific
> statements (such as __user annotations) that are removed when installing
> the headers with 'make headers_install' in the kernel sources. Only
> those headers must be used by userspace, raw headers are private to the
> kernel.
> 
> Update the sync-with-kernel make target to use the installed headers.
> The user must install the kernel headers by running
> 
> 	make headers_install
> 
> in KERNEL_DIR prior to run sync-with-kernel.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  Makefile.am                                   | 45 +++++++++++++-----------
>  contrib/freebsd/Makefile.am                   |  2 +-
>  contrib/freebsd/bsdify.sh                     |  2 +-
>  contrib/freebsd/patches/dvb-dmx-header.diff   |  8 ++---
>  contrib/freebsd/patches/dvb-osd-header.diff   |  2 +-
>  contrib/freebsd/patches/dvb-video-header.diff |  8 ++---
>  contrib/freebsd/patches/input-header.diff     |  8 ++---
>  contrib/freebsd/patches/ivtv-header.diff      |  5 ++-
>  contrib/freebsd/patches/uinput-header.diff    |  8 ++---
>  contrib/freebsd/patches/videodev2-header.diff | 13 ++++----
>  lib/libdvbv5/Makefile.am                      |  2 +-
>  lib/libdvbv5/gen_dvb_structs.pl               |  2 +-
>  utils/keytable/Makefile.am                    | 12 +++----
>  13 files changed, 55 insertions(+), 62 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 11baed1..35d0030 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -12,31 +12,32 @@ EXTRA_DIST = include COPYING.libv4l README.libv4l
> README.lib-multi-threading # custom targets
> 
>  sync-with-kernel:
> -	@if [ ! -f $(KERNEL_DIR)/include/uapi/linux/videodev2.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/fb.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-subdev.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-mediabus.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/ivtv.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/frontend.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/dmx.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/audio.h -o \
> -	      ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/video.h ]; then \
> +	@if [ ! -f $(KERNEL_DIR)/usr/include/linux/videodev2.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/fb.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/v4l2-controls.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/v4l2-common.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/v4l2-subdev.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/v4l2-mediabus.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/ivtv.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/dvb/frontend.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/dvb/audio.h -o \
> +	      ! -f $(KERNEL_DIR)/usr/include/linux/dvb/video.h ]; then \
>  	  echo "Error you must set KERNEL_DIR to point to an extracted kernel
> source dir"; \ +	  echo "and run 'make headers_install' in \$$KERNEL_DIR.";
> \
>  	  exit 1; \
>  	fi
> -	cp -a $(KERNEL_DIR)/include/uapi/linux/videodev2.h
> $(top_srcdir)/include/linux -	cp -a $(KERNEL_DIR)/include/uapi/linux/fb.h
> $(top_srcdir)/include/linux -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h
> $(top_srcdir)/include/linux -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h $(top_srcdir)/include/linux
> -	cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-subdev.h
> $(top_srcdir)/include/linux -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/v4l2-mediabus.h
> $(top_srcdir)/include/linux -	cp -a $(KERNEL_DIR)/include/uapi/linux/ivtv.h
> $(top_srcdir)/include/linux -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/dvb/frontend.h
> $(top_srcdir)/include/linux/dvb -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb
> -	cp -a $(KERNEL_DIR)/include/uapi/linux/dvb/audio.h
> $(top_srcdir)/include/linux/dvb -	cp -a
> $(KERNEL_DIR)/include/uapi/linux/dvb/video.h
> $(top_srcdir)/include/linux/dvb +	cp -a
> $(KERNEL_DIR)/usr/include/linux/videodev2.h $(top_srcdir)/include/linux
> +	cp -a $(KERNEL_DIR)/usr/include/linux/fb.h $(top_srcdir)/include/linux
> +	cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-controls.h
> $(top_srcdir)/include/linux +	cp -a
> $(KERNEL_DIR)/usr/include/linux/v4l2-common.h $(top_srcdir)/include/linux
> +	cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-subdev.h
> $(top_srcdir)/include/linux +	cp -a
> $(KERNEL_DIR)/usr/include/linux/v4l2-mediabus.h $(top_srcdir)/include/linux
> +	cp -a $(KERNEL_DIR)/usr/include/linux/ivtv.h $(top_srcdir)/include/linux
> +	cp -a $(KERNEL_DIR)/usr/include/linux/dvb/frontend.h
> $(top_srcdir)/include/linux/dvb +	cp -a
> $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb
> +	cp -a $(KERNEL_DIR)/usr/include/linux/dvb/audio.h
> $(top_srcdir)/include/linux/dvb +	cp -a
> $(KERNEL_DIR)/usr/include/linux/dvb/video.h $(top_srcdir)/include/linux/dvb
> 
>  	$(MAKE) -C utils/keytable $@
>  	$(MAKE) -C utils/xc3028-firmware $@
> diff --git a/contrib/freebsd/Makefile.am b/contrib/freebsd/Makefile.am
> index 8ad4c01..f28be2e 100644
> --- a/contrib/freebsd/Makefile.am
> +++ b/contrib/freebsd/Makefile.am
> @@ -8,7 +8,7 @@ sync-with-kernel:
> 
>  	for i in input.h ivtv.h uinput.h videodev2.h v4l2-controls.h v4l2-
common.h
> dvb/{audio.h,ca.h,dmx.h,frontend.h,net.h,osd.h,version.h,video.h}; do \
> mkdir -p include/linux/$$(dirname $$i); \
> -	    cp $(KERNEL_DIR)/include/uapi/linux/$$i include/linux/$$i; \
> +	    cp $(KERNEL_DIR)/usr/include/linux/$$i include/linux/$$i; \
>  	done
> 
>  	for i in ivtv.h uinput.h videodev2.h
> dvb/{audio.h,ca.h,dmx.h,frontend.h,net.h,osd.h,version.h,video.h}; do \
> diff --git a/contrib/freebsd/bsdify.sh b/contrib/freebsd/bsdify.sh index
> d4652cb..286bab5 100755
> --- a/contrib/freebsd/bsdify.sh
> +++ b/contrib/freebsd/bsdify.sh
> @@ -30,7 +30,7 @@ rm -rf include .pc
> 
>  for i in input.h ivtv.h uinput.h videodev2.h v4l2-controls.h v4l2-common.h
> dvb/{audio.h,ca.h,dmx.h,frontend.h,net.h,osd.h,version.h,video.h}; do mkdir
> -p include/linux/$(dirname $i)
> -    cp $KERNEL_DIR/include/uapi/linux/$i include/linux/$i
> +    cp $KERNEL_DIR/usr/include/linux/$i include/linux/$i
>  done
> 
>  # replace kernel types
> diff --git a/contrib/freebsd/patches/dvb-dmx-header.diff
> b/contrib/freebsd/patches/dvb-dmx-header.diff index b86cb8f..4723160 100644
> --- a/contrib/freebsd/patches/dvb-dmx-header.diff
> +++ b/contrib/freebsd/patches/dvb-dmx-header.diff
> @@ -1,15 +1,13 @@
>  --- freebsd/include/linux/dvb/dmx.h.orig	2012-12-05 10:26:23.000000000
> +0100 +++ freebsd/include/linux/dvb/dmx.h	2012-12-05 10:27:35.989684418
> +0100 -@@ -24,10 +24,9 @@
> - #ifndef _UAPI_DVBDMX_H_
> - #define _UAPI_DVBDMX_H_
> +@@ -24,8 +24,9 @@
> + #ifndef _DVBDMX_H_
> + #define _DVBDMX_H_
> 
>  -#include <linux/types.h>
> --#ifndef __KERNEL__
>  +#include <stdint.h>
>  +#include <sys/types.h>
>   #include <time.h>
> --#endif
> 
> 
>   #define DMX_FILTER_SIZE 16
> diff --git a/contrib/freebsd/patches/dvb-osd-header.diff
> b/contrib/freebsd/patches/dvb-osd-header.diff index a293874..df5adbd 100644
> --- a/contrib/freebsd/patches/dvb-osd-header.diff
> +++ b/contrib/freebsd/patches/dvb-osd-header.diff
> @@ -4,7 +4,7 @@
>   #ifndef _DVBOSD_H_
>   #define _DVBOSD_H_
> 
> --#include <linux/compiler.h>
> +-
>  +#include <sys/types.h>
> 
>   typedef enum {
> diff --git a/contrib/freebsd/patches/dvb-video-header.diff
> b/contrib/freebsd/patches/dvb-video-header.diff index 7d9fc0e..c578bf9
> 100644
> --- a/contrib/freebsd/patches/dvb-video-header.diff
> +++ b/contrib/freebsd/patches/dvb-video-header.diff
> @@ -1,15 +1,13 @@
>  --- freebsd/include/linux/dvb/video.h.orig	2012-12-05 10:28:14.000000000
> +0100 +++ freebsd/include/linux/dvb/video.h	2012-12-05 10:29:13.054783858
> +0100 -@@ -24,11 +24,9 @@
> - #ifndef _UAPI_DVBVIDEO_H_
> - #define _UAPI_DVBVIDEO_H_
> +@@ -24,9 +24,9 @@
> + #ifndef _DVBVIDEO_H_
> + #define _DVBVIDEO_H_
> 
>  -#include <linux/types.h>
> --#ifndef __KERNEL__
>  +#include <sys/types.h>
>   #include <stdint.h>
>   #include <time.h>
> --#endif
> 
>   typedef enum {
>   	VIDEO_FORMAT_4_3,     /* Select 4:3 format */
> diff --git a/contrib/freebsd/patches/input-header.diff
> b/contrib/freebsd/patches/input-header.diff index db1194c..d9c7d66 100644
> --- a/contrib/freebsd/patches/input-header.diff
> +++ b/contrib/freebsd/patches/input-header.diff
> @@ -1,11 +1,10 @@
>  --- freebsd/include/linux/input.h.orig	2012-12-05 10:18:56.000000000 +0100
>  +++ freebsd/include/linux/input.h	2012-12-05 10:22:11.228350200 +0100
> -@@ -8,13 +8,49 @@
> - #ifndef _UAPI_INPUT_H
> - #define _UAPI_INPUT_H
> +@@ -8,11 +8,47 @@
> + #ifndef _INPUT_H
> + #define _INPUT_H
> 
>  -
> - #ifndef __KERNEL__
>  +#include <stdint.h>
>   #include <sys/time.h>
>   #include <sys/ioctl.h>
> @@ -46,7 +45,6 @@
>  +#define	_IOC_WRITE  IOC_IN
>  +#else
>   #include <linux/types.h>
> - #endif
>  +#endif
> 
> 
> diff --git a/contrib/freebsd/patches/ivtv-header.diff
> b/contrib/freebsd/patches/ivtv-header.diff index 549ce40..53573da 100644
> --- a/contrib/freebsd/patches/ivtv-header.diff
> +++ b/contrib/freebsd/patches/ivtv-header.diff
> @@ -1,10 +1,9 @@
>  --- a/include/linux/ivtv.h
>  +++ b/include/linux/ivtv.h
> -@@ -21,8 +21,8 @@
> - #ifndef __LINUX_IVTV_H__
> +@@ -22,7 +22,8 @@
>   #define __LINUX_IVTV_H__
> 
> --#include <linux/compiler.h>
> +
>  -#include <linux/types.h>
>  +#include <stdint.h>
>  +#include <sys/types.h>
> diff --git a/contrib/freebsd/patches/uinput-header.diff
> b/contrib/freebsd/patches/uinput-header.diff index a92f7d5..537d529 100644
> --- a/contrib/freebsd/patches/uinput-header.diff
> +++ b/contrib/freebsd/patches/uinput-header.diff
> @@ -1,10 +1,10 @@
>  --- freebsd/include/linux/uinput.h.orig	2012-12-05 10:38:23.417354136 
+0100
> +++ freebsd/include/linux/uinput.h	2012-12-05 10:38:27.832358799 +0100 -@@
> -32,7 +32,6 @@
> - #ifndef _UAPI__UINPUT_H_
> - #define _UAPI__UINPUT_H_
> +@@ -34,7 +34,6 @@
> + #ifndef __UINPUT_H_
> + #define __UINPUT_H_
> 
>  -#include <linux/types.h>
>   #include <linux/input.h>
> 
> - #define UINPUT_VERSION		3
> + #define UINPUT_VERSION		4
> diff --git a/contrib/freebsd/patches/videodev2-header.diff
> b/contrib/freebsd/patches/videodev2-header.diff index f440e65..e850746
> 100644
> --- a/contrib/freebsd/patches/videodev2-header.diff
> +++ b/contrib/freebsd/patches/videodev2-header.diff
> @@ -1,14 +1,14 @@
>  --- freebsd/include/linux/videodev2.h.orig	2012-12-05 10:23:08.000000000
> +0100 +++ freebsd/include/linux/videodev2.h	2012-12-05 10:25:46.864570965
> +0100 -@@ -57,11 +57,45 @@
> - #define _UAPI__LINUX_VIDEODEV2_H
> +@@ -56,10 +56,44 @@
> + #ifndef __LINUX_VIDEODEV2_H
> + #define __LINUX_VIDEODEV2_H
> 
> - #ifndef __KERNEL__
>  +#include <stdint.h>
>   #include <sys/time.h>
>  +#include <sys/types.h>
>  +#include <sys/ioctl.h>
> -+
> +
>  +#ifndef HAVE_LINUX_INTEGER_TYPES
>  +/* XXX remove when depending software has been updated */
>  +#ifndef __u64
> @@ -26,7 +26,7 @@
>  +
>  +#ifndef __s64
>  +typedef int64_t __s64;
> - #endif
> ++#endif
>  +#ifndef __s32
>  +typedef int32_t __s32;
>  +#endif
> @@ -38,8 +38,7 @@
>  +#endif
>  +#endif
>  +
> -+#else
> - #include <linux/compiler.h>
> ++#ifdef __KERNEL__
>   #include <linux/ioctl.h>
>   #include <linux/types.h>
>  +#endif
> diff --git a/lib/libdvbv5/Makefile.am b/lib/libdvbv5/Makefile.am
> index 515adc3..bb270a6 100644
> --- a/lib/libdvbv5/Makefile.am
> +++ b/lib/libdvbv5/Makefile.am
> @@ -111,4 +111,4 @@ libdvbv5_la_LIBADD = $(LTLIBICONV)
>  EXTRA_DIST = README gen_dvb_structs.pl
> 
>  sync-with-kernel:
> -	./gen_dvb_structs.pl $(KERNEL_DIR)/include/
> +	./gen_dvb_structs.pl $(KERNEL_DIR)/usr/include/
> diff --git a/lib/libdvbv5/gen_dvb_structs.pl
> b/lib/libdvbv5/gen_dvb_structs.pl index dca6b9b..1fab057 100755
> --- a/lib/libdvbv5/gen_dvb_structs.pl
> +++ b/lib/libdvbv5/gen_dvb_structs.pl
> @@ -468,7 +468,7 @@ sub output_arrays($$$$$)
>    }
>  }
> 
> -my $fe_file = "$dir/uapi/linux/dvb/frontend.h";
> +my $fe_file = "$dir/linux/dvb/frontend.h";
> 
>  copy $fe_file, "../include/dvb-frontend.h";
> 
> diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am
> index 419d474..3e66eba 100644
> --- a/utils/keytable/Makefile.am
> +++ b/utils/keytable/Makefile.am
> @@ -14,7 +14,7 @@ install-data-local:
>  	$(install_sh) -d "$(DESTDIR)$(keytableuserdir)"
> 
>  sync-with-kernel:
> -	@if [ ! -f $(KERNEL_DIR)/include/uapi/linux/input.h ]; then \
> +	@if [ ! -f $(KERNEL_DIR)/usr/include/linux/input.h ]; then \
>  	  echo "Error you must set KERNEL_DIR to point to an extracted kernel
> source dir"; \ exit 1; \
>  	fi
> @@ -22,21 +22,21 @@ sync-with-kernel:
>  	@printf "struct parse_event {\n\tchar *name;\n\tunsigned int value;\n};
\n"
> > $(srcdir)/parse.h
> 
>  	@printf "struct parse_event events_type[] = {\n" >> $(srcdir)/parse.h
> -	@more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
> +	@more $(KERNEL_DIR)/usr/include/linux/input.h | perl -n \
>  	-e 'if (m/^\#define\s+(EV_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
>  	-e '{ printf "\t{\"%s\", %s},\n",$$1,$$2 if ($$1 ne "EV_VERSION"); }' \
> 
>  	>> $(srcdir)/parse.h
> 
>  	@printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h
> 
>  	@printf "struct parse_event msc_events[] = {\n" >> $(srcdir)/parse.h
> -	@more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
> +	@more $(KERNEL_DIR)/usr/include/linux/input.h | perl -n \
>  	-e 'if (m/^\#define\s+(MSC_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
>  	-e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \
> 
>  	>> $(srcdir)/parse.h
> 
>  	@printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h
> 
>  	@printf "struct parse_event key_events[] = {\n" >> $(srcdir)/parse.h
> -	@more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
> +	@more $(KERNEL_DIR)/usr/include/linux/input.h | perl -n \
>  	-e 'if (m/^\#define\s+(KEY_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
>  	-e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \
>  	-e 'if (m/^\#define\s+(BTN_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
> @@ -45,14 +45,14 @@ sync-with-kernel:
>  	@printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h
> 
>  	@printf "struct parse_event rel_events[] = {\n" >> $(srcdir)/parse.h
> -	@more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
> +	@more $(KERNEL_DIR)/usr/include/linux/input.h | perl -n \
>  	-e 'if (m/^\#define\s+(REL_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
>  	-e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \
> 
>  	>> $(srcdir)/parse.h
> 
>  	@printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h
> 
>  	@printf "struct parse_event abs_events[] = {\n" >> $(srcdir)/parse.h
> -	@more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
> +	@more $(KERNEL_DIR)/usr/include/linux/input.h | perl -n \
>  	-e 'if (m/^\#define\s+(ABS_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
>  	-e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \
> 
>  	>> $(srcdir)/parse.h

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2014-06-19  7:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-03 10:40 [PATCH] Update sync-with-kernel to use installed kernel headers Laurent Pinchart
2014-06-19  7:39 ` Laurent Pinchart [this message]
2014-07-01 14:30 ` Sakari Ailus
2014-07-01 16:24   ` Laurent Pinchart
2014-07-07 14:33     ` Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2053295.4aAnXiX32L@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=hans.verkuil@cisco.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.