From 0dca215363824df130e4a80b405baa4c7fbbe8a7 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 30 Jun 2009 10:45:54 +0000 Subject: [PATCH] re PR libstdc++/40511 (Bootstrap Failure in stage3: c++locale - Recent SVN) 2009-06-30 Paolo Carlini PR libstdc++/40511 * config/locale/gnu/c_locale.cc: Don't use LC_CTYPE_MASK together with glibc2.2.x. From-SVN: r149089 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/config/locale/gnu/c_locale.cc | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f12321785a0..7b125569f4a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2009-06-30 Paolo Carlini + + PR libstdc++/40511 + * config/locale/gnu/c_locale.cc: Don't use LC_CTYPE_MASK together + with glibc2.2.x. + 2009-06-29 Paolo Carlini * include/bits/random.tcc diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc index 4864d25cd34..80ef9c740d2 100644 --- a/libstdc++-v3/config/locale/gnu/c_locale.cc +++ b/libstdc++-v3/config/locale/gnu/c_locale.cc @@ -155,7 +155,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) if (__dup == __c_locale(0)) __throw_runtime_error(__N("locale::facet::_S_lc_ctype_c_locale " "duplocale error")); +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __c_locale __changed = __newlocale(LC_CTYPE_MASK, __s, __dup); +#else + __c_locale __changed = __newlocale(1 << LC_CTYPE, __s, __dup); +#endif if (__changed == __c_locale(0)) { __freelocale(__dup);