Re: [PATCH] menuconfig,mconf-cfg: Allow specification of ncurses location

From: Scott Branden
Date: Tue Dec 01 2020 - 12:20:25 EST


Hi Masahiro,

On 2020-12-01 4:25 a.m., Masahiro Yamada wrote:
> On Sat, Nov 28, 2020 at 9:45 AM Scott Branden
> <scott.branden@xxxxxxxxxxxx> wrote:
>> From: Bruce Ashfield <bruce.ashfield@xxxxxxxxxxxxx>
>>
>> In some cross build environments such as the Yocto Project build
>> environment it provides an ncurses library that is compiled
>> differently than the host's version. This causes display corruption
>> problems when the host's curses includes are used instead of the
>> includes from the provided compiler are overridden. There is a second
>> case where there is no curses libraries at all on the host system and
>> menuconfig will just fail entirely.
>>
>> The solution is simply to allow an override variable in
>> check-lxdialog.sh for environments such as the Yocto Project. Adding
>> a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing
>> compiling and linking against the right headers and libraries.
>>
>> Signed-off-by: Jason Wessel <jason.wessel@xxxxxxxxxxxxx>
>> cc: Michal Marek <mmarek@xxxxxxx>
>> cc: linux-kbuild@xxxxxxxxxxxxxxx
>> Signed-off-by: Bruce Ashfield <bruce.ashfield@xxxxxxxxxxxxx>
>> Signed-off-by: Scott Branden <scott.branden@xxxxxxxxxxxx>
>> ---
>
> Some people solve the cross-compiling in Yocto
> by using pkg-config.
>
>
> For example,
>
> commit 067c650c456e758f933aaf87a202f841d34be269
> Author: Pavel Modilaynen <pavel.modilaynen@xxxxxxxx>
> Date: Fri Jul 12 13:52:19 2019 +0200
>
> dtc: Use pkg-config to locate libyaml
>
> Using Makefile's wildcard with absolute path to detect
> the presence of libyaml results in false-positive
> detection when cross-compiling e.g. in yocto environment.
>
>
>
> mconf-cfg.sh already allows the path flexibility with pkg-config.
> Why do you want yet another hook?
I hope the yocto community can provide more details on this patch.
The yocto environment isolates the build environment from the host tools.
Running menuconfig with the upstream kernel does not work on the latest yocto without this patch.
>> scripts/kconfig/mconf-cfg.sh | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>> mode change 100755 => 100644 scripts/kconfig/mconf-cfg.sh
>>
>> diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh
>> old mode 100755
>> new mode 100644
>> index aa68ec95620d..32448bc198a5
>> --- a/scripts/kconfig/mconf-cfg.sh
>> +++ b/scripts/kconfig/mconf-cfg.sh
>> @@ -4,6 +4,14 @@
>> PKG="ncursesw"
>> PKG2="ncurses"
>>
>> +if [ "$CROSS_CURSES_LIB" != "" ]; then
>> + echo libs=\'$CROSS_CURSES_LIB\'
>> + if [ x"$CROSS_CURSES_INC" != x ]; then
>> + echo cflags=\'$CROSS_CURSES_INC\'
>> + fi
>> + exit 0
>> +fi
>> +
>> if [ -n "$(command -v pkg-config)" ]; then
>> if pkg-config --exists $PKG; then
>> echo cflags=\"$(pkg-config --cflags $PKG)\"
>> --
>> 2.17.1
>>
>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature