OSDN Git Service

* Makefile.am (libquadmath_la_LIBADD): Move -lm ...
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / configure
index 5ae0996..0778745 100755 (executable)
@@ -623,6 +623,10 @@ GLIBCXX_LDBL_COMPAT_FALSE
 GLIBCXX_LDBL_COMPAT_TRUE
 ENABLE_VISIBILITY_FALSE
 ENABLE_VISIBILITY_TRUE
+ENABLE_SYMVERS_SOL2_FALSE
+ENABLE_SYMVERS_SOL2_TRUE
+ENABLE_SYMVERS_SUN_FALSE
+ENABLE_SYMVERS_SUN_TRUE
 ENABLE_SYMVERS_DARWIN_FALSE
 ENABLE_SYMVERS_DARWIN_TRUE
 ENABLE_SYMVERS_GNU_NAMESPACE_FALSE
@@ -633,6 +637,7 @@ ENABLE_SYMVERS_FALSE
 ENABLE_SYMVERS_TRUE
 port_specific_symbol_files
 SYMVER_FILE
+CXXFILT
 LTLIBICONV
 LIBICONV
 OPT_LDFLAGS
@@ -644,8 +649,6 @@ ENABLE_PARALLEL_TRUE
 GLIBCXX_BUILD_DEBUG_FALSE
 GLIBCXX_BUILD_DEBUG_TRUE
 DEBUG_FLAGS
-GLIBCXX_C_HEADERS_EXTRA_FALSE
-GLIBCXX_C_HEADERS_EXTRA_TRUE
 GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE
 GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE
 GLIBCXX_C_HEADERS_C_GLOBAL_FALSE
@@ -843,9 +846,17 @@ enable_version_specific_runtime_libs
       ac_precious_vars='build_alias
 host_alias
 target_alias
-CPP
+CC
+CFLAGS
+LDFLAGS
+LIBS
 CPPFLAGS
-CXXCPP'
+CXX
+CXXFLAGS
+CCC
+CPP
+CXXCPP
+CXXFILT'
 
 
 # Initialize some variables set by options.
@@ -1481,14 +1492,16 @@ Optional Features:
                           [default=auto]
   --enable-libstdcxx-pch  build pre-compiled libstdc++ headers
                           [default=$is_hosted]
-  --enable-cstdio=PACKAGE use target-specific I/O package [default=stdio]
+  --enable-cstdio[=PACKAGE]
+                          use target-specific I/O package [default=stdio]
   --enable-clocale[=MODEL]
                           use MODEL for target locale package [default=auto]
   --enable-nls            use Native Language Support (default)
-  --enable-libstdcxx-allocator=KIND
+  --enable-libstdcxx-allocator[=KIND]
                           use KIND for target std::allocator base
                           [default=auto]
-  --enable-cheaders=KIND  construct "C" headers for g++ [default=$c_model]
+  --enable-cheaders[=KIND]
+                          construct "C" headers for g++ [default=$c_model]
   --enable-long-long      enable template specializations for 'long long'
                           [default=yes]
   --enable-wchar_t        enable template specializations for 'wchar_t'
@@ -1505,12 +1518,13 @@ Optional Features:
   --enable-fully-dynamic-string
                           do not put empty strings in per-process static
                           memory [default=no]
-  --enable-libstdcxx-time=KIND
+  --enable-libstdcxx-time[=KIND]
                           use KIND for check type [default=no]
   --enable-tls            Use thread-local storage [default=yes]
   --disable-rpath         do not hardcode runtime library paths
   --enable-linux-futex    use the Linux futex system call [default=default]
-  --enable-symvers=STYLE  enables symbol versioning of the shared library
+  --enable-symvers[=STYLE]
+                          enables symbol versioning of the shared library
                           [default=yes]
   --enable-visibility     enables visibility safe usage [default=yes]
   --enable-version-specific-runtime-libs
@@ -1546,6 +1560,8 @@ Some influential environment variables:
   CXXFLAGS    C++ compiler flags
   CPP         C preprocessor
   CXXCPP      C++ preprocessor
+  CXXFILT     Location of GNU c++filt. Defaults to the first GNU version of
+              `c++filt', `gc++filt' on PATH.
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -2186,60 +2202,6 @@ fi
 
 } # ac_fn_cxx_check_header_mongrel
 
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof ($2))
-        return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-           return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_type
-
 # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
 # --------------------------------------------
 # Tries to find the compile-time value of EXPR in a program that includes
@@ -2417,6 +2379,60 @@ rm -f conftest.val
   return $ac_retval
 
 } # ac_fn_c_compute_int
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+        return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+           return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
@@ -2782,7 +2798,7 @@ ac_config_headers="$ac_config_headers config.h"
 ### am handles this now?  ORIGINAL_LD_FOR_MULTILIBS=$LD
 
 # For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:14:0
+libtool_VERSION=6:15:0
 
 
 # Find the rest of the source tree framework.
@@ -3011,6 +3027,7 @@ fi
 #  foreign:  we don't follow the normal rules for GNU packages (no COPYING
 #            file in the top srcdir, etc, etc), so stop complaining.
 #  no-dependencies:  turns off auto dependency generation (just for now)
+#  no-dist:  we don't want 'dist' and related rules.
 #  -Wall:  turns on all automake warnings...
 #  -Wno-portability:  ...except this one, since GNU make is now required.
 am__api_version='1.11'
