From 817a788f9eb01eff367191401d48f2aaa8d4f428 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Wed, 10 Feb 2016 14:40:41 -0800 Subject: Unify ChromeOS and Android versions of GCC. This CL updates Android's GCC to match ChromeOS's GCC (with appropriate patches applied in both places to make sure no cherry-picked changes are lost). Change-Id: I390140c449b0e5df9ee78a06268319c8c510302f --- gcc-4.9/libstdc++-v3/Makefile.in | 2 + gcc-4.9/libstdc++-v3/acinclude.m4 | 26 ++++++ gcc-4.9/libstdc++-v3/configure | 88 +++++++++++++----- gcc-4.9/libstdc++-v3/configure.ac | 1 + gcc-4.9/libstdc++-v3/doc/Makefile.in | 2 + gcc-4.9/libstdc++-v3/include/Makefile.in | 2 + gcc-4.9/libstdc++-v3/include/bits/stl_tree.h | 26 ++---- .../libstdc++-v3/include/c_compatibility/complex.h | 2 +- gcc-4.9/libstdc++-v3/include/debug/array | 2 +- gcc-4.9/libstdc++-v3/include/ext/aligned_buffer.h | 41 ++++++++ gcc-4.9/libstdc++-v3/include/std/array | 11 +++ gcc-4.9/libstdc++-v3/include/std/complex | 6 +- gcc-4.9/libstdc++-v3/libsupc++/Makefile.in | 25 ++--- gcc-4.9/libstdc++-v3/po/Makefile.in | 2 + gcc-4.9/libstdc++-v3/python/Makefile.in | 2 + .../libstdc++-v3/python/libstdcxx/v6/printers.py | 7 +- gcc-4.9/libstdc++-v3/src/Makefile.am | 66 +++++++++++-- gcc-4.9/libstdc++-v3/src/Makefile.in | 103 +++++++++++++++------ gcc-4.9/libstdc++-v3/src/c++11/Makefile.in | 2 + gcc-4.9/libstdc++-v3/src/c++98/Makefile.in | 2 + .../23_containers/array/tuple_interface/get_neg.cc | 6 +- .../array/tuple_interface/tuple_element_neg.cc | 2 +- .../complex/value_operations/constexpr2.cc | 29 ++++++ gcc-4.9/libstdc++-v3/testsuite/Makefile.in | 2 + 24 files changed, 357 insertions(+), 100 deletions(-) create mode 100644 gcc-4.9/libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc (limited to 'gcc-4.9/libstdc++-v3') 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 @@ -2316,6 +2316,32 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [ GLIBCXX_CONDITIONAL(ENABLE_VTABLE_VERIFY, test $enable_vtable_verify = yes) ]) +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 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 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 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 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 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 - (const_cast(_M_node))); } + { return iterator(const_cast(_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 @@ // is defined to provide only what C++11's does in a // different namespace. #ifdef _GLIBCXX_COMPLEX -# error Cannot include both and C99's +# error "Cannot include both and C99 " #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 + 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(&_M_storage); } + + const void* + _M_addr() const noexcept + { return static_cast(&_M_storage); } + + _Tp* + _M_ptr() noexcept + { return static_cast<_Tp*>(_M_addr()); } + + const _Tp* + _M_ptr() const noexcept + { return static_cast(_M_addr()); } + }; + + // Similar to __aligned_membuf but aligned for complete objects, not members. + // This type is used in , , + // and , 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 struct __aligned_buffer : std::aligned_storage::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 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 @@ // is defined to provide only what C++11's does in a // different namespace. #ifdef _GLIBCXX_C99_COMPLEX_H -#error Cannot include both and C99's +#error "Cannot include both and C99 " #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>::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 +// . + +#include + +int main() +{ + constexpr std::complex 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@ -- cgit v1.2.3