From: jsm28 Date: Fri, 21 May 2010 14:07:00 +0000 (+0000) Subject: * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for X-Git-Tag: upstream/4.9.2~29380 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9aa6a0dd626f771aba8a6381577bbcabc503cb61;p=platform%2Fupstream%2Flinaro-gcc.git * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for glibc 2.3 and later, but not uClibc, without an execution test. * configure: Regenerate. * doc/xml/manual/configure.xml, doc/xml/manual/prerequisites.xml, doc/xml/faq.xml: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159664 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1b4527a..1eb3a31 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2010-05-21 Joseph Myers + + * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for + glibc 2.3 and later, but not uClibc, without an execution test. + * configure: Regenerate. + * doc/xml/manual/configure.xml, doc/xml/manual/prerequisites.xml, + doc/xml/faq.xml: Update. + 2010-05-21 Paolo Carlini * include/tr1/functional: Use std::__addressof. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index f54517f..d297011 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1740,41 +1740,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ if test $enable_clocale_flag = gnu; then AC_EGREP_CPP([_GLIBCXX_ok], [ #include - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) + #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__) _GLIBCXX_ok #endif ], enable_clocale_flag=gnu, enable_clocale_flag=generic) - if test $enable_clocale = auto; then - # Test for bugs early in glibc-2.2.x series - AC_TRY_RUN([ - #define _GNU_SOURCE 1 - #include - #include - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - extern __typeof(newlocale) __newlocale; - extern __typeof(duplocale) __duplocale; - extern __typeof(strcoll_l) __strcoll_l; - #endif - int main() - { - const char __one[] = "Äuglein Augmen"; - const char __two[] = "Äuglein"; - int i; - int j; - __locale_t loc; - __locale_t loc_dup; - loc = __newlocale(1 << LC_ALL, "de_DE", 0); - loc_dup = __duplocale(loc); - i = __strcoll_l(__one, __two, loc); - j = __strcoll_l(__one, __two, loc_dup); - return 0; - } - ], - [enable_clocale_flag=gnu],[enable_clocale_flag=generic], - [enable_clocale_flag=generic]) - fi - # Set it to scream when it hurts. ac_save_CFLAGS="$CFLAGS" CFLAGS="-Wimplicit-function-declaration -Werror" diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index df45a86..16f2185 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -15628,7 +15628,7 @@ fi /* end confdefs.h. */ #include - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) + #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__) _GLIBCXX_ok #endif @@ -15642,49 +15642,6 @@ fi rm -f conftest* - if test $enable_clocale = auto; then - # Test for bugs early in glibc-2.2.x series - if test "$cross_compiling" = yes; then : - enable_clocale_flag=generic -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #define _GNU_SOURCE 1 - #include - #include - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - extern __typeof(newlocale) __newlocale; - extern __typeof(duplocale) __duplocale; - extern __typeof(strcoll_l) __strcoll_l; - #endif - int main() - { - const char __one[] = "Äuglein Augmen"; - const char __two[] = "Äuglein"; - int i; - int j; - __locale_t loc; - __locale_t loc_dup; - loc = __newlocale(1 << LC_ALL, "de_DE", 0); - loc_dup = __duplocale(loc); - i = __strcoll_l(__one, __two, loc); - j = __strcoll_l(__one, __two, loc_dup); - return 0; - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - enable_clocale_flag=gnu -else - enable_clocale_flag=generic -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # Set it to scream when it hurts. ac_save_CFLAGS="$CFLAGS" CFLAGS="-Wimplicit-function-declaration -Werror" diff --git a/libstdc++-v3/doc/xml/faq.xml b/libstdc++-v3/doc/xml/faq.xml index ad75d17..57f0804 100644 --- a/libstdc++-v3/doc/xml/faq.xml +++ b/libstdc++-v3/doc/xml/faq.xml @@ -640,6 +640,8 @@ 5.0.1) and later uses localization and formatting code from the system C library (glibc) version 2.2.5 which contains necessary bugfixes. Most GNU/Linux distros make more recent versions available now. + libstdc++ 4.6.0 and later require glibc 2.3 or later for this + localization and formatting code. The guideline is simple: the more recent the C++ library, the more recent the C library. (This is also documented in the main diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index 8cca56c..26af745 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -113,8 +113,7 @@ If not explicitly specified, the configure proccess tries to guess the most suitable package from the choices above. The default is 'generic'. On glibc-based systems of sufficient - vintage (2.2.5 and newer) and capability (with installed DE and - FR locale data), 'gnu' is automatically selected. This option + vintage (2.3 and newer), 'gnu' is automatically selected. This option can change the library ABI. diff --git a/libstdc++-v3/doc/xml/manual/prerequisites.xml b/libstdc++-v3/doc/xml/manual/prerequisites.xml index d7a162c..e85020f 100644 --- a/libstdc++-v3/doc/xml/manual/prerequisites.xml +++ b/libstdc++-v3/doc/xml/manual/prerequisites.xml @@ -58,16 +58,8 @@ If gcc 3.1.0 or later on is being used on linux, an attempt will be made to use "C" library functionality necessary for - C++ named locale support. For gcc 3.2.1 and later, this - means that glibc 2.2.5 or later is required and the "C" - library de_DE locale information must be installed. - - - - Note however that the sanity checks involving the de_DE - locale are skipped when an explicit --enable-clocale=gnu - configure option is used: only the basic checks are carried - out, defending against misconfigurations. + C++ named locale support. For gcc 4.6.0 and later, this + means that glibc 2.3 or later is required.