@@ -3485,26 +3502,9 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
-# We're almost certainly being configured before anything else which uses
-# C++, so all of our AC_PROG_* discoveries will be cached.  It's vital that
-# we not cache the value of CXX that we "discover" here, because it's set
-# to something unique for us and libjava.  Other target libraries need to
-# find CXX for themselves.  We yank the rug out from under the normal AC_*
-# process by sneakily renaming the cache variable.  This also lets us debug
-# the value of "our" CXX in postmortems.
-#
-# We must also force CXX to /not/ be a precious variable, otherwise the
-# wrong (non-multilib-adjusted) value will be used in multilibs.  This
-# little trick also affects CPPFLAGS, CXXFLAGS, and LDFLAGS.  And as a side
-# effect, CXXFLAGS is no longer automagically subst'd, so we have to do
-# that ourselves.  Un-preciousing AC_PROG_CC also affects CC and CFLAGS.
-#
 # -fno-builtin must be present here so that a non-conflicting form of
 # std::exit can be guessed by AC_PROG_CXX, and used in later tests.
 
-
-
-
 save_CXXFLAGS="$CXXFLAGS"
 CXXFLAGS="$CXXFLAGS -fno-builtin"
 ac_ext=c
@@ -4317,11 +4317,11 @@ if test -z "$CXX"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${glibcxx_cv_prog_CXX+set}" = set; then :
+if test "${ac_cv_prog_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
-  glibcxx_cv_prog_CXX="$CXX" # Let the user override the test.
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -4330,7 +4330,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    glibcxx_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -4340,7 +4340,7 @@ IFS=$as_save_IFS
 
 fi
 fi
-CXX=$glibcxx_cv_prog_CXX
+CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
 $as_echo "$CXX" >&6; }
@@ -4560,9 +4560,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 CXXFLAGS="$save_CXXFLAGS"
 
-
-
-
 # Runs configure.host, and assorted other critical bits.  Sets
 # up critical shell variables.
 
@@ -5198,7 +5195,7 @@ fi
   ## (Right now, this only matters for enable_wchar_t, but nothing prevents
   ## other macros from doing the same.  This should be automated.)  -pme
 
-  # Check for uClibc since Linux platforms use different configuration
+  # Check for C library flavor since Linux platforms use different configuration
   # directories depending on the C library in use.
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5218,6 +5215,24 @@ fi
 rm -f conftest*
 
 
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  #include <stdio.h>
+  #if __BIONIC__
+    _using_bionic
+  #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "_using_bionic" >/dev/null 2>&1; then :
+  bionic=yes
+else
+  bionic=no
+fi
+rm -f conftest*
+
+
   # Find platform-specific directories containing configuration info.
   # Also possibly modify flags used elsewhere, as needed by the platform.
 
@@ -11454,7 +11469,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11457 "configure"
+#line 11472 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11560,7 +11575,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11563 "configure"
+#line 11578 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14828,6 +14843,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+# Eliminate -lstdc++ addition to postdeps for cross compiles.
+postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'`
+
 # Possibly disable most of the library.
 ## TODO: Consider skipping unncessary tests altogether in this case, rather
 ## than just ignoring the results.  Faster /and/ more correct, win win.
@@ -14897,7 +14915,7 @@ fi
     #
     # Fake what AC_TRY_COMPILE does.  XXX Look at redoing this new-style.
     cat > conftest.$ac_ext << EOF
-#line 14900 "configure"
+#line 14918 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
@@ -15052,14 +15070,220 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
   old_CXXFLAGS="$CXXFLAGS"
 
