Re: [PATCH 7/7] Add config-compat.h override config-mycompat.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Cheers,

Brad



>
>> Signed-off-by: Brad Love <brad@xxxxxxxxxxxxxxxx>
>> ---
>>  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
>>






[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux