stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Updated: (STDCXX-263) SIGABRTin locale("") after setting LC_ALL to pathname of own locale
Date Sat, 12 Apr 2008 22:34:04 GMT

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


Mime
View raw message