Re: [PATCH v2] kbuild: check for pkg-config on make {menu,n,g,x}config
From: Masahiro Yamada
Date: Thu May 24 2018 - 09:59:05 EST
Randy,
2018-05-20 7:42 GMT+09:00 Randy Dunlap <rdunlap@xxxxxxxxxxxxx>:
> On 05/17/18 22:10, Masahiro Yamada wrote:
>> Hi Randy,
>>
>> 2018-04-07 6:37 GMT+09:00 Randy Dunlap <rdunlap@xxxxxxxxxxxxx>:
>>> On 03/14/2018 10:50 PM, Masahiro Yamada wrote:
>>>> 2018-03-13 11:30 GMT+09:00 Randy Dunlap <rdunlap@xxxxxxxxxxxxx>:
>>>>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>>>
>>>>> Each of 'make {menu,n,g,x}config' uses (needs) pkg-config to make sure
>>>>> that other required files are present, but none of these check that
>>>>> pkg-config itself is present. Add a check for all 4 of these targets.
>>>>>
>>>>> Fixes kernel bugzilla #77511:
>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=77511
>>>>>
>>>>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>>> ---
>>>>> v2: use 'command -v' instead of 'which'
>>>>>
>>>>> I'm also OK with just documenting the pkg-config requirement in
>>>>> Documentation/Changes (= Documentation/process/changes.rst).
>>>>>
>>>>> scripts/kconfig/Makefile | 15 ++++++++++++++-
>>>>> scripts/kconfig/check-pkgconfig.sh | 12 ++++++++++++
>>>>> 2 files changed, 26 insertions(+), 1 deletion(-)
>>>>>
>>>>> --- lnx-416-rc3.orig/scripts/kconfig/Makefile
>>>>> +++ lnx-416-rc3/scripts/kconfig/Makefile
>>>>> @@ -160,6 +160,9 @@ help:
>>>>> @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
>>>>> @echo ' tinyconfig - Configure the tiniest possible kernel'
>>>>>
>>>>> +# pkg-config check
>>>>> +check-pkgconfig := $(srctree)/$(src)/check-pkgconfig.sh
>>>>> +
>>>>> # lxdialog stuff
>>>>> check-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
>>>>>
>>>>> @@ -205,7 +208,17 @@ $(addprefix $(obj)/, mconf.o $(lxdialog)
>>>>> $(obj)/dochecklxdialog:
>>>>> $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
>>>>>
>>>>> -always := dochecklxdialog
>>>>> +# Check that we have pkg-config (used by each of menu/n/g/xconfig)
>>>>> +PHONY += $(obj)/docheckpkgconfig
>>>>> +$(addprefix $(obj)/, mconf.o): $(obj)/docheckpkgconfig
>>>>> +$(addprefix $(obj)/, nconf.o): $(obj)/docheckpkgconfig
>>>>> +$(addprefix $(obj)/, gconf.o): $(obj)/docheckpkgconfig
>>>>> +$(addprefix $(obj)/, qconf.o): $(obj)/docheckpkgconfig
>>>>> +
>>>>> +$(obj)/docheckpkgconfig:
>>>>> + $(Q)$(CONFIG_SHELL) $(check-pkgconfig)
>>>>> +
>>>>> +always := docheckpkgconfig dochecklxdialog
>>>>
>>>>
>>>> I did not test this patch, but does this check work as expected?
>>>>
>>>> Probably we want to run 'docheckpkgconfig'
>>>> before 'dochecklxdiag', '.tmp_gtkcheck', '.tmp_qtcheck', etc.
>>>> But, I do not see such dependencies.
>>>>
>>>>
>>>> Also, if we make 'pkg-config' mandatory,
>>>> should we entirely drop fall-back logics like follows?
>>>>
>>>> https://github.com/torvalds/linux/blob/v4.16-rc5/scripts/kconfig/lxdialog/check-lxdialog.sh#L10
>>>> https://github.com/torvalds/linux/blob/v4.16-rc5/scripts/kconfig/lxdialog/check-lxdialog.sh#L29
>>>> https://github.com/torvalds/linux/blob/v4.16-rc5/scripts/kconfig/Makefile#L230
>>>>
>>>>
>>>> What do you think?
>>>>
>>>
>>> Hi,
>>>
>>> I'm willing to keep patching/testing on this, but both pkg-config and depmod
>>> (for depmod, see: https://bugzilla.kernel.org/show_bug.cgi?id=198965)
>>> are basic requirements IMO, so just documenting their requirements is good
>>> enough to me, but might not be good enough for some users.
>>>
>>> Comments?
>>
>> Sorry for late comments.
>>
>> OK, I am fine with making pkg-config a requirement.
>> (and it should be documented)
>>
>> But, I'd like to clean-up scripts/kconfig/Makefile first.
>> It is already cluttered, and hesitate to add new code based on that.
>> I posted the patches.
>>
>> Could you send v3 after the cleaning work is done?
>
> Sure, I'll give it a try.
Now, I am ready to receive v3.
--
Best Regards
Masahiro Yamada