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

2020-12-01 Thread Scott Branden
Hi Bruce,

On 2020-12-01 11:01 a.m., Bruce Ashfield wrote:
> On Tue, Dec 1, 2020 at 12:19 PM Scott Branden
>  wrote:
>> Hi Masahiro,
>>
>> On 2020-12-01 4:25 a.m., Masahiro Yamada wrote:
>>> On Sat, Nov 28, 2020 at 9:45 AM Scott Branden
>>>  wrote:
 From: Bruce Ashfield 

 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 
 cc: Michal Marek 
 cc: linux-kbu...@vger.kernel.org
 Signed-off-by: Bruce Ashfield 
 Signed-off-by: Scott Branden 
 ---
>>> Some people solve the cross-compiling in Yocto
>>> by using pkg-config.
>>>
>>>
>>> For example,
>>>
>>> commit 067c650c456e758f933aaf87a202f841d34be269
>>> Author: Pavel Modilaynen 
>>> 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.
> Sorry for not commenting on the origin patch, gmail buried it within
> some other threads, but luckily this one popped up.
>
> It is true that we've been carrying this for several years to deal with
> the fact that the native sysroot is not searched by the pkg-config
> called by mconf-cfg.sh (since it is separate from host and target
> pkg-config).
>
> As it turns out, in the past few weeks, we have come up with a way
> to inject those native sysroot components into pkg-config without
> the need for any changes to the scripts.
>
> Scott: if you try again the the latest oe-core, and are still seeing
> the problem with the mainline kernel, ping me, and we can see if
> the pkg-config fix isn't holding for you, at that point, yes, we may
> still need a hook like this to solve the problem.
Try reverting this kernel patch from linux-yocto and menuconfig will fail.

menuconfig actually did work with the upstream kernel until the yocto change 
below was introduced:
"cml1.bbclass: Handle ncurses-native being available via pkg-config"
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?h=master-next=ce447d70df386ca55ce1672478b245851556374e

> Cheers,
>
> Bruce
>
>
>
  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

>



smime.p7s
Description: S/MIME Cryptographic Signature


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

2020-12-01 Thread Bruce Ashfield
On Tue, Dec 1, 2020 at 12:19 PM Scott Branden
 wrote:
>
> Hi Masahiro,
>
> On 2020-12-01 4:25 a.m., Masahiro Yamada wrote:
> > On Sat, Nov 28, 2020 at 9:45 AM Scott Branden
> >  wrote:
> >> From: Bruce Ashfield 
> >>
> >> 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 
> >> cc: Michal Marek 
> >> cc: linux-kbu...@vger.kernel.org
> >> Signed-off-by: Bruce Ashfield 
> >> Signed-off-by: Scott Branden 
> >> ---
> >
> > Some people solve the cross-compiling in Yocto
> > by using pkg-config.
> >
> >
> > For example,
> >
> > commit 067c650c456e758f933aaf87a202f841d34be269
> > Author: Pavel Modilaynen 
> > 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.

Sorry for not commenting on the origin patch, gmail buried it within
some other threads, but luckily this one popped up.

It is true that we've been carrying this for several years to deal with
the fact that the native sysroot is not searched by the pkg-config
called by mconf-cfg.sh (since it is separate from host and target
pkg-config).

As it turns out, in the past few weeks, we have come up with a way
to inject those native sysroot components into pkg-config without
the need for any changes to the scripts.

Scott: if you try again the the latest oe-core, and are still seeing
the problem with the mainline kernel, ping me, and we can see if
the pkg-config fix isn't holding for you, at that point, yes, we may
still need a hook like this to solve the problem.

Cheers,

Bruce



> >>  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
> >>
> >
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

2020-12-01 Thread Scott Branden
Hi Masahiro,

On 2020-12-01 4:25 a.m., Masahiro Yamada wrote:
> On Sat, Nov 28, 2020 at 9:45 AM Scott Branden
>  wrote:
>> From: Bruce Ashfield 
>>
>> 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 
>> cc: Michal Marek 
>> cc: linux-kbu...@vger.kernel.org
>> Signed-off-by: Bruce Ashfield 
>> Signed-off-by: Scott Branden 
>> ---
>
> Some people solve the cross-compiling in Yocto
> by using pkg-config.
>
>
> For example,
>
> commit 067c650c456e758f933aaf87a202f841d34be269
> Author: Pavel Modilaynen 
> 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
>>
>



smime.p7s
Description: S/MIME Cryptographic Signature


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

2020-12-01 Thread Masahiro Yamada
On Sat, Nov 28, 2020 at 9:45 AM Scott Branden
 wrote:
>
> From: Bruce Ashfield 
>
> 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 
> cc: Michal Marek 
> cc: linux-kbu...@vger.kernel.org
> Signed-off-by: Bruce Ashfield 
> Signed-off-by: Scott Branden 
> ---


Some people solve the cross-compiling in Yocto
by using pkg-config.


For example,

commit 067c650c456e758f933aaf87a202f841d34be269
Author: Pavel Modilaynen 
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?








>  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
>


-- 
Best Regards
Masahiro Yamada


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

2020-11-27 Thread Scott Branden
From: Bruce Ashfield 

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 
cc: Michal Marek 
cc: linux-kbu...@vger.kernel.org
Signed-off-by: Bruce Ashfield 
Signed-off-by: Scott Branden 
---
 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