This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [ping] [PATCH] Different outputs affected by locale
- From: Eli Zaretskii <eliz at gnu dot org>
- To: Pedro Alves <palves at redhat dot com>
- Cc: yao at codesourcery dot com, tromey at redhat dot com, brobecker at adacore dot com, gdb-patches at sourceware dot org
- Date: Thu, 12 Jun 2014 21:34:49 +0300
- Subject: Re: [ping] [PATCH] Different outputs affected by locale
- Authentication-results: sourceware.org; auth=none
- References: <1401192650-29688-1-git-send-email-yao at codesourcery dot com> <538EAEE5 dot 2080708 at codesourcery dot com> <20140604124708 dot GR4289 at adacore dot com> <538F1CC3 dot 9090605 at codesourcery dot com> <87oay8a0t6 dot fsf at fleche dot redhat dot com> <538F803A dot 9020007 at redhat dot com> <538FE412 dot 1050806 at codesourcery dot com> <53903119 dot 6000204 at redhat dot com> <53903EE5 dot 8090107 at codesourcery dot com> <539042A2 dot 4050409 at redhat dot com> <539571C6 dot 40605 at codesourcery dot com> <53958862 dot 5020106 at redhat dot com> <5397BCEC dot 8080300 at codesourcery dot com> <539990BD dot 9020504 at redhat dot com> <83tx7qxdg6 dot fsf at gnu dot org> <5399E2D7 dot 3060705 at redhat dot com> <83ioo6xbk2 dot fsf at gnu dot org> <5399EC00 dot 4000601 at redhat dot com>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> Date: Thu, 12 Jun 2014 19:05:52 +0100
> From: Pedro Alves <palves@redhat.com>
> CC: yao@codesourcery.com, tromey@redhat.com, brobecker@adacore.com,
> gdb-patches@sourceware.org
>
> Trying again then.
Thanks.
> The testsuite framework does, in gdb.exp:gdb_init:
>
> # We set LC_ALL, LC_CTYPE, and LANG to C so that we get the same
> # messages as expected.
> setenv LC_ALL C
> setenv LC_CTYPE C
> setenv LANG C
>
> ... so that output is stable for everyone.
With you so far. But note that on Windows, even the above does not
guarantee "stable output", because the console codepage is not changed
by 'setlocale', and moreover, the Windows 'setlocale' doesn't pay
attention to environment variables. So on Windows, these tests run in
the default system locale (because we call 'setlocale' with the 2nd
argument an empty string).
> And if we do that, we miss making sure GDB works correctly
> with locales/charsets other than C/ASCII on most hosts.
And here, "works correctly" means what? sets host-charset? or
something else? Assuming the former below.
> So I was just saying that IMO ideally we'd have tests that
> make sure GDB prints what we think it should print when
> LC_CTYPE (etc.) is set to something else, like e.g.,
> en_US.UTF-8.
You cannot ask the Windows 'setlocale' to use UTF-8 as the codeset
(although there is a UTF-8 codepage, and Windows does support it in
general). More importantly, since 'setlocale' on Windows disregards
the environment variables, you cannot change the host charset by
setting environment variables. You must do that by a GDB command that
sets host-charset.