diff --git a/SOURCES/gcc10-dts-arm.patch b/SOURCES/gcc10-dts-arm.patch new file mode 100644 index 0000000..1a9fda6 --- /dev/null +++ b/SOURCES/gcc10-dts-arm.patch @@ -0,0 +1,371 @@ +diff -Naurp a/libstdc++-v3/src/nonshared11/cow-shim_facets.cc b/libstdc++-v3/src/nonshared11/cow-shim_facets.cc +--- a/libstdc++-v3/src/nonshared11/cow-shim_facets.cc 2021-05-23 21:52:00.253590930 +0000 ++++ b/libstdc++-v3/src/nonshared11/cow-shim_facets.cc 2021-05-24 17:35:24.331195651 +0000 +@@ -168,7 +168,7 @@ asm (".hidden _ZTVNSt13__facet_shims12_G + asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EEE"); + asm (".hidden _ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E"); + asm (".hidden _ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E"); +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZNSt13__facet_shims14__messages_getIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_j"); + asm (".hidden _ZNSt13__facet_shims14__messages_getIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_j"); + asm (".hidden _ZNSt13__facet_shims15__messages_openIcEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKcjRKS3_"); +diff -Naurp a/libstdc++-v3/src/nonshared11/cow-stdexcept.cc b/libstdc++-v3/src/nonshared11/cow-stdexcept.cc +--- a/libstdc++-v3/src/nonshared11/cow-stdexcept.cc 2021-05-23 21:52:00.228591286 +0000 ++++ b/libstdc++-v3/src/nonshared11/cow-stdexcept.cc 2021-05-24 17:35:24.331195651 +0000 +@@ -35,7 +35,7 @@ asm (".hidden _ZNSt12__cow_stringaSEOS_" + asm (".hidden _ZNSt12__cow_stringaSERKS_"); + asm (".hidden _ZNSt12__sso_stringC1ERKSs"); + asm (".hidden _ZNSt12__sso_stringC2ERKSs"); +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZNSt12__cow_stringC1EPKcj"); + asm (".hidden _ZNSt12__cow_stringC2EPKcj"); + #else +diff -Naurp a/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc b/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc +--- a/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc 2021-05-23 21:52:00.236591172 +0000 ++++ b/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc 2021-05-24 17:35:24.332195636 +0000 +@@ -168,7 +168,7 @@ asm (".hidden _ZTVNSt13__facet_shims12_G + asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EEE"); + asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EEE"); + asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EEE"); +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZNSt13__facet_shims14__messages_getIcEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_j"); + asm (".hidden _ZNSt13__facet_shims14__messages_getIwEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_j"); + asm (".hidden _ZNSt13__facet_shims15__messages_openIcEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKcjRKS3_"); +diff -Naurp a/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc +--- a/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc 2021-05-23 21:52:00.216591457 +0000 ++++ b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc 2021-05-24 17:35:24.332195636 +0000 +@@ -36,7 +36,7 @@ asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287 + asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); + asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); + #endif +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNSt7__cxx1112basic_stringIcS1_IcESaIcEEEj"); + asm (".hidden _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNSt7__cxx1112basic_stringIcS1_IcESaIcEEEj"); + #else +diff -Naurp a/libstdc++-v3/src/nonshared11/locale-inst-asm.S b/libstdc++-v3/src/nonshared11/locale-inst-asm.S +--- a/libstdc++-v3/src/nonshared11/locale-inst-asm.S 2021-05-23 21:52:00.217591443 +0000 ++++ b/libstdc++-v3/src/nonshared11/locale-inst-asm.S 2021-05-24 17:35:24.333195622 +0000 +@@ -43,6 +43,11 @@ + #define ALIGN3 .align 2 + #define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits + #define SECTION3(x)SECTION2(x) ++#elif defined __arm__ ++#define ALIGN1 .align 4 ++#define OBJECT %object ++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",%progbits ++#define SECTION3(x).section .gnu.linkonce.r.x,"a",%progbits + #elif defined __aarch64__ + #define ALIGN1 .align 3 + #define ALIGN3 .align 3 +@@ -288,4 +293,4 @@ _ZTVSt16__numpunct_cacheIwE: + POINTER SYM(_ZTISt16__numpunct_cacheIwE) + VPTR(_ZNSt16__numpunct_cacheIwED1Ev) + VPTR(_ZNSt16__numpunct_cacheIwED0Ev) +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits +diff -Naurp a/libstdc++-v3/src/nonshared11/locale-inst.cc b/libstdc++-v3/src/nonshared11/locale-inst.cc +--- a/libstdc++-v3/src/nonshared11/locale-inst.cc 2021-05-23 21:52:00.247591016 +0000 ++++ b/libstdc++-v3/src/nonshared11/locale-inst.cc 2021-05-24 17:35:24.334195608 +0000 +@@ -75,13 +75,13 @@ _GLIBCXX_END_NAMESPACE_VERSION + + #ifndef _GLIBCXX_NONSHARED_CXX11_80 + #ifdef C_is_char +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZSt14__add_groupingIcEPT_S1_S0_PKcjPKS0_S5_"); + #else + asm (".hidden _ZSt14__add_groupingIcEPT_S1_S0_PKcmPKS0_S5_"); + #endif + #else +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZSt14__add_groupingIwEPT_S1_S0_PKcjPKS0_S5_"); + #else + asm (".hidden _ZSt14__add_groupingIwEPT_S1_S0_PKcmPKS0_S5_"); +diff -Naurp a/libstdc++-v3/src/nonshared11/snprintf_lite.cc b/libstdc++-v3/src/nonshared11/snprintf_lite.cc +--- a/libstdc++-v3/src/nonshared11/snprintf_lite.cc 2021-05-23 21:52:00.257590873 +0000 ++++ b/libstdc++-v3/src/nonshared11/snprintf_lite.cc 2021-05-24 17:35:24.334195608 +0000 +@@ -30,6 +30,9 @@ asm (".hidden _ZN9__gnu_cxx15__snprintf_ + #elif defined(__powerpc__) + asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcjj"); + asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcjPKcP13__va_list_tag"); ++#elif defined(__arm__) ++asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcjj"); ++asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcjPKcSt9__va_list"); + #elif defined(__aarch64__) + asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcmm"); + asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcmPKcSt9__va_list"); +diff -Naurp a/libstdc++-v3/src/nonshared11/sso_string.cc b/libstdc++-v3/src/nonshared11/sso_string.cc +--- a/libstdc++-v3/src/nonshared11/sso_string.cc 2021-05-23 21:52:00.254590916 +0000 ++++ b/libstdc++-v3/src/nonshared11/sso_string.cc 2021-05-24 20:10:36.325177493 +0000 +@@ -39,7 +39,7 @@ asm (".hidden _ZNSt12__sso_stringD1Ev"); + asm (".hidden _ZNSt12__sso_stringD2Ev"); + asm (".hidden _ZNSt12__sso_stringaSEOS_"); + asm (".hidden _ZNSt12__sso_stringaSERKS_"); +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZNSt12__sso_stringC1EPKcj"); + asm (".hidden _ZNSt12__sso_stringC2EPKcj"); + #else +diff -Naurp a/libstdc++-v3/src/nonshared17/cow-fs_dir.cc b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc +--- a/libstdc++-v3/src/nonshared17/cow-fs_dir.cc 2021-05-23 21:52:00.277590589 +0000 ++++ b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc 2021-05-25 01:30:45.423034303 +0000 +@@ -78,11 +78,11 @@ asm (".hidden _ZTSSt23_Sp_counted_ptr_in + 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"); +-#ifndef __i386__ ++#if !defined(__i386__) && !defined(__arm__) + 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__ ++#if defined(__i386__) || defined(__arm__) + asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEjb"); + #endif +diff -Naurp a/libstdc++-v3/src/nonshared17/cow-fs_ops.cc b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc +--- a/libstdc++-v3/src/nonshared17/cow-fs_ops.cc 2021-05-23 21:52:00.273590646 +0000 ++++ b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc 2021-05-24 20:32:30.740143250 +0000 +@@ -36,7 +36,7 @@ asm (".hidden _ZNSt10unique_ptrINSt10fil + 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_"); +-#ifndef __i386__ ++#if !defined(__i386__) && !defined(__arm__) + asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEm"); + asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_m"); + asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEmb"); +@@ -46,7 +46,7 @@ asm (".hidden _ZNSt5dequeINSt10filesyste + #if defined(__s390x__) || defined(__powerpc64__) + asm (".hidden _ZSt13__copy_move_aILb0ENSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET1_T0_S8_S7_"); + #endif +-#ifdef __i386__ ++#if defined(__i386__) || defined(__arm__) + asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEj"); + asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_j"); + asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEjb"); +diff -Naurp a/libstdc++-v3/src/nonshared17/cow-fs_path.cc b/libstdc++-v3/src/nonshared17/cow-fs_path.cc +--- a/libstdc++-v3/src/nonshared17/cow-fs_path.cc 2021-05-23 21:52:00.274590631 +0000 ++++ b/libstdc++-v3/src/nonshared17/cow-fs_path.cc 2021-05-25 11:22:37.505104289 +0000 +@@ -70,7 +70,7 @@ asm (".hidden _ZNSt12system_errorC1ESt10 + 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__) ++#if !defined(__i386__) && !defined(__arm__) + asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RmT3_"); + #endif + asm (".hidden _ZTIZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_E5_UCvt"); +@@ -81,6 +81,6 @@ asm (".hidden _ZZNSt10filesystem4path4_C + asm (".hidden _ZZNSt10filesystem4path4_CvtIwE10_S_convertEPKwS4_EN5_UCvtD2Ev"); + asm (".hidden _ZNSt10filesystem4path5_CmptD1Ev"); + asm (".hidden _ZNSt10filesystem4path5_CmptD2Ev"); +-#ifdef __i386__ ++#if defined(__i386__) + asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RjT3_"); + #endif +diff -Naurp a/libstdc++-v3/src/nonshared17/fs_dir.cc b/libstdc++-v3/src/nonshared17/fs_dir.cc +--- a/libstdc++-v3/src/nonshared17/fs_dir.cc 2021-05-23 21:52:00.276590603 +0000 ++++ b/libstdc++-v3/src/nonshared17/fs_dir.cc 2021-05-24 20:33:35.441206565 +0000 +@@ -80,11 +80,11 @@ asm (".hidden _ZTSSt23_Sp_counted_ptr_in + 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"); +-#ifndef __i386__ ++#if !defined(__i386__) && !defined(__arm__) + asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb"); + #endif + asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); + asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); +-#ifdef __i386__ ++#if defined(__i386__) || defined(__arm__) + asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEjb"); + #endif +diff -Naurp a/libstdc++-v3/src/nonshared17/fs_ops.cc b/libstdc++-v3/src/nonshared17/fs_ops.cc +--- a/libstdc++-v3/src/nonshared17/fs_ops.cc 2021-05-23 21:52:00.282590517 +0000 ++++ b/libstdc++-v3/src/nonshared17/fs_ops.cc 2021-05-24 20:24:11.091375045 +0000 +@@ -41,7 +41,7 @@ asm (".hidden _ZNSt10unique_ptrINSt10fil + 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_"); +-#ifndef __i386__ ++#if !defined(__i386__) && !defined(__arm__) + 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"); +@@ -54,7 +54,7 @@ asm (".hidden _ZNSt5dequeINSt10filesyste + #if defined(__s390x__) || defined(__powerpc64__) + asm (".hidden _ZSt13__copy_move_aILb0ENSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET1_T0_S9_S8_"); + #endif +-#ifdef __i386__ ++#if defined(__i386__) || defined(__arm__) + asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodej"); + asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodej"); + asm (".hidden _ZNSt10filesystem8do_spaceEPKcRyS2_S2_RSt10error_code"); +diff -Naurp a/libstdc++-v3/src/nonshared17/memory_resource.cc b/libstdc++-v3/src/nonshared17/memory_resource.cc +--- a/libstdc++-v3/src/nonshared17/memory_resource.cc 2021-05-23 21:52:00.275590617 +0000 ++++ b/libstdc++-v3/src/nonshared17/memory_resource.cc 2021-05-25 15:40:20.696960914 +0000 +@@ -43,9 +43,11 @@ asm (".hidden _ZTVNSt3pmr28unsynchronize + asm (".hidden _ZNKSt3pmr25monotonic_buffer_resource11do_is_equalERKNS_15memory_resourceE"); + asm (".hidden _ZNSt3pmr15__pool_resource5_Pool12try_allocateEv"); + asm (".hidden _ZNSt3pmr15__pool_resource5_Pool9replenishEPNS_15memory_resourceERKNS_12pool_optionsE"); ++#if !defined(__arm__) + asm (".hidden _ZNSt11shared_lockISt12shared_mutexED1Ev"); + asm (".hidden _ZNSt11shared_lockISt12shared_mutexED2Ev"); +-#ifndef __i386__ ++#endif ++#if !defined(__i386__) && !defined(__arm__) + asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvmm"); + asm (".hidden _ZNSt3pmr15__pool_resource8allocateEmm"); + asm (".hidden _ZNSt3pmr25monotonic_buffer_resource11do_allocateEmm"); +@@ -54,7 +56,7 @@ asm (".hidden _ZNSt3pmr28unsynchronized_ + 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 +-#ifdef __i386__ ++#if defined(__i386__) || defined(__arm__) + asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvjj"); + asm (".hidden _ZNSt3pmr15__pool_resource5_Pool10deallocateEPNS_15memory_resourceEPv"); + asm (".hidden _ZNSt3pmr15__pool_resource8allocateEjj"); +diff -Naurp a/libstdc++-v3/src/nonshared98/char8_t-rtti.S b/libstdc++-v3/src/nonshared98/char8_t-rtti.S +--- a/libstdc++-v3/src/nonshared98/char8_t-rtti.S 2021-05-23 21:52:00.195591756 +0000 ++++ b/libstdc++-v3/src/nonshared98/char8_t-rtti.S 2021-05-24 17:35:24.337195565 +0000 +@@ -21,12 +21,17 @@ + . */ + + #if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ \ +- || defined __i386__ || defined __powerpc__ || defined __s390__ ++ || defined __i386__ || defined __powerpc__ || defined __s390__ || defined __arm__ + #ifdef __i386__ + #define ALIGN1 .align 4 + #elif defined __x86_64__ + #define ALIGN1 .align 32 + #define ALIGN2 .align 16 ++#elif defined __arm__ ++#define ALIGN1 .align 4 ++#define OBJECT %object ++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",%progbits ++#define SECTION3(x).section .gnu.linkonce.r.x,"a",%progbits + #elif defined __ia64__ + #define ALIGN1 .align 8 + #define ALIGN3 .align 8 +@@ -163,4 +168,4 @@ _ZTSPDu: + _ZTSDu: + STRING "Du" + #endif +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits +diff -Naurp a/libstdc++-v3/src/nonshared98/decimal-rtti.S b/libstdc++-v3/src/nonshared98/decimal-rtti.S +--- a/libstdc++-v3/src/nonshared98/decimal-rtti.S 2021-05-23 21:52:00.198591713 +0000 ++++ b/libstdc++-v3/src/nonshared98/decimal-rtti.S 2021-05-24 17:35:24.338195550 +0000 +@@ -21,7 +21,7 @@ + . */ + + #if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ \ +- || defined __i386__ || defined __powerpc__ || defined __s390__ ++ || defined __i386__ || defined __powerpc__ || defined __s390__ || defined __arm__ + #ifdef __i386__ + #define ALIGN1 .align 4 + #elif defined __x86_64__ +@@ -43,6 +43,11 @@ + #define ALIGN3 .align 2 + #define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits + #define SECTION3(x)SECTION2(x) ++#elif defined __arm__ ++#define ALIGN1 .align 4 ++#define OBJECT %object ++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",%progbits ++#define SECTION3(x).section .gnu.linkonce.r.x,"a",%progbits + #elif defined __aarch64__ + #define ALIGN1 .align 3 + #define ALIGN3 .align 3 +@@ -271,4 +276,4 @@ _ZTSPDf: + _ZTSDf: + STRING "Df" + #endif +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits +diff -Naurp a/libstdc++-v3/src/nonshared98/float128.S b/libstdc++-v3/src/nonshared98/float128.S +--- a/libstdc++-v3/src/nonshared98/float128.S 2021-05-23 21:52:00.192591799 +0000 ++++ b/libstdc++-v3/src/nonshared98/float128.S 2021-05-24 17:35:24.338195550 +0000 +@@ -20,12 +20,17 @@ + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + +-#if defined __x86_64__ || defined __i386__ || defined __ia64__ ++#if defined __x86_64__ || defined __i386__ || defined __ia64__ || defined __arm__ + #ifdef __i386__ + #define ALIGN1 .align 4 + #elif defined __x86_64__ + #define ALIGN1 .align 32 + #define ALIGN2 .align 16 ++#elif defined __arm__ ++#define ALIGN1 .align 4 ++#define OBJECT %object ++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",%progbits ++#define SECTION3(x).section .gnu.linkonce.r.x,"a",%progbits + #elif defined __ia64__ + #define ALIGN1 .align 8 + #define ALIGN3 .align 8 +@@ -159,4 +164,4 @@ _ZTSPg: + _ZTSg: + STRING "g" + #endif +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits +diff -Naurp a/libstdc++-v3/src/nonshared98/int128.S b/libstdc++-v3/src/nonshared98/int128.S +--- a/libstdc++-v3/src/nonshared98/int128.S 2021-05-23 21:52:00.211591528 +0000 ++++ b/libstdc++-v3/src/nonshared98/int128.S 2021-05-24 17:35:24.339195536 +0000 +@@ -213,4 +213,4 @@ _ZTSPo: + _ZTSo: + STRING "o" + #endif +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits +diff -Naurp a/libstdc++-v3/src/nonshared98/locale_facets.cc b/libstdc++-v3/src/nonshared98/locale_facets.cc +--- a/libstdc++-v3/src/nonshared98/locale_facets.cc 2021-05-23 21:52:00.197591727 +0000 ++++ b/libstdc++-v3/src/nonshared98/locale_facets.cc 2021-05-24 20:11:45.327179882 +0000 +@@ -22,7 +22,7 @@ + + #define _GLIBCXX_NONSHARED_CXX11 + #include "../c++98/locale_facets.cc" +-#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++#if defined(__i386__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) + asm (".hidden _ZSt22__verify_grouping_implPKcjS0_j"); + #else + asm (".hidden _ZSt22__verify_grouping_implPKcmS0_m"); +diff -Naurp a/libstdc++-v3/src/nonshared98/nullptr-rtti.S b/libstdc++-v3/src/nonshared98/nullptr-rtti.S +--- a/libstdc++-v3/src/nonshared98/nullptr-rtti.S 2021-05-23 21:52:00.210591542 +0000 ++++ b/libstdc++-v3/src/nonshared98/nullptr-rtti.S 2021-05-24 17:35:24.340195522 +0000 +@@ -21,7 +21,7 @@ + . */ + + #if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ \ +- || defined __i386__ || defined __powerpc__ || defined __s390__ ++ || defined __i386__ || defined __powerpc__ || defined __s390__ || defined __arm__ + #ifdef __i386__ + #define ALIGN1 .align 4 + #elif defined __x86_64__ +@@ -43,6 +43,11 @@ + #define ALIGN3 .align 2 + #define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits + #define SECTION3(x)SECTION2(x) ++#elif defined __arm__ ++#define ALIGN1 .align 4 ++#define OBJECT %object ++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",%progbits ++#define SECTION3(x).section .gnu.linkonce.r.x,"a",%progbits + #elif defined __aarch64__ + #define ALIGN1 .align 3 + #define ALIGN3 .align 3 +@@ -163,4 +168,4 @@ _ZTSPDn: + _ZTSDn: + STRING "Dn" + #endif +- .section .note.GNU-stack,"",@progbits ++ .section .note.GNU-stack,"",%progbits diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec index 216570d..72628d2 100644 --- a/SPECS/gcc.spec +++ b/SPECS/gcc.spec @@ -292,6 +292,9 @@ Provides: liblto_plugin.so.0 %if 0%{?rhel} == 6 ExclusiveArch: x86_64 %{ix86} %endif +%ifarch %{arm} +%global oformat OUTPUT_FORMAT(elf32-littlearm) +%endif Patch0: gcc10-hack.patch Patch1: gcc10-i386-libgomp.patch @@ -331,6 +334,9 @@ Patch3008: 0008-Support-type-promotion-in-calls-to-intrinsics.patch Patch3009: 0009-Add-the-SEQUENCE-attribute-by-default-if-it-s-not.patch Patch3010: 0010-Fill-in-missing-array-dimensions-using-the-lower-bou.patch +# specific patches for .el7 armhfp build +Patch10001: gcc10-dts-arm.patch + %if 0%{?rhel} > 7 %global nonsharedver 80 %else @@ -342,7 +348,9 @@ Patch3010: 0010-Fill-in-missing-array-dimensions-using-the-lower-bou.patch %endif %if 0%{?scl:1} +%ifnarch %{arm} %global _gnu %{nil} +%endif %else %global _gnu -gnueabi %endif @@ -352,7 +360,10 @@ Patch3010: 0010-Fill-in-missing-array-dimensions-using-the-lower-bou.patch %ifarch ppc ppc64p7 %global gcc_target_platform ppc64-%{_vendor}-%{_target_os} %endif -%ifnarch sparcv9 ppc ppc64p7 +%ifarch %{arm} +%global gcc_target_platform armv7hl-%{_vendor}-%{_target_os}-gnueabi +%endif +%ifnarch sparcv9 ppc ppc64p7 %{arm} %global gcc_target_platform %{_target_platform} %endif @@ -691,6 +702,10 @@ cd .. %patch3009 -p1 -b .fortran09~ %patch3010 -p1 -b .fortran10~ +%ifarch %{arm} +%patch10001 -p1 -b .arm1 +%endif + echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE %if 0%{?rhel} == 6 @@ -960,6 +975,10 @@ CONFIGURE_OPTS="\ %ifarch riscv64 --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \ %endif +%ifarch armv7hl + --with-tune=cortex-a8 --with-arch=armv7-a \ + --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \ +%endif %ifnarch sparc sparcv9 ppc --build=%{gcc_target_platform} \ %endif