+  # Do link tests if possible, instead asm tests, limited to some platforms
+  # see discussion in PR target/40134, PR libstdc++/40133 and the thread
+  # starting at http://gcc.gnu.org/ml/gcc-patches/2009-07/msg00322.html
+  atomic_builtins_link_tests=no
+  if test x$gcc_no_link != xyes; then
+    # Can do link tests. Limit to some tested platforms
+    case "$host" in
+      *-*-linux* | *-*-uclinux* | *-*-kfreebsd*-gnu | *-*-gnu*)
+       atomic_builtins_link_tests=yes
+        ;;
+    esac
+  fi
+
+  if test x$atomic_builtins_link_tests = xyes; then
+
+  # Do link tests.
+
+  CXXFLAGS="$CXXFLAGS -fno-exceptions"
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic builtins for bool" >&5
+$as_echo_n "checking for atomic builtins for bool... " >&6; }
+  if test "${glibcxx_cv_atomic_bool+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    if test x$gcc_no_link = xyes; then
+  as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+typedef bool atomic_type;
+       atomic_type c1;
+       atomic_type c2;
+       const atomic_type c3(0);
+       __sync_fetch_and_add(&c1, c2);
+       __sync_val_compare_and_swap(&c1, c3, c2);
+       __sync_lock_test_and_set(&c1, c3);
+       __sync_lock_release(&c1);
+       __sync_synchronize();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  glibcxx_cv_atomic_bool=yes
+else
+  glibcxx_cv_atomic_bool=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+
+  if test $glibcxx_cv_atomic_bool = yes; then
+
+$as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_1 1" >>confdefs.h
+
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_bool" >&5
+$as_echo "$glibcxx_cv_atomic_bool" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic builtins for short" >&5
+$as_echo_n "checking for atomic builtins for short... " >&6; }
+  if test "${glibcxx_cv_atomic_short+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    if test x$gcc_no_link = xyes; then
+  as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+typedef short atomic_type;
+       atomic_type c1;
+       atomic_type c2;
+       const atomic_type c3(0);
+       __sync_fetch_and_add(&c1, c2);
+       __sync_val_compare_and_swap(&c1, c3, c2);
+       __sync_lock_test_and_set(&c1, c3);
+       __sync_lock_release(&c1);
+       __sync_synchronize();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  glibcxx_cv_atomic_short=yes
+else
+  glibcxx_cv_atomic_short=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+
+  if test $glibcxx_cv_atomic_short = yes; then
+
+$as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_2 1" >>confdefs.h
+
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_short" >&5
+$as_echo "$glibcxx_cv_atomic_short" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic builtins for int" >&5
+$as_echo_n "checking for atomic builtins for int... " >&6; }
+  if test "${glibcxx_cv_atomic_int+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    if test x$gcc_no_link = xyes; then
+  as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+typedef int atomic_type;
+       atomic_type c1;
+       atomic_type c2;
+       const atomic_type c3(0);
+       __sync_fetch_and_add(&c1, c2);
+       __sync_val_compare_and_swap(&c1, c3, c2);
+       __sync_lock_test_and_set(&c1, c3);
+       __sync_lock_release(&c1);
+       __sync_synchronize();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  glibcxx_cv_atomic_int=yes
+else
+  glibcxx_cv_atomic_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+
+  if test $glibcxx_cv_atomic_int = yes; then
+
+$as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_4 1" >>confdefs.h
+
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_int" >&5
+$as_echo "$glibcxx_cv_atomic_int" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic builtins for long long" >&5
+$as_echo_n "checking for atomic builtins for long long... " >&6; }
+  if test "${glibcxx_cv_atomic_long_long+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    if test x$gcc_no_link = xyes; then
+  as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+typedef long long atomic_type;
+       atomic_type c1;
+       atomic_type c2;
+       const atomic_type c3(0);
+       __sync_fetch_and_add(&c1, c2);
+       __sync_val_compare_and_swap(&c1, c3, c2);
+       __sync_lock_test_and_set(&c1, c3);
+       __sync_lock_release(&c1);
+       __sync_synchronize();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  glibcxx_cv_atomic_long_long=yes
+else
+  glibcxx_cv_atomic_long_long=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+
+  if test $glibcxx_cv_atomic_long_long = yes; then
+
+$as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_8 1" >>confdefs.h
+
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_long_long" >&5
+$as_echo "$glibcxx_cv_atomic_long_long" >&6; }
+
+  else
+
+  # Do asm tests.
+
   # Compile unoptimized.
   CXXFLAGS='-O0 -S'
 
-  # Fake what AC_TRY_COMPILE does, without linking as this is
-  # unnecessary for a builtins test.
+  # Fake what AC_TRY_COMPILE does.
 
     cat > conftest.$ac_ext << EOF
-#line 15062 "configure"
+#line 15286 "configure"
 int main()
 {
   typedef bool atomic_type;
@@ -15083,20 +15307,20 @@ $as_echo_n "checking for atomic builtins for bool... " >&6; }
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
       if grep __sync_ conftest.s >/dev/null 2>&1 ; then
-        enable_atomic_builtinsb=no
+        glibcxx_cv_atomic_bool=no
       else
 
 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_1 1" >>confdefs.h
 
-        enable_atomic_builtinsb=yes
+        glibcxx_cv_atomic_bool=yes
       fi
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_atomic_builtinsb" >&5
-$as_echo "$enable_atomic_builtinsb" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_bool" >&5
+$as_echo "$glibcxx_cv_atomic_bool" >&6; }
     rm -f conftest*
 
     cat > conftest.$ac_ext << EOF
-#line 15099 "configure"
+#line 15323 "configure"
 int main()
 {
   typedef short atomic_type;
@@ -15120,20 +15344,20 @@ $as_echo_n "checking for atomic builtins for short... " >&6; }
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
       if grep __sync_ conftest.s >/dev/null 2>&1 ; then
-        enable_atomic_builtinss=no
+        glibcxx_cv_atomic_short=no
       else
 
 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_2 1" >>confdefs.h
 
-        enable_atomic_builtinss=yes
+        glibcxx_cv_atomic_short=yes
       fi
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_atomic_builtinss" >&5
-$as_echo "$enable_atomic_builtinss" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_short" >&5
+$as_echo "$glibcxx_cv_atomic_short" >&6; }
     rm -f conftest*
 
     cat > conftest.$ac_ext << EOF
-#line 15136 "configure"
+#line 15360 "configure"
 int main()
 {
   // NB: _Atomic_word not necessarily int.
@@ -15158,20 +15382,20 @@ $as_echo_n "checking for atomic builtins for int... " >&6; }
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
       if grep __sync_ conftest.s >/dev/null 2>&1 ; then
-        enable_atomic_builtinsi=no
+        glibcxx_cv_atomic_int=no
       else
 
 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_4 1" >>confdefs.h
 
-        enable_atomic_builtinsi=yes
+        glibcxx_cv_atomic_int=yes
       fi
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_atomic_builtinsi" >&5
-$as_echo "$enable_atomic_builtinsi" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_int" >&5
+$as_echo "$glibcxx_cv_atomic_int" >&6; }
     rm -f conftest*
 
     cat > conftest.$ac_ext << EOF
-#line 15174 "configure"
+#line 15398 "configure"
 int main()
 {
   typedef long long atomic_type;
@@ -15195,18 +15419,19 @@ $as_echo_n "checking for atomic builtins for long long... " >&6; }
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
       if grep __sync_ conftest.s >/dev/null 2>&1 ; then
