gcc-14/0023-LoongArch-libstdcxx-nonshared.diff
Peng Fan 5535c32a62 LoongArch: sync from upstream
And keep compat for libstdcxx/nonshared.
2025-04-01 19:24:27 +08:00

206 lines
12 KiB
Diff

diff --git a/libstdc++-v3/src/nonshared17/cow-fs_dir.cc b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc
index 9525952b0..3a1c52edc 100644
--- a/libstdc++-v3/src/nonshared17/cow-fs_dir.cc
+++ b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc
@@ -110,4 +110,6 @@ asm (".hidden _ZNKSt10filesystem28recursive_directory_iterator10_Dir_stack12curr
//asm (".hidden _ZNSt10filesystem4pathC1ISsS0_EERKT_NS0_6formatE");
asm (".hidden _ZNSt10filesystem28recursive_directory_iterator7__eraseEPSt10error_code");
//asm (".hidden _ZNKSt10filesystem4_Dir16dir_and_pathnameEv");
+#ifndef __loongarch64
asm (".hidden _ZNKSt10filesystem4_Dir7currentEv");
+#endif
diff --git a/libstdc++-v3/src/nonshared17/cow-fs_ops.cc b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc
index 100565f43..0f9bec9be 100644
--- a/libstdc++-v3/src/nonshared17/cow-fs_ops.cc
+++ b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc
@@ -88,4 +88,6 @@ asm (".hidden _ZNKSt10filesystem4path8filenameEv");
//asm (".hidden _ZSt16__do_uninit_copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_");
//asm (".hidden _ZSt4copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSs4swapERSs");
+#endif
diff --git a/libstdc++-v3/src/nonshared17/cow-fs_path.cc b/libstdc++-v3/src/nonshared17/cow-fs_path.cc
index 630646d8e..954a09d3e 100644
--- a/libstdc++-v3/src/nonshared17/cow-fs_path.cc
+++ b/libstdc++-v3/src/nonshared17/cow-fs_path.cc
@@ -93,28 +93,36 @@ asm (".hidden _ZNKSt10filesystem4path5_List5_Impl4copyEv");
#ifndef __riscv
asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw");
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm");
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm");
asm (".hidden _ZNSs6insertEmPKcm");
asm (".hidden _ZNSs6resizeEmc");
-asm (".hidden _ZNSs7reserveEm");
asm (".hidden _ZNSs9_M_mutateEmmm");
asm (".hidden _ZNSsC1ERKSsmm");
-#ifndef __riscv
+asm (".hidden _ZNSs7reserveEm");
+#endif
+#if !defined __riscv && !defined __loongarch64
asm (".hidden _ZNSsC2ERKSsmm");
asm (".hidden _ZNSt10filesystem4pathD2Ev");
#endif
+#ifndef __loongarch64
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 _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RmT3_");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv");
asm (".hidden _ZNSt10filesystem4path5_List5beginEv");
-#ifndef __s390x__
+#endif
+#if !defined(__s390x__) && !defined(__loongarch64)
asm (".hidden _ZNSt10filesystem4path7_Parser4nextEv");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSt10filesystem4pathD1Ev");
asm (".hidden _ZNSs12_M_leak_hardEv");
+#endif
#ifdef __i386__
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw");
asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj");
diff --git a/libstdc++-v3/src/nonshared17/floating_from_chars.cc b/libstdc++-v3/src/nonshared17/floating_from_chars.cc
index 4ef0871a4..0895e120a 100644
--- a/libstdc++-v3/src/nonshared17/floating_from_chars.cc
+++ b/libstdc++-v3/src/nonshared17/floating_from_chars.cc
@@ -25,9 +25,11 @@
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERjj");
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEjjPKcj");
#else
+#ifndef __loongarch64
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERmm");
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEmmPKcm");
#endif
+#endif
#if defined(__s390x__) || defined(__powerpc64__)
//asm (".hidden _ZSt10from_charsPKcS0_RgSt12chars_format");
#endif
@@ -43,8 +45,10 @@ asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphi
#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__))
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcjPKcjj");
#else
+#ifndef __loongarch64
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcmPKcmm");
#endif
+#endif
#ifndef __riscv
asm (".hidden _ZNSt8__detail31__from_chars_alnum_to_val_tableILb0EE5valueE");
#endif
diff --git a/libstdc++-v3/src/nonshared17/floating_from_chars110.cc b/libstdc++-v3/src/nonshared17/floating_from_chars110.cc
index 3c7cd9610..7a46c19fd 100644
--- a/libstdc++-v3/src/nonshared17/floating_from_chars110.cc
+++ b/libstdc++-v3/src/nonshared17/floating_from_chars110.cc
@@ -29,9 +29,11 @@
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcjPKcjj");
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEjjPKcj");
#else
+#ifndef __loongarch64
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcmPKcmm");
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEmmPKcm");
#endif
+#endif
#ifndef __riscv
asm (".hidden _ZNSt8__detail31__from_chars_alnum_to_val_tableILb0EE5valueE");
#endif
diff --git a/libstdc++-v3/src/nonshared17/floating_to_chars110.cc b/libstdc++-v3/src/nonshared17/floating_to_chars110.cc
index de9465513..b2ef2edce 100644
--- a/libstdc++-v3/src/nonshared17/floating_to_chars110.cc
+++ b/libstdc++-v3/src/nonshared17/floating_to_chars110.cc
@@ -24,7 +24,7 @@
#include "../c++17/floating_to_chars.cc"
//asm (".hidden _ZSt12__to_chars_iIoENSt9enable_ifIXsrSt5__or_IJS1_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSQ_S4_i");
//asm (".hidden _ZSt12__to_chars_iIoENSt9enable_ifIXsrSt5__or_IIS1_IISt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IIS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSQ_S4_i");
-#ifndef __riscv
+#if !defined(__riscv) && !defined(__loongarch64)
asm (".hidden _ZNSt8__detail18__to_chars_10_implIjEEvPcjT_");
#endif
#if !defined(__i386__)
diff --git a/libstdc++-v3/src/nonshared17/fs_dir.cc b/libstdc++-v3/src/nonshared17/fs_dir.cc
index 655b04794..12d96ae35 100644
--- a/libstdc++-v3/src/nonshared17/fs_dir.cc
+++ b/libstdc++-v3/src/nonshared17/fs_dir.cc
@@ -43,8 +43,10 @@ asm (".hidden _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code");
//asm (".hidden _ZNSt10filesystem9_Dir_baseC1EPKcbRSt10error_code");
//asm (".hidden _ZNSt10filesystem9_Dir_baseC2EPKcbRSt10error_code");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSt10filesystem7__cxx114pathC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE");
-#ifndef __riscv
+#endif
+#if !defined(__riscv) && !defined(__loongarch64)
asm (".hidden _ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE");
asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE4swapERS6_");
asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE5resetEv");
@@ -99,7 +101,7 @@ asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_
asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag");
asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev");
#endif
-#if !defined__i386__ && !defined __riscv
+#if !defined__i386__ && !defined __riscv && !defined __loongarch64
asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb");
#endif
@@ -114,6 +116,8 @@ asm (".hidden _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code");
asm (".hidden _ZNKSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stack12current_pathEv");
asm (".hidden _ZNSt10filesystem7__cxx1128recursive_directory_iterator7__eraseEPSt10error_code");
//asm (".hidden _ZNKSt10filesystem7__cxx114_Dir16dir_and_pathnameEv");
+#ifndef __loongarch64
asm (".hidden _ZNKSt10filesystem7__cxx114_Dir7currentEv");
+#endif
//asm (".hidden _ZNSt10filesystem7__cxx114_DirC1ERKNS0_4pathEbbbRSt10error_code");
//asm (".hidden _ZNSt10filesystem7__cxx114_DirC2ERKNS0_4pathEbbbRSt10error_code");
diff --git a/libstdc++-v3/src/nonshared17/fs_path80.cc b/libstdc++-v3/src/nonshared17/fs_path80.cc
index 16576bbd3..b5e9f1a79 100644
--- a/libstdc++-v3/src/nonshared17/fs_path80.cc
+++ b/libstdc++-v3/src/nonshared17/fs_path80.cc
@@ -128,12 +128,16 @@ asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcS
asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
#endif
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_");
+#ifndef __loongarch64
asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv");
+#endif
#ifndef __i386__
//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEmw");
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm");
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm");
+#ifndef __loongarch64
asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc");
+#endif
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm");
//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm");
#ifndef __riscv
diff --git a/libstdc++-v3/src/nonshared17/memory_resource.cc b/libstdc++-v3/src/nonshared17/memory_resource.cc
index 36bfac568..cb1eb14de 100644
--- a/libstdc++-v3/src/nonshared17/memory_resource.cc
+++ b/libstdc++-v3/src/nonshared17/memory_resource.cc
@@ -73,7 +73,9 @@ asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEj");
#ifdef __powerpc64__
//asm (".hidden _ZNSt3pmr15__pool_resource5_Pool10deallocateEPNS_15memory_resourceEPv");
#endif
+#ifndef __loongarch64
asm (".hidden _ZNSt22__shared_mutex_pthread6unlockEv");
+#endif
#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__))
asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_appendIIRjS7_EEEvDpOT_");
asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_appendIJRjS7_EEEvDpOT_");
diff --git a/libstdc++-v3/src/nonshared20/tzdb80.cc b/libstdc++-v3/src/nonshared20/tzdb80.cc
index 1e88dba3b..1a3f769ac 100644
--- a/libstdc++-v3/src/nonshared20/tzdb80.cc
+++ b/libstdc++-v3/src/nonshared20/tzdb80.cc
@@ -149,7 +149,9 @@ asm (".hidden _ZTSSt19_Sp_make_shared_tag");
asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
#endif
#endif
+#ifndef __loongarch64
asm (".hidden _ZSt23__atomic_wait_address_vIiZNKSt13__atomic_baseIiE4waitEiSt12memory_orderEUlvE_EvPKT_S4_T0_");
+#endif
#ifndef __riscv
asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv");
asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev");