OSDN Git Service

* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use GNU locale model for
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 May 2010 14:07:00 +0000 (14:07 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 May 2010 14:07:00 +0000 (14:07 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/configure
libstdc++-v3/doc/xml/faq.xml
libstdc++-v3/doc/xml/manual/configure.xml
libstdc++-v3/doc/xml/manual/prerequisites.xml

index 1b4527a..1eb3a31 100644 (file)
@@ -1,3 +1,11 @@
+2010-05-21  Joseph Myers  <joseph@codesourcery.com>
+
+       * 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  <paolo.carlini@oracle.com>
 
        * include/tr1/functional: Use std::__addressof.
 2010-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/tr1/functional: Use std::__addressof.
index f54517f..d297011 100644 (file)
@@ -1740,41 +1740,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
   if test $enable_clocale_flag = gnu; then
     AC_EGREP_CPP([_GLIBCXX_ok], [
     #include <features.h>
   if test $enable_clocale_flag = gnu; then
     AC_EGREP_CPP([_GLIBCXX_ok], [
     #include <features.h>
-    #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)
 
       _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 <locale.h>
-      #include <string.h>
-      #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"
     # Set it to scream when it hurts.
     ac_save_CFLAGS="$CFLAGS"   
     CFLAGS="-Wimplicit-function-declaration -Werror"
index df45a86..16f2185 100755 (executable)
@@ -15628,7 +15628,7 @@ fi
 /* end confdefs.h.  */
 
     #include <features.h>
 /* end confdefs.h.  */
 
     #include <features.h>
-    #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+    #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__)
       _GLIBCXX_ok
     #endif
 
       _GLIBCXX_ok
     #endif
 
 rm -f conftest*
 
 
 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 <locale.h>
-      #include <string.h>
-      #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"
     # Set it to scream when it hurts.
     ac_save_CFLAGS="$CFLAGS"
     CFLAGS="-Wimplicit-function-declaration -Werror"
index ad75d17..57f0804 100644 (file)
          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.
          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.
       </para>
       <para>The guideline is simple:  the more recent the C++ library, the
          more recent the C library.  (This is also documented in the main
       </para>
       <para>The guideline is simple:  the more recent the C++ library, the
          more recent the C library.  (This is also documented in the main
index 8cca56c..26af745 100644 (file)
      <para>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
      <para>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.
      </para>
  </listitem></varlistentry>
       can change the library ABI.
      </para>
  </listitem></varlistentry>
index d7a162c..e85020f 100644 (file)
        <para>
          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
        <para>
          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.
-       </para>
-
-       <para>
-         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.
        </para>
 
        <para>
        </para>
 
        <para>