On Sun, Mar 28, 2021 at 09:31:17AM +0100, Richard Purdie wrote:
> On Sun, 2021-03-28 at 00:35 -0400, Denys Dmytriyenko wrote:
> > On Sun, Mar 28, 2021 at 04:25:02AM +0200, Lars Poeschel wrote:
> > > On Sat, Mar 27, 2021 at 01:54:11PM +0000, Richard Purdie wrote:
> > > > On Sat, 2021-03-27 at 02:41 +0100, Lars Poeschel wrote:
> > > > > From: Lars Poeschel <poesc...@lemonage.de>
> > > > > 
> > > > > The functions for checking the C compiler version call the compiler 
> > > > > with
> > > > > the --version argument and capture stdout and stderr to extract the
> > > > > version information from that. This does not work if something goes
> > > > > wrong for the compiler and it then prints some warning to stderr. The
> > > > > following regex will certainly fail in that case.
> > > > > It is better to just concentrate on stdout where the real version is
> > > > > printed to and ignore stderr. So we have a chance to get a version 
> > > > > info
> > > > > even if a waring or error happened.
> > > > > 
> > > > > Signed-off-by: Lars Poeschel <poesc...@lemonage.de>
> > > > > ---
> > > > >  meta/lib/oe/utils.py | 4 ++--
> > > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > > 
> > > > What kind of warning/error would a compiler generate that we should 
> > > > ignore here? This seems a little odd...
> > > 
> > > Well, to be more specific: It seems to come from the shell, that then
> > > invokes the compiler. Nevertheless it is stored in the output variable.
> > > In my case it contains:
> > > /nix/store/9ywr69qi622lrmx5nn88gk8jpmihy0dz-bash-4.4-p23/bin/sh: warning: 
> > > setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
> > > /nix/store/9ywr69qi622lrmx5nn88gk8jpmihy0dz-bash-4.4-p23/bin/bash: 
> > > warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
> > 
> > It is common to prefix command invocations with LC_ALL=C to avoid such 
> > issues.
> > For example:
> > 
> > https://git.openembedded.org/openembedded-core/tree/scripts/lib/recipetool/append.py#n151
> > > helptext = subprocess.check_output('LC_ALL=C %s --help' % command, 
> > > shell=True).decode('utf-8')
> 
> We have:
> 
> meta/conf/bitbake.conf:export LC_ALL = "en_US.UTF-8"
> 
> so if this is showing warnings, the rest of the build isn't going to be 
> great either.

Well this may depend on what your expectations to a great build are.
With the small patch I proposed it at least builds me images that I can
run on my target. Does that qualify ? Would that justify the patch ?
I know building with nix is not a first class, maybe not even a second class
supported platform. And I know about the recommended locale.
I am willing to work out another solution, if you can point me in the
right direction.

> Why en_US.UTF-8? We need a utf-8 locale for python and a C utf-8 locale 
> isn't standard. en_US is as close to standard across distros as we can get.

Thanks for the explanation.

> Adding LC_ALL=C everywhere isn't the right solution, we're certainly not 
> prefxixing every shell command execution with that.

Besides that: I tried it and it does not work. It only gets me rid of the
second of the two warnings.

Regards,
Lars
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#150028): 
https://lists.openembedded.org/g/openembedded-core/message/150028
Mute This Topic: https://lists.openembedded.org/mt/81644274/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to