On 05/11/18 17:08, Brad Love wrote:
> Hi Hans,
>
>
> On 2018-05-11 09:41, Hans Verkuil wrote:
>> Hi Brad,
>>
>> On 04/26/18 19:19, Brad Love wrote:
>>> config-mycompat.h is for overriding macros which are incorrectly
>>> enabled on certain kernels by the build system. The file should be
>>> left empty, unless build errors are encountered for a kernel. The
>>> file is removed by distclean, therefore should be externally
>>> sourced, before the build process starts, when required.
>>>
>>> In standard operation the file is empty, but if a particular kernel has
>>> incorrectly enabled options defined this allows them to be undefined.
>> Can you give an example where this will be used?
>>
>> FYI: I've committed patches 1-6, but I don't quite understand when this patch
>> is needed.
>>
>> With "for overriding macros which are incorrectly enabled on certain kernels"
>> do you mean when distros do backports of features from later kernels?
>>
>> Regards,
>>
>> Hans
>
>
> Apologies if I was not very clear. Yes, this is for use in
> kernels/distros whose maintainers have integrated various backports, and
> 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 in compat.h, but which already exist in the target kernel.
>
> For example, on the device I'm working on right now, in kernel 3.10, I
> have to supply the following three options in config-mycompat.h or
> modify the tree and stuff them right into the top of compat.h:
>
> #undef NEED_WRITEL_RELAXED
> #undef NEED_PM_RUNTIME_GET
> #undef NEED_PFN_TO_PHYS
>
>
> The above disables those three media_build backports and allows
> everything to build. It seems there is quite often at least one backport
> I must disable, and some target kernels require multiple backports disabled.
OK, that's what I thought. Can you post a v2 of this patch with this explanation
included? Both in the commit log and in the compat.h comment.
That should make it clear what the purpose of this file is.
Regards,
Hans
>
> Cheers,
>
> Brad
>
>
>
>>
>>> Signed-off-by: Brad Love <[email protected]>
>>> ---
>>> v4l/Makefile | 3 ++-
>>> v4l/compat.h | 7 +++++++
>>> 2 files changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/v4l/Makefile b/v4l/Makefile
>>> index 270a624..ee18d11 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 87ce401..db48fdf 100644
>>> --- a/v4l/compat.h
>>> +++ b/v4l/compat.h
>>> @@ -8,6 +8,13 @@
>>> #include <linux/version.h>
>>>
>>> #include "config-compat.h"
>>> +/* config-mycompat.h is for overriding #defines which
>>> + * are incorrectly enabled on certain kernels. The file
>>> + * should be left empty, unless build errors are encountered
>>> + * for a kernel. The file is removed by distclean, therefore
>>> + * should be externally sourced, before compilation, when required.
>>> + */
>>> +#include "config-mycompat.h"
>>>
>>> #ifndef SZ_512
>>> #define SZ_512 0x00000200
>>>
>
>