-        enable_atomic_builtinsll=no
+        glibcxx_cv_atomic_long_long=no
       else
 
 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS_8 1" >>confdefs.h
 
-        enable_atomic_builtinsll=yes
+        glibcxx_cv_atomic_long_long=yes
       fi
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_atomic_builtinsll" >&5
-$as_echo "$enable_atomic_builtinsll" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_atomic_long_long" >&5
+$as_echo "$glibcxx_cv_atomic_long_long" >&6; }
     rm -f conftest*
 
+  fi
 
   CXXFLAGS="$old_CXXFLAGS"
   ac_ext=c
@@ -15217,7 +15442,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
   # Set atomicity_dir to builtins if either of above tests pass.
-  if test $enable_atomic_builtinsi = yes || test $enable_atomic_builtinsb = yes ; then
+  if test $glibcxx_cv_atomic_int = yes || test $glibcxx_cv_atomic_bool = yes ; then
     atomicity_dir=cpu/generic/atomicity_builtins
   fi
 
@@ -15246,7 +15471,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
   # unnecessary for this test.
 
     cat > conftest.$ac_ext << EOF
-#line 15249 "configure"
+#line 15474 "configure"
 int main()
 {
   _Decimal32 d1;
@@ -15430,7 +15655,7 @@ fi
 /* 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
 
 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"
@@ -15890,11 +16072,6 @@ $as_echo "$as_me: \"C\" header strategy set to $enable_cheaders" >&6;}
      c_compatibility=yes
   fi
 
-  if test $enable_cheaders = c_global || test $enable_cheaders = c_std; then
-     c_extra=yes
-  fi
-
-
 
 
 
@@ -16859,11 +17036,11 @@ $as_echo "$enable_libstdcxx_debug" >&6; }
 
   # See if configured libgomp/omp.h exists. (libgomp may be in
   # noconfigdirs but not explicitly disabled.)
-  if test -f $glibcxx_builddir/../libgomp/omp.h; then
+  if echo " ${TARGET_CONFIGDIRS} " | grep " libgomp " > /dev/null 2>&1 ; then
     enable_parallel=yes;
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: $glibcxx_builddir/../libgomp/omp.h not found" >&5
-$as_echo "$as_me: $glibcxx_builddir/../libgomp/omp.h not found" >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: target-libgomp not built" >&5
+$as_echo "$as_me: target-libgomp not built" >&6;}
   fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for parallel mode support" >&5
@@ -18495,45 +18672,73 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-# For common values of EOF, SEEK_CUR, SEEK_END.
+# For the EOF, SEEK_CUR, and SEEK_END integer constants.
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOF == -1, SEEK_CUR == 1, SEEK_END == 2" >&5
-$as_echo_n "checking for EOF == -1, SEEK_CUR == 1, SEEK_END == 2... " >&6; }
-  if test "${glibcxx_cv_stdio_macros+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the value of EOF" >&5
+$as_echo_n "checking for the value of EOF... " >&6; }
+if test "${glibcxx_cv_stdio_eof+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-#if ((EOF != -1) || (SEEK_CUR != 1) || (SEEK_END != 2))
-                   unusual values...
-                 #endif
+  if ac_fn_c_compute_int "$LINENO" "EOF" "glibcxx_cv_stdio_eof"        "#include <stdio.h>"; then :
 
-  ;
-  return 0;
-}
+else
+  as_fn_error "computing EOF failed" "$LINENO" 5
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_stdio_eof" >&5
+$as_echo "$glibcxx_cv_stdio_eof" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define _GLIBCXX_STDIO_EOF $glibcxx_cv_stdio_eof
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  glibcxx_cv_stdio_macros=yes
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the value of SEEK_CUR" >&5
+$as_echo_n "checking for the value of SEEK_CUR... " >&6; }
+if test "${glibcxx_cv_stdio_seek_cur+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  if ac_fn_c_compute_int "$LINENO" "SEEK_CUR" "glibcxx_cv_stdio_seek_cur"        "#include <stdio.h>"; then :
+
 else
-  glibcxx_cv_stdio_macros=no
+  as_fn_error "computing SEEK_CUR failed" "$LINENO" 5
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_stdio_seek_cur" >&5
+$as_echo "$glibcxx_cv_stdio_seek_cur" >&6; }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_stdio_macros" >&5
-$as_echo "$glibcxx_cv_stdio_macros" >&6; }
-  if test x"$glibcxx_cv_stdio_macros" = x"yes"; then
+cat >>confdefs.h <<_ACEOF
+#define _GLIBCXX_STDIO_SEEK_CUR $glibcxx_cv_stdio_seek_cur
+_ACEOF
 
-$as_echo "#define _GLIBCXX_STDIO_MACROS 1" >>confdefs.h
 
-  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the value of SEEK_END" >&5
+$as_echo_n "checking for the value of SEEK_END... " >&6; }
+if test "${glibcxx_cv_stdio_seek_end+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  if ac_fn_c_compute_int "$LINENO" "SEEK_END" "glibcxx_cv_stdio_seek_end"        "#include <stdio.h>"; then :
+
+else
+  as_fn_error "computing SEEK_END failed" "$LINENO" 5
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_stdio_seek_end" >&5
+$as_echo "$glibcxx_cv_stdio_seek_end" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define _GLIBCXX_STDIO_SEEK_END $glibcxx_cv_stdio_seek_end
+_ACEOF
 
 
 
@@ -18663,8 +18868,10 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   CXXFLAGS="$CXXFLAGS -fno-exceptions"
   ac_save_LIBS="$LIBS"
 
-  ac_has_clock_monotonic=no;
-  ac_has_clock_realtime=no;
+  ac_has_clock_monotonic=no
+  ac_has_clock_realtime=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_libstdcxx_time" >&5
+$as_echo "$enable_libstdcxx_time" >&6; }
 
   if test x"$enable_libstdcxx_time" != x"no"; then
 
@@ -19255,8 +19462,8 @@ fi
 
 
 # Check for available headers.
-for ac_header in endian.h float.h fp.h ieeefp.h inttypes.h locale.h \
-machine/endian.h machine/param.h nan.h stdint.h stdlib.h string.h \
+for ac_header in endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \
+locale.h machine/endian.h machine/param.h nan.h stdint.h stdlib.h string.h \
 strings.h sys/ipc.h sys/isa_defs.h sys/machine.h sys/param.h \
 sys/resource.h sys/sem.h sys/stat.h sys/time.h sys/types.h unistd.h \
 wchar.h wctype.h
@@ -25363,7 +25570,7 @@ rm -f core conftest.err conftest.$ac_objext \
        CFLAGS="$chktls_save_CFLAGS"
        if test "X$thread_CFLAGS" != Xfailed; then
          CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
-         if test "$cross_compiling" = yes; then :
+                                                 if test "$cross_compiling" = yes; then :
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error "cannot run test program while cross compiling
@@ -25373,7 +25580,7 @@ else
 /* end confdefs.h.  */
 #include <pthread.h>
                __thread int a;
-               static int *a_in_other_thread;
+               static int *volatile a_in_other_thread;
                static void *
                thread_func (void *arg)
                {
@@ -25385,11 +25592,11 @@ main ()
 {
 pthread_t thread;
                void *thread_retval;
-               int *a_in_main_thread;
+               int *volatile a_in_main_thread;
+               a_in_main_thread = &a;
                if (pthread_create (&thread, (pthread_attr_t *)0,
                                    thread_func, (void *)0))
                  return 0;
-               a_in_main_thread = &a;
                if (pthread_join (thread, &thread_retval))
                  return 0;
                return (a_in_other_thread == a_in_main_thread);
@@ -44301,7 +44508,7 @@ rm -f core conftest.err conftest.$ac_objext \
        CFLAGS="$chktls_save_CFLAGS"
        if test "X$thread_CFLAGS" != Xfailed; then
          CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
-         if test "$cross_compiling" = yes; then :
+                                                 if test "$cross_compiling" = yes; then :
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error "cannot run test program while cross compiling
@@ -44311,7 +44518,7 @@ else
 /* end confdefs.h.  */
 #include <pthread.h>
                __thread int a;
-               static int *a_in_other_thread;
+               static int *volatile a_in_other_thread;
                static void *
                thread_func (void *arg)
                {
@@ -44323,11 +44530,11 @@ main ()
 {
 pthread_t thread;
                void *thread_retval;
-               int *a_in_main_thread;
+               int *volatile a_in_main_thread;
+               a_in_main_thread = &a;
                if (pthread_create (&thread, (pthread_attr_t *)0,
                                    thread_func, (void *)0))
                  return 0;
-               a_in_main_thread = &a;
                if (pthread_join (thread, &thread_retval))
                  return 0;
                return (a_in_other_thread == a_in_main_thread);
@@ -50386,7 +50593,7 @@ rm -f core conftest.err conftest.$ac_objext \
        CFLAGS="$chktls_save_CFLAGS"
        if test "X$thread_CFLAGS" != Xfailed; then
          CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
-         if test "$cross_compiling" = yes; then :
+                                                 if test "$cross_compiling" = yes; then :
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error "cannot run test program while cross compiling
@@ -50396,7 +50603,7 @@ else
 /* end confdefs.h.  */
 #include <pthread.h>
                __thread int a;
-               static int *a_in_other_thread;
+               static int *volatile a_in_other_thread;
                static void *
                thread_func (void *arg)
                {
@@ -50408,11 +50615,11 @@ main ()
 {
 pthread_t thread;
                void *thread_retval;
-               int *a_in_main_thread;
+               int *volatile a_in_main_thread;
+               a_in_main_thread = &a;
                if (pthread_create (&thread, (pthread_attr_t *)0,
                                    thread_func, (void *)0))
                  return 0;
-               a_in_main_thread = &a;
                if (pthread_join (thread, &thread_retval))
                  return 0;
                return (a_in_other_thread == a_in_main_thread);
@@ -56892,7 +57099,7 @@ $as_echo "$ac_ld_relro" >&6; }
     ;;
   *-solaris*)
     case "$target" in
-      *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
+      *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
 
   # If we're not using GNU ld, then there's no point in even trying these
   # tests.  Check for that first.  We should have already tested for gld
@@ -57842,8 +58049,7 @@ _ACEOF
 $as_echo_n "checking for type equivalent to int8_t... " >&6; }
   case "$ac_cv_sizeof_char" in
     1) acx_cv_type_int8_t=char ;;
-    *) { as_fn_set_status please report a bug
-as_fn_error "no 8-bit type" "$LINENO" 5; }
+    *) as_fn_error "no 8-bit type, please report a bug" "$LINENO" 5
   esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int8_t" >&5
 $as_echo "$acx_cv_type_int8_t" >&6; }
