aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/libstdc++-v3
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/libstdc++-v3')
-rw-r--r--gcc-4.9/libstdc++-v3/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/acinclude.m426
-rwxr-xr-xgcc-4.9/libstdc++-v3/configure88
-rw-r--r--gcc-4.9/libstdc++-v3/configure.ac1
-rw-r--r--gcc-4.9/libstdc++-v3/doc/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/include/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/include/bits/stl_tree.h26
-rw-r--r--gcc-4.9/libstdc++-v3/include/c_compatibility/complex.h2
-rw-r--r--gcc-4.9/libstdc++-v3/include/debug/array2
-rw-r--r--gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h41
-rw-r--r--gcc-4.9/libstdc++-v3/include/std/array11
-rw-r--r--gcc-4.9/libstdc++-v3/include/std/complex6
-rw-r--r--gcc-4.9/libstdc++-v3/libsupc++/Makefile.in25
-rw-r--r--gcc-4.9/libstdc++-v3/po/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/python/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/python/libstdcxx/v6/printers.py7
-rw-r--r--gcc-4.9/libstdc++-v3/src/Makefile.am66
-rw-r--r--gcc-4.9/libstdc++-v3/src/Makefile.in103
-rw-r--r--gcc-4.9/libstdc++-v3/src/c++11/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/src/c++98/Makefile.in2
-rw-r--r--gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc6
-rw-r--r--gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc2
-rw-r--r--gcc-4.9/libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc29
-rw-r--r--gcc-4.9/libstdc++-v3/testsuite/Makefile.in2
24 files changed, 357 insertions, 100 deletions
diff --git a/gcc-4.9/libstdc++-v3/Makefile.in b/gcc-4.9/libstdc++-v3/Makefile.in
index bede54253..4e23a9954 100644
--- a/gcc-4.9/libstdc++-v3/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/Makefile.in
@@ -201,6 +201,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -263,6 +264,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/acinclude.m4 b/gcc-4.9/libstdc++-v3/acinclude.m4
index 45972948d..e57ef727e 100644
--- a/gcc-4.9/libstdc++-v3/acinclude.m4
+++ b/gcc-4.9/libstdc++-v3/acinclude.m4
@@ -2317,6 +2317,32 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [
])
dnl
+dnl Use Bionic libstdc++ libraries.
+dnl
+dnl --enable-bionic-libs defines _GLIBCXX_BIONIC_LIBS to 1
+dnl --disable-bionic-libs defines _GLIBCXX_BIONIC_LIBS to 0
+
+dnl + Usage: GLIBCXX_ENABLE_BIONIC_LIBS[(DEFAULT)]
+dnl Where DEFAULT is `yes' or `no'.
+dnl
+AC_DEFUN([GLIBCXX_ENABLE_BIONIC_LIBS], [
+
+ GLIBCXX_ENABLE(bionic-libs,$1,,[enable bionic libs])
+
+ AC_MSG_CHECKING([for bionic libs support])
+ AC_MSG_RESULT([$enable_bionic_libs])
+
+ if test $enable_bionic_libs = yes; then
+ USE_BIONIC_LIBS="TRUE"
+ else
+ USE_BIONIC_LIBS="FALSE"
+ fi
+
+ AC_SUBST(USE_BIONIC_LIBS)
+ GLIBCXX_CONDITIONAL(ENABLE_BIONIC_LIBS, test $enable_bionic_libs = yes)
+])
+
+dnl
dnl Check for parallel mode pre-requisites, including OpenMP support.
dnl
dnl + Usage: GLIBCXX_ENABLE_PARALLEL
diff --git a/gcc-4.9/libstdc++-v3/configure b/gcc-4.9/libstdc++-v3/configure
index 44bc17bc2..4d3fa1e5f 100755
--- a/gcc-4.9/libstdc++-v3/configure
+++ b/gcc-4.9/libstdc++-v3/configure
@@ -665,6 +665,9 @@ LIBICONV
OPT_LDFLAGS
SECTION_LDFLAGS
GLIBCXX_LIBS
+ENABLE_BIONIC_LIBS_FALSE
+ENABLE_BIONIC_LIBS_TRUE
+USE_BIONIC_LIBS
ENABLE_VTABLE_VERIFY_FALSE
ENABLE_VTABLE_VERIFY_TRUE
VTV_CXXLINKFLAGS
@@ -873,6 +876,7 @@ enable_extern_template
with_python_dir
enable_werror
enable_vtable_verify
+enable_bionic_libs
enable_libstdcxx_time
enable_tls
enable_rpath
@@ -1566,6 +1570,7 @@ Optional Features:
enable extern template [default=yes]
--enable-werror turns on -Werror [default=yes]
--enable-vtable-verify enable vtable verify [default=no]
+ --enable-bionic-libs enable bionic libs [default=no]
--enable-libstdcxx-time[=KIND]
use KIND for check type [default=auto]
--enable-tls Use thread-local storage [default=yes]
@@ -11542,7 +11547,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11544 "configure"
+#line 11550 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11648,7 +11653,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11650 "configure"
+#line 11656 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15068,7 +15073,7 @@ fi
#
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
-#line 15070 "configure"
+#line 15076 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -15420,7 +15425,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15420 "configure"
+#line 15428 "configure"
int main()
{
typedef bool atomic_type;
@@ -15455,7 +15460,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15455 "configure"
+#line 15463 "configure"
int main()
{
typedef short atomic_type;
@@ -15490,7 +15495,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15490 "configure"
+#line 15498 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -15526,7 +15531,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15526 "configure"
+#line 15534 "configure"
int main()
{
typedef long long atomic_type;
@@ -15605,7 +15610,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 15605 "configure"
+#line 15613 "configure"
int main()
{
_Decimal32 d1;
@@ -15647,7 +15652,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15647 "configure"
+#line 15655 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -15681,7 +15686,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15681 "configure"
+#line 15689 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -17453,6 +17458,36 @@ $as_echo "$enable_vtable_verify" >&6; }
+
+ # Check whether --enable-bionic-libs was given.
+if test "${enable_bionic_libs+set}" = set; then :
+ enableval=$enable_bionic_libs;
+ case "$enableval" in
+ yes|no) ;;
+ *) as_fn_error "Argument to enable/disable bionic-libs must be yes or no" "$LINENO" 5 ;;
+ esac
+
+else
+ enable_bionic_libs=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bionic libs support" >&5
+$as_echo_n "checking for bionic libs support... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_bionic_libs" >&5
+$as_echo "$enable_bionic_libs" >&6; }
+
+ if test $enable_bionic_libs = yes; then
+ USE_BIONIC_LIBS="TRUE"
+ else
+ USE_BIONIC_LIBS="FALSE"
+ fi
+
+
+
+
+
# Checks for operating systems support that doesn't require linking.
@@ -77209,12 +77244,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/syscall.h>
int lk;
-#if !defined(SYS_gettid)
-#define SYS_gettid __NR_gettid
-#endif
-#if !defined(SYS_futex)
-#define SYS_futex __NR_futex
-#endif
int
main ()
{
@@ -77273,12 +77302,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/syscall.h>
int lk;
-#if !defined(SYS_gettid)
-#define SYS_gettid __NR_gettid
-#endif
-#if !defined(SYS_futex)
-#define SYS_futex __NR_futex
-#endif
int
main ()
{
@@ -78115,12 +78138,14 @@ fi
$as_echo "$glibcxx_ptrdiff_t_is_i" >&6; }
+
case "$target" in
- *android*) libtool_version_info_string="-avoid-version" ;;
- *) libtool_version_info_string="-version-info $libtool_VERSION"
+ *android*) libtool_version_info_string="-avoid-version" ;;
+ *) libtool_version_info_string="-version-info $libtool_VERSION"
esac
+
# Check whether --enable-libstdcxx-visibility was given.
if test "${enable_libstdcxx_visibility+set}" = set; then :
enableval=$enable_libstdcxx_visibility;
@@ -78691,7 +78716,7 @@ $as_echo_n "checking for gthreads library... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include "gthr-$target_thread_file.h"
+#include "gthr.h"
int
main ()
{
@@ -79293,6 +79318,15 @@ else
fi
+ if test $enable_bionic_libs = yes; then
+ ENABLE_BIONIC_LIBS_TRUE=
+ ENABLE_BIONIC_LIBS_FALSE='#'
+else
+ ENABLE_BIONIC_LIBS_TRUE='#'
+ ENABLE_BIONIC_LIBS_FALSE=
+fi
+
+
if test $enable_symvers != no; then
ENABLE_SYMVERS_TRUE=
ENABLE_SYMVERS_FALSE='#'
@@ -79740,6 +79774,10 @@ if test -z "${ENABLE_VTABLE_VERIFY_TRUE}" && test -z "${ENABLE_VTABLE_VERIFY_FAL
as_fn_error "conditional \"ENABLE_VTABLE_VERIFY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${ENABLE_BIONIC_LIBS_TRUE}" && test -z "${ENABLE_BIONIC_LIBS_FALSE}"; then
+ as_fn_error "conditional \"ENABLE_BIONIC_LIBS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_SYMVERS_TRUE}" && test -z "${ENABLE_SYMVERS_FALSE}"; then
as_fn_error "conditional \"ENABLE_SYMVERS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/gcc-4.9/libstdc++-v3/configure.ac b/gcc-4.9/libstdc++-v3/configure.ac
index 350744aa7..80d46a95f 100644
--- a/gcc-4.9/libstdc++-v3/configure.ac
+++ b/gcc-4.9/libstdc++-v3/configure.ac
@@ -175,6 +175,7 @@ GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes])
GLIBCXX_ENABLE_PYTHON
GLIBCXX_ENABLE_WERROR([yes])
GLIBCXX_ENABLE_VTABLE_VERIFY([no])
+GLIBCXX_ENABLE_BIONIC_LIBS([no])
# Checks for operating systems support that doesn't require linking.
GLIBCXX_CHECK_STDIO_PROTO
diff --git a/gcc-4.9/libstdc++-v3/doc/Makefile.in b/gcc-4.9/libstdc++-v3/doc/Makefile.in
index 04e0d7d97..0b8f78445 100644
--- a/gcc-4.9/libstdc++-v3/doc/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/doc/Makefile.in
@@ -173,6 +173,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -241,6 +242,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/include/Makefile.in b/gcc-4.9/libstdc++-v3/include/Makefile.in
index e66f0dce0..8d4e79960 100644
--- a/gcc-4.9/libstdc++-v3/include/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/include/Makefile.in
@@ -173,6 +173,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -235,6 +236,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/include/bits/stl_tree.h b/gcc-4.9/libstdc++-v3/include/bits/stl_tree.h
index 61156dbf7..00ff1ac83 100644
--- a/gcc-4.9/libstdc++-v3/include/bits/stl_tree.h
+++ b/gcc-4.9/libstdc++-v3/include/bits/stl_tree.h
@@ -144,7 +144,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_valptr() const
{ return std::__addressof(_M_value_field); }
#else
- __gnu_cxx::__aligned_buffer<_Val> _M_storage;
+ __gnu_cxx::__aligned_membuf<_Val> _M_storage;
_Val*
_M_valptr()
@@ -186,7 +186,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: _M_node() { }
explicit
- _Rb_tree_iterator(_Link_type __x) _GLIBCXX_NOEXCEPT
+ _Rb_tree_iterator(_Base_ptr __x) _GLIBCXX_NOEXCEPT
: _M_node(__x) { }
reference
@@ -258,7 +258,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: _M_node() { }
explicit
- _Rb_tree_const_iterator(_Link_type __x) _GLIBCXX_NOEXCEPT
+ _Rb_tree_const_iterator(_Base_ptr __x) _GLIBCXX_NOEXCEPT
: _M_node(__x) { }
_Rb_tree_const_iterator(const iterator& __it) _GLIBCXX_NOEXCEPT
@@ -266,8 +266,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
iterator
_M_const_cast() const _GLIBCXX_NOEXCEPT
- { return iterator(static_cast<typename iterator::_Link_type>
- (const_cast<typename iterator::_Base_ptr>(_M_node))); }
+ { return iterator(const_cast<typename iterator::_Base_ptr>(_M_node)); }
reference
operator*() const _GLIBCXX_NOEXCEPT
@@ -764,28 +763,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
iterator
begin() _GLIBCXX_NOEXCEPT
- {
- return iterator(static_cast<_Link_type>
- (this->_M_impl._M_header._M_left));
- }
+ { return iterator(this->_M_impl._M_header._M_left); }
const_iterator
begin() const _GLIBCXX_NOEXCEPT
- {
- return const_iterator(static_cast<_Const_Link_type>
- (this->_M_impl._M_header._M_left));
- }
+ { return const_iterator(this->_M_impl._M_header._M_left); }
iterator
end() _GLIBCXX_NOEXCEPT
- { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); }
+ { return iterator(&this->_M_impl._M_header); }
const_iterator
end() const _GLIBCXX_NOEXCEPT
- {
- return const_iterator(static_cast<_Const_Link_type>
- (&this->_M_impl._M_header));
- }
+ { return const_iterator(&this->_M_impl._M_header); }
reverse_iterator
rbegin() _GLIBCXX_NOEXCEPT
diff --git a/gcc-4.9/libstdc++-v3/include/c_compatibility/complex.h b/gcc-4.9/libstdc++-v3/include/c_compatibility/complex.h
index b15361ea0..a79b4e4cc 100644
--- a/gcc-4.9/libstdc++-v3/include/c_compatibility/complex.h
+++ b/gcc-4.9/libstdc++-v3/include/c_compatibility/complex.h
@@ -39,7 +39,7 @@
// <complex.h> is defined to provide only what C++11's <ccomplex> does in a
// different namespace.
#ifdef _GLIBCXX_COMPLEX
-# error Cannot include both <complex> and C99's <complex.h>
+# error "Cannot include both <complex> and C99 <complex.h>"
#endif
// Delegate to a system complex.h if we don't provide it as part of the C++
diff --git a/gcc-4.9/libstdc++-v3/include/debug/array b/gcc-4.9/libstdc++-v3/include/debug/array
index cd3eb0a20..637ab51a3 100644
--- a/gcc-4.9/libstdc++-v3/include/debug/array
+++ b/gcc-4.9/libstdc++-v3/include/debug/array
@@ -220,7 +220,7 @@ namespace __debug
const_pointer
data() const noexcept
- { return _AT_Type::_S_ptrr(_M_elems, 0); }
+ { return _AT_Type::_S_ptr(_M_elems, 0); }
};
// Array comparisons.
diff --git a/gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h b/gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h
index 861de5be3..99c4575c5 100644
--- a/gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h
+++ b/gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h
@@ -39,7 +39,48 @@
namespace __gnu_cxx
{
+ // A utility type containing a POD object that can hold an object of type
+ // _Tp initialized via placement new or allocator_traits::construct.
+ // Intended for use as a data member subobject, use __aligned_buffer for
+ // complete objects.
template<typename _Tp>
+ struct __aligned_membuf
+ {
+ // Target macro ADJUST_FIELD_ALIGN can produce different alignment for
+ // types when used as class members. __aligned_membuf is intended
+ // for use as a class member, so align the buffer as for a class member.
+ struct _Tp2 { _Tp _M_t; };
+
+ alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)];
+
+ __aligned_membuf() = default;
+
+ // Can be used to avoid value-initialization zeroing _M_storage.
+ __aligned_membuf(std::nullptr_t) { }
+
+ void*
+ _M_addr() noexcept
+ { return static_cast<void*>(&_M_storage); }
+
+ const void*
+ _M_addr() const noexcept
+ { return static_cast<const void*>(&_M_storage); }
+
+ _Tp*
+ _M_ptr() noexcept
+ { return static_cast<_Tp*>(_M_addr()); }
+
+ const _Tp*
+ _M_ptr() const noexcept
+ { return static_cast<const _Tp*>(_M_addr()); }
+ };
+
+ // Similar to __aligned_membuf but aligned for complete objects, not members.
+ // This type is used in <forward_list>, <future>, <bits/shared_ptr_base.h>
+ // and <bits/hashtable_policy.h>, but ideally they would use __aligned_membuf
+ // instead, as it has smaller size for some types on some targets.
+ // This type is still used to avoid an ABI change.
+ template<typename _Tp>
struct __aligned_buffer
: std::aligned_storage<sizeof(_Tp), std::alignment_of<_Tp>::value>
{
diff --git a/gcc-4.9/libstdc++-v3/include/std/array b/gcc-4.9/libstdc++-v3/include/std/array
index b7abeb09b..58557901a 100644
--- a/gcc-4.9/libstdc++-v3/include/std/array
+++ b/gcc-4.9/libstdc++-v3/include/std/array
@@ -50,7 +50,18 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
static constexpr _Tp*
_S_ptr(const _Type& __t, std::size_t __n) noexcept
+#if __google_stl_debug_array
+ {
+ return __n < _Nm
+ ? const_cast<_Tp*>(std::__addressof(__t[__n]))
+ : (std::__throw_out_of_range_fmt(__N("array::_S_ptr: __n "
+ "(which is %zu) >= size() "
+ "(which is %zu)"),
+ __n, _Nm), nullptr);
+ }
+#else
{ return const_cast<_Tp*>(std::__addressof(__t[__n])); }
+#endif
};
template<typename _Tp>
diff --git a/gcc-4.9/libstdc++-v3/include/std/complex b/gcc-4.9/libstdc++-v3/include/std/complex
index 3104b584e..f4fe2f35f 100644
--- a/gcc-4.9/libstdc++-v3/include/std/complex
+++ b/gcc-4.9/libstdc++-v3/include/std/complex
@@ -50,7 +50,7 @@
// <complex.h> is defined to provide only what C++11's <ccomplex> does in a
// different namespace.
#ifdef _GLIBCXX_C99_COMPLEX_H
-#error Cannot include both <complex> and C99's <complex.h>
+#error "Cannot include both <complex> and C99 <complex.h>"
#endif
namespace std _GLIBCXX_VISIBILITY(default)
@@ -147,11 +147,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// DR 387. std::complex over-encapsulated.
_GLIBCXX_ABI_TAG_CXX11
constexpr _Tp
- real() { return _M_real; }
+ real() const { return _M_real; }
_GLIBCXX_ABI_TAG_CXX11
constexpr _Tp
- imag() { return _M_imag; }
+ imag() const { return _M_imag; }
#else
/// Return real part of complex number.
_Tp&
diff --git a/gcc-4.9/libstdc++-v3/libsupc++/Makefile.in b/gcc-4.9/libstdc++-v3/libsupc++/Makefile.in
index b836f7086..eee50fa2b 100644
--- a/gcc-4.9/libstdc++-v3/libsupc++/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/libsupc++/Makefile.in
@@ -93,17 +93,18 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
libsupc___la_LIBADD =
am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \
bad_alloc.lo bad_array_length.lo bad_array_new.lo bad_cast.lo \
- bad_typeid.lo class_type_info.lo del_op.lo del_opsz.lo del_opnt.lo \
- del_opv.lo del_opvnt.lo dyncast.lo eh_alloc.lo eh_arm.lo \
- eh_aux_runtime.lo eh_call.lo eh_catch.lo eh_exception.lo \
- eh_globals.lo eh_personality.lo eh_ptr.lo eh_term_handler.lo \
- eh_terminate.lo eh_tm.lo eh_throw.lo eh_type.lo \
- eh_unex_handler.lo enum_type_info.lo function_type_info.lo \
- fundamental_type_info.lo guard.lo guard_error.lo hash_bytes.lo \
- nested_exception.lo new_handler.lo new_op.lo new_opnt.lo \
- new_opv.lo new_opvnt.lo pbase_type_info.lo pmem_type_info.lo \
- pointer_type_info.lo pure.lo si_class_type_info.lo tinfo.lo \
- tinfo2.lo vec.lo vmi_class_type_info.lo vterminate.lo
+ bad_typeid.lo class_type_info.lo del_op.lo del_opsz.lo \
+ del_opnt.lo del_opv.lo del_opvnt.lo dyncast.lo eh_alloc.lo \
+ eh_arm.lo eh_aux_runtime.lo eh_call.lo eh_catch.lo \
+ eh_exception.lo eh_globals.lo eh_personality.lo eh_ptr.lo \
+ eh_term_handler.lo eh_terminate.lo eh_tm.lo eh_throw.lo \
+ eh_type.lo eh_unex_handler.lo enum_type_info.lo \
+ function_type_info.lo fundamental_type_info.lo guard.lo \
+ guard_error.lo hash_bytes.lo nested_exception.lo \
+ new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo \
+ pbase_type_info.lo pmem_type_info.lo pointer_type_info.lo \
+ pure.lo si_class_type_info.lo tinfo.lo tinfo2.lo vec.lo \
+ vmi_class_type_info.lo vterminate.lo
@GLIBCXX_HOSTED_TRUE@am__objects_2 = cp-demangle.lo
@ENABLE_VTABLE_VERIFY_TRUE@am__objects_3 = vtv_stubs.lo
am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2) \
@@ -236,6 +237,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -298,6 +300,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/po/Makefile.in b/gcc-4.9/libstdc++-v3/po/Makefile.in
index 52f5256a6..97ccb1885 100644
--- a/gcc-4.9/libstdc++-v3/po/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/po/Makefile.in
@@ -173,6 +173,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -235,6 +236,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/python/Makefile.in b/gcc-4.9/libstdc++-v3/python/Makefile.in
index 21d74a909..6fb77e23b 100644
--- a/gcc-4.9/libstdc++-v3/python/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/python/Makefile.in
@@ -197,6 +197,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -259,6 +260,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/python/libstdcxx/v6/printers.py b/gcc-4.9/libstdc++-v3/python/libstdcxx/v6/printers.py
index 1fa08fbd5..65b8a9358 100644
--- a/gcc-4.9/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/gcc-4.9/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -443,11 +443,12 @@ class StdRbtreeIteratorPrinter:
def __init__ (self, typename, val):
self.val = val
+ valtype = self.val.type.template_argument(0).strip_typedefs()
+ nodetype = gdb.lookup_type('std::_Rb_tree_node<' + str(valtype) + '>')
+ self.link_type = nodetype.strip_typedefs().pointer()
def to_string (self):
- typename = str(self.val.type.strip_typedefs()) + '::_Link_type'
- nodetype = gdb.lookup_type(typename).strip_typedefs()
- node = self.val.cast(nodetype).dereference()
+ node = self.val['_M_node'].cast(self.link_type).dereference()
return get_value_from_Rb_tree_node(node)
class StdDebugIteratorPrinter:
diff --git a/gcc-4.9/libstdc++-v3/src/Makefile.am b/gcc-4.9/libstdc++-v3/src/Makefile.am
index 7f58ce432..e1f6956ac 100644
--- a/gcc-4.9/libstdc++-v3/src/Makefile.am
+++ b/gcc-4.9/libstdc++-v3/src/Makefile.am
@@ -25,7 +25,11 @@ include $(top_srcdir)/fragment.am
SUBDIRS = c++98 c++11
# Cross compiler support.
-toolexeclib_LTLIBRARIES = libstdc++.la
+if ENABLE_BIONIC_LIBS
+ toolexeclib_LTLIBRARIES = libgnustl_shared.la
+else
+ toolexeclib_LTLIBRARIES = libstdc++.la
+endif
vpath % $(top_srcdir)/src/c++98
vpath % $(top_srcdir)/src/c++11
@@ -54,24 +58,45 @@ cxx11_sources = \
compatibility-chrono.cc \
compatibility-condvar.cc
-libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
+if ENABLE_BIONIC_LIBS
+ libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources)
+
+ libgnustl_shared_la_LIBADD = \
+ $(GLIBCXX_LIBS) \
+ $(top_builddir)/libsupc++/libsupc++convenience.la \
+ $(top_builddir)/src/c++98/libc++98convenience.la \
+ $(top_builddir)/src/c++11/libc++11convenience.la
+
+ libgnustl_shared_la_DEPENDENCIES = \
+ ${version_dep} \
+ $(top_builddir)/libsupc++/libsupc++convenience.la \
+ $(top_builddir)/src/c++98/libc++98convenience.la \
+ $(top_builddir)/src/c++11/libc++11convenience.la
+
+ libgnustl_shared_la_LDFLAGS = \
+ ${libtool_version_info_string} ${version_arg} -lm
+
+ libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+else
+ libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
-libstdc___la_LIBADD = \
+ libstdc___la_LIBADD = \
$(GLIBCXX_LIBS) \
$(top_builddir)/libsupc++/libsupc++convenience.la \
$(top_builddir)/src/c++98/libc++98convenience.la \
$(top_builddir)/src/c++11/libc++11convenience.la
-libstdc___la_DEPENDENCIES = \
+ libstdc___la_DEPENDENCIES = \
${version_dep} \
$(top_builddir)/libsupc++/libsupc++convenience.la \
$(top_builddir)/src/c++98/libc++98convenience.la \
$(top_builddir)/src/c++11/libc++11convenience.la
-libstdc___la_LDFLAGS = \
+ libstdc___la_LDFLAGS = \
${libtool_version_info_string} ${version_arg} -lm
-libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+ libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+endif
# Use special rules for compatibility-ldbl.cc compilation, as we need to
# pass -mlong-double-64.
@@ -222,7 +247,19 @@ endif
if ENABLE_SYMVERS_SUN
version_arg = -Wl,-M,libstdc++-symbols.ver-sun
version_dep = libstdc++-symbols.ver-sun
-libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
+ if ENABLE_BIONIC_LIBS
+ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
+ $(toplevel_srcdir)/contrib/make_sunver.pl \
+ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD)
+ CXXFILT="$(CXXFILT)"; export CXXFILT; \
+ perl $(toplevel_srcdir)/contrib/make_sunver.pl \
+ libstdc++-symbols.ver \
+ $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \
+ `echo $(libgnustl_shared_la_LIBADD) | \
+ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+ > $@ || (rm -f $@ ; exit 1)
+ else
+ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
$(toplevel_srcdir)/contrib/make_sunver.pl \
$(libstdc___la_OBJECTS) $(libstdc___la_LIBADD)
CXXFILT="$(CXXFILT)"; export CXXFILT; \
@@ -232,11 +269,23 @@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
`echo $(libstdc___la_LIBADD) | \
sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
> $@ || (rm -f $@ ; exit 1)
+ endif
endif
if ENABLE_SYMVERS_DARWIN
version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
version_dep = libstdc++-symbols.explist
-libstdc++-symbols.explist : libstdc++-symbols.ver \
+ if ENABLE_BIONIC_LIBS
+ libstdc++-symbols.explist : libstdc++-symbols.ver \
+ ${glibcxx_srcdir}/scripts/make_exports.pl \
+ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD)
+ perl ${glibcxx_srcdir}/scripts/make_exports.pl \
+ libstdc++-symbols.ver \
+ $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \
+ `echo $(libgnustl_shared_la_LIBADD) | \
+ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+ > $@ || (rm -f $@ ; exit 1)
+ else
+ libstdc++-symbols.explist : libstdc++-symbols.ver \
${glibcxx_srcdir}/scripts/make_exports.pl \
$(libstdc___la_OBJECTS) $(libstdc___la_LIBADD)
perl ${glibcxx_srcdir}/scripts/make_exports.pl \
@@ -245,6 +294,7 @@ libstdc++-symbols.explist : libstdc++-symbols.ver \
`echo $(libstdc___la_LIBADD) | \
sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
> $@ || (rm -f $@ ; exit 1)
+ endif
endif
CLEANFILES += $(version_dep)
diff --git a/gcc-4.9/libstdc++-v3/src/Makefile.in b/gcc-4.9/libstdc++-v3/src/Makefile.in
index 8bac916a3..d9637d813 100644
--- a/gcc-4.9/libstdc++-v3/src/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/src/Makefile.in
@@ -95,15 +95,23 @@ am__objects_2 = compatibility.lo compatibility-debug_list.lo \
am__objects_3 = compatibility-c++0x.lo compatibility-atomic-c++0x.lo \
compatibility-thread-c++0x.lo compatibility-chrono.lo \
compatibility-condvar.lo
-am_libstdc___la_OBJECTS = $(am__objects_2) $(am__objects_3)
+@ENABLE_BIONIC_LIBS_TRUE@am_libgnustl_shared_la_OBJECTS = \
+@ENABLE_BIONIC_LIBS_TRUE@ $(am__objects_2) $(am__objects_3)
+libgnustl_shared_la_OBJECTS = $(am_libgnustl_shared_la_OBJECTS)
+@ENABLE_BIONIC_LIBS_TRUE@am_libgnustl_shared_la_rpath = -rpath \
+@ENABLE_BIONIC_LIBS_TRUE@ $(toolexeclibdir)
+@ENABLE_BIONIC_LIBS_FALSE@am_libstdc___la_OBJECTS = $(am__objects_2) \
+@ENABLE_BIONIC_LIBS_FALSE@ $(am__objects_3)
libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
+@ENABLE_BIONIC_LIBS_FALSE@am_libstdc___la_rpath = -rpath \
+@ENABLE_BIONIC_LIBS_FALSE@ $(toolexeclibdir)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp =
am__depfiles_maybe =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
-SOURCES = $(libstdc___la_SOURCES)
+SOURCES = $(libgnustl_shared_la_SOURCES) $(libstdc___la_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
@@ -224,6 +232,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -341,9 +350,10 @@ WARN_CXXFLAGS = \
# -I/-D flags to pass when compiling.
AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
SUBDIRS = c++98 c++11
+@ENABLE_BIONIC_LIBS_FALSE@toolexeclib_LTLIBRARIES = libstdc++.la
# Cross compiler support.
-toolexeclib_LTLIBRARIES = libgnustl_shared.la
+@ENABLE_BIONIC_LIBS_TRUE@toolexeclib_LTLIBRARIES = libgnustl_shared.la
@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
parallel_compat_sources = \
@@ -362,23 +372,40 @@ cxx11_sources = \
compatibility-chrono.cc \
compatibility-condvar.cc
-libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
-libstdc___la_LIBADD = \
- $(GLIBCXX_LIBS) \
- $(top_builddir)/libsupc++/libsupc++convenience.la \
- $(top_builddir)/src/c++98/libc++98convenience.la \
- $(top_builddir)/src/c++11/libc++11convenience.la
-
-libstdc___la_DEPENDENCIES = \
- ${version_dep} \
- $(top_builddir)/libsupc++/libsupc++convenience.la \
- $(top_builddir)/src/c++98/libc++98convenience.la \
- $(top_builddir)/src/c++11/libc++11convenience.la
-
-libstdc___la_LDFLAGS = \
- ${libtool_version_info_string} ${version_arg} -lm
-
-libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources)
+@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LIBADD = \
+@ENABLE_BIONIC_LIBS_TRUE@ $(GLIBCXX_LIBS) \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/libsupc++/libsupc++convenience.la \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++98/libc++98convenience.la \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++11/libc++11convenience.la
+
+@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_DEPENDENCIES = \
+@ENABLE_BIONIC_LIBS_TRUE@ ${version_dep} \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/libsupc++/libsupc++convenience.la \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++98/libc++98convenience.la \
+@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++11/libc++11convenience.la
+
+@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LDFLAGS = \
+@ENABLE_BIONIC_LIBS_TRUE@ ${libtool_version_info_string} ${version_arg} -lm
+
+@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
+@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LIBADD = \
+@ENABLE_BIONIC_LIBS_FALSE@ $(GLIBCXX_LIBS) \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/libsupc++/libsupc++convenience.la \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++98/libc++98convenience.la \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++11/libc++11convenience.la
+
+@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_DEPENDENCIES = \
+@ENABLE_BIONIC_LIBS_FALSE@ ${version_dep} \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/libsupc++/libsupc++convenience.la \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++98/libc++98convenience.la \
+@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++11/libc++11convenience.la
+
+@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LDFLAGS = \
+@ENABLE_BIONIC_LIBS_FALSE@ ${libtool_version_info_string} ${version_arg} -lm
+
+@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
# A note on compatibility and static libraries.
#
@@ -551,11 +578,10 @@ clean-toolexeclibLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
+libgnustl_shared.la: $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_DEPENDENCIES)
+ $(libgnustl_shared_la_LINK) $(am_libgnustl_shared_la_rpath) $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD) $(LIBS)
libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
- $(libstdc___la_LINK) -rpath $(toolexeclibdir) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
-
-libgnustl_shared.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
- $(libstdc___la_LINK) -rpath $(toolexeclibdir) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
+ $(libstdc___la_LINK) $(am_libstdc___la_rpath) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -891,7 +917,19 @@ compatibility-condvar.o: compatibility-condvar.cc
@ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \
@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include $(CONFIG_HEADER) - > $@ || (rm -f $@ ; exit 1)
@ENABLE_SYMVERS_TRUE@ rm -f $@.tmp
-@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ if ENABLE_BIONIC_LIBS
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD)
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ CXXFILT="$(CXXFILT)"; export CXXFILT; \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ perl $(toplevel_srcdir)/contrib/make_sunver.pl \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libgnustl_shared_la_LIBADD) | \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ else
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD)
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ CXXFILT="$(CXXFILT)"; export CXXFILT; \
@@ -901,7 +939,19 @@ compatibility-condvar.o: compatibility-condvar.cc
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libstdc___la_LIBADD) | \
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
-@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.explist : libstdc++-symbols.ver \
+@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ endif
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ if ENABLE_BIONIC_LIBS
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.explist : libstdc++-symbols.ver \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ ${glibcxx_srcdir}/scripts/make_exports.pl \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD)
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libgnustl_shared_la_LIBADD) | \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ else
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.explist : libstdc++-symbols.ver \
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ ${glibcxx_srcdir}/scripts/make_exports.pl \
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD)
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \
@@ -910,6 +960,7 @@ compatibility-condvar.o: compatibility-condvar.cc
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libstdc___la_LIBADD) | \
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
+@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ endif
# Control additional build primary rules.
all-once: libstdc++convenience.la $(STAMP_DEBUG)
diff --git a/gcc-4.9/libstdc++-v3/src/c++11/Makefile.in b/gcc-4.9/libstdc++-v3/src/c++11/Makefile.in
index d39096e42..003e7d504 100644
--- a/gcc-4.9/libstdc++-v3/src/c++11/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/src/c++11/Makefile.in
@@ -191,6 +191,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -253,6 +254,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/src/c++98/Makefile.in b/gcc-4.9/libstdc++-v3/src/c++98/Makefile.in
index cf9cda5f4..456b6ebe0 100644
--- a/gcc-4.9/libstdc++-v3/src/c++98/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/src/c++98/Makefile.in
@@ -206,6 +206,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -268,6 +269,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
diff --git a/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc b/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
index 979d7f6b5..64ecfc604 100644
--- a/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
+++ b/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
@@ -28,6 +28,6 @@ int n1 = std::get<1>(a);
int n2 = std::get<1>(std::move(a));
int n3 = std::get<1>(ca);
-// { dg-error "static assertion failed" "" { target *-*-* } 274 }
-// { dg-error "static assertion failed" "" { target *-*-* } 283 }
-// { dg-error "static assertion failed" "" { target *-*-* } 291 }
+// { dg-error "static assertion failed" "" { target *-*-* } 285 }
+// { dg-error "static assertion failed" "" { target *-*-* } 294 }
+// { dg-error "static assertion failed" "" { target *-*-* } 302 }
diff --git a/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc b/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
index f80798c91..0806ac16a 100644
--- a/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
+++ b/gcc-4.9/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
@@ -23,4 +23,4 @@
typedef std::tuple_element<1, std::array<int, 1>>::type type;
-// { dg-error "static assertion failed" "" { target *-*-* } 320 }
+// { dg-error "static assertion failed" "" { target *-*-* } 331 }
diff --git a/gcc-4.9/libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc b/gcc-4.9/libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
new file mode 100644
index 000000000..9f157d37b
--- /dev/null
+++ b/gcc-4.9/libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
@@ -0,0 +1,29 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++14" }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <complex>
+
+int main()
+{
+ constexpr std::complex<int> c{};
+ constexpr auto r __attribute__((unused)) = real(c);
+ constexpr auto i __attribute__((unused)) = imag(c);
+}
+
diff --git a/gcc-4.9/libstdc++-v3/testsuite/Makefile.in b/gcc-4.9/libstdc++-v3/testsuite/Makefile.in
index 7a923f36d..a61a5a9ac 100644
--- a/gcc-4.9/libstdc++-v3/testsuite/Makefile.in
+++ b/gcc-4.9/libstdc++-v3/testsuite/Makefile.in
@@ -173,6 +173,7 @@ SHELL = @SHELL@
STRIP = @STRIP@
SYMVER_FILE = @SYMVER_FILE@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+USE_BIONIC_LIBS = @USE_BIONIC_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTV_CXXFLAGS = @VTV_CXXFLAGS@
@@ -235,6 +236,7 @@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libtool_VERSION = @libtool_VERSION@
+libtool_version_info_string = @libtool_version_info_string@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@