|
@@ -0,0 +1,217 @@
|
|
|
+From 305ae25455b1f19ad2eda92523bd553fd8bc72fd Mon Sep 17 00:00:00 2001
|
|
|
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
+Date: Sun, 20 Aug 2017 23:58:44 +0200
|
|
|
+Subject: [PATCH] configure.ac: drop --disable-libv4l, disable plugin support
|
|
|
+ instead
|
|
|
+
|
|
|
+In commit 2e604dfbcd09b93f0808cedb2a0b324c5569a599 ("configure.ac: add
|
|
|
+--disable-libv4l option"), an option --disable-libv4l was added. As
|
|
|
+part of this, libv4l is no longer built at all in static linking
|
|
|
+configurations, just because libv4l uses dlopen() for plugin support.
|
|
|
+
|
|
|
+However, plugin support is only a side feature of libv4l, and one may
|
|
|
+need to use libv4l in static configurations, just without plugin
|
|
|
+support.
|
|
|
+
|
|
|
+Therefore, this commit:
|
|
|
+
|
|
|
+ - Essentially reverts 2e604dfbcd09b93f0808cedb2a0b324c5569a599, so
|
|
|
+ that libv4l can be built in static linking configurations again.
|
|
|
+
|
|
|
+ - Adjusts the compilation of libv4l2 so that the plugin support is
|
|
|
+ not compiled in when dlopen() in static linking configuration
|
|
|
+ (dlopen is not available).
|
|
|
+
|
|
|
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
+Submitted-upstream: https://www.mail-archive.com/linux-media@vger.kernel.org/msg117449.html
|
|
|
+---
|
|
|
+ Makefile.am | 11 ++---------
|
|
|
+ configure.ac | 15 +++------------
|
|
|
+ lib/libv4l2/Makefile.am | 6 +++++-
|
|
|
+ lib/libv4l2/libv4l2-priv.h | 14 ++++++++++++++
|
|
|
+ utils/Makefile.am | 6 +-----
|
|
|
+ utils/v4l2-compliance/Makefile.am | 4 ----
|
|
|
+ utils/v4l2-ctl/Makefile.am | 4 ----
|
|
|
+ 7 files changed, 25 insertions(+), 35 deletions(-)
|
|
|
+
|
|
|
+diff --git a/Makefile.am b/Makefile.am
|
|
|
+index 07c3ef8..e603472 100644
|
|
|
+--- a/Makefile.am
|
|
|
++++ b/Makefile.am
|
|
|
+@@ -1,17 +1,10 @@
|
|
|
+ AUTOMAKE_OPTIONS = foreign
|
|
|
+ ACLOCAL_AMFLAGS = -I m4
|
|
|
+
|
|
|
+-SUBDIRS = v4l-utils-po libdvbv5-po
|
|
|
+-
|
|
|
+-if WITH_LIBV4L
|
|
|
+-SUBDIRS += lib
|
|
|
+-endif
|
|
|
++SUBDIRS = v4l-utils-po libdvbv5-po lib
|
|
|
+
|
|
|
+ if WITH_V4LUTILS
|
|
|
+-SUBDIRS += utils
|
|
|
+-if WITH_LIBV4L
|
|
|
+-SUBDIRS += contrib
|
|
|
+-endif
|
|
|
++SUBDIRS += utils contrib
|
|
|
+ endif
|
|
|
+
|
|
|
+ EXTRA_DIST = android-config.h bootstrap.sh doxygen_libdvbv5.cfg include COPYING.libv4l \
|
|
|
+diff --git a/configure.ac b/configure.ac
|
|
|
+index 58fb688..2ecb4a1 100644
|
|
|
+--- a/configure.ac
|
|
|
++++ b/configure.ac
|
|
|
+@@ -374,14 +374,6 @@ AC_ARG_ENABLE(libdvbv5,
|
|
|
+ esac]
|
|
|
+ )
|
|
|
+
|
|
|
+-AC_ARG_ENABLE(libv4l,
|
|
|
+- AS_HELP_STRING([--disable-libv4l], [disable libv4l compilation]),
|
|
|
+- [case "${enableval}" in
|
|
|
+- yes | no ) ;;
|
|
|
+- *) AC_MSG_ERROR(bad value ${enableval} for --disable-libv4l) ;;
|
|
|
+- esac]
|
|
|
+-)
|
|
|
+-
|
|
|
+ AC_ARG_ENABLE(dyn-libv4l,
|
|
|
+ AS_HELP_STRING([--disable-dyn-libv4l], [disable dynamic libv4l support]),
|
|
|
+ [case "${enableval}" in
|
|
|
+@@ -439,7 +431,6 @@ AM_CONDITIONAL([WITH_LIBDVBV5], [test x$enable_libdvbv5 != xno -a x$have_li
|
|
|
+ AM_CONDITIONAL([WITH_DVBV5_REMOTE], [test x$enable_libdvbv5 != xno -a x$have_libudev = xyes -a x$have_pthread = xyes])
|
|
|
+
|
|
|
+ AM_CONDITIONAL([WITH_DYN_LIBV4L], [test x$enable_dyn_libv4l != xno])
|
|
|
+-AM_CONDITIONAL([WITH_LIBV4L], [test x$enable_libv4l != xno -a x$enable_shared != xno])
|
|
|
+ AM_CONDITIONAL([WITH_V4LUTILS], [test x$enable_v4l_utils != xno -a x$linux_os = xyes])
|
|
|
+ AM_CONDITIONAL([WITH_QV4L2], [test x${qt_pkgconfig} = xtrue -a x$enable_qv4l2 != xno])
|
|
|
+ AM_CONDITIONAL([WITH_V4L_PLUGINS], [test x$enable_dyn_libv4l != xno -a x$enable_shared != xno])
|
|
|
+@@ -467,11 +458,12 @@ AM_COND_IF([WITH_LIBDVBV5], [USE_LIBDVBV5="yes"], [USE_LIBDVBV5="no"])
|
|
|
+ AM_COND_IF([WITH_DVBV5_REMOTE], [USE_DVBV5_REMOTE="yes"
|
|
|
+ AC_DEFINE([HAVE_DVBV5_REMOTE], [1], [Usage of DVBv5 remote enabled])],
|
|
|
+ [USE_DVBV5_REMOTE="no"])
|
|
|
+-AM_COND_IF([WITH_LIBV4L], [USE_LIBV4L="yes"], [USE_LIBV4L="no"])
|
|
|
+ AM_COND_IF([WITH_DYN_LIBV4L], [USE_DYN_LIBV4L="yes"], [USE_DYN_LIBV4L="no"])
|
|
|
+ AM_COND_IF([WITH_V4LUTILS], [USE_V4LUTILS="yes"], [USE_V4LUTILS="no"])
|
|
|
+ AM_COND_IF([WITH_QV4L2], [USE_QV4L2="yes"], [USE_QV4L2="no"])
|
|
|
+-AM_COND_IF([WITH_V4L_PLUGINS], [USE_V4L_PLUGINS="yes"], [USE_V4L_PLUGINS="no"])
|
|
|
++AM_COND_IF([WITH_V4L_PLUGINS], [USE_V4L_PLUGINS="yes"
|
|
|
++ AC_DEFINE([HAVE_V4L_PLUGINS], [1], [V4L plugin support enabled])],
|
|
|
++ [USE_V4L_PLUGINS="no"])
|
|
|
+ AM_COND_IF([WITH_V4L_WRAPPERS], [USE_V4L_WRAPPERS="yes"], [USE_V4L_WRAPPERS="no"])
|
|
|
+ AM_COND_IF([WITH_GCONV], [USE_GCONV="yes"], [USE_GCONV="no"])
|
|
|
+ AM_COND_IF([WITH_V4L2_CTL_LIBV4L], [USE_V4L2_CTL_LIBV4L="yes"], [USE_V4L2_CTL_LIBV4L="no"])
|
|
|
+@@ -503,7 +495,6 @@ compile time options summary
|
|
|
+
|
|
|
+ gconv : $USE_GCONV
|
|
|
+
|
|
|
+- libv4l : $USE_LIBV4L
|
|
|
+ dynamic libv4l : $USE_DYN_LIBV4L
|
|
|
+ v4l_plugins : $USE_V4L_PLUGINS
|
|
|
+ v4l_wrappers : $USE_V4L_WRAPPERS
|
|
|
+diff --git a/lib/libv4l2/Makefile.am b/lib/libv4l2/Makefile.am
|
|
|
+index 811c45c..3a1bb90 100644
|
|
|
+--- a/lib/libv4l2/Makefile.am
|
|
|
++++ b/lib/libv4l2/Makefile.am
|
|
|
+@@ -15,7 +15,11 @@ else
|
|
|
+ noinst_LTLIBRARIES = libv4l2.la
|
|
|
+ endif
|
|
|
+
|
|
|
+-libv4l2_la_SOURCES = libv4l2.c v4l2-plugin.c log.c libv4l2-priv.h
|
|
|
++libv4l2_la_SOURCES = libv4l2.c log.c libv4l2-priv.h
|
|
|
++if WITH_V4L_PLUGINS
|
|
|
++libv4l2_la_SOURCES += v4l2-plugin.c
|
|
|
++endif
|
|
|
++
|
|
|
+ libv4l2_la_CPPFLAGS = $(CFLAG_VISIBILITY) $(ENFORCE_LIBV4L_STATIC)
|
|
|
+ libv4l2_la_LDFLAGS = $(LIBV4L2_VERSION) -lpthread $(DLOPEN_LIBS) $(ENFORCE_LIBV4L_STATIC)
|
|
|
+ libv4l2_la_LIBADD = ../libv4lconvert/libv4lconvert.la
|
|
|
+diff --git a/lib/libv4l2/libv4l2-priv.h b/lib/libv4l2/libv4l2-priv.h
|
|
|
+index 343db5e..1924c91 100644
|
|
|
+--- a/lib/libv4l2/libv4l2-priv.h
|
|
|
++++ b/lib/libv4l2/libv4l2-priv.h
|
|
|
+@@ -107,10 +107,24 @@ struct v4l2_dev_info {
|
|
|
+ };
|
|
|
+
|
|
|
+ /* From v4l2-plugin.c */
|
|
|
++#if defined(HAVE_V4L_PLUGINS)
|
|
|
+ void v4l2_plugin_init(int fd, void **plugin_lib_ret, void **plugin_priv_ret,
|
|
|
+ const struct libv4l_dev_ops **dev_ops_ret);
|
|
|
+ void v4l2_plugin_cleanup(void *plugin_lib, void *plugin_priv,
|
|
|
+ const struct libv4l_dev_ops *dev_ops);
|
|
|
++#else
|
|
|
++static inline void v4l2_plugin_init(int fd, void **plugin_lib_ret, void **plugin_priv_ret,
|
|
|
++ const struct libv4l_dev_ops **dev_ops_ret)
|
|
|
++{
|
|
|
++ *dev_ops_ret = v4lconvert_get_default_dev_ops();
|
|
|
++ *plugin_lib_ret = NULL;
|
|
|
++ *plugin_priv_ret = NULL;
|
|
|
++}
|
|
|
++static inline void v4l2_plugin_cleanup(void *plugin_lib, void *plugin_priv,
|
|
|
++ const struct libv4l_dev_ops *dev_ops)
|
|
|
++{
|
|
|
++}
|
|
|
++#endif /* WITH_V4L_PLUGINS */
|
|
|
+
|
|
|
+ /* From log.c */
|
|
|
+ extern const char *v4l2_ioctls[];
|
|
|
+diff --git a/utils/Makefile.am b/utils/Makefile.am
|
|
|
+index ce710c2..d7708cc 100644
|
|
|
+--- a/utils/Makefile.am
|
|
|
++++ b/utils/Makefile.am
|
|
|
+@@ -13,12 +13,8 @@ SUBDIRS = \
|
|
|
+ v4l2-sysfs-path \
|
|
|
+ cec-ctl \
|
|
|
+ cec-compliance \
|
|
|
+- cec-follower
|
|
|
+-
|
|
|
+-if WITH_LIBV4L
|
|
|
+-SUBDIRS += \
|
|
|
++ cec-follower \
|
|
|
+ rds-ctl
|
|
|
+-endif
|
|
|
+
|
|
|
+ if WITH_LIBDVBV5
|
|
|
+ SUBDIRS += \
|
|
|
+diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
|
|
|
+index 0240a50..c2b5919 100644
|
|
|
+--- a/utils/v4l2-compliance/Makefile.am
|
|
|
++++ b/utils/v4l2-compliance/Makefile.am
|
|
|
+@@ -7,16 +7,12 @@ v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-inpu
|
|
|
+ v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h
|
|
|
+ v4l2_compliance_CPPFLAGS = -I../common
|
|
|
+
|
|
|
+-if WITH_LIBV4L
|
|
|
+ if WITH_V4L2_COMPLIANCE_LIBV4L
|
|
|
+ v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
|
|
|
+ else
|
|
|
+ v4l2_compliance_LDADD = -lrt -lpthread
|
|
|
+ DEFS += -DNO_LIBV4L2
|
|
|
+ endif
|
|
|
+-else
|
|
|
+-DEFS += -DNO_LIBV4L2
|
|
|
+-endif
|
|
|
+
|
|
|
+ EXTRA_DIST = Android.mk fixme.txt v4l2-compliance.1
|
|
|
+
|
|
|
+diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am
|
|
|
+index 4475aed..955647d 100644
|
|
|
+--- a/utils/v4l2-ctl/Makefile.am
|
|
|
++++ b/utils/v4l2-ctl/Makefile.am
|
|
|
+@@ -9,14 +9,10 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp
|
|
|
+ v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c
|
|
|
+ v4l2_ctl_CPPFLAGS = -I../common
|
|
|
+
|
|
|
+-if WITH_LIBV4L
|
|
|
+ if WITH_V4L2_CTL_LIBV4L
|
|
|
+ v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
|
|
|
+ else
|
|
|
+ DEFS += -DNO_LIBV4L2
|
|
|
+ endif
|
|
|
+-else
|
|
|
+-DEFS += -DNO_LIBV4L2
|
|
|
+-endif
|
|
|
+
|
|
|
+ EXTRA_DIST = Android.mk v4l2-ctl.1
|
|
|
+--
|
|
|
+2.9.4
|
|
|
+
|