@@ -57853,8 +58059,7 @@ $as_echo_n "checking for type equivalent to int16_t... " >&6; }
   case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in
     2:*) acx_cv_type_int16_t=int ;;
     *:2) acx_cv_type_int16_t=short ;;
-    *) { as_fn_set_status please report a bug
-as_fn_error "no 16-bit type" "$LINENO" 5; }
+    *) as_fn_error "no 16-bit type, please report a bug" "$LINENO" 5
   esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int16_t" >&5
 $as_echo "$acx_cv_type_int16_t" >&6; }
@@ -57864,8 +58069,7 @@ $as_echo_n "checking for type equivalent to int32_t... " >&6; }
   case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in
     4:*) acx_cv_type_int32_t=int ;;
     *:4) acx_cv_type_int32_t=long ;;
-    *) { as_fn_set_status please report a bug
-as_fn_error "no 32-bit type" "$LINENO" 5; }
+    *) as_fn_error "no 32-bit type, please report a bug" "$LINENO" 5
   esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int32_t" >&5
 $as_echo "$acx_cv_type_int32_t" >&6; }
@@ -57892,8 +58096,7 @@ $as_echo_n "checking for type equivalent to intptr_t... " >&6; }
     2) acx_cv_type_intptr_t=int16_t ;;
     4) acx_cv_type_intptr_t=int32_t ;;
     8) acx_cv_type_intptr_t=int64_t ;;
