From f03eccf7b58c57a0cf4f128a690109b3fb70924d Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 06 2020 18:30:10 +0000 Subject: import gcc-toolset-10-gcc-10.2.1-2.el8 --- 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 _ZNSs6resizeEmc"); ++#endif ++asm (".hidden _ZNSt10filesystem4pathaSEOS0_"); ++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 _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_"); ++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