config-mycompat.h is for use with kernels/distros whose maintainers have
integrated various backports, which the media_build system does not
detect for whatever reason. At that point there are options defined in
config-compat.h, which enable backports in compat.h, but which
already exist in the target kernel. This allows disabling of specific
backports for a particular build, allowing compliation to succeed.

For example, if the following three statements exist in config-mycompat.h:

#undef NEED_WRITEL_RELAXED
#undef NEED_PM_RUNTIME_GET
#undef NEED_PFN_TO_PHYS

Those three media_build backports will be disabled in compat.h and
compilation on a problematic kernel will succeed without issue.
conifg-mycompat.h should be used strictly for disabling media_build
backports causing compilation issues. The file will usually be
left empty, unless needed.

WARNING:
  v4l/config-mycompat.h is removed by distclean, the file
  should be saved externally and copied into v4l/ when required.

Signed-off-by: Brad Love <b...@nextdimension.cc>
---
Since v1:
- Make the description and explanation of config-mycompat.h purpose
  and usage as explicit as possible for clarity sake.

 v4l/Makefile |  3 ++-
 v4l/compat.h | 23 +++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/v4l/Makefile b/v4l/Makefile
index 270a624..385fa83 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -273,6 +273,7 @@ links::
        @find ../linux/drivers/misc -name '*.[ch]' -type f -print0 | xargs -0n 
255 ln -sf --target-directory=.
 
 config-compat.h:: $(obj)/.version .myconfig scripts/make_config_compat.pl
+       -touch $(obj)/config-mycompat.h
        perl scripts/make_config_compat.pl $(SRCDIR) $(obj)/.myconfig 
$(obj)/config-compat.h
 
 kernel-links makelinks::
@@ -298,7 +299,7 @@ clean::
 distclean:: clean
        -rm -f .version .*.o.flags .*.o.d *.mod.gcno Makefile.media \
                Kconfig Kconfig.kern .config .config.cmd .myconfig \
-               .kconfig.dep
+               .kconfig.dep config-mycompat.h
        -rm -rf .tmp_versions .tmp*.ver .tmp*.o .*.gcno .cache.mk
        -rm -f scripts/lxdialog scripts/kconfig
        @find .. -name '*.orig' -exec rm '{}' \;
diff --git a/v4l/compat.h b/v4l/compat.h
index b93750f..34b7f3a 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -8,6 +8,29 @@
 #include <linux/version.h>
 
 #include "config-compat.h"
+/*
+ * config-mycompat.h is for use with kernels/distros whose maintainers
+ * have integrated various backports, which the media_build system does
+ * not pick up on for whatever reason. At that point there are options
+ * defined in config-compat.h, which enable backports here, in compat.h,
+ * but which already exist in the target kernel. This allows disabling of
+ * specific backports for a particular build, allowing compliation to succeed.
+
+ * For example, if the following three statements exist in config-mycompat.h:
+
+ * #undef NEED_WRITEL_RELAXED
+ * #undef NEED_PM_RUNTIME_GET
+ * #undef NEED_PFN_TO_PHYS
+
+ * Those three media_build backports will be disabled in this file and
+ * compilation on a problematic kernel will succeed without issue.
+ * conifg-mycompat.h should be used strictly for disabling media_build
+ * backports causing compilation issues. It will typically be left empty.
+ *
+ * WARNING: v4l/config-mycompat.h is removed by distclean, the file
+ * should be saved externally and copied into v4l/ when required.
+ */
+#include "config-mycompat.h"
 
 #ifndef SZ_512
 #define SZ_512                         0x00000200
-- 
2.7.4

Reply via email to