-    *) { as_fn_set_status please report a bug
-as_fn_error "no equivalent for intptr_t" "$LINENO" 5; }
+    *) as_fn_error "no equivalent for intptr_t, please report a bug" "$LINENO" 5
   esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_intptr_t" >&5
 $as_echo "$acx_cv_type_intptr_t" >&6; }
@@ -57907,12 +58110,53 @@ ac_config_commands="$ac_config_commands include/gstdint.h"
 
 # This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU c++filt" >&5
+$as_echo_n "checking for GNU c++filt... " >&6; }
+if test "${ac_cv_path_CXXFILT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$CXXFILT"; then
+  ac_path_CXXFILT_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in c++filt gc++filt; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_CXXFILT="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_CXXFILT" && $as_test_x "$ac_path_CXXFILT"; } || continue
+# Check for GNU $ac_path_CXXFILT
+case `"$ac_path_CXXFILT" --version 2>&1` in
+*GNU*)
+  ac_cv_path_CXXFILT=$ac_path_CXXFILT && ac_path_CXXFILT_found=:;;
+esac
+
+      $ac_path_CXXFILT_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_CXXFILT"; then
+    :
+  fi
+else
+  ac_cv_path_CXXFILT=$CXXFILT
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_CXXFILT" >&5
+$as_echo "$ac_cv_path_CXXFILT" >&6; }
+  CXXFILT=$ac_cv_path_CXXFILT
+
+
 
  # Check whether --enable-symvers was given.
 if test "${enable_symvers+set}" = set; then :
   enableval=$enable_symvers;
       case "$enableval" in
-       yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export) ;;
+       yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export|sun) ;;
        *) as_fn_error "Unknown argument to enable/disable symvers" "$LINENO" 5 ;;
                           esac
 
@@ -57925,6 +58169,9 @@ fi
 # If we never went through the GLIBCXX_CHECK_LINKER_FEATURES macro, then we
 # don't know enough about $LD to do tricks...
 
+# Sun style symbol versions needs GNU c++filt for make_sunver.pl to work
+# with extern "C++" in version scripts.
+
 
 # Turn a 'yes' into a suitable default.
 if test x$enable_symvers = xyes ; then
@@ -57942,6 +58189,23 @@ if test x$enable_symvers = xyes ; then
       case ${target_os} in
         darwin*)
          enable_symvers=darwin ;;
+       # Sun symbol versioning exists since Solaris 2.5.
+       solaris2.[5-9]* | solaris2.1[0-9]*)
+         # make_sunver.pl needs GNU c++filt to support extern "C++" in
+         # version scripts, so disable symbol versioning if none can be
+         # found.
+         if test -z "$ac_cv_path_CXXFILT"; then
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested Sun symbol versioning, but" >&5
+$as_echo "$as_me: WARNING: === You have requested Sun symbol versioning, but" >&2;}
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === no GNU c++filt could  be found." >&5
+$as_echo "$as_me: WARNING: === no GNU c++filt could  be found." >&2;}
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5
+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
+           enable_symvers=no
+         else
+           enable_symvers=sun
+         fi
+         ;;
         *)
           enable_symvers=no ;;
       esac
@@ -57954,8 +58218,29 @@ if test x$enable_symvers = xdarwin-export ; then
     enable_symvers=darwin
 fi
 
+# Check if 'sun' was requested on non-Solaris 2 platforms.
+if test x$enable_symvers = xsun ; then
+  case ${target_os} in
+    solaris2*)
+      # All fine.
+      ;;
+    *)
+      # Unlikely to work.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested Sun symbol versioning, but" >&5
+$as_echo "$as_me: WARNING: === You have requested Sun symbol versioning, but" >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === you are not targetting Solaris 2." >&5
+$as_echo "$as_me: WARNING: === you are not targetting Solaris 2." >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5
+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
+      enable_symvers=no
+      ;;
+  esac
+fi
+
 # Check to see if 'gnu' can win.
-if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
+if test $enable_symvers = gnu ||
+  test $enable_symvers = gnu-versioned-namespace ||
+  test $enable_symvers = sun; then
   # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared libgcc" >&5
 $as_echo_n "checking for shared libgcc... " >&6; }
@@ -58032,6 +58317,8 @@ $as_echo "$as_me: WARNING: === you are not building a shared libgcc_s." >&2;}
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5
 $as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
       enable_symvers=no
