[
https://issues.apache.org/jira/browse/STDCXX-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Sebor updated STDCXX-263:
--------------------------------
Severity: Incorrect Behavior
Description:
{noformat}
$ ../bin/localedef -w -f
/nfs/devco/sebor/dev/stdlib/etc/nls/charmaps/ISO-8859-1 -i
/nfs/devco/sebor/dev/stdlib/etc/nls/src/de_DE de_DE.ISO-8859 && cat t.cpp &&
make t && LC_ALL=./de_DE.ISO-8859 ./t
#include <cassert>
#include <cstdio>
#include <cstring>
#include <exception>
#include <ios>
#include <locale>
int main ()
{
try {
std::locale::global (std::locale (""));
typedef std::num_put<char, char*> NumPut;
std::ios strm (0);
NumPut np;
char buf [40] = "";
np.put (buf, strm, ' ', 123.456);
std::printf ("%s\n", buf);
assert (0 == std::strcmp ("123,456", buf));
}
catch (std::exception &ex) {
std::fprintf (stderr, "%s\n", ex.what ());
return 1;
}
}
xlc_r -c -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
-D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
-I/build/sebor/xlc-8.0-15S/include
-I/amd/devco/sebor/dev/stdlib/examples/include
-F/package/1/ppc64/compilers/ibm/va80/vac.cfg -g -q64 -qtemplateregistry=t.ti
t.cpp
xlc_r t.o -o t -F/package/1/ppc64/compilers/ibm/va80/vac.cfg
-I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG
-q64 -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
-D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
-I/build/sebor/xlc-8.0-15S/include
-I/amd/devco/sebor/dev/stdlib/examples/include -qtemplateregistry=t.ti
-L/build/sebor/xlc-8.0-15S/lib -lstd15S -lxlopt -lxl -libmc++ -lsupc++ -lgcc
-lc -qnostaticlink=libgcc -lm
/usr/bin/ld:
/build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcd99):
R_PPC64_ADDR64 used with TLS symbol __rw_what_refcnt
/usr/bin/ld:
/build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcdc0):
R_PPC64_ADDR64 used with TLS symbol __rw_what_buf
/amd/devco/sebor/dev/stdlib/src/locale_combine.cpp:639: std::locale::locale:
bad locale name: ""
{noformat}
was:
$ ../bin/localedef -w -f
/nfs/devco/sebor/dev/stdlib/etc/nls/charmaps/ISO-8859-1 -i
/nfs/devco/sebor/dev/stdlib/etc/nls/src/de_DE de_DE.ISO-8859 && cat t.cpp &&
make t && LC_ALL=./de_DE.ISO-8859 ./t
#include <cassert>
#include <cstdio>
#include <cstring>
#include <exception>
#include <ios>
#include <locale>
int main ()
{
try {
std::locale::global (std::locale (""));
typedef std::num_put<char, char*> NumPut;
std::ios strm (0);
NumPut np;
char buf [40] = "";
np.put (buf, strm, ' ', 123.456);
std::printf ("%s\n", buf);
assert (0 == std::strcmp ("123,456", buf));
}
catch (std::exception &ex) {
std::fprintf (stderr, "%s\n", ex.what ());
return 1;
}
}
xlc_r -c -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
-D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
-I/build/sebor/xlc-8.0-15S/include
-I/amd/devco/sebor/dev/stdlib/examples/include
-F/package/1/ppc64/compilers/ibm/va80/vac.cfg -g -q64 -qtemplateregistry=t.ti
t.cpp
xlc_r t.o -o t -F/package/1/ppc64/compilers/ibm/va80/vac.cfg
-I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG
-q64 -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
-D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
-I/build/sebor/xlc-8.0-15S/include
-I/amd/devco/sebor/dev/stdlib/examples/include -qtemplateregistry=t.ti
-L/build/sebor/xlc-8.0-15S/lib -lstd15S -lxlopt -lxl -libmc++ -lsupc++ -lgcc
-lc -qnostaticlink=libgcc -lm
/usr/bin/ld:
/build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcd99):
R_PPC64_ADDR64 used with TLS symbol __rw_what_refcnt
/usr/bin/ld:
/build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcdc0):
R_PPC64_ADDR64 used with TLS symbol __rw_what_buf
/amd/devco/sebor/dev/stdlib/src/locale_combine.cpp:639: std::locale::locale:
bad locale name: ""
Priority: Critical (was: Major)
Affects Version/s: 4.1.4
4.2.0
Fix Version/s: 4.2.2
Remaining Estimate: 4h
Original Estimate: 4h
Setting a process-wide locale by means of the {{LANG}} and {{LC_XXX}}
environment variables is the primary means for localizing an internationalized
program. Bumped up Severity to Critical.
Added 4.1.4 and 4.2.0 to the list of Affected Versions.
Disabled formatting in Description.
Set initial time estimate.
> SIGABRTin locale("") after setting LC_ALL to pathname of own locale
> -------------------------------------------------------------------
>
> Key: STDCXX-263
> URL: https://issues.apache.org/jira/browse/STDCXX-263
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 22. Localization
> Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0
> Environment: all
> Reporter: Martin Sebor
> Assignee: Martin Sebor
> Priority: Critical
> Fix For: 4.2.2
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> {noformat}
> $ ../bin/localedef -w -f
> /nfs/devco/sebor/dev/stdlib/etc/nls/charmaps/ISO-8859-1 -i
> /nfs/devco/sebor/dev/stdlib/etc/nls/src/de_DE de_DE.ISO-8859 && cat t.cpp &&
> make t && LC_ALL=./de_DE.ISO-8859 ./t
> #include <cassert>
> #include <cstdio>
> #include <cstring>
> #include <exception>
> #include <ios>
> #include <locale>
> int main ()
> {
> try {
> std::locale::global (std::locale (""));
> typedef std::num_put<char, char*> NumPut;
> std::ios strm (0);
> NumPut np;
> char buf [40] = "";
> np.put (buf, strm, ' ', 123.456);
> std::printf ("%s\n", buf);
> assert (0 == std::strcmp ("123,456", buf));
> }
> catch (std::exception &ex) {
> std::fprintf (stderr, "%s\n", ex.what ());
> return 1;
> }
> }
> xlc_r -c -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
> -D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
> -I/build/sebor/xlc-8.0-15S/include
> -I/amd/devco/sebor/dev/stdlib/examples/include
> -F/package/1/ppc64/compilers/ibm/va80/vac.cfg -g -q64
> -qtemplateregistry=t.ti t.cpp
> xlc_r t.o -o t -F/package/1/ppc64/compilers/ibm/va80/vac.cfg
> -I/amd/devco/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG
> -D_RWSTD_USE_CONFIG -q64 -I/amd/devco/sebor/dev/stdlib/include/ansi
> -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
> -I/build/sebor/xlc-8.0-15S/include
> -I/amd/devco/sebor/dev/stdlib/examples/include -qtemplateregistry=t.ti
> -L/build/sebor/xlc-8.0-15S/lib -lstd15S -lxlopt -lxl -libmc++ -lsupc++ -lgcc
> -lc -qnostaticlink=libgcc -lm
> /usr/bin/ld:
> /build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcd99):
> R_PPC64_ADDR64 used with TLS symbol __rw_what_refcnt
> /usr/bin/ld:
> /build/sebor/xlc-8.0-15S/lib/libstd15S.a(exception.o)(.debug_info+0xcdc0):
> R_PPC64_ADDR64 used with TLS symbol __rw_what_buf
> /amd/devco/sebor/dev/stdlib/src/locale_combine.cpp:639: std::locale::locale:
> bad locale name: ""
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.