import gcc-toolset-10-gcc-10.2.1-2.el8

This commit is contained in:
CentOS Sources 2020-08-06 18:30:10 +00:00 committed by Andrew Lukoshko
parent 454feea2b1
commit 25f20877a9
9 changed files with 932 additions and 62 deletions

View File

@ -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

2
.gitignore vendored
View File

@ -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

View File

@ -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@

View File

@ -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 @@

View File

@ -4,7 +4,7 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 10.1.1
+ Release 10.2.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@ -17,7 +17,7 @@
</p><p>
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 10.1.1 release</a>,
+ <a class="link" href="api/index.html" target="_top">for the 10.2.1 release</a>,
+ online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and

324
SOURCES/gcc10-pr94540.patch Normal file
View File

@ -0,0 +1,324 @@
commit 632183ddcc8f3aead8b4fc63c4ab59a42ef9ad00
Author: Jonathan Wakely <jwakely@redhat.com>
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<true>):
Construct the first value at *__first instead of on the stack.
(__uninitialized_default_n_1<true>): 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<typename _ForwardIterator>
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<typename _ForwardIterator, typename _Size>
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<typename _ForwardIterator, typename _Allocator>
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<typename _ForwardIterator, typename _Size, typename _Allocator>
_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<typename _ForwardIterator, typename _Size, typename _Tp>
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<typename _ForwardIterator>
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<typename _ForwardIterator, typename _Size>
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
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do run { target { c++11 && { ! simulator } } } }
+
+#include <memory>
+#include <testsuite_hooks.h>
+
+// Assume that 9MB is larger than the stack limit.
+struct X { char data[9*1024*1024]; };
+
+static_assert( std::is_trivial<X>::value, "" );
+
+int main()
+{
+ auto mem = new char[sizeof(X) * 2];
+ auto p = reinterpret_cast<X*>(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
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do run { target { c++11 && { ! simulator } } } }
+
+#include <memory>
+#include <testsuite_hooks.h>
+
+// Assume that 9MB is larger than the stack limit.
+struct X { char data[9*1024*1024]; };
+
+static_assert( std::is_trivial<X>::value, "" );
+
+int main()
+{
+ auto mem = new char[sizeof(X) * 2];
+ auto p = reinterpret_cast<X*>(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
+// <http://www.gnu.org/licenses/>.
+
+// { dg-options "-std=gnu++17" }
+// { dg-do run { target { c++17 && { ! simulator } } } }
+
+#include <memory>
+#include <testsuite_hooks.h>
+
+// Assume that 9MB is larger than the stack limit.
+struct X { char data[9*1024*1024]; };
+
+static_assert( std::is_trivial_v<X> );
+
+int main()
+{
+ auto mem = new char[sizeof(X) * 2];
+ auto p = reinterpret_cast<X*>(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
+// <http://www.gnu.org/licenses/>.
+
+// { dg-options "-std=gnu++17" }
+// { dg-do run { target { c++17 && { ! simulator } } } }
+
+#include <memory>
+#include <testsuite_hooks.h>
+
+// Assume that 9MB is larger than the stack limit.
+struct X { char data[9*1024*1024]; };
+
+static_assert( std::is_trivial_v<X> );
+
+int main()
+{
+ auto mem = new char[sizeof(X) * 2];
+ std::uninitialized_value_construct_n(reinterpret_cast<X*>(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
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do run { target { c++11 && { ! simulator } } } }
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// Assume that 9MB is larger than the stack limit.
+struct X { char data[9*1024*1024]; };
+
+static_assert( std::is_trivial<X>::value, "" );
+
+int main()
+{
+ std::vector<X> v(1);
+ VERIFY( v.size() == 1 );
+ v.clear();
+ v.resize(2);
+ VERIFY( v.size() == 2 );
+}

236
SOURCES/gcc10-pr96383.patch Normal file
View File

@ -0,0 +1,236 @@
2020-07-30 Richard Biener <rguenther@suse.de>
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
// <http://www.gnu.org/licenses/>.
-// { 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" } }

View File

@ -0,0 +1,22 @@
2020-08-03 Richard Biener <rguenther@suse.de>
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)
{

View File

@ -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 <polacek@redhat.com> 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 <polacek@redhat.com> 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 <polacek@redhat.com> 10.2.1-1.1
- hide various symbols in libstdc++_nonshared.a
* Mon Jul 27 2020 Marek Polacek <polacek@redhat.com> 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 <polacek@redhat.com> 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