+  elif test $with_gnu_ld != yes && test $enable_symvers = sun; then
+    : All interesting versions of Sun ld support sun style symbol versioning.
   elif test $with_gnu_ld != yes ; then
     # just fail for now
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested GNU symbol versioning, but" >&5
@@ -58082,6 +58369,12 @@ $as_echo "#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1" >>confdefs.h
 $as_echo "#define _GLIBCXX_SYMVER_DARWIN 1" >>confdefs.h
 
     ;;
+  sun)
+    SYMVER_FILE=config/abi/pre/gnu.ver
+
+$as_echo "#define _GLIBCXX_SYMVER_SUN 1" >>confdefs.h
+
+    ;;
 esac
 
 if test x$enable_symvers != xno ; then
 
 
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: versioning on shared library symbols is $enable_symvers" >&5
 $as_echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
 
+if test $enable_symvers != no ; then
+   case ${target_os} in
+     # The Solaris 2 runtime linker doesn't support the GNU extension of
+     # binding the same symbol to different versions
+     solaris2*)
+       symvers_renaming=no  ;;
+     # Other platforms with GNU symbol versioning (GNU/Linux, more?) do.
+     *)
+
+$as_echo "#define HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1" >>confdefs.h
+
+       symvers_renaming=yes  ;;
+    esac
+fi
+
+
 # Now, set up compatibility support, if any.
 # In addition, need this to deal with std::size_t mangling in
 # src/compatibility.cc.  In a perfect world, could use
@@ -58673,15 +58983,6 @@ else
 fi
 
 
-    if test $c_extra = yes; then
-  GLIBCXX_C_HEADERS_EXTRA_TRUE=
-  GLIBCXX_C_HEADERS_EXTRA_FALSE='#'
-else
-  GLIBCXX_C_HEADERS_EXTRA_TRUE='#'
-  GLIBCXX_C_HEADERS_EXTRA_FALSE=
-fi
-
-
     if test $enable_libstdcxx_debug = yes; then
   GLIBCXX_BUILD_DEBUG_TRUE=
   GLIBCXX_BUILD_DEBUG_FALSE='#'
@@ -58736,6 +59037,24 @@ else
 fi
 
 
+    if test $enable_symvers = sun; then
+  ENABLE_SYMVERS_SUN_TRUE=
+  ENABLE_SYMVERS_SUN_FALSE='#'
+else
+  ENABLE_SYMVERS_SUN_TRUE='#'
+  ENABLE_SYMVERS_SUN_FALSE=
+fi
+
+
+    if test $symvers_renaming = no; then
+  ENABLE_SYMVERS_SOL2_TRUE=
+  ENABLE_SYMVERS_SOL2_FALSE='#'
+else
+  ENABLE_SYMVERS_SOL2_TRUE='#'
+  ENABLE_SYMVERS_SOL2_FALSE=
+fi
+
+
     if test $enable_visibility = yes; then
   ENABLE_VISIBILITY_TRUE=
   ENABLE_VISIBILITY_FALSE='#'
@@ -59121,10 +59440,6 @@ if test -z "${GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE}" && test -z "${GLIBCXX_C_HEA
   as_fn_error "conditional \"GLIBCXX_C_HEADERS_COMPATIBILITY\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GLIBCXX_C_HEADERS_EXTRA_TRUE}" && test -z "${GLIBCXX_C_HEADERS_EXTRA_FALSE}"; then
-  as_fn_error "conditional \"GLIBCXX_C_HEADERS_EXTRA\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${GLIBCXX_BUILD_DEBUG_TRUE}" && test -z "${GLIBCXX_BUILD_DEBUG_FALSE}"; then
   as_fn_error "conditional \"GLIBCXX_BUILD_DEBUG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -59149,6 +59464,14 @@ if test -z "${ENABLE_SYMVERS_DARWIN_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_F
   as_fn_error "conditional \"ENABLE_SYMVERS_DARWIN\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${ENABLE_SYMVERS_SUN_TRUE}" && test -z "${ENABLE_SYMVERS_SUN_FALSE}"; then
+  as_fn_error "conditional \"ENABLE_SYMVERS_SUN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_SYMVERS_SOL2_TRUE}" && test -z "${ENABLE_SYMVERS_SOL2_FALSE}"; then
+  as_fn_error "conditional \"ENABLE_SYMVERS_SOL2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_VISIBILITY_TRUE}" && test -z "${ENABLE_VISIBILITY_FALSE}"; then
   as_fn_error "conditional \"ENABLE_VISIBILITY\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -61600,49 +61923,61 @@ if test "$acx_cv_header_stdint" = stddef.h; then
     #define _UINT8_T
     #ifndef __uint8_t_defined
     #define __uint8_t_defined
+    #ifndef uint8_t
     typedef unsigned $acx_cv_type_int8_t uint8_t;
     #endif
     #endif
+    #endif
 
     #ifndef _UINT16_T
     #define _UINT16_T
     #ifndef __uint16_t_defined
     #define __uint16_t_defined
+    #ifndef uint16_t
     typedef unsigned $acx_cv_type_int16_t uint16_t;
     #endif
     #endif
+    #endif
 
     #ifndef _UINT32_T
     #define _UINT32_T
     #ifndef __uint32_t_defined
     #define __uint32_t_defined
+    #ifndef uint32_t
     typedef unsigned $acx_cv_type_int32_t uint32_t;
     #endif
     #endif
+    #endif
 
     #ifndef _INT8_T
     #define _INT8_T
     #ifndef __int8_t_defined
     #define __int8_t_defined
+    #ifndef int8_t
     typedef $acx_cv_type_int8_t int8_t;
     #endif
     #endif
+    #endif
 
     #ifndef _INT16_T
     #define _INT16_T
     #ifndef __int16_t_defined
     #define __int16_t_defined
+    #ifndef int16_t
     typedef $acx_cv_type_int16_t int16_t;
     #endif
     #endif
+    #endif
 
     #ifndef _INT32_T
     #define _INT32_T
     #ifndef __int32_t_defined
     #define __int32_t_defined
+    #ifndef int32_t
     typedef $acx_cv_type_int32_t int32_t;
     #endif
     #endif
+    #endif
 EOF
 elif test "$ac_cv_type_u_int32_t" = yes; then
   sed 's/^ *//' >> tmp-stdint.h <<EOF
@@ -61662,25 +61997,31 @@ elif test "$ac_cv_type_u_int32_t" = yes; then
     #define _UINT8_T
     #ifndef __uint8_t_defined
     #define __uint8_t_defined
+    #ifndef uint8_t
     typedef u_int8_t uint8_t;
     #endif
     #endif
+    #endif
 
     #ifndef _UINT16_T
     #define _UINT16_T
     #ifndef __uint16_t_defined
     #define __uint16_t_defined
+    #ifndef uint16_t
     typedef u_int16_t uint16_t;
     #endif
     #endif
+    #endif
 
     #ifndef _UINT32_T
     #define _UINT32_T
     #ifndef __uint32_t_defined
     #define __uint32_t_defined
+    #ifndef uint32_t
     typedef u_int32_t uint32_t;
     #endif
     #endif
+    #endif
 EOF
 else
   sed 's/^ *//' >> tmp-stdint.h <<EOF
@@ -61730,9 +62071,11 @@ elif test "$ac_cv_type_u_int64_t" = yes; then
     #define _UINT64_T
     #ifndef __uint64_t_defined
     #define __uint64_t_defined
+    #ifndef uint64_t
     typedef u_int64_t uint64_t;
     #endif
     #endif
+    #endif
 EOF
 elif test -n "$acx_cv_type_int64_t"; then
   sed 's/^ *//' >> tmp-stdint.h <<EOF
@@ -61740,15 +62083,19 @@ elif test -n "$acx_cv_type_int64_t"; then
     /* architecture has a 64-bit type, $acx_cv_type_int64_t */
     #ifndef _INT64_T
     #define _INT64_T
+    #ifndef int64_t
     typedef $acx_cv_type_int64_t int64_t;
     #endif
+    #endif
     #ifndef _UINT64_T
     #define _UINT64_T
     #ifndef __uint64_t_defined
     #define __uint64_t_defined
+    #ifndef uint64_t
     typedef unsigned $acx_cv_type_int64_t uint64_t;
     #endif
     #endif
+    #endif
 EOF
 else
   sed 's/^ *//' >> tmp-stdint.h <<EOF
@@ -61758,13 +62105,17 @@ else
     #ifndef _INT64_T
     #define _INT64_T
     #ifndef __int64_t_defined
+    #ifndef int64_t
     typedef long long int64_t;
     #endif
     #endif
+    #endif
     #ifndef _UINT64_T
     #define _UINT64_T
+    #ifndef uint64_t
     typedef unsigned long long uint64_t;
     #endif
+    #endif
 
     #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0
     /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
@@ -61776,24 +62127,32 @@ else
 
     # ifndef _INT64_T
     # define _INT64_T
+    # ifndef int64_t
     __extension__ typedef long long int64_t;
     # endif
+    # endif
     # ifndef _UINT64_T
     # define _UINT64_T
+    # ifndef uint64_t
     __extension__ typedef unsigned long long uint64_t;
     # endif
+    # endif
 
     #elif !defined __STRICT_ANSI__
     # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
 
     #  ifndef _INT64_T
     #  define _INT64_T
+    #  ifndef int64_t
     typedef __int64 int64_t;
     #  endif
+    #  endif
     #  ifndef _UINT64_T
     #  define _UINT64_T
+    #  ifndef uint64_t
     typedef unsigned __int64 uint64_t;
     #  endif
+    #  endif
     # endif /* compiler */
 
     #endif /* ANSI version */
@@ -61806,11 +62165,15 @@ if test "$ac_cv_type_uintptr_t" != yes; then
 
     /* Define intptr_t based on sizeof(void*) = $ac_cv_sizeof_void_p */
     #ifndef __uintptr_t_defined
+    #ifndef uintptr_t
     typedef u$acx_cv_type_intptr_t uintptr_t;
     #endif
+    #endif
     #ifndef __intptr_t_defined
+    #ifndef intptr_t
     typedef $acx_cv_type_intptr_t  intptr_t;
     #endif
+    #endif
 EOF
 fi
 
@@ -61860,16 +62223,20 @@ if test "$ac_cv_type_uintmax_t" != yes; then
   sed 's/^ *//' >> tmp-stdint.h <<EOF
 
     /* Define intmax based on what we found */
+    #ifndef intmax_t
     #ifdef _INT64_T
     typedef int64_t       intmax_t;
     #else
     typedef long          intmax_t;
     #endif
+    #endif
+    #ifndef uintmax_t
     #ifdef _UINT64_T
     typedef uint64_t      uintmax_t;
     #else
     typedef unsigned long uintmax_t;
     #endif
+    #endif
 EOF
 fi