From 25f20877a9abb2e2667c6de23094807e4d7836fd Mon Sep 17 00:00:00 2001
From: CentOS Sources
Date: Thu, 6 Aug 2020 18:30:10 +0000
Subject: [PATCH] import gcc-toolset-10-gcc-10.2.1-2.el8
---
.gcc-toolset-10-gcc.metadata | 2 +-
.gitignore | 2 +-
SOURCES/gcc10-libgfortran-compat-2.patch | 78 ++++++
SOURCES/gcc10-libstdc++-compat.patch | 268 +++++++++++++++----
SOURCES/gcc10-libstdc++-docs.patch | 4 +-
SOURCES/gcc10-pr94540.patch | 324 +++++++++++++++++++++++
SOURCES/gcc10-pr96383.patch | 236 +++++++++++++++++
SOURCES/gcc10-pr96385.patch | 22 ++
SPECS/gcc.spec | 58 +++-
9 files changed, 932 insertions(+), 62 deletions(-)
create mode 100644 SOURCES/gcc10-libgfortran-compat-2.patch
create mode 100644 SOURCES/gcc10-pr94540.patch
create mode 100644 SOURCES/gcc10-pr96383.patch
create mode 100644 SOURCES/gcc10-pr96385.patch
diff --git a/.gcc-toolset-10-gcc.metadata b/.gcc-toolset-10-gcc.metadata
index 0969674..0b7bb04 100644
--- a/.gcc-toolset-10-gcc.metadata
+++ b/.gcc-toolset-10-gcc.metadata
@@ -1,5 +1,5 @@
7f4348418dc3efefd357b32a2b5c8010211ab284 SOURCES/doxygen-1.8.0.src.tar.gz
-c2c3a9b0ec1bbf57be1f75bcf01e1e188c8dc225 SOURCES/gcc-10.1.1-20200507.tar.xz
+19a2803c35999e08af82cdbfc7e7502ad2fe7b59 SOURCES/gcc-10.2.1-20200804.tar.xz
c5a2b201bf05229647e73203c0bf2d9679d4d21f SOURCES/isl-0.16.1.tar.bz2
5ef03ca7aee134fe7dfecb6c9d048799f0810278 SOURCES/mpc-0.8.1.tar.gz
6ec33952e824e837fef0e829c93d39d6a507082f SOURCES/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
diff --git a/.gitignore b/.gitignore
index bbc233b..4e4be14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
SOURCES/doxygen-1.8.0.src.tar.gz
-SOURCES/gcc-10.1.1-20200507.tar.xz
+SOURCES/gcc-10.2.1-20200804.tar.xz
SOURCES/isl-0.16.1.tar.bz2
SOURCES/mpc-0.8.1.tar.gz
SOURCES/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
diff --git a/SOURCES/gcc10-libgfortran-compat-2.patch b/SOURCES/gcc10-libgfortran-compat-2.patch
new file mode 100644
index 0000000..29a3984
--- /dev/null
+++ b/SOURCES/gcc10-libgfortran-compat-2.patch
@@ -0,0 +1,78 @@
+diff -u libgfortran/Makefile.am libgfortran/Makefile.am
+--- libgfortran/Makefile.am 2020-05-28 13:55:44.816954223 +0200
++++ libgfortran/Makefile.am 2020-05-28 13:55:44.816954223 +0200
+@@ -1087,6 +1087,7 @@
+ nonshared-findloc0_r16.c \
+ nonshared-findloc0_c4.c \
+ nonshared-findloc0_c8.c \
++nonshared-findloc0_c10.c \
+ nonshared-findloc0_c16.c \
+ nonshared-findloc0_s1.c \
+ nonshared-findloc0_s4.c \
+@@ -1101,6 +1102,7 @@
+ nonshared-findloc1_r16.c \
+ nonshared-findloc1_c4.c \
+ nonshared-findloc1_c8.c \
++nonshared-findloc1_c10.c \
+ nonshared-findloc1_c16.c \
+ nonshared-findloc1_s1.c \
+ nonshared-findloc1_s4.c \
+diff -u libgfortran/Makefile.in libgfortran/Makefile.in
+--- libgfortran/Makefile.in 2020-05-28 14:05:15.576583891 +0200
++++ libgfortran/Makefile.in 2020-05-28 14:05:15.576583891 +0200
+@@ -475,14 +475,15 @@
+ nonshared-findloc0_i16.lo nonshared-findloc0_r4.lo \
+ nonshared-findloc0_r8.lo nonshared-findloc0_r10.lo \
+ nonshared-findloc0_r16.lo nonshared-findloc0_c4.lo \
+- nonshared-findloc0_c8.lo nonshared-findloc0_c16.lo \
+- nonshared-findloc0_s1.lo nonshared-findloc0_s4.lo \
+- nonshared-findloc1_i1.lo nonshared-findloc1_i2.lo \
+- nonshared-findloc1_i4.lo nonshared-findloc1_i8.lo \
+- nonshared-findloc1_i16.lo nonshared-findloc1_r4.lo \
+- nonshared-findloc1_r8.lo nonshared-findloc1_r10.lo \
+- nonshared-findloc1_r16.lo nonshared-findloc1_c4.lo \
+- nonshared-findloc1_c8.lo nonshared-findloc1_c16.lo \
++ nonshared-findloc0_c8.lo nonshared-findloc0_c10.lo \
++ nonshared-findloc0_c16.lo nonshared-findloc0_s1.lo \
++ nonshared-findloc0_s4.lo nonshared-findloc1_i1.lo \
++ nonshared-findloc1_i2.lo nonshared-findloc1_i4.lo \
++ nonshared-findloc1_i8.lo nonshared-findloc1_i16.lo \
++ nonshared-findloc1_r4.lo nonshared-findloc1_r8.lo \
++ nonshared-findloc1_r10.lo nonshared-findloc1_r16.lo \
++ nonshared-findloc1_c4.lo nonshared-findloc1_c8.lo \
++ nonshared-findloc1_c10.lo nonshared-findloc1_c16.lo \
+ nonshared-findloc1_s1.lo nonshared-findloc1_s4.lo \
+ nonshared-findloc2_s1.lo nonshared-findloc2_s4.lo
+ am__objects_68 = nonshared-is_contiguous.lo \
+@@ -1597,6 +1598,7 @@
+ nonshared-findloc0_r16.c \
+ nonshared-findloc0_c4.c \
+ nonshared-findloc0_c8.c \
++nonshared-findloc0_c10.c \
+ nonshared-findloc0_c16.c \
+ nonshared-findloc0_s1.c \
+ nonshared-findloc0_s4.c \
+@@ -1611,6 +1613,7 @@
+ nonshared-findloc1_r16.c \
+ nonshared-findloc1_c4.c \
+ nonshared-findloc1_c8.c \
++nonshared-findloc1_c10.c \
+ nonshared-findloc1_c16.c \
+ nonshared-findloc1_s1.c \
+ nonshared-findloc1_s4.c \
+@@ -2214,6 +2217,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mvbits.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-ISO_Fortran_binding.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-error.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c10.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c16.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c4.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_c8.Plo@am__quote@
+@@ -2228,6 +2232,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_r8.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_s1.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc0_s4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c10.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c16.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c4.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-findloc1_c8.Plo@am__quote@
diff --git a/SOURCES/gcc10-libstdc++-compat.patch b/SOURCES/gcc10-libstdc++-compat.patch
index 8eb01b8..aed95ac 100644
--- a/SOURCES/gcc10-libstdc++-compat.patch
+++ b/SOURCES/gcc10-libstdc++-compat.patch
@@ -4605,7 +4605,7 @@
+asm (".hidden _ZNSt10unique_ptrINSt13__future_base13_State_baseV211_Make_readyESt14default_deleteIS2_EED2Ev");
--- libstdc++-v3/src/nonshared11/cxx11-ios_failure.cc.jj 2020-05-27 15:11:04.982304585 +0200
+++ libstdc++-v3/src/nonshared11/cxx11-ios_failure.cc 2020-05-27 16:55:19.274490989 +0200
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,41 @@
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -4642,8 +4642,6 @@
+asm (".hidden _ZTSSt19__iosfail_type_info");
+asm (".hidden _ZTVSt13__ios_failure");
+asm (".hidden _ZTVSt19__iosfail_type_info");
-+asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
-+asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
+#ifndef _GLIBCXX_NONSHARED_CXX11_80
+asm (".hidden _ZSt19__throw_ios_failurePKc");
+asm (".hidden _ZNSt12system_errorC1ESt10error_codePKc");
@@ -6434,7 +6432,7 @@
+asm (".hidden _ZNSt13__future_base7_ResultIvE10_M_destroyEv");
--- libstdc++-v3/src/nonshared11/locale-inst.cc.jj 2020-05-27 15:11:04.987304511 +0200
+++ libstdc++-v3/src/nonshared11/locale-inst.cc 2020-05-27 16:15:13.606039784 +0200
-@@ -0,0 +1,91 @@
+@@ -0,0 +1,95 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1999-2020 Free Software Foundation, Inc.
@@ -6510,6 +6508,11 @@
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
+
++#ifdef _GLIBCXX_NONSHARED_CXX11_80
++#ifdef C_is_char
++asm (".hidden _ZNKSt5ctypeIcE8do_widenEc");
++#endif
++#endif
+#ifndef _GLIBCXX_NONSHARED_CXX11_80
+#ifdef C_is_char
+#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__))
@@ -6525,7 +6528,6 @@
+#endif
+#endif
+#endif
-+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc");
--- libstdc++-v3/src/nonshared11/cow-wstring-inst44.cc.jj 2020-05-27 15:11:04.981304600 +0200
+++ libstdc++-v3/src/nonshared11/cow-wstring-inst44.cc 2020-05-27 15:11:04.981304600 +0200
@@ -0,0 +1,35 @@
@@ -7047,7 +7049,7 @@
+#include "random.cc"
--- libstdc++-v3/src/nonshared11/string-io-inst.cc.jj 2020-05-27 15:11:04.992304436 +0200
+++ libstdc++-v3/src/nonshared11/string-io-inst.cc 2020-05-27 16:15:33.171751943 +0200
-@@ -0,0 +1,56 @@
+@@ -0,0 +1,55 @@
+// SSO string instantiations for I/O -*- C++ -*-
+
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
@@ -7103,7 +7105,6 @@
+ I& getline(I&, S&);
+}
+
-+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc");
--- libstdc++-v3/src/nonshared11/cow-shim_facets.cc.jj 2020-05-27 15:11:04.977304660 +0200
+++ libstdc++-v3/src/nonshared11/cow-shim_facets.cc 2020-05-27 15:11:04.977304660 +0200
@@ -0,0 +1,181 @@
@@ -9445,7 +9446,7 @@
+asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED2Ev");
--- libstdc++-v3/src/nonshared11/cxx11-locale-inst.cc.jj 2020-05-27 15:11:04.982304585 +0200
+++ libstdc++-v3/src/nonshared11/cxx11-locale-inst.cc 2020-05-27 16:14:22.599790461 +0200
-@@ -0,0 +1,48 @@
+@@ -0,0 +1,47 @@
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9493,7 +9494,6 @@
+asm (".hidden _ZTSSt10money_base");
+asm (".hidden _ZTSSt13messages_base");
+asm (".hidden _ZTSSt9time_base");
-+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc");
--- libstdc++-v3/src/nonshared11/random.cc.jj 2020-05-27 15:11:04.990304466 +0200
+++ libstdc++-v3/src/nonshared11/random.cc 2020-05-27 17:09:24.180955497 +0200
@@ -0,0 +1,27 @@
@@ -9623,7 +9623,7 @@
} // namespace
--- libstdc++-v3/src/nonshared17/cow-fs_ops.cc.jj 2020-05-27 15:11:04.993304421 +0200
+++ libstdc++-v3/src/nonshared17/cow-fs_ops.cc 2020-05-27 16:17:24.072120461 +0200
-@@ -0,0 +1,47 @@
+@@ -0,0 +1,79 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9655,25 +9655,57 @@
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_");
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_");
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE12emplace_backIIS1_EEERS1_DpOT_");
++asm (".hidden _ZNSs4swapERSs");
+#endif
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EED1Ev");
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EED2Ev");
-+#ifdef __x86_64__
-+asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEm");
++#ifdef __i386__
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEj");
++asm (".hidden _ZNSs6resizeEjc");
++asm (".hidden _ZNSs9_M_mutateEjjj");
++#endif
++#ifndef __i386__
+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_m");
-+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEmb");
-+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE23_M_new_elements_at_backEm");
-+asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE24_M_new_elements_at_frontEm");
++asm (".hidden _ZNSs6resizeEmc");
+#endif
+asm (".hidden _ZNSt10filesystem4pathaSEOS0_");
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev");
+asm (".hidden _ZSt14__copy_move_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_");
+asm (".hidden _ZSt23__copy_move_backward_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_");
+asm (".hidden _ZSt8_DestroyISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_EEvT_S6_");
++#if defined(__aarch64__) || defined(__x86_64__) || defined(__powerpc64__)
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEm");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEmb");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE23_M_new_elements_at_backEm");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE24_M_new_elements_at_frontEm");
++asm (".hidden _ZNSs9_M_mutateEmmm");
++#endif
++#if defined(__aarch64__) || defined(__s390x__) || defined(__powerpc64__)
++asm (".hidden _ZSt4copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_");
++#endif
++#ifdef __s390x__
++asm (".hidden _ZNSt10filesystemdvERKNS_4pathES2_");
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EEC1Ev");
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EEC2Ev");
++asm (".hidden _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_");
++asm (".hidden _ZNSt10filesystem4pathC1ERKS0_");
++asm (".hidden _ZNSt10filesystem4pathC2ERKS0_");
++asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_");
++#endif
++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");
++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev");
++asm (".hidden _ZNSsC1EPKcRKSaIcE");
++asm (".hidden _ZNSsC2EPKcRKSaIcE");
++asm (".hidden _ZNKSt10filesystem4path8filenameEv");
++asm (".hidden _ZNSt10filesystem4pathD2Ev");
++#ifdef __i386__
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_j");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEjb");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE23_M_new_elements_at_backEj");
++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE24_M_new_elements_at_frontEj");
++#endif
--- libstdc++-v3/src/nonshared17/cow-fs_path.cc.jj 2020-05-27 15:11:04.994304406 +0200
+++ libstdc++-v3/src/nonshared17/cow-fs_path.cc 2020-05-27 16:18:15.273367217 +0200
-@@ -0,0 +1,81 @@
+@@ -0,0 +1,130 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9740,14 +9772,31 @@
+asm (".hidden _ZNSt10filesystem16filesystem_error5_Impl9make_whatESt17basic_string_viewIcSt11char_traitsIcEEPKNS_4pathES8_");
+asm (".hidden _ZNSt10filesystem4pathaSIA2_cEERNSt9enable_ifIXsrSt6__and_IISt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES0_EES5_ISt7is_voidINSt14remove_pointerIS8_E4typeEEENS_8__detail20__constructible_fromIS8_vEEEE5valueES0_E4typeERKS8_");
+asm (".hidden _ZNSt10filesystem4pathaSIA2_cEERNSt9enable_ifIXsrSt6__and_IJSt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES0_EES5_ISt7is_voidINSt14remove_pointerIS8_E4typeEEENS_8__detail20__constructible_fromIS8_vEEEE5valueES0_E4typeERKS8_");
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev");
+asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKSs");
+asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKSs");
+asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EEEED1Ev");
+asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EEEED2Ev");
-+#if !defined (__i386__) && !defined (__s390x__)
++#if !defined(__i386__) && !defined(__s390x__)
+asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RmT3_");
++asm (".hidden _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RmT3_");
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm");
++asm (".hidden _ZNSsC1ERKSsmm");
++asm (".hidden _ZNSsC2ERKSsmm");
++#endif
++#ifdef __i386__
++asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RjT3_");
++asm (".hidden _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RjT3_");
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw");
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj");
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj");
++asm (".hidden _ZNSs6insertEjPKcj");
++asm (".hidden _ZNSs6resizeEjc");
++asm (".hidden _ZNSs7reserveEj");
++asm (".hidden _ZNSs9_M_mutateEjjj");
++asm (".hidden _ZNSsC1ERKSsjj");
++asm (".hidden _ZNSsC2ERKSsjj");
++asm (".hidden _ZSt10__mismatchINSt10filesystem4path8iteratorES2_N9__gnu_cxx5__ops19_Iter_equal_to_iterEESt4pairIT_T0_ES7_S7_S8_S8_T1_");
++asm (".hidden _ZSt10__mismatchINSt10filesystem7__cxx114path8iteratorES3_N9__gnu_cxx5__ops19_Iter_equal_to_iterEESt4pairIT_T0_ES8_S8_S9_S9_T1_");
+#endif
+asm (".hidden _ZTIZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_E5_UCvt");
+asm (".hidden _ZTSZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_E5_UCvt");
@@ -9755,9 +9804,41 @@
+asm (".hidden _ZZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_EN5_UCvtD0Ev");
+asm (".hidden _ZZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_EN5_UCvtD1Ev");
+asm (".hidden _ZZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_EN5_UCvtD2Ev");
++asm (".hidden _ZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_");
++asm (".hidden _ZNSt10filesystem4path5_List5beginEv");
++asm (".hidden _ZNSt10filesystem4path7_Parser4nextEv");
++asm (".hidden _ZNSt10filesystem4pathD1Ev");
++asm (".hidden _ZNSt10filesystem4pathD2Ev");
++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");
++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev");
++asm (".hidden _ZNSs6appendERKSs");
++#ifndef __i386__
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw");
++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm");
++asm (".hidden _ZNSs6insertEmPKcm");
++asm (".hidden _ZNSs6resizeEmc");
++asm (".hidden _ZNSs7reserveEm");
++asm (".hidden _ZNSs9_M_mutateEmmm");
++#endif
++#ifndef __s390x__
++asm (".hidden _ZNSsC1ERKSs");
++asm (".hidden _ZNSsC2ERKSs");
++#endif
++#if defined(__powerpc64__) || defined(__aarch64__)
++asm (".hidden _ZNSs4swapERSs");
++#endif
++#ifdef __s390x__
++asm (".hidden _ZNSt10filesystem4pathaSISt17basic_string_viewIcSt11char_traitsIcEEEERNSt9enable_ifIXsrSt6__and_IISt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES0_EES8_ISt7is_voidINSt14remove_pointerISB_E4typeEEENS_8__detail20__constructible_fromISB_vEEEE5valueES0_E4typeERKSB_");
++asm (".hidden _ZNSt10filesystem4pathaSISt17basic_string_viewIcSt11char_traitsIcEEEERNSt9enable_ifIXsrSt6__and_IJSt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES0_EES8_ISt7is_voidINSt14remove_pointerISB_E4typeEEENS_8__detail20__constructible_fromISB_vEEEE5valueES0_E4typeERKSB_");
++asm (".hidden _ZNKSt10filesystem4path5_List5_Impl4copyEv");
++asm (".hidden _ZNSt10filesystem4pathC1ERKS0_");
++asm (".hidden _ZNSt10filesystem4pathC2ERKS0_");
++asm (".hidden _ZNSt10filesystem4pathC1ESt17basic_string_viewIcSt11char_traitsIcEENS0_5_TypeE");
++asm (".hidden _ZNSt10filesystem4pathC2ESt17basic_string_viewIcSt11char_traitsIcEENS0_5_TypeE");
++#endif
--- libstdc++-v3/src/nonshared17/memory_resource.cc.jj 2020-05-27 15:11:04.996304376 +0200
+++ libstdc++-v3/src/nonshared17/memory_resource.cc 2020-05-27 16:21:24.634581462 +0200
-@@ -0,0 +1,56 @@
+@@ -0,0 +1,71 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9800,12 +9881,14 @@
+asm (".hidden _ZTSNSt3pmr28unsynchronized_pool_resourceE");
+asm (".hidden _ZTVNSt3pmr26synchronized_pool_resourceE");
+asm (".hidden _ZTVNSt3pmr28unsynchronized_pool_resourceE");
-+#ifdef __x86_64__
-+asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvmm");
-+asm (".hidden _ZNSt3pmr15__pool_resource8allocateEmm");
-+asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEm");
-+asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIIRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
-+asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIJRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
++#ifdef __i386__
++asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvjj");
++asm (".hidden _ZNSt3pmr15__pool_resource8allocateEjj");
++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource11do_allocateEjj");
++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource13do_deallocateEPvjj");
++asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEj");
++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIIRjS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIJRjS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
+#endif
+asm (".hidden _ZNKSt3pmr25monotonic_buffer_resource11do_is_equalERKNS_15memory_resourceE");
+asm (".hidden _ZNSt3pmr15__pool_resource5_Pool12try_allocateEv");
@@ -9813,10 +9896,23 @@
+#ifndef __i386__
+asm (".hidden _ZNSt3pmr25monotonic_buffer_resource11do_allocateEmm");
+asm (".hidden _ZNSt3pmr25monotonic_buffer_resource13do_deallocateEPvmm");
++asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvmm");
++asm (".hidden _ZNSt3pmr15__pool_resource8allocateEmm");
++asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEm");
++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIIRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIJRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_");
+#endif
++asm (".hidden _ZNSt22__shared_mutex_pthread6unlockEv");
++asm (".hidden _ZNSt3pmr15__pool_resource5_Pool10deallocateEPNS_15memory_resourceEPv");
++asm (".hidden _ZNSt3pmr15__pool_resource5_Pool6vectorD1Ev");
++asm (".hidden _ZNSt3pmr15__pool_resource5_Pool6vectorD2Ev");
++asm (".hidden _ZNSt3pmr15__pool_resource5_PoolD1Ev");
++asm (".hidden _ZNSt3pmr15__pool_resource5_PoolD2Ev");
++asm (".hidden _ZNSt3pmr26synchronized_pool_resource7_TPoolsC1ERS0_RSt10lock_guardISt12shared_mutexE");
++asm (".hidden _ZNSt3pmr26synchronized_pool_resource7_TPoolsC2ERS0_RSt10lock_guardISt12shared_mutexE");
--- libstdc++-v3/src/nonshared17/fs_dir.cc.jj 2020-05-27 15:11:04.994304406 +0200
+++ libstdc++-v3/src/nonshared17/fs_dir.cc 2020-05-27 16:19:06.255617202 +0200
-@@ -0,0 +1,87 @@
+@@ -0,0 +1,92 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9887,6 +9983,10 @@
+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EED2Ev");
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_");
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv");
++#if !defined (__s390x__) && !defined (__i386__)
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb");
++#endif
+asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE");
@@ -9899,14 +9999,15 @@
+asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag");
-+#ifdef __x86_64__
-+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb");
++#ifdef __i386__
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEjb");
+#endif
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev");
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev");
++asm (".hidden _ZSt20__replacement_assertPKciS0_S0_");
--- libstdc++-v3/src/nonshared17/fs_path80.cc.jj 2020-05-27 15:11:04.994304406 +0200
+++ libstdc++-v3/src/nonshared17/fs_path80.cc 2020-05-27 15:11:04.994304406 +0200
-@@ -0,0 +1,24 @@
+@@ -0,0 +1,36 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -9931,9 +10032,21 @@
+
+#define _GLIBCXX_NONSHARED_CXX17_80
+#include "fs_path.cc"
++#ifdef __s390x__
++asm (".hidden _ZNSt10filesystem7__cxx114path4_CvtIwE10_S_convertEPKwS5_");
++#endif
++#ifdef __i386__
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj");
++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw");
++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj");
++#endif
--- libstdc++-v3/src/nonshared17/cow-fs_dir.cc.jj 2020-05-27 15:11:04.993304421 +0200
+++ libstdc++-v3/src/nonshared17/cow-fs_dir.cc 2020-05-27 16:16:29.824918505 +0200
-@@ -0,0 +1,85 @@
+@@ -0,0 +1,96 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -10014,11 +10127,22 @@
+asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag");
-+#ifdef __x86_64__
++#if defined(__aarch64__) || defined(__x86_64__) || defined(__powerpc64__)
+asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEmb");
+#endif
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");
-+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev");
++#ifdef __i386__
++asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEjb");
++#endif
++asm (".hidden _ZNSt10filesystem4pathD2Ev");
++#if !defined(__s390x__) && !defined(__aarch64__) && !defined(__powerpc64__)
++asm (".hidden _ZNSs4swapERSs");
++#endif
++asm (".hidden _ZNSsC1EPKcRKSaIcE");
++asm (".hidden _ZNSsC2EPKcRKSaIcE");
++#ifdef __s390x__
++asm (".hidden _ZNSt10filesystem4pathC1ERKS0_");
++asm (".hidden _ZNSt10filesystem4pathC2ERKS0_");
++#endif
--- libstdc++-v3/src/nonshared17/Makefile.am.jj 2020-05-27 15:11:04.995304391 +0200
+++ libstdc++-v3/src/nonshared17/Makefile.am 2020-05-27 15:11:04.995304391 +0200
@@ -0,0 +1,130 @@
@@ -10154,7 +10278,7 @@
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
--- libstdc++-v3/src/nonshared17/fs_path.cc.jj 2020-05-27 15:11:04.995304391 +0200
+++ libstdc++-v3/src/nonshared17/fs_path.cc 2020-05-27 16:20:43.631184679 +0200
-@@ -0,0 +1,80 @@
+@@ -0,0 +1,99 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -10192,6 +10316,8 @@
+asm (".hidden _ZNSt10filesystem7__cxx114path5_ListaSERKS2_");
+asm (".hidden _ZNSt10filesystem7__cxx114path5_ListC2ERKS2_");
+asm (".hidden _ZNSt10filesystem7__cxx114path5_ListC2Ev");
++asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv");
++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv");
+asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE4swapERS7_");
+asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE5resetEv");
+asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEaSEOS7_");
@@ -10225,8 +10351,6 @@
+asm (".hidden _ZNSt10filesystem7__cxx114pathaSIA2_cEERNSt9enable_ifIXsrSt6__and_IJSt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES1_EES6_ISt7is_voidINSt14remove_pointerIS9_E4typeEEENS0_8__detail20__constructible_fromIS9_vEEEE5valueES1_E4typeERKS9_");
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev");
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev");
-+asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
-+asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
+asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS4_ELN9__gnu_cxx12_Lock_policyE2EEEED1Ev");
+asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS4_ELN9__gnu_cxx12_Lock_policyE2EEEED2Ev");
+asm (".hidden _ZTIZNSt10filesystem7__cxx114path4_CvtIwE10_S_convertEPKwS5_E5_UCvt");
@@ -10235,6 +10359,25 @@
+asm (".hidden _ZZNSt10filesystem7__cxx114path4_CvtIwE10_S_convertEPKwS5_EN5_UCvtD0Ev");
+asm (".hidden _ZZNSt10filesystem7__cxx114path4_CvtIwE10_S_convertEPKwS5_EN5_UCvtD1Ev");
+asm (".hidden _ZZNSt10filesystem7__cxx114path4_CvtIwE10_S_convertEPKwS5_EN5_UCvtD2Ev");
++asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv");
++asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
++asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
++#ifndef __i386__
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm");
++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEmw");
++#endif
++#ifndef __s390x__
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_");
++#endif
++#if !defined(__s390x__) && !defined(__i386__)
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm");
++#endif
++#if defined(__aarch64__) || defined(__x86_64__)
++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm");
++#endif
--- libstdc++-v3/src/nonshared17/cow-string-inst.cc.jj 2020-05-27 15:11:04.994304406 +0200
+++ libstdc++-v3/src/nonshared17/cow-string-inst.cc 2020-05-27 15:11:04.994304406 +0200
@@ -0,0 +1,23 @@
@@ -11054,7 +11197,7 @@
+.NOEXPORT:
--- libstdc++-v3/src/nonshared17/fs_ops.cc.jj 2020-05-27 15:11:04.994304406 +0200
+++ libstdc++-v3/src/nonshared17/fs_ops.cc 2020-05-27 16:19:44.854049374 +0200
-@@ -0,0 +1,55 @@
+@@ -0,0 +1,80 @@
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
@@ -11088,28 +11231,53 @@
+#ifndef __s390x__
+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE16_M_push_back_auxIIRKS2_EEEvDpOT_");
+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE16_M_push_back_auxIJRKS2_EEEvDpOT_");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_");
+#endif
+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EED1Ev");
+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EED2Ev");
+asm (".hidden _ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE");
+asm (".hidden _ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE");
+asm (".hidden _ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE");
-+#ifdef __x86_64__
-+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE17_M_reallocate_mapEmb");
-+asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodem");
-+asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem");
-+asm (".hidden _ZNSt10filesystem8do_spaceEPKcRmS2_S2_RSt10error_code");
-+asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EE17_M_initialize_mapEm");
-+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE13_M_insert_auxINS2_8iteratorEEEvSt15_Deque_iteratorIS2_RS2_PS2_ET_SB_m");
-+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE23_M_new_elements_at_backEm");
-+asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE24_M_new_elements_at_frontEm");
-+#endif
+asm (".hidden _ZNKSt10filesystem7__cxx114path8filenameEv");
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev");
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev");
+asm (".hidden _ZSt14__copy_move_a1ILb1EPNSt10filesystem7__cxx114pathES2_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS7_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSD_PSD_EE6__typeES7_S7_SG_");
+asm (".hidden _ZSt23__copy_move_backward_a1ILb1EPNSt10filesystem7__cxx114pathES2_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS7_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSD_PSD_EE6__typeES7_S7_SG_");
+asm (".hidden _ZSt8_DestroyISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_EEvT_S7_");
++#if defined(__aarch64__) || defined(__x86_64__) || defined(__powerpc64__)
++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodem");
++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem");
++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem");
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EE17_M_initialize_mapEm");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE17_M_reallocate_mapEmb");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE23_M_new_elements_at_backEm");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE24_M_new_elements_at_frontEm");
++#endif
++#if !defined(__i386__)
++asm (".hidden _ZNSt10filesystem8do_spaceEPKcRmS2_S2_RSt10error_code");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE13_M_insert_auxINS2_8iteratorEEEvSt15_Deque_iteratorIS2_RS2_PS2_ET_SB_m");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc");
++#endif
++#if defined(__i386__)
++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodej");
++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodej");
++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc");
++asm (".hidden _ZNSt10filesystem8do_spaceEPKcRyS2_S2_RSt10error_code");
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EE17_M_initialize_mapEj");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE23_M_new_elements_at_backEj");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE24_M_new_elements_at_frontEj");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE13_M_insert_auxINS2_8iteratorEEEvSt15_Deque_iteratorIS2_RS2_PS2_ET_SB_j");
++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE17_M_reallocate_mapEjb");
++#endif
++#if defined(__aarch64__) || defined(__s390x__) || defined(__powerpc64__)
++asm (".hidden _ZSt4copyINSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET0_T_S9_S8_");
++#endif
++#ifdef __s390x__
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EEC1Ev");
++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EEC2Ev");
++asm (".hidden _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_ES6_ET0_T_S8_S7_");
++asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_ES6_ET0_T_S8_S7_");
++#endif
--- libstdc++-v3/src/nonshared17/ostream-inst.cc.jj 2020-05-27 15:11:04.996304376 +0200
+++ libstdc++-v3/src/nonshared17/ostream-inst.cc 2020-05-27 15:11:04.996304376 +0200
@@ -0,0 +1,23 @@
diff --git a/SOURCES/gcc10-libstdc++-docs.patch b/SOURCES/gcc10-libstdc++-docs.patch
index cf881d8..d51b6d3 100644
--- a/SOURCES/gcc10-libstdc++-docs.patch
+++ b/SOURCES/gcc10-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 10.1.1
++ Release 10.2.1
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@@ -17,7 +17,7 @@
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 10.1.1 release,
++ for the 10.2.1 release,
+ online
for each GCC release
and
diff --git a/SOURCES/gcc10-pr94540.patch b/SOURCES/gcc10-pr94540.patch
new file mode 100644
index 0000000..346a00f
--- /dev/null
+++ b/SOURCES/gcc10-pr94540.patch
@@ -0,0 +1,324 @@
+commit 632183ddcc8f3aead8b4fc63c4ab59a42ef9ad00
+Author: Jonathan Wakely
+Date: Wed Jun 17 22:49:06 2020 +0100
+
+ libstdc++: Avoid stack overflow in std::vector (PR 94540)
+
+ The std::__uninitialized_default_n algorithm used by std::vector creates
+ an initial object as a local variable then copies that into the
+ destination range. If the object is too large for the stack this
+ crashes. We should create the first object directly into the
+ destination and then copy it from there.
+
+ This doesn't fix the bug for C++98, because in that case the initial
+ value is created as a default argument of the vector constructor i.e. in
+ the user's code, not inside libstdc++. We can't prevent that.
+
+ PR libstdc++/94540
+ * include/bits/stl_uninitialized.h (__uninitialized_default_1):
+ Construct the first value at *__first instead of on the stack.
+ (__uninitialized_default_n_1): Likewise.
+ Improve comments on several of the non-standard algorithms.
+ * testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
+ New test.
+ * testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
+ New test.
+ * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
+ New test.
+ * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
+ New test.
+ * testsuite/23_containers/vector/cons/94540.cc: New test.
+
+--- libstdc++-v3/include/bits/stl_uninitialized.h
++++ libstdc++-v3/include/bits/stl_uninitialized.h
+@@ -556,7 +556,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType;
+
+- std::fill(__first, __last, _ValueType());
++ if (__first == __last)
++ return;
++
++ typename iterator_traits<_ForwardIterator>::value_type* __val
++ = std::__addressof(*__first);
++ std::_Construct(__val);
++ if (++__first != __last)
++ std::fill(__first, __last, *__val);
+ }
+ };
+
+@@ -589,16 +596,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ static _ForwardIterator
+ __uninit_default_n(_ForwardIterator __first, _Size __n)
+ {
+- typedef typename iterator_traits<_ForwardIterator>::value_type
+- _ValueType;
+-
+- return std::fill_n(__first, __n, _ValueType());
++ if (__n > 0)
++ {
++ typename iterator_traits<_ForwardIterator>::value_type* __val
++ = std::__addressof(*__first);
++ std::_Construct(__val);
++ ++__first;
++ __first = std::fill_n(__first, __n - 1, *__val);
++ }
++ return __first;
+ }
+ };
+
+ // __uninitialized_default
+- // Fills [first, last) with std::distance(first, last) default
+- // constructed value_types(s).
++ // Fills [first, last) with value-initialized value_types.
+ template
+ inline void
+ __uninitialized_default(_ForwardIterator __first,
+@@ -615,7 +626,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ }
+
+ // __uninitialized_default_n
+- // Fills [first, first + n) with n default constructed value_type(s).
++ // Fills [first, first + n) with value-initialized value_types.
+ template
+ inline _ForwardIterator
+ __uninitialized_default_n(_ForwardIterator __first, _Size __n)
+@@ -633,8 +644,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+
+ // __uninitialized_default_a
+- // Fills [first, last) with std::distance(first, last) default
+- // constructed value_types(s), constructed with the allocator alloc.
++ // Fills [first, last) with value_types constructed by the allocator
++ // alloc, with no arguments passed to the construct call.
+ template
+ void
+ __uninitialized_default_a(_ForwardIterator __first,
+@@ -664,8 +675,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+
+ // __uninitialized_default_n_a
+- // Fills [first, first + n) with n default constructed value_types(s),
+- // constructed with the allocator alloc.
++ // Fills [first, first + n) with value_types constructed by the allocator
++ // alloc, with no arguments passed to the construct call.
+ template
+ _ForwardIterator
+ __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
+@@ -686,6 +697,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ }
+ }
+
++ // __uninitialized_default_n_a specialization for std::allocator,
++ // which ignores the allocator and value-initializes the elements.
+ template
+ inline _ForwardIterator
+ __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
+@@ -757,8 +770,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ };
+
+ // __uninitialized_default_novalue
+- // Fills [first, last) with std::distance(first, last) default-initialized
+- // value_types(s).
++ // Fills [first, last) with default-initialized value_types.
+ template
+ inline void
+ __uninitialized_default_novalue(_ForwardIterator __first,
+@@ -772,8 +784,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ __uninit_default_novalue(__first, __last);
+ }
+
+- // __uninitialized_default_n
+- // Fills [first, first + n) with n default-initialized value_type(s).
++ // __uninitialized_default_novalue_n
++ // Fills [first, first + n) with default-initialized value_types.
+ template
+ inline _ForwardIterator
+ __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n)
+--- /dev/null
++++ libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
+@@ -0,0 +1,34 @@
++// Copyright (C) 2020 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
++// .
++
++// { dg-do run { target { c++11 && { ! simulator } } } }
++
++#include
++#include
++
++// Assume that 9MB is larger than the stack limit.
++struct X { char data[9*1024*1024]; };
++
++static_assert( std::is_trivial::value, "" );
++
++int main()
++{
++ auto mem = new char[sizeof(X) * 2];
++ auto p = reinterpret_cast(mem);
++ std::__uninitialized_default(p, p + 2);
++ delete[] mem;
++}
+--- /dev/null
++++ libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
+@@ -0,0 +1,34 @@
++// Copyright (C) 2020 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
++// .
++
++// { dg-do run { target { c++11 && { ! simulator } } } }
++
++#include
++#include
++
++// Assume that 9MB is larger than the stack limit.
++struct X { char data[9*1024*1024]; };
++
++static_assert( std::is_trivial::value, "" );
++
++int main()
++{
++ auto mem = new char[sizeof(X) * 2];
++ auto p = reinterpret_cast(mem);
++ std::__uninitialized_default_n(p, 2);
++ delete[] mem;
++}
+--- /dev/null
++++ libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
+@@ -0,0 +1,35 @@
++// Copyright (C) 2020 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
++// .
++
++// { dg-options "-std=gnu++17" }
++// { dg-do run { target { c++17 && { ! simulator } } } }
++
++#include
++#include
++
++// Assume that 9MB is larger than the stack limit.
++struct X { char data[9*1024*1024]; };
++
++static_assert( std::is_trivial_v );
++
++int main()
++{
++ auto mem = new char[sizeof(X) * 2];
++ auto p = reinterpret_cast(mem);
++ std::uninitialized_value_construct(p, p + 2);
++ delete[] mem;
++}
+--- /dev/null
++++ libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
+@@ -0,0 +1,34 @@
++// Copyright (C) 2020 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
++// .
++
++// { dg-options "-std=gnu++17" }
++// { dg-do run { target { c++17 && { ! simulator } } } }
++
++#include
++#include
++
++// Assume that 9MB is larger than the stack limit.
++struct X { char data[9*1024*1024]; };
++
++static_assert( std::is_trivial_v );
++
++int main()
++{
++ auto mem = new char[sizeof(X) * 2];
++ std::uninitialized_value_construct_n(reinterpret_cast(mem), 2);
++ delete[] mem;
++}
+--- /dev/null
++++ libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
+@@ -0,0 +1,35 @@
++// Copyright (C) 2020 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
++// .
++
++// { dg-do run { target { c++11 && { ! simulator } } } }
++
++#include
++#include
++
++// Assume that 9MB is larger than the stack limit.
++struct X { char data[9*1024*1024]; };
++
++static_assert( std::is_trivial::value, "" );
++
++int main()
++{
++ std::vector v(1);
++ VERIFY( v.size() == 1 );
++ v.clear();
++ v.resize(2);
++ VERIFY( v.size() == 2 );
++}
diff --git a/SOURCES/gcc10-pr96383.patch b/SOURCES/gcc10-pr96383.patch
new file mode 100644
index 0000000..950a2f4
--- /dev/null
+++ b/SOURCES/gcc10-pr96383.patch
@@ -0,0 +1,236 @@
+2020-07-30 Richard Biener
+
+ PR debug/96383
+ * langhooks-def.h (lhd_finalize_early_debug): Declare.
+ (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
+ (LANG_HOOKS_INITIALIZER): Amend.
+ * langhooks.c: Include cgraph.h and debug.h.
+ (lhd_finalize_early_debug): Default implementation from
+ former code in finalize_compilation_unit.
+ * langhooks.h (lang_hooks::finalize_early_debug): Add.
+ * cgraphunit.c (symbol_table::finalize_compilation_unit):
+ Call the finalize_early_debug langhook.
+
+gcc/c-family/
+ * c-common.h (c_common_finalize_early_debug): Declare.
+ * c-common.c: Include debug.h.
+ (c_common_finalize_early_debug): finalize_early_debug langhook
+ implementation generating debug for extern declarations.
+
+gcc/c/
+ * c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
+ Define to c_common_finalize_early_debug.
+
+gcc/cp/
+ * cp-objcp-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
+ Define to c_common_finalize_early_debug.
+
+gcc/testsuite/
+ * gcc.dg/debug/dwarf2/pr96383-1.c: New testcase.
+ * gcc.dg/debug/dwarf2/pr96383-2.c: Likewise.
+
+libstdc++-v3/
+ * testsuite/20_util/assume_aligned/3.cc: Use -g0.
+
+--- gcc/c-family/c-common.c
++++ gcc/c-family/c-common.c
+@@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
+ #include "spellcheck.h"
+ #include "c-spellcheck.h"
+ #include "selftest.h"
++#include "debug.h"
+
+ cpp_reader *parse_in; /* Declared in c-pragma.h. */
+
+@@ -9086,4 +9087,20 @@ braced_lists_to_strings (tree type, tree ctor)
+ return braced_lists_to_strings (type, ctor, false);
+ }
+
++
++/* Emit debug for functions before finalizing early debug. */
++
++void
++c_common_finalize_early_debug (void)
++{
++ /* Emit early debug for reachable functions, and by consequence,
++ locally scoped symbols. Also emit debug for extern declared
++ functions that are still reachable at this point. */
++ struct cgraph_node *cnode;
++ FOR_EACH_FUNCTION (cnode)
++ if (!cnode->alias && !cnode->thunk.thunk_p
++ && (cnode->has_gimple_body_p () || !DECL_IS_BUILTIN (cnode->decl)))
++ (*debug_hooks->early_global_decl) (cnode->decl);
++}
++
+ #include "gt-c-family-c-common.h"
+--- gcc/c-family/c-common.h
++++ gcc/c-family/c-common.h
+@@ -885,6 +885,8 @@ extern bool bool_promoted_to_int_p (tree);
+ extern tree fold_for_warn (tree);
+ extern tree c_common_get_narrower (tree, int *);
+ extern bool get_attribute_operand (tree, unsigned HOST_WIDE_INT *);
++extern void c_common_finalize_early_debug (void);
++
+
+ #define c_sizeof(LOC, T) c_sizeof_or_alignof_type (LOC, T, true, false, 1)
+ #define c_alignof(LOC, T) c_sizeof_or_alignof_type (LOC, T, false, false, 1)
+--- gcc/c/c-objc-common.h
++++ gcc/c/c-objc-common.h
+@@ -65,6 +65,8 @@ along with GCC; see the file COPYING3. If not see
+ c_simulate_builtin_function_decl
+ #undef LANG_HOOKS_EMITS_BEGIN_STMT
+ #define LANG_HOOKS_EMITS_BEGIN_STMT true
++#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
++#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
+
+ /* Attribute hooks. */
+ #undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
+--- gcc/cgraphunit.c
++++ gcc/cgraphunit.c
+@@ -2998,11 +2998,9 @@ symbol_table::finalize_compilation_unit (void)
+
+ if (!seen_error ())
+ {
+- /* Emit early debug for reachable functions, and by consequence,
+- locally scoped symbols. */
+- struct cgraph_node *cnode;
+- FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
+- (*debug_hooks->early_global_decl) (cnode->decl);
++ /* Give the frontends the chance to emit early debug based on
++ what is still reachable in the TU. */
++ (*lang_hooks.finalize_early_debug) ();
+
+ /* Clean up anything that needs cleaning up after initial debug
+ generation. */
+--- gcc/cp/cp-objcp-common.h
++++ gcc/cp/cp-objcp-common.h
+@@ -115,6 +115,8 @@ extern tree cxx_simulate_enum_decl (location_t, const char *,
+ #define LANG_HOOKS_BLOCK_MAY_FALLTHRU cxx_block_may_fallthru
+ #undef LANG_HOOKS_EMITS_BEGIN_STMT
+ #define LANG_HOOKS_EMITS_BEGIN_STMT true
++#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
++#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
+
+ /* Attribute hooks. */
+ #undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
+--- gcc/langhooks-def.h
++++ gcc/langhooks-def.h
+@@ -92,6 +92,7 @@ extern const char *lhd_get_substring_location (const substring_loc &,
+ location_t *out_loc);
+ extern int lhd_decl_dwarf_attribute (const_tree, int);
+ extern int lhd_type_dwarf_attribute (const_tree, int);
++extern void lhd_finalize_early_debug (void);
+
+ #define LANG_HOOKS_NAME "GNU unknown"
+ #define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
+@@ -139,6 +140,7 @@ extern int lhd_type_dwarf_attribute (const_tree, int);
+ #define LANG_HOOKS_EMITS_BEGIN_STMT false
+ #define LANG_HOOKS_RUN_LANG_SELFTESTS lhd_do_nothing
+ #define LANG_HOOKS_GET_SUBSTRING_LOCATION lhd_get_substring_location
++#define LANG_HOOKS_FINALIZE_EARLY_DEBUG lhd_finalize_early_debug
+
+ /* Attribute hooks. */
+ #define LANG_HOOKS_ATTRIBUTE_TABLE NULL
+@@ -364,7 +366,8 @@ extern void lhd_end_section (void);
+ LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS, \
+ LANG_HOOKS_EMITS_BEGIN_STMT, \
+ LANG_HOOKS_RUN_LANG_SELFTESTS, \
+- LANG_HOOKS_GET_SUBSTRING_LOCATION \
++ LANG_HOOKS_GET_SUBSTRING_LOCATION, \
++ LANG_HOOKS_FINALIZE_EARLY_DEBUG \
+ }
+
+ #endif /* GCC_LANG_HOOKS_DEF_H */
+--- gcc/langhooks.c
++++ gcc/langhooks.c
+@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see
+ #include "output.h"
+ #include "timevar.h"
+ #include "stor-layout.h"
++#include "cgraph.h"
++#include "debug.h"
+
+ /* Do nothing; in many cases the default hook. */
+
+@@ -866,6 +868,18 @@ lhd_unit_size_without_reusable_padding (tree t)
+ return TYPE_SIZE_UNIT (t);
+ }
+
++/* Default implementation for the finalize_early_debug hook. */
++
++void
++lhd_finalize_early_debug (void)
++{
++ /* Emit early debug for reachable functions, and by consequence,
++ locally scoped symbols. */
++ struct cgraph_node *cnode;
++ FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
++ (*debug_hooks->early_global_decl) (cnode->decl);
++}
++
+ /* Returns true if the current lang_hooks represents the GNU C frontend. */
+
+ bool
+--- gcc/langhooks.h
++++ gcc/langhooks.h
+@@ -580,6 +580,9 @@ struct lang_hooks
+ const char *(*get_substring_location) (const substring_loc &,
+ location_t *out_loc);
+
++ /* Invoked before the early_finish debug hook is invoked. */
++ void (*finalize_early_debug) (void);
++
+ /* Whenever you add entries here, make sure you adjust langhooks-def.h
+ and langhooks.c accordingly. */
+ };
+--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
++++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
+@@ -0,0 +1,17 @@
++/* { dg-do compile } */
++/* { dg-options "-g -gdwarf -dA" } */
++
++extern void foo (int);
++extern void unusedbar (int);
++
++int main()
++{
++ foo (1);
++}
++
++/* We want subprogram DIEs for both foo and main and a DIE for
++ the formal parameter of foo. We do not want a DIE for
++ unusedbar. */
++/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
++/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
++/* { dg-final { scan-assembler-not "unusedbar" } } */
+--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
++++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
+@@ -0,0 +1,17 @@
++/* { dg-do compile } */
++/* { dg-options "-g -O2 -gdwarf -dA" } */
++
++extern void foo (int);
++extern void unusedbar (int);
++
++int main()
++{
++ foo (1);
++}
++
++/* We want subprogram DIEs for both foo and main and a DIE for
++ the formal parameter of foo. We do not want a DIE for
++ unusedbar. */
++/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
++/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
++/* { dg-final { scan-assembler-not "unusedbar" } } */
+--- libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
++++ libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
+@@ -15,7 +15,7 @@
+ // with this library; see the file COPYING3. If not see
+ // .
+
+-// { dg-options "-std=gnu++2a -O2" }
++// { dg-options "-std=gnu++2a -O2 -g0" }
+ // { dg-do compile { target c++2a } }
+ // { dg-final { scan-assembler-not "undefined" } }
+
diff --git a/SOURCES/gcc10-pr96385.patch b/SOURCES/gcc10-pr96385.patch
new file mode 100644
index 0000000..22fe68e
--- /dev/null
+++ b/SOURCES/gcc10-pr96385.patch
@@ -0,0 +1,22 @@
+2020-08-03 Richard Biener
+
+ PR lto/96385
+libiberty/
+ * simple-object-elf.c
+ (simple_object_elf_copy_lto_debug_sections): Localize global
+ UNDEFs and reuse the prevailing name.
+
+--- libiberty/simple-object-elf.c
++++ libiberty/simple-object-elf.c
+@@ -1467,6 +1467,11 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
+ && st_shndx < shnum
+ && pfnret[st_shndx - 1] == -1)
+ discard = 1;
++ /* We also need to remove global UNDEFs which can
++ cause link fails later. */
++ else if (st_shndx == SHN_UNDEF
++ && ELF_ST_BIND (*st_info) == STB_GLOBAL)
++ discard = 1;
+
+ if (discard)
+ {
diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec
index db398e6..055f140 100644
--- a/SPECS/gcc.spec
+++ b/SPECS/gcc.spec
@@ -2,13 +2,13 @@
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
%{?scl:%scl_package gcc}
-%global DATE 20200507
-%global gitrev 563509ad4338c7193d06f4008e9df657990628a5
-%global gcc_version 10.1.1
+%global DATE 20200804
+%global gitrev 08d83635c2ab388f6139db6965e600b296ad85e6
+%global gcc_version 10.2.1
%global gcc_major 10
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
-%global gcc_release 1
+%global gcc_release 2
%global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
%global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
%global mpc_version 0.8.1
@@ -123,7 +123,7 @@
Summary: GCC version 10
Name: %{?scl_prefix}gcc
Version: %{gcc_version}
-Release: %{gcc_release}.1%{?dist}
+Release: %{gcc_release}%{?dist}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@@ -236,7 +236,7 @@ Requires: glibc-devel >= 2.2.90-12
Requires: glibc >= 2.3.90-35
%endif
BuildRequires: gmp-devel >= 4.1.2-8
-BuildRequires: mpfr-devel >= 2.2.1
+BuildRequires: mpfr-devel >= 3.1.0
%if 0%{?rhel} >= 7
BuildRequires: libmpc-devel >= 0.8.1
%endif
@@ -308,10 +308,14 @@ Patch8: gcc10-foffload-default.patch
Patch9: gcc10-Wno-format-security.patch
Patch10: gcc10-rh1574936.patch
Patch11: gcc10-d-shared-libphobos.patch
+Patch12: gcc10-pr94540.patch
+Patch13: gcc10-pr96383.patch
+Patch14: gcc10-pr96385.patch
Patch1000: gcc10-libstdc++-compat.patch
Patch1002: gcc10-isl-dl2.patch
Patch1003: gcc10-libgfortran-compat.patch
+Patch1004: gcc10-libgfortran-compat-2.patch
Patch3001: 0001-Default-widths-for-i-f-and-g-format-specifiers-in-fo.patch
Patch3002: 0002-Allow-duplicate-declarations.patch
@@ -522,7 +526,7 @@ GNU Transactional Memory library.
Summary: Support for compiling GCC plugins
Requires: %{?scl_prefix}gcc%{!?scl:10} = %{version}-%{release}
Requires: gmp-devel >= 4.1.2-8
-Requires: mpfr-devel >= 2.2.1
+Requires: mpfr-devel >= 3.1.0
%if 0%{?rhel} >= 7
Requires: libmpc-devel >= 0.8.1
%endif
@@ -656,12 +660,16 @@ to NVidia PTX capable devices if available.
%patch10 -p0 -b .rh1574936~
%endif
%patch11 -p0 -b .d-shared-libphobos~
+%patch12 -p0 -b .pr94540~
+%patch13 -p0 -b .pr96383~
+%patch14 -p0 -b .pr96385~
%patch1000 -p0 -b .libstdc++-compat~
%if %{build_isl}
%patch1002 -p0 -b .isl-dl2~
%endif
%patch1003 -p0 -b .libgfortran-compat~
+%patch1004 -p0 -b .libgfortran-compat-2~
%if 0
%patch3001 -p1 -b .fortran01~
@@ -715,10 +723,11 @@ fi
rm -f gcc/testsuite/go.test/test/chan/goroutines.go
# These tests get stuck and don't timeout.
-%ifarch ppc64
+%ifarch ppc ppc64 ppc64le
rm -f libgomp/testsuite/libgomp.c/target-32.c
rm -f libgomp/testsuite/libgomp.c/target-33.c
rm -f libgomp/testsuite/libgomp.c/target-34.c
+rm -rf libgomp/testsuite/libgomp.oacc*
%endif
%build
@@ -818,6 +827,7 @@ cd ../..
CC=gcc
CXX=g++
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
@@ -1802,6 +1812,11 @@ chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os
# ??? Fedora uses _arch
echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
+# Add symlink to lto plugin in the binutils plugin directory.
+%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/
+ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \
+ %{buildroot}%{_libdir}/bfd-plugins/
+
%check
cd obj-%{gcc_target_platform}
@@ -1823,7 +1838,11 @@ cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonshar
%endif
# run the tests.
+%ifnarch ppc ppc64 ppc64le
make %{?_smp_mflags} -k check RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+%else
+make %{?_smp_mflags} -k check || :
+%endif
( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults
rm -rf gcc/testsuite.prev
mv gcc/testsuite{,.prev}
@@ -1981,6 +2000,7 @@ fi
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so*
+%{_libdir}/bfd-plugins/liblto_plugin.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h
@@ -2597,6 +2617,28 @@ fi
%endif
%changelog
+* Tue Aug 4 2020 Marek Polacek 10.2.1-2
+- update from Fedora gcc 10.2.1-2
+- emit debug info for C/C++ external function declarations used in the TU
+ (PR debug/96383)
+- discard SHN_UNDEF global symbols from LTO debuginfo (PR lto/96385)
+- strip also -flto=auto from optflags
+
+* Sun Aug 2 2020 Marek Polacek 10.2.1-1.2
+- avoid stack overflow in std::vector (PR libstdc++/94540, #1859670)
+- adjust some libstdc++_nonshared.a symbols
+- apply gcc10-libgfortran-compat-2.patch
+
+* Fri Jul 31 2020 Marek Polacek 10.2.1-1.1
+- hide various symbols in libstdc++_nonshared.a
+
+* Mon Jul 27 2020 Marek Polacek 10.2.1-1
+- GCC 10.2 release
+- add symlink to liblto_plugin.so in /usr/lib/bfd-plugins
+- disable -flto in %%{optflags}, lto bootstrap will be enabled the GCC way
+ later
+- require MPFR Library version 3.1.0 (or later)
+
* Mon Jun 15 2020 Marek Polacek 10.1.1-1.1
- correct instructions for creation of newlib tarball, filter out sun-rpc
licensed code that is never used during the package build