bug-make
[Top][All Lists]
Advanced

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

Re: patch locale settings


From: Paul Smith
Subject: Re: patch locale settings
Date: Sat, 14 Sep 2019 18:27:12 -0400
User-agent: Evolution 3.32.1-2

On Sat, 2019-09-14 at 16:19 -0400, Dmitry Goncharov wrote:
> On Sat, Sep 14, 2019 at 10:22 AM Paul Smith <address@hidden> wrote:
> > and, I've checked with a makefile invoked by the test suite and
> > this setting is in effect, even if the shell invoking
> > run_make_tests.pl has a different setting for LC_ALL.
> 
> This should be sufficient.

It should be, yes, but based on your results below it is not.  This is
why I'm confused.

> > Furthermore, we clear out the environment so that only a set number
> > of variables are actually reserved, and LANG is not one of them
> > (nor is LC_MESSAGES), so setting LANG in the run_make_tests shell
> > script should not have any effect.
> 
> LANG and LC_MESSAGES both affect tests on certain hosts.

Well, first the LC_ALL value is supposed to supersede ALL other LC_*
values and also LANG.  So simply setting LC_ALL (as we do) should be
sufficient to make the values of both LANG and LC_MESSAGES irrelevant.

Second, the test framework throws out everything in the user's
environment other than a few specific values when it runs make from
within a test.  So it shouldn't matter that you have set either LANG or
LC_MESSAGES, or anything else, before you started the tests.

> > I need to understand your failure situation better before applying
> > this change.
> 
> Here is an example from a host which honors env variables
> $ export LC_MESSAGES=fr_CA.UTF-8; echo 'all: ; ./asdf' | ../l64/make
> -f-
> ./asdf
> make: ./asdf: Aucun fichier ou dossier de ce type
> make: *** [/tmp/GmvTj9K1;1: all] Error 127

Sure, but none of those instances of make are invoked from within our
test suite.

> What does
> export LC_MESSAGES=fr_CA.UTF-8; echo 'all: ; ./asdf' | ../l64/make -f-
> print on your host?

I don't have French installed but I do have German:

  $ echo 'all:;./asdf' | LC_MESSAGES=de_DE.UTF-8 ./make -f-
  ./asdf
  make: ./asdf: Datei oder Verzeichnis nicht gefunden
  make: *** [/tmp/GmIlXXqu;1: all] Fehler 127

> Below are a couple of examples of failures on aix and linux.
> These tests pass when LANG and LC_MESSAGES are unset or set to C.

This is what I can't understand.  Your setting of LANG or LC_MESSAGES
cannot make any difference to the test suite because the test suite
does not pass those values to the make that it invokes.

> $ LC_MESSAGES=ru_RU ./run_make_tests -make_path ../l32/make

I'm surprised that even works; on my system if I use a shorthand like
"de_DE" instead of the full "de_DE.UTF-8", then it isn't recognized and
I get the default.

> features/errors; cat work/features/errors.diff.3
> 
> 3 Tests in 1 Category Failed (See .diff* files in work dir for
> details) :-(
> 
> *** work/features/errors.base.3 Sat Sep 14 15:19:22 2019
> --- work/features/errors.log.3  Sat Sep 14 15:19:22 2019
> ***************
> *** 1,3 ****
>   ./foobarbazbozblat xx yy
> ! make: ./foobarbazbozblat: ??? ?????? ????? ??? ????????
>   make: [work/features/errors.mk.2;2: one] Error 127 (ignored)
> --- 1,3 ----
>   ./foobarbazbozblat xx yy
> ! make: ./foobarbazbozblat: No such file or directory
>   make: [work/features/errors.mk.2;2: one] Error 127 (ignored)

I can't understand this.  If I run my tests like this they pass just as
expected:

  $ LC_MESSAGES=de_DE.UTF-8 ./run_make_tests -make ../make features/errors
    ...
  9 Tests in 1 Category Complete ... No Failures :-)

Can you apply the attached patch, then re-run the test features/errors
and send me the diff output?

FYI, this is what I get:

$ cat work/features/errors.diff.3
*** work/features/errors.base.3 Sat Sep 14 18:19:42 2019
--- work/features/errors.log.3  Sat Sep 14 18:19:42 2019
***************
*** 1,3 ****
--- 1,13 ----
+ env
+ LC_ALL=C
+ MAKEFLAGS=
+ MFLAGS=
+ SHELL=/bin/bash
+ PATH=/...
+ LOGNAME=psmith
+ USER=psmith
+ HOME=/home/psmith
+ MAKELEVEL=1
  ./foobarbazbozblat xx yy
  make: ./foobarbazbozblat: No such file or directory
  make: [work/features/errors.mk.2;2: one] Error 127 (ignored)

Attachment